User Guide

VoxelStudio User Guide

A volumetric scene authoring tool for the Voxel VX2 — load 3D models, animate them, and present them as slideshows on a true volumetric display.

1 · Welcome

VoxelStudio is built around a simple workflow:

  1. Import 3D models (FBX, GLB/GLTF, OBJ, STL, PLY, …) as scenes.
  2. Author each scene — adjust transforms, lighting, colour and geometry filters, sound effects, and per-frame motion takes.
  3. Sequence scenes in the bottom strip and present them as a looped slideshow on a Voxel VX2 (or in the on-screen simulator if no hardware is attached).

The whole project saves to a single .vxproj file (JSON under the hood) so you can email it, version-control it, or share between machines.

VoxelStudio overview
A scene loaded with the sidebar, viewport, bottom bar, and scene strip visible.

2 · The workspace

The window is divided into four regions.

Top bar

Project actions on the left — Save Project and Load Project. Project name and the active section name in the centre. Start Slideshow, Keyboard, and Settings (gear) on the right.

Top bar
Top bar with project actions, project name, Start Slideshow, and Settings gear.

Sidebar

Seven collapsible sections — Import / Playback, Animation, Render, Lighting, Color Filters, Geometry Filters, Sound Effects. Each has a coloured left stripe so you can find it quickly. Only one section is open at a time; opening one closes the others. If you switch scenes with a section open, the same section stays open after the switch.

Sidebar
Sidebar with the Import / Playback section expanded.

Viewport

Live render of whichever scene is loaded. Overlays floating on top:

  • VPS counter — top-right, voxels-per-second metric.
  • Camera flyout button — top-right, opens rotation/tilt/zoom controls.
  • Reset Transform — top-left, resets the model and clears the recording for this scene (or press R).
  • Recording playhead bar — bottom edge, shows progress through the scene's loop.
  • Frame counter — small badge above the playhead during recording or playback.

Scene strip (bottom)

Help button on the far left, a horizontal strip of scene thumbnails in the middle, and an add-scene + button on the far right. The active scene's thumbnail has a coloured outline. Click a thumbnail to switch + preview-loop, shift-click to start the slideshow from there, right-click for move/duplicate/delete.

3 · Loading and managing scenes

Adding a scene

  • Click Import File… at the top of the Playback tab.
  • Click the + button at the far right of the scene strip.
  • Drop a supported file onto the window (where supported).

Supported formats: FBX, GLB / GLTF, OBJ, STL, PLY, and other AssimpNet-recognised 3D formats.

Scene strip
Scene strip — the live thumbnail of each scene, with the active scene outlined.

Reordering & managing scenes

Right-click any thumbnail for the context menu:

  • Move Left / Move Right — change the playback order.
  • Duplicate — create an independent copy of this scene + its settings.
  • Delete — remove this scene from the project.
Thumbnail context menu
Per-thumbnail context menu with Move / Duplicate / Delete.

Click semantics

ActionResult
ClickSwitch to that scene and preview-loop its recording (frame 0 → end → repeat). No scene advance.
Shift+ClickStart the slideshow from this scene onwards.
Right-clickMove / duplicate / delete menu.

4 · Import / Playback

The first sidebar section — import models and set per-scene transform locks and fade here.

Import / Playback tab
Import File…, loaded file name, Objects list, Lock Axis X/Y/Z buttons, and Scene Fade slider.

Import

Click Import File… to load a 3D model. The loaded filename and Objects list update to reflect the model's hierarchy.

Lock Axis

Three toggle buttons — X (red), Y (green), Z (blue) — lock each world axis so it cannot be rotated by mouse drag or keyboard. Useful when you want spin-around-Y only.

Scene Fade

Total seconds of fade-to-black-and-back when changing scenes. Project-wide. Defaults to 0.5 s; set to 0 for instant cuts.

The Record (●), Clear (🗑), Animation toggle, playback transport (⏮ ▶ ⏭), current-time counter, and Scene Duration slider all live in the bottom bar beneath the scene strip — see the next section.

5 · Recording animation

Each scene can carry a per-frame recording of position, rotation and scale. That recording is what plays back during the slideshow, during Preview Loop, and during Overdub passes — so anything you can do to the model with the keyboard / mouse / SpaceMouse can be captured and replayed.

Bottom bar recording controls
Bottom bar — Animation toggle, Record (●) and Clear (🗑), transport (⏮ ▶ ⏭), current-time counter, and Scene Duration slider.

The recording controls (bottom bar)

The Animation toggle enables or disables animation playback for the current scene. The Record and Clear buttons control per-frame capture:

ButtonWhat it does
Record ●Starts recording. Clears any existing recording first and captures frame-by-frame transforms. Press Ctrl+R as a shortcut. When you stop, the mode auto-engages overdub on what you just laid down.
Clear 🗑Throws away the recording for the current scene and resets to the default pose.

Overdub mode engages automatically after a Record take ends — any movement you make during playback replaces that timestamp on the next pass (the looper-pedal feel). The playhead turns orange during overdub.

The viewport playhead

While any recording or playback mode is active, a thin coloured bar appears at the bottom of the viewport with a "Frame N / Total" badge above it. Colour tells you which mode is driving:

  • Red — capturing (Record, Loop).
  • Orange — overdubbing.
  • Green — playback (Preview Loop, Slideshow).

Total frames = Scene Duration × 60. The bar advances at the same rate regardless of mode, so the beat you record on Scene 1 stays in lock-step when Scene 2 plays back at a different duration.

Red playhead during record
Red playhead during Record, with the frame counter centred above.
Orange playhead during overdub
Orange playhead during Overdub — auto-engaged after stopping a Record take.

Resetting a recording

Press R (or click Reset Transform at the top-left of the viewport) to restore transforms to their first-load pose, clear the per-scene recording, and stop any active recording mode.

Tip: A clean workflow is — load a scene, press Ctrl+R, drag/WASD the model around for the take you want, press Ctrl+R again to stop. You're now in Overdub mode with the take looping; tweak it as much as you like, then press Ctrl+S to save.

Baking out (Render to Video)

Once a scene is dialled in — model, transforms, recording, lighting, filters — you can freeze its full frame sequence to disk via File → Render to Video…. Playback then runs from the file instead of recomputing the scene every frame, which is cheaper at runtime and lets you ship a scene to someone who doesn't have your source model. Multi-scene projects offer a Current Scene / All Scenes prompt; All Scenes bakes each scene silently to baked/<scene>_baked.mkv next to the project, skipping scenes whose existing bake is still in sync.

The output file format is fixed (the in-app Baked Video Settings… dialog only exposes a playback-time Density slider). What goes into the .mkv:

  • Video codec: FFV1 (lossless, full RGB24 — no chroma subsampling, no generation loss).
  • Container: MKV (Matroska).
  • Frame size: 1536 × 512 — a 6-face cubemap tiled side-by-side; top half RGB colour, bottom half 16-bit depth encoded as R = high byte, G = low byte, B = 0.
  • Frame rate: 30 fps on VX2, 20 fps on VX2-XL (matches the volume's native VPS).
  • Audio: FLAC, present only when the scene has a Model Sound File assigned (Sound Effects tab); global music is not embedded.

Tip — mixing the baked video in Premiere or Resolve: the .mkv is a cubemap depth-map designed for the in-app playback path, not a normal-looking video. Options:

  • Just need the audio for sync? The FLAC stream is portable to any NLE — mute the video and use it as a guide track.
  • Want the cubemap in a Resolve-native format? DaVinci Resolve 18+ reads FFV1/MKV natively — drag the bake straight onto the media pool.
  • Premiere / an NLE that won't read FFV1/MKV? Transcode to ProRes 4444 first: ffmpeg -i scene_baked.mkv -c:v prores_ks -profile:v 4 -pix_fmt yuv444p10le -c:a pcm_s16le scene_baked.mov
  • Want a normal-looking 3D shot? The bake file is the projection, not the rendered volume — use OBS or a screen capture of the in-app simulator window.

6 · Camera controls

The viewport top-right has a camera-icon button. Click it to open the camera flyout: Rotation, Tilt, and Zoom sliders, plus a reset arrow that returns the camera to its default pose. While dragging any slider, the volume bounds are temporarily highlighted on attached VX2 hardware.

Camera flyout
Rotation / Tilt / Zoom sliders. Holding a slider temporarily draws the volume border on attached VX2 hardware.

Mouse controls (in the 3D viewport)

Hover the viewport and drag to move the model. Mouse input is suspended during Preview Loop and Slideshow so it can't fight a recorded playback.

  • LMB drag — roll the model around Z (horizontal drag drives it).
  • RMB drag — tumble: vertical → pitch (X axis), horizontal → yaw (Y axis).
  • Wheel — zoom in / out (pivot-aware, same as + / keys).
  • Shift + drag — pan along world X / Y. Sensitivity scales with the device volume so the gesture covers a similar share of the visible region on VX2 and VX2-XL.
  • Shift + wheel — translate along world Z.

A 3-pixel drag dead-zone gates rotation, so a clean click won't nudge the orientation. Per-axis Lock flags still gate rotation; translation ignores them by design.

3Dconnexion SpaceMouse / SpaceNavigator

A 3Dconnexion six-axis puck drives the viewport when attached. All six axes — X / Y / Z translation and Yaw / Pitch / Roll — feed the currently selected control target.

3Dconnexion SpaceMouse
Any 6-axis 3Dconnexion model works — SpaceNavigator, SpaceMouse Compact / Pro / Wireless, SpacePilot.
  • Target = Model (default) — translates and rotates the model in the volume.
  • Target = Light — moves the selected point light's position.
  • Target = Target — moves the selected point light's aim target.

Switch target in the Lighting tab's "3D Mouse Moves" selector. Per-axis mapping and sign are configured in Settings → Input. When the Render tab's Resample mode is Smart, releasing the puck fires a final voxel redistribution so the settled pose gets a clean refresh.

Gamepad (Xbox / XInput)

With a controller plugged in: left stick rotates the model, right stick translates XY, triggers zoom (LT out, RT in), shoulder buttons (LB / RB) step previous / next scene, and Start resets the transform.

7 · Render settings

The Render tab has two presentations — Simple and Advanced. Toggle Advanced from the Settings window.

Simple mode

  • Gamma — output gamma curve.
  • Dither — temporal dither threshold for darker voxels.
  • Bilinear Filter — smooths texture sampling on textured meshes.
  • Max Voxels — voxel budget for the model (in thousands).

Advanced mode adds

  • Adaptive Density — voxel budget scales with model brightness and zoom so density stays visually even.
  • Resample Mode — when the renderer rebuilds the voxel sample distribution:
    • Smart — only when zoom changes past a fixed threshold (default).
    • Continuous — every frame (highest fidelity, most CPU).
    • None — sample once at scale = 1, then never (lowest CPU).
Render tab advanced
Render tab with Adaptive Density toggle and Resample dropdown visible.

8 · Lighting

Up to several spotlights per scene, each with position, target, colour, intensity, and falloff — good for sculpted highlights on detailed models. The lighting computation runs on the GPU via DirectX 12 compute shaders for real-time evaluation.

Lighting tab
Lighting tab — add lights, click an entry to open the per-light flyout.

Click a light's name to open its flyout — drag in the viewport to position the light or its target. With the flyout open, the SpaceMouse drives the light or target instead of the model.

9 · Color filters

22+ post-process colour filters that re-tint the voxel cloud. Hover a tile for an instant preview; click to commit. Examples: Hue Shift, Hologram, Neon Edges, Lava Flow, Thermal, Glitch, Edges… Multiple filters can be stacked — the active list shows as small badges on the scene's thumbnail.

Color filters
Filter tile grid. Hover for live preview; click to apply.

10 · Geometry filters

18 GPU-driven displacement/effect filters that warp the voxel cloud each frame: Ripples, Bounce, Cross Section, Spiral Warp, Shatter Pulse, Turbulence, Fractal Noise, Crystallize, Sphere Invert, Starburst, Metaballs, Event Horizon, Burn, Mirror, Array, Inside Out, Echo, Inflate.

Geometry filters
Geometry filter tiles — click to apply, click again to disable.

11 · Sound effects

Two audio tracks per project:

  • Music — project-wide background track. Plays continuously across scene changes.
  • Per-scene SFX — one sound effect per scene, played when the scene loads.

NAudio handles WAV / MP3 / AIFF / FLAC. When the slideshow advances scenes, any SFX still playing on the outgoing scene is cut so it doesn't bleed into the next slide.

Sound effects tab
Sound Effects tab — Music + SFX file pickers and volume sliders.

12 · Preview loop & slideshow

Preview Loop

Single-click any thumbnail in the bottom strip to enter Preview Loop. The scene loads and its recording plays on a Scene-Duration cycle, repeating until you do something else. The viewport playhead turns green. Useful for editing one scene's animation in isolation while seeing exactly how it'll look in the slideshow.

Slideshow

  • Click Start Slideshow in the top bar — always restarts at scene 1.
  • Shift-click any thumbnail — starts the slideshow from that scene onwards.
Slideshow info overlay
Slideshow info overlay — Slide N/M, current duration, time played, time left, total.

While the slideshow runs, an info overlay top-right shows your position in the sequence. Press G to toggle the slideshow on/off.

Modes are mutually exclusive. Starting the slideshow stops Preview Loop / Record / Overdub / Loop. Pressing R stops everything and clears the recording.

13 · Settings window

Click the gear icon at the top-right to open the Settings window. Project-wide options live here — the per-scene stuff is in the sidebar.

Settings window
Display Information / Input / Hardware Settings groups.

Display Information

  • Display Hardware Information — overlay VX2 status on the viewport.
  • Display SpaceMouse Input Information — overlay SpaceMouse axis values for debugging.
  • Show Volume Bounds — draw the cylindrical/dome volume edges on attached VX2 hardware.
  • Show Advanced Render Settings — exposes Adaptive Density + Resample dropdown in the Render tab.

Input

  • Enable Keyboard Navigation — show the section-header number badges (1–7) and on-screen hotkey overlay. Same as pressing K or the top-bar Keyboard button.

Hardware Settings

  • Hardware RPM — slider, range 400–900 (clamped to attached hardware's max).

14 · Saving and loading projects

VoxelStudio projects save as a single .vxproj file (JSON) plus a sidecar thumbnails folder.

ActionHow
Quick SaveTop-bar Save Project, or Ctrl+S
Save As…Ctrl+Shift+S
LoadTop-bar Load Project

What's saved: the scene list and order; per-scene transforms, recordings, lighting, colour and geometry filters, sound effect, and Scene Duration; project-wide settings (Scene Fade, Hardware RPM, theme, advanced toggle, …); and the camera pose.

15 · VX2 hardware

VoxelStudio talks to a Voxel VX2 volumetric display via the LedHost SDK. With hardware attached, the model is rendered into the volume directly using DrawVox_Batch; without hardware, the on-screen viewport simulator gives you the same scene.

A few features only have visible effect on real hardware:

  • Show Volume Bounds (Settings) — draws the volume edges in real LEDs.
  • Hardware RPM — controls the physical motor speed.
  • Camera-flyout slider-hold — flashes the volume border in real LEDs.

16 · Keyboard shortcuts

Press H at any time for a live shortcuts dialog inside the app, or K for the on-screen overlay.

Project & sequence

Ctrl+SSave project (silent — overwrites current file)
Ctrl+Shift+SSave As… (file picker)
/ Previous / next scene
Shift+ / Shift+Move current scene left / right in the sequence
Click thumbnailPreview-loop this scene
Shift+click thumbnailStart slideshow from this scene
GToggle slideshow
HShow Help dialog
EscExit (with save prompt)

Sidebar (always active)

17Jump to that sidebar section
Home / EndFirst / last sidebar section
/ Move focus inside section (when sidebar focused)
KToggle Keyboard mode (number badges + on-screen overlay)

Model transform

RReset transforms + clear scene recording
Ctrl+RRecord / stop take (auto-overdubs on stop)
W A S DTranslate model
Shift + WASDPitch / yaw model
Q / EUp / down (Shift = roll)
+ / Zoom in / out
On-screen keyboard overlay
On-screen hotkey overlay — section numbers on all sidebar headers, shortcuts listed in the viewport. Toggle with K.
Get started

Bring your content to the volume

Explore the VX2 and VX2-XL, try the live simulator, or talk to us about your use case.