Puzzle Rain

WebVR, javascript, three.js

A Musical WebVR Journey

Puzzle Rain

Puzzle Rain (initially called The Composer) is a WebVR experience we released when I was working at the Mozilla Mixed Reality team. We wanted to showcase the WebVR as a platform for any kind of experiences, from games like A-Blast or Jumpy Balls, creative applications as A-Painter, to more relaxed experiences.

To build this project we hired Arturo Paracuellos, an amazing creative developer and designer.

He was building most of the experience himself, but I was helping him with the overall concept and the initial prototypes.

I especially enjoyed creating animations to express the emotions of the creatures around you. And building autonomous agents to interact between and environment and user.

I started building simple vertex shader animations for each type of creature and state.

Something simple as a bouncer jumping or breathing:

Puzzle Rain

Puzzle Rain

Or a bulrush that will slowly move according to the melody:

Puzzle Rain

We noticed that, when working with such as abstract creatures, eyes were a really important piece to take care of. They could be used to share multiple emotions even just in a simple box. I added a configuration for each eye where you could define the rotation of the eyelid (a semisphere) and the iris texture.

Puzzle Rain

I then added a list of different emotions, which was basically a JSON with the attributes for:

  • eyelid rotation
  • iris texture
  • eyebrow position and rotation

Puzzle Rain

With the eyes in place, I created a few more vertex shader animations for the box creature:

Puzzle Rain

Combining them together with some random parameters, you could easily create mobs of creatures with different reactions and emotions:

Puzzle Rain

Puzzle Rain