The goal for the workshop is to get your hands dirty in order to grasp the key concepts.

It's not to

  • ponder about the theoretical future of VR
  • build the next Doom (good luck in few hours!)
  • test some VR equipment
  • enjoy a nice demo

The goal is to learn techniques, concepts, etc as bits of code that help you to build a bigger virtual reality project later on.

Pick the right workshop

Chose the workshop depending on your current skill. Check which block makes more sense to you :

  <a-cube color="red" position="1.7 0 0"></a-cube>
// Create 3D objects.
var geometry = new THREE.BoxGeometry(0.5, 0.5, 0.5);
var material = new THREE.MeshNormalMaterial();  
var cube = new THREE.Mesh(geometry, material);

// Position cube mesh
cube.position.z = -1; 
cube.ongazelong = function(){
  this.material = reticle.get_random_hex_material();
cube.ongazeover = function(){    this.material = reticle.get_random_hex_material(); }
cube.ongazeout = function(){   this.material = reticle.default_material(); }

... a newcomer without programming skills and just want to make content

ThirdWorkshopQuest relying on Aframe

... somehow familiar with Javascript

FirstWorkshopQuest relying on ThreeJS without bugs

... quite familiar with Javascript and want to get a good understanding of VR

SecondWorkshopQuest relying on ThreeJS with on purpose bugs


There are several exercises so that you can code and test right now! No, not in 5min once you just set up this or configure that, now.

That being said those exercises have limitations. Because of browser security for example you can not load texture or object file from another server. That means :

  • no fancy texture (you can try but you are in for a world of pain)
  • no complicated mesh (see CORS but honestly not worth the effort)

Despite that the online exercises are still useful as they are here to explain the concepts. It will not be enough to develop a full fledge webVR experience. For that you will need your own web server. This way you will host your textures, object, handle states, handle concurrent players with their interactions, etc. Having the perfect environment with a proper web server is not required to begin. Later on though it is recommended that you have your own server, either public facing or not, just privately within your WiFi network.


It is partly ready, so try at your own risk ;) Start with Mission 0

If you were a participant of this workshop check the Post Workshop Notes.