VR Experiments

Exploring gaze + gyro as interfaces in VR


Polyworld is an experiment in gaze-only interaction targeting lower-end GLES2 cardboard devices. The idea was to explore the user could move fluidly inside a world with a device lacking positional tracking or input besides the Cardboard trigger.

I created the polygonal terrain along with a series of predefined Bezier paths in Blender. Then I imported these to Unity, where I implemented the gaze and movement logic along the predefined paths.

The result is somewhat reminiscent of the locomotion mechanism in early CD-ROM games like The 7th Guest.

Polyworld. Google Cardboard, Unity.


Revolve is a game that works both in VR mode (Cardboard) and monoscopic mode. A spaceship cruises at constant acceleration thru a looping track and the player has to avoid colliding into rotating traps scattered along the way. The challenge in the game stems from the spaceship progressively speeding up and the traps rotating at different periods. There are two kinds of traps: green traps with quarter blocking segments and red traps with half blocking segments.

In VR mode the player must steer the spaceship by slightly tilting their head (head roll equates to spaceship roll) while in mono mode the player tilts their phone instead.

The project required a path following solution for the spaceship to stay on path and travel at arbitrary velocity. This was done as a two step process:

  1. Implementing a Blender plugin in Python, which allowed me to create the track as a series of Bezier curves and export the control points.

  2. Implementing a Unity component in C# to evaluate the path at arbitrary velocities. The evaluation approach was done according to this paper.

Revolve. Google Cardboard, Unity.