Learn to Create WebXR, VR and AR, Experiences Using Three.JS

——   Created by Nicholas Lever

Harness the WebXR API and Three.JS to bring immersive experiences, VR and AR, to the browser, including Oculus Quest

4h 52m of on-demand video

Share this course:

Enroll now

Your instructor

Your teacher
  • Nicholas Lever
    Nicholas Lever

    Game developer

  • Biography

    After getting a degree in Graphic Design, I started work in 1980 as a cartoon animator. Buying a Sinclair ZX81 back in 1982 was the start of a migration to a full time programmer. The ZX81 was quickly swapped for the Sinclair Spectrum, a Z80 processor and a massive 48K of ram made this a much better computer to develop games. I developed a few games using Sinclair Basic and then Assembler. The Spectrum was swapped for a Commodore Amiga and I developed more games in the shareware market, moving to using C. At this stage it was essentially a hobby. Paid work was still animated commercials. 

    I finally bought a PC in the early nineties and completed an Open University degree in Maths and Computing. I created a sprite library ActiveX control and authored my first book, aimed at getting designers into programming. In the mid nineties along came Flash and the company I was now running, Catalyst Pictures, became known for creating games. 

    Since then the majority of my working life has been creating games, first in Flash and Director, as Director published the first widely available 3D library that would run in a browser using a plugin. 

    In recent years game development has involved using HTML5 and Canvas. Using both custom code and various libraries. A particular preference is to use the latest version of Adobe Flash, now called Animate that exports to the Javascript library Createjs

    I've worked for the BBC. Johnson and Johnson. Deloitte, Mars Corporation and many other blue chip clients. The company I've run for over 30 years has won a number of awards and been nominated for a BAFTA twice, the UK equivalent to the Oscar. 

    Over the last 20 years I have been struck by just how difficult it has been to get good developers and have decided to do something about this rather than just complain. I run a CodeClub for kids 9-13 years old and I'm developing a number of courses for Arbington.com hoping to inspire and educate new developers. Most of my courses involve real-time 3d either using the popular Open Source library Three.JS or Unity. I'm currently having a lot of fun developing WebXR games and playing with my Oculus Quest.

    Courses teaching
    9
    Total students
    0

    Reviews

    Course content

    Introduction
    4 mins
    Welcome to the Course
    free preview
    7 mins
    The History of WebXR
    free preview
    6 mins
    A 3D Primer
    7 mins
    The THREE.js Examples
    A THREE.js Primer
    7 mins
    Setting up a simple THREE.js page using modules
    10 mins
    Creating a rotating Cube
    8 mins
    The THREE.js editor
    7 mins
    Geometries
    Introducting WebXR with THREE.js
    6 mins
    Materials
    7 mins
    Loaders
    6 mins
    Converting a standard THREE.js web app to use WebXR
    12 mins
    Customising the VRButton
    8 mins
    Adding user interaction with a controller device
    10 mins
    Adding a button press event to the controller
    7 mins
    Creating a custom controller
    10 mins
    Accessing the gamepad
    9 mins
    Moving around a VR world
    13 mins
    Physics in your VR world
    7 mins
    Creating an AR Experience
    8 mins
    Controllers in an AR app
    11 mins
    Touch gestures in an AR app
    Using Complex Assests with THREE.js
    10 mins
    Hit testing in AR
    7 mins
    Hand-tracking on the Oculus Quest
    7 mins
    Finding assets online
    3 mins
    Using Mixamo to setup character animations
    The WebXR API
    4 mins
    Using Blender to export assets
    8 mins
    Using the THREE.js animation system
    4 mins
    XRSystem and XRSession
    Creating an Architectural Walk-Through
    4 mins
    XRFrame and XRSpace
    6 mins
    XRInputSource
    7 mins
    Moving around an environment
    7 mins
    Interacting with objects in the scene
    Fun with AR
    4 mins
    Using a GazeController
    5 mins
    Making the app functional on a none XR device
    11 mins
    Using AR to create a tape measure
    A VR Game
    5 mins
    Adding dynamic animation to a product
    9 mins
    An AR online shop example
    7 mins
    Movement by teleporting
    VR for Training
    6 mins
    Interacting with meshes
    9 mins
    Using a controller as a weapon
    7 mins
    CanvasUI - Part 1
    4 mins
    CanvasUI - Part 2
    9 mins
    Using CanvasUI for training

    What you'll learn

    Requirements
    • An intermediate level JavaScript ability is assumed

    WebXR brings both VR and AR to the browser. The API has the massive forces of Google and Amazon behind it so it looks like immersive experiences, using only a browser, are going to make a huge impact in the near future. WebXR works great with Oculus headsets, including the Oculus Quest 2 and the Chrome Android browser is already supporting the API for both AR, Augmented Reality, and VR, Virtual Reality, experiences. But WebXR only harnesses the sensors on a mobile device and creates an agreed definition of how to use this data. To actually visualise 3D content you need a WebGL library and there is no better one to use than Three.JS. This mature Open Source library has many users around the globe and is supported by many developers. Three.JS is at version 118 at the time of writing and is a robust, production ready library. Recently WebXR support was added to the library. Making it easy for developers to create immersive experiences

    In this course you'll learn how easy it is, using Three.JS, to create VR and AR experiences. To get the best from the course you will need to be comfortable with JavaScript coding. No other prerequisites are required. 

    The course is split into 10 sections

    1. Introduction - I introduce the history of WebXR, give you a basic primer for those of you new to 3D concepts and show you the Three.JS website and the WebXR examples. 
    2. A Three.JS Primer - is for Three.JS novices to bring you up to speed on the library. 
    3. An introduction to WebXR using Three.JS - we look in earnest at your development environment and create our first WebXR examples
    4. Using complex assets with Three.JS - most things you create for immersive experiences will need complex assets and sourcing, editing, loading and working with them is the subject of section 4. 
    5. The WebXR API - gives a review of the WebXR API. 
    6. Creating an Architectural Walk-Through - in section 6 we start to create real world examples of immersive content with an architectural walk-through. 
    7. Placing a Product in a Room - WebXR lends itself to showing real products in a person’s home and that is the topic for section 7. 
    8. Using WebXR for games - VR is perfect for games and we look at the basic ingredients of a game using WebXR in this section. 
    9. Using WebXR for training - covers the important topic of using VR for training. 
    10. Conclusion - we look at some WebXR examples to inspire you and review what you’ve learnt. 

    The only tools you'll need are a code editor, in the course I use Brackets, freely available online. The course includes comprehensive resources and code examples. Each code example comes with two versions, one for you to code along with and another that is complete in case you hit a problem. I show you how to use github to host your development work on a secure server so you can easily test your work on a headset, such as an Oculus Quest

    It’s going to be fun.

    You get a 30 day money back guarantee, so you're nothing to lose, go virtual today.

    Reviews

    "This is by far the best guide to Three JS, nothing but fun and clearly explains the parts needed for a 3D app. Thanks Nik for taking the time on this! Can't wait to see where this course take me!"

    "Thanks for creating the course" - Mr Doob, the creator of Three.JS

    "We all Nik fans were waiting for this one when he previously announced it in the Facebook group. And he didn't disappoint us."

    "Best Intro/History Video Ever"

    "Love it so far! The lessons are concise and to the point. The videos' length seems quite optimized, meaning they are not terribly long yet are filled with just enough information about what's going on. The supplied course project files constitute a valuable facilitation on the way through the course."

    "It starts with the basics and then progress to advanced topics. I like the pace and the explanations. Great course!"

    "Great course, love the well-chosen examples, just what I needed!"

    Who this course is for:
    • Anyone interested in harnessing the latest WebXR API, to create VR and AR experiences that work in the browser without additional installation requirements.