Skip to content

Product

A slide deck, if a slide were a world

Everyone in a training team already knows how to build a deck: add a slide, put things on it, decide what happens next. GVR keeps that shape and swaps the slide for a 3D scene a person can stand inside.

Authoring

Four panels, no engine

The editor is deliberately conventional. Nothing in it requires a 3D background — the hardest thing an author does is drag a door onto a wall and say what happens when it opens.

  • Scene rail

    Every scene is a slide. Reorder by dragging, duplicate a scene you have already lit and staged, click to switch. A scenario is just an ordered list of them.

  • Viewport

    A real Three.js scene with an orbit camera, an infinite grid and a transform gizmo bound to the selection. W, E and R switch between move, rotate and scale; Esc deselects; Del removes.

  • Inspector

    Numeric transform fields that stay two-way bound to the gizmo, the properties for whatever kind of object you selected, and the Actions tab where the logic lives.

  • Library drawer

    Prefabs, 360° spheres, images, videos and text, all scoped to your organization. Drag any of them straight onto the canvas.

Action logic

When this, then these

A binding is one sentence: when this object fires this event, run these steps in order. The event list is not free text — it comes from the manifest of the prefab you selected, so you can only wire things the prefab genuinely does.

Steps are ordered and each can be delayed, so a door opening can award points immediately, reveal the extinguisher 400ms later, and move the trainee to the next scene once they have picked it up. Bindings can also carry conditions, which is how a scenario branches on what someone did earlier.

  • ADD_SCORE
  • SET_SCORE
  • SHOW_OBJECT
  • HIDE_OBJECT
  • GOTO_SCENE
  • PLAY_AUDIO
  • PLAY_VIDEO
  • INVOKE_PREFAB_ACTION
  • SET_VARIABLE
  • SHOW_TEXT
  • START_TIMER
  • STOP_TIMER
  • COMPLETE_MODULE
  • FAIL_MODULE
  • WAIT
Inspector · Actionsobj_door

When

onDoorOpen

3 events declared by fire-door-type-b v4

Then

  1. 1ADD_SCOREamount 1000ms
  2. 2SHOW_OBJECTobj_extinguisher400ms
  3. 3INVOKE_PREFAB_ACTIONLockDoor1200ms

Delivery

Publish, then read out four characters

Publishing freezes the whole scenario — scenes, objects, transforms, bindings and the exact prefab versions it uses — into an immutable build. Nothing you change afterwards can alter a session already running against it.

Access codes point at a build. A TEST code is for the two people checking it works; a TRAINING code is for the room. Codes can expire on a date, cap their redemptions, or be revoked outright, and every redemption creates a device session you can see and end.

  • Immutable builds

    Versioned snapshots. Roll a cohort forward to v4 when you are ready, not when someone saves.

  • Only what it needs

    The headset downloads the manifest and the assets that manifest references. Nothing else.

  • No per-device setup

    Any headset that can run the GVR runtime joins with a code. No sideloading, no MDM push.

  • Live sessions

    Schedule a session, invite participants by email, start it, and watch progress as it happens.

Analytics

Completion is not evidence

A tick against someone's name says they finished. It does not say they looked at the hazard, or that they reached for the right thing under time pressure. GVR records the behaviour, not the button press.

  • SESSION_START
  • SCENE_ENTER
  • SCENE_EXIT
  • OBJECT_GAZE
  • OBJECT_GRAB
  • OBJECT_RELEASE
  • PREFAB_EVENT
  • ACTION_FIRED
  • SCORE_CHANGE
  • ANSWER
  • HINT_USED
  • SESSION_END

Per participant

A timeline of everything one person did, in order, with scores and the time they spent in each scene.

Per scene

Where attention actually went. Dwell and interaction counts roll up per scene so a confusing one is obvious.

Per cohort

Pass rates, average duration and score distribution across a whole session, or across every session of a module.

See it with your own prefab

Create an organization, upload one prefab and build a scene around it. If the manifest is right, the whole loop takes an afternoon.

Email and password. No card, no sales call.