Workflows

Scene composition

Building a scene — importing geometry, routing assets, and framing the viewport.

A scene is the unit of “what’s projecting right now.” Composing one means importing your scene model (the 3D geometry you’re projecting onto), routing your assets through to the projectors, and getting the viewport into a state where you can actually see what’s going on.

The 3D viewport

Moonshine’s viewport is a Three.js scene that holds:

  • The imported scene model (your physical surface as 3D geometry)
  • Every projector’s frustum, rendered as a wireframe pyramid showing what each projector covers
  • The live composite preview, rendered on the scene model surface so you see “what’s being projected” as if you were standing in the room

The viewport uses an orbit camera — left-mouse-drag for rotate (or as configured), middle-mouse-drag for pan, scroll wheel for zoom.

Importing geometry

Drag an FBX, OBJ, or glTF/GLB file into the viewport. The model appears at world origin in the scene. The import is recorded on the TouchDesigner side and persists with the project.

If your model has multiple meshes (a complex sculpture or a building façade with many parts), all meshes are imported as a single hierarchy. The vertex tools operate on the full hierarchy.

Frame Scene Model

After import, the Frame Scene Model button drops the camera into a sensible default angle — a three-quarter view that shows the model and most of the projector frustums.

This is the “start over” button for the camera. Lost in space? Frame Scene Model.

Projector frustums

Each projector renders a wireframe frustum in the viewport — a pyramid from the projector’s position outward to its far plane. The frustum is colored to match the projector’s assigned color, so multi-projector setups read at a glance.

Frustums update as you adjust projector position, rotation, or output configuration. If the projector physically moved during install, you move the frustum in the viewport to match, and the warp tools will reflect the new geometry.

Routing assets

Assets (videos, image sequences, generators) live in the Assets panel. To route an asset to a projector, you have two options:

  • Direct assignment from the asset’s context menu — pick a projector or a playlist as the target
  • Node graph drag-connect — drag from the asset node in the node graph to the playlist or projector node (see node graph workflow)

A scene captures the active routing. Switching scenes switches the routing.

Per-projector content vs scene-wide content

You can route the same asset to multiple projectors (it’ll play in sync across them), or different assets to different projectors. The routing is per-scene, so different scenes can have different routings without affecting each other.

Saving a scene

Scenes save with the project. There’s no separate save action for individual scenes — they’re part of the project state and persist when the TouchDesigner project saves.

If you want to “save” a scene as a starting point for variations, duplicate it from the scene list. The duplicate gets its own ID and you can edit it independently.

Naming and color

Each scene has a name and a color. The color shows in:

  • The scene selector
  • Any CueGrid button that targets this scene
  • The transport bar when the scene is active

Pick colors that scan well from across the room. The whole point of color-coding is fast visual identification during a show.