03 · Surface Forge · the maker's door

The tools
behind the work.

Lit Fuse Studios holds the voices. Surface Forge is the open-source toolkit that helps artists, educators, and communities make their own immersive pieces — from a 360° capture on a phone all the way out to a dome ceiling. Free to use, free to fork, free to teach with. Apache 2.0.

If you're curious but not technical — the live demo below runs in your browser. No install. Click around. The technical docs are for when you're ready to build your own.

Free & openApache 2.0Works in a browserFor makers K through pro
Try the live demo For developers & makers Public repo · pending release
AI artist · ComfyUI 3D artist · Blender Developer Educator / tinkerer VJ Documentary toolchain Curious
360° CAPTURE FLAT VIDEO AUDIO STEMS 3D / glTF PROVENANCE VENUE PRESET SOURCES Surface Forge apache 2.0 · python PIPELINE MPCDI v2 IMERSA FULLDOME ADM BW64 AMBIX / FUMA DIGISTAR · SKYSKAN WEBXR PREVIEW SHIP TO VENUE SURFACE FORGE · PIPELINE OVERVIEW
Install

Open the box.

Pip-installable. Pure Python core, optional ComfyUI nodes, optional Blender add-on. The library is the contract — what's in the live demo is what you get on disk.

# Surface Forge core (pending public release)
$ pip install surfaceforge

# Optional: ComfyUI node pack
$ pip install surfaceforge[comfy]

# Optional: Blender add-on
$ blender --command extension install surfaceforge

# Hello-world: ship a 360° capture to a planetarium
>>> from surfaceforge import ship_to_venue, load_preset
>>> preset = load_preset("planetarium_26m_4k")
>>> ship_to_venue("capture.mp4", preset, out="./build/")
[forge] analyzing capture.mp4 ... 360° equirect detected
[forge] anchoring to dome surface ... MPCDI v2 written
[forge] rendering IMERSA fulldome master ... 4K · 30fps
[forge] composing ambisonic FOA from spatial cues ...
[forge] writing ADM BW64 ... 6 sources, dome ring layout
[forge] writing Digistar script ... done
[forge] ship complete · 7 files in ./build/

github.com/litfuse-studios/surface-forge · public release pending

ComfyUI · node pack

Wire it into your
generative pipeline.

For the AI-media community already in ComfyUI: drop the node pack in, route generated content through Surface Forge, ship straight to MPCDI / IMERSA / ADM BW64. No round-trip through other tools.

ShipToVenue
ShipTiered
PreviewFromSource
AnchorContent
AnalyzeContent
WriteMPCDI
LoadMPCDI
SurfaceRender
StreamRender
StreamDomeMaster
EncodeFOA
ComposeAmbisonic
WriteADMBW64
PanAudioToContent
DetectAnchor
ApplyVenuePreset
CalibrateAcousticGPS · in dev
InvisibleCalibration · in dev
DataInLight · research
PhonePixelLocator · in dev
Python API · the surface area

Twelve verbs.
Every venue.

CONTENT

analyze_for_surface()

Detect 360° vs flat, audio spatial cues, color space, anchor candidates. Returns a content fingerprint Surface Forge uses everywhere downstream.

read · classify · fingerprint
CONTENT

detect_anchor()

Find the surface the content should anchor to — horizon line, focal subject, anchor object. Used by SurfaceRender to keep things from drifting on a curved surface.

vision · cv2 · numpy
VENUE

load_preset()

Grab one of 20+ built-in venue presets — dome_720, urban_block_large, civic_convening_space_composite, planetarium_26m_4k, nightclub_standard, and more.

presets · venue-aware affordances
SHIP

ship_to_venue()

The headline call. Source + preset → full venue-ready package. Calls analyze, anchor, render, audio compose, write the venue scripts. One line for the common path.

orchestrator · one-liner
SHIP

ship_tiered()

Three-tier delivery — preview, mid, full. For pipelines where the venue wants a low-latency preview while the full IMERSA master renders in the background.

tiered · async
PREVIEW

preview_from_source()

Render a WebXR-ready HTML preview. What the live demo runs on. Drop into a browser; works on a Chromebook or a Quest.

WebXR · three.js · single file
AUDIO

encode_foa_source()

Convert per-source positional audio into First-Order Ambisonic (AmbiX or FuMa). Generic playback for any speaker rig.

FOA · AmbiX · FuMa
AUDIO

compose_ambisonic_from_panels()

Build a full ambisonic mix from panel-positioned sources. The way Surface Forge derives a venue-agnostic master from the content's spatial layout.

spatial composition
AUDIO

write_adm_bw64()

Write the production-grade object-based audio file. Atmos-grade pipeline, compatible with any venue engine that reads ADM BW64.

ADM BW64 · object-based
AUDIO

pan_audio_to_content_position()

Tie an audio source to the on-content position of its visual subject. The audio follows the speaker on the dome ceiling, automatically.

audio · content-locked
CALIB

write_mpcdi()

Generate VESA MPCDI v2 calibration files. Per-projector geometry + color, anchor markers, edge-blend curves. Standard format any pro AV team can ingest.

MPCDI v2 · per-projector
EXPORT

write_blender_rig()

Drop the venue + content into a Blender scene. Camera rig, projection geometry, audio source positions. For the 3D pipeline already living in Blender.

Blender · glTF · USD
Formats written · venue-native

Every format the
venue actually wants.

VIDEO · DOME

IMERSA fulldome master

4K / 8K fisheye renders, dome-ring lighting cues, audience seating mask. The format planetariums actually book.

VIDEO · MULTI

MPCDI v2 tiles

VESA-standard per-projector tiles with edge-blend, geometry warp, and color calibration. Reads in any pro AV pipeline.

AUDIO · OBJECT

ADM BW64

Object-based production audio. The standard from ITU-R BS.2076. Atmos-grade. Drives any venue's speaker rig.

AUDIO · ROOM

Ambisonic AmbiX / FuMa

First-order ambisonic master for generic playback. The room-master tier between preview and full object-based.

3D · SCENE

glTF + Blender rig

Venue scene + content layout as an editable 3D file. Drops into any 3D toolchain. Includes camera, projection geometry, audio sources.

PREVIEW

WebXR HTML

Single-file preview that runs in any browser or headset. What the live demo serves. Survives a school Chromebook.

SCRIPT · DIGISTAR

Digistar show script

Native script for Evans & Sutherland Digistar planetariums.

SCRIPT · SKYSKAN

SkySkan DigitalSky

SkySkan production format. Spitz / Zeiss equivalents in the same family.

PROVENANCE

Consent + citation manifest

Every voice, every recording, every contributor — Creator, ConsentRecord, RecordingContext, Citation, ToolingRecord, governance_review fields. Auditable.

In development · research horizon

What we're exploring,
not what we're shipping.

The library above is what works today. Here's the next ring out — research-stage, prototype, in our labs but not in your install. We name them so you can see where this is going.

AUDIO · CALIBRATION

Acoustic-GPS

Farina-method speaker localization using a phone mic. Sub-cm positioning of every speaker in a venue, no special hardware. Native mobile capture app in development.

Farina TOA · phone mic · in dev
VIDEO · CALIBRATION

Invisible calibration

Lucas-Kanade optical flow + ambient sensing. The room calibrates itself continuously while content plays — no test pattern interruption. Python prototype lives in Surface Prism.

Lucas-Kanade · ambient · in dev
RESEARCH

Data in light

Cotting/Gross imperceptible structured-light extended to embed audio markers and metadata into projected light. Direction we're exploring; not built yet.

research · imperceptible · early
CAPTURE

Native mobile app

Phone-as-sensor + phone-as-capture. Walk a venue, capture the geometry and acoustic profile, hand off to Surface Forge. iOS / Android.

native · in dev
Studio early access

The library is open.
The studio is being built.

Studio · Agile Studio · Enterprise Edition wrap Surface Forge in authoring, real-time collaboration, ship-direct-to-venue automation. All in development. Tell us which tier fits and we'll bring you in early.

The library is free. Always. The rest we figure out together.