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.
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
When
3 events declared by fire-door-type-b v4
Then
- 1ADD_SCOREamount 1000ms
- 2SHOW_OBJECTobj_extinguisher400ms
- 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.