Skip to content

Resources

Resources are the building blocks of VR lessons. They include 3D models, images, audio files, videos, and avatars. Resources are uploaded through the Web App and used in the Editor to build training scenes.

Resource types

Type File formats Description
3D Model .glb 3D objects used in the scene - machines, tools, parts, furniture, environments. The primary resource type for building training scenes.
Image .png, .jpg 2D images displayed as flat planes in the scene. Used for labels, diagrams, instructions, or reference images.
Audio .mp3 Sound files used for step instructions, ambient audio, or sound effects triggered by actions.
Video .mp4, .webm, .mov, .avi Standard 2D video for the MediaPlayer substep.
Video 3D SBS .mp4, .webm, .mov, .avi Side-by-side stereoscopic 3D video. Each frame contains left and right eye views.
Video 3D 180 .mp4, .webm, .mov, .avi 180-degree stereoscopic video for immersive viewing.
Video 3D 360 .mp4, .webm, .mov, .avi 360-degree stereoscopic video for full surround viewing.
Avatar .glb Full-body rigged avatar for multiuser mode. Supports lip-sync visemes and body animations.
Body Animation .bvh Biovision Hierarchy animation files for avatar body movements.
Surface .glb 3D surfaces used as interaction areas (e.g., for sweep actions).
Tool .glb Tool objects that the trainee holds and uses (e.g., screwdriver, brush, scanner).
Icon .png, .svg Icon resources for UI elements.

Adding a new resource

  1. Go to the Resources tab in the Web App.

  2. Select Add resource.

  3. Fill in the resource details:

    • Resource name - a descriptive name
    • Training - assign the resource to a training
    • File - upload the file (max 200 MB)
    • Tags (optional) - for categorization and search
  4. Select Save.

Resource properties

Each resource in the list has three action icons:

  • Bin - delete the resource
  • Pencil - edit: rename, re-upload, download, change file type, add tags
  • Eye - view properties: name, assigned training, preview, file type, ID, tags, creation and modification dates

3D Model configuration

3D models (.glb) are the most configurable resource type. When a model is loaded in the Editor, the following properties can be set via the Resource Description Creator tool:

Basic properties

Property Description
Rotation Point Center point for rotation actions
Rotation Axis Axis around which the object rotates (for Rotate substeps)
Hand Squeeze How much the hand clenches when grabbing (0-1, or -1 for auto)
Is Container Whether the object can hold other objects inside it

Grab Points and Poses

Objects can have multiple grab points - specific positions where the trainee should grab the object. Each grab point defines:

  • Position and rotation offset for left and right hands
  • Hand pose (finger positions for realistic grabbing)

Animations

3D models can contain animations that play during training:

  • Default Animation - plays automatically when the scene loads (set in Inspector)
  • Loop Animation - toggle whether the default animation loops
  • Trigger Animation - plays when specific events occur
  • Leaf Objects - child objects with their own animation endpoints (start/end positions)

Colliders

Custom collision shapes can be defined for precise interaction:

  • Box Collider - rectangular collision area
  • Sphere Collider - spherical collision area
  • Capsule Collider - capsule-shaped collision area

Interactive elements

Element Description
Hitables Zones where the object can be struck (for Hit substeps)
Sweepables Areas where sweeping motions are detected (for Sweep substeps)
Raycastable Points that respond to ray pointer interaction
Click Box Clickable area with configurable size
Position Suggestions Visual hints showing where objects should be placed
Default Child Positions Default positions for child objects within the hierarchy

Free Rotations

Objects can be configured with free rotation on specific axes. Available angle steps: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, 18, 20, 24, 30, 36, 40, 45, 60, 72, 90, 120, 180, 360 degrees.

Image resources

Images uploaded as resources are displayed as flat planes (ImagePlane) in the 3D scene. In the Editor, you can configure:

  • Image Scale - multiplier for the display size (default 1.0)
  • Position and Rotation - where the image appears in the scene
  • Canvas Order - rendering order when multiple images overlap

Audio resources

Audio files (.mp3) are used in several ways:

  • Step instructions - played automatically when a step begins (with optional text-to-speech fallback)
  • Sound effects - triggered by substep actions
  • Avatar speech - played with lip-sync visemes for avatar animations

Video resources

Videos are played through the MediaPlayer substep type. Configuration options:

Property Description
Display Mode Static (fixed position), Billboard (faces camera), or Follow Camera (follows player head)
Loop Whether the video repeats
Canvas Size Width and height of the video display (default 1920x1080)
Always On Top Render video above all other objects
Position / Rotation Placement in the scene

Avatar resources

Avatar resources (.glb) are rigged 3D character models used in multiuser mode. Each avatar supports:

Voice configuration

Avatar voice is powered by Azure Neural Text-to-Speech and can be configured with:

Property Options Description
Gender female, male Default voice gender
Voice Name e.g., en-US-GuyNeural Specific Azure TTS voice (overrides Gender)
Style cheerful, sad, angry, calm, friendly, newscast, assistant Speaking style
Rate x-slow, slow, medium, fast, x-fast, or +/-XX% Speech speed
Pitch x-low, low, medium, high, x-high, or +/-XXHz Voice pitch

Lip-sync

Avatars support automatic lip-sync via visemes - blend shape animations synchronized with audio playback. The system uses 22 viseme IDs mapped to blend shapes on the avatar's SkinnedMeshRenderer.

Body animations

Avatar body animations (.bvh files) can be triggered via:

  • The AvatarAnimation substep type
  • Lua scripting with PlayAvatarAnimation() function