Development Notebook

WebVR Specification:

WebVR is an experimental JavaScript API that provides access to Virtual Reality devices, such as the Oculus Rift, HTC Vive, Samsung Gear VR, or Google Cardboard, in your browser.

Example WebVR samples:


A-Frame is an open-source WebVR framework for creating virtual reality (VR) experiences with HTML. We can build VR scenes that work across smartphones, desktop, the Oculus Rift, and the room-scale HTC Vive.


Write HTML, CSS, and JavaScript and get a real-time preview. You can use CodePen to:

  • Show off the amazing things you build.
  • Learn new things by tinkering.
  • Build reduced test cases to report bugs and get help on tricky problems.
  • Try out new technologies for the first time.
  • Build components to later use elsewhere.

Best Practices


Why a Cup of Coffee in ‘Job Sim’ took 850 hours to Make

Costs of making a VR game

Reference Example of a first person shooter implementation in Unity 3D

View story at


Introduction to Particle Systems

Using Kinect and Unity


OpenVR Input Emulator


  • Add translation and rotation offsets to the pose of existing controllers.
  • Redirect the pose/controller events from one controller to another.
  • Swap controllers.
  • Motion compensation for 6-dof motion platforms.
  • Create virtual controllers and control their positions and rotations.
  • Emulate controller input.
  • Remap controller buttons.

It’s an OpenVR driver that allows to create virtual controllers, emulate controller input, enable motion compensation, manipulate poses of existing controllers and remap buttons. It also includes an overlay that allows to configure some settings while in VR. Currently only a small subsets of the available functionality can be configured via the overlay, more will be added in future versions. The rest of the functionality can be configured with a command-line client.

Functionality that can be configured via the dashboard overlay:

  • Device Offsets: Allows to add translation and rotation offsets to the pose of a device. There are three different universes to which offsets can be added. More information about these universes can be found here.
  • Redirect Mode: Allows to redirect pose updates and controller events from one device to another. The idea is that one controller impersonates another controller to use the Vive tracker and connected peripherals in games that do not explicitly support Vive trackers. One example of how this can be used can be found here.
  • Motion Compensation: Allows to cancel out movements of 6dof motion platforms. It works by attaching a controller/tracker on the motion platform and setting the center point of the platform in the overlay. Then all translational and rotational movements of the motion platform is substracted from the headset and controller poses. This is an untested feature since I don’t have a motion platform. It may not work at all or be extremely buggy.
  • Render Model: Support for 3d overlays was recently added to OpenVR, and so I wanted to try out this feature. It is highly experimental and currently has some issues. I don’t know if the issues are caused by me not using this feature correctly, or it is not complete yet and Valve is still working on it.

More info: Github repository

Downloads: from Github