Stoatworks Labs

simpleVIS

See your lighting programming, before the room

Field testingv0.2.0ApplicationTypeScript
simpleVIS — See your lighting programming, before the room
No screenshot — this one is configuration inside another application.

What it does

simpleVIS imports an MVR and renders the rig it describes, driven by whatever DMX you point at it. The import is the part that matters: an MVR carries fixture placement and patch, and the GDTF files inside carry the geometry tree, the DMX modes and the beam data. Reading both is what lets an unfamiliar fixture articulate correctly without anyone teaching the software what it is — pan turns whatever the file says pans.

Beams are raymarched through a haze volume rather than drawn as cones, so they read as light in air: they stop where they land, they stack where they cross, and a narrow spot looks different from a wash because the beam and field angles come from the fixture's own published photometry.

The desktop build owns the network and serial ports; the hosted build is the same application without them. That split is forced rather than chosen — Art-Net and sACN are UDP, and a browser has no way to receive UDP at all.

  • MVR import with embedded GDTF: geometry tree, DMX modes, beam angles, colour mixing
  • GeometryReference expansion, so pixel-mapped walls address one DMX slot per pixel
  • Volumetric haze beams, instanced — the whole rig in one draw call
  • sACN with priority arbitration, CID source identity and per-universe multicast joins
  • Art-Net 4 with ArtPoll replies, so consoles list simpleVIS as a node
  • CITP: peer discovery, levels over SDMX, and fixture patch from the desk over FPTC
  • USB DMX input via an Enttec DMX USB Pro
  • Two-source HTP/LTP merge with a 4-second timeout; a third source is refused and reported
  • Built-in demo look, so the rig can be seen with nothing plugged in

Where it stands

Runs the full 119-fixture MA Demostage at 60–70 fps, and the Art-Net, sACN and CITP receive paths are all verified over real sockets. v0.2.0 adds CITP — peer discovery over PINF, levels over SDMX, and fixture patch from the desk over FPTC — and it has talked to a real peer, Capture 2026, which parses and connects correctly. But Capture identifies as a visualiser, so it is a DMX consumer like simpleVIS and sends neither levels nor patch: SDMX levels and FPTC patch from a real console remain unverified. No lighting console, and no DMX interface, has ever driven any of this — every packet so far came from a test that wrote it. MSEX and CAEX — thumbnails, and streaming the viewport back to the desk — are not implemented.

Watch it running

simpleVIS video thumbnail

Nothing loads from YouTube until you press play.Watch it there instead