ZFORGE · SCENE STAGER · MMXXVI
CAMERA · LIGHTING · ATMOSPHERE

SCENE
STAGER

Cinematic camera physics married to dynamic lighting.

Seven rig profiles. Eight starter scenarios. Target-linked lights that hold exposure as the camera moves. An AI Inverse Cinematography loop that matches reference frames in 30–90 seconds. Bakes to keyframes in Blender, Maya, and Unreal — same math, same output, every host.

BLENDER · MAYA · UE5 7 RIGS 8 SCENARIOS FILM STOCKS ▸ INVERSE CINEMATOGRAPHY · NEW

$49 · $99 STUDIO · TIER III

§ 01 / 06

Three pillars, one substrate

▸ The pivot story

Originally shipped as two separate products — Light Stager and Camera Director — they collapsed into Scene Stager the moment we realised they were two halves of the same idea. The lights and the camera obey the same physics. The bake is one operator.

01 · CLASSIC

Scene Stager

Pick a rig. Pick a scenario. Bake. Done.

Lights parented to the focal target stay perfectly exposed as the camera moves. Atmospheric phase drives wind drift, fog scatter, and light flicker from a single slider.

  • tripod_locked · moco · technocrane
  • wirecam · dolly · drone · handheld
  • perlin · damped springs · 1/f hand jitter
  • 4 starter film stocks (Kodachrome · Vision3 · Tri-X)
  • MOKS deterministic bake DAG
02 · AI LOOP

Inverse Cinematography

Hand it a reference still. It analyses, fuses a SceneScript, renders a preview, critiques, calibrates, iterates.

30–90 seconds per match. Batch operation. VLM works in azimuth degrees and rim modes — never raw XYZ.

  • 15-metric extractor (luminance · chiaroscuro · WB · spec · haze)
  • FTT-pullback Newton-step calibration loop
  • AI Inspector — Opus / Gemini / GPT-4o behind one Protocol
  • Preset promoter writes back to classic mode
  • Calibration library with vitality decay
03 · GEOMETRIC

Geometric Substrate

Each heuristic in the loop has a theorem-grade counterpart with named, bounded failure modes.

Morse-Smale for key-light recovery. Persistent homology for specular philosophy. Operator commutativity for rim transport. Spherical harmonics for shareable lighting.

  • Lotus point via Banchoff cyclic-link classifier
  • Betti signature (β₀ / β₁) for organic vs machined
  • Fabric Transform Tree analytic Jacobian
  • Shape-operator parallel-transport TargetLink
  • L=2 SH projection — HDRI → 27 RGB floats
1360
Tests green
0
Regressions
3×
DCC hosts
5
PROVEN_THEOREM
§ 02 / 06

Scientific abstract

Inverse Cinematography as Geometric Compiler

From heuristic to theorem-grade — five substitutions, one substrate.

Scene Stager's typed compiler boundary — SceneScript → IR → MoksBakePlan → Host adapter — was designed so that anything touching the IR is pure math. The Inverse Cinematography front-end bolts an AI loop onto this boundary; the geometric tranche replaces every estimator inside the loop with a closed-form construction from discrete topology, persistent homology, and Riemannian geometry.

Each replacement preserves the dataclass schema bit-for-bit, so the heuristic baseline and geometric upgrade coexist behind a single flag. Every shipped test from the heuristic tranche still passes after the geometric tranche lands.

§ I.1
Spherical Harmonics over HDRI. Replace any external environment-map reference with an L=2 SH projection. 27 RGB floats reconstruct the ambient probe in any host via the Ramamoorthi-Hanrahan cosine-lobe convolution. Shareable presets become sub-kilobyte JSON, dependency-free.
§ I.4
Math-Over-Matter validator. Every shareable artifact passes a recursive walker that forbids file extensions (.hdr, .exr, .obj, .fbx, .blend, .png, …), absolute paths, and inline base64 payloads. The promoted preset library becomes "Cinematic Git" — diff-able, forkable, DCC-portable.
§ II.1
Fabric Transform Tree pullback. The hand-tuned 13×N JACOBIAN dissolves into the analytic pullback M_parent = Σ Jᵀ M J. Closed-form Newton step on a well-conditioned Jacobian; Levenberg-Marquardt damping handles the H_spec discontinuity. 5 iterations → 1–2 iterations.
§ II.2
Morse-Smale Lotus point. Banchoff cyclic-link classification of 8-neighbour ring sign-changes partitions the luminance manifold into Neumann domains. The Lotus point — contained extremum of the primary domain — is theorem-grade robust to window blowouts and compositional clutter.
§ II.3
Betti signature. The H_spec gate fires on persistent-homology invariants of the specular mask: β₀ for components, β₁ for enclosed loops. Machined panels (β₀ large, β₁ ≈ 0) clamp tight; organic membranes (β₀ = 1, β₁ large) relax. Topology, not brightness, drives the rule.
§ II.4
Operator commutativity for TargetLink. The seam connection on the target surface's tangent bundle replaces Euler-angle transport. The commutator ‖C_ij S_i − S_j C_ij‖_F = 0 dictates intrinsic light motion — immune to gimbal lock, well-defined at umbilics, mesh-portable across users.
§ 03 / 06

Module map

L0 · SUBSTRATESS-11 · SS-12
moks/scene_stager_compiler/scene_stager/ executor · IR · 7-slot SceneScript · validator · compile() · emit_moks_plan()
~360 tests
L1 · HOSTSSS-13 · SS-14
scene_stager_addon/moks_maya/scene_stager_plugin/ Blender · Maya · Unreal MoksHost adapters · channel mapping · bake operators
~250 tests
L2 · IMAGE METRICSSS-15 · SS-15b
image_metrics.pymorse_smale_estimator.pybetti_signature.py 15-metric extractor · Lotus point · persistent homology · geometric drop-ins
64 tests
L3 · FUSER + LOOPSS-16 · SS-17 · SS-17b
metric_fusion.pycalibration_loop.pyftt_pullback.pyrenderer_forwards.py per-slot fusers · prior offsets · FTT analytic Jacobian · per-renderer forwards
135 tests
L4 · PERSISTENCESS-18
calibration_library.pyglass_shelves_resolver.pyproxy_null.py vitality-decay store · semantic-tag resolver · Proxy Null contract
63 tests
L5 · AI + PROMOTIONSS-19 · SS-19b
ai_inspector.pyexport_validator.pypreset_promoter.pysh_projection.pytopology_fuser.py VLM Protocol · Math-Over-Matter gate · The Upgrade · SH projection
98 tests
L6 · TARGETLINK GEOMETRYSS-5b
shape_operator.pyseam_connection.pytarget_link_intrinsic.py discrete shape operator · parallel transport · operator-commutativity TargetLink
35 tests
L7 · SHARED TOPOLOGYOPT-5
topology/banchoff.py manifold-agnostic Banchoff classifier · MAX / MIN / SADDLE / REGULAR · multiplicity
23 tests
L8 · FORWARD MODELOPT-1
blender_forward_model.pysmoke/smoke_inverse_cinematography.py Real-Eevee forward · headless smoke · 512×288 1-sample preview render
10 tests + smoke
L9 · QUEUEDFUTURE
host-side MISSING_TARGET_* spawn · real renderer fit-frames · research-thread Banchoff adoption
deferred
FIG. SS-01 — SS-04 · FORMAL DIAGRAMS

Schemas · taxonomy · loop · coupling

Four reference plates, in the same Nostromo Deep treatment as the math page. Each diagram traces directly to source: the 7-slot SceneScript, the seven rig profiles, the closed inverse-cinematography loop, and the one-slider atmospheric phase broker.

Scene Stager 7-slot schema
FIG. SS-01 · 7-SLOT SCENESCRIPT · prose decomposes to 7 typed slots, each backed by controlled vocabulary V_i
Scene Stager rig taxonomy
FIG. SS-02 · RIG TAXONOMY · seven rig profiles, DOF, imperfection signatures, ~700 LOC total
Scene Stager inverse cinematography loop
FIG. SS-03 · INVERSE CINEMATOGRAPHY LOOP · reference → 15-metric signature → SceneScript → calibration residual → refit
Scene Stager atmospheric coupling
FIG. SS-04 · ATMOSPHERIC COUPLING · one φ slider drives six channels; ProximityCoupler keeps the subject readable
§ 05 / 06

Distribution

Primary
Gumroad
▸ Staged · awaiting push
Gumroad store →
DCC marketplace
Unreal Marketplace
Planned · MotionMacro pack
Coming soon
Asset community
ArtStation
Planned · reference frames
Coming soon
Free + open
zforge-core
▸ Live · MIT · pip install
pypi.org/project/zforge-core →
§ 06 / 06

What's next

The geometric tranche is fully realised. The remaining items are integration edges between what shipped and the real world — each one is small, isolated, and individually mappable.

R · 01
Live Gumroad push for Scene Stager

Create the draft in the Gumroad UI · assign gumroad_product_id to the manifest · run publish.py --no-dry-run with GUMROAD_API_TOKEN. Cover, listing, dry-run all green.

▸ User · manual UI
R · 02
Blender smoke against real Eevee

Run smoke_inverse_cinematography.py inside Blender 4.0+. Convergence telemetry + matched preview frames write to dist/calibration/. The script is staged and tested in bpy-free mode.

▸ User · run in Blender
R · 03
Host-side MISSING_TARGET_* spawn

Blender & Maya adapters honour the universal ProxyNullSpec contract by spawning Empty / Locator on unresolved selectors. Universal-layer contract shipped (Option 3); host integration is a small adapter PR.

Adapter PR
R · 04
Real reference frames per renderer

Drop 3–5 Eevee, Cycles, and Lumen reference renders into assets/calibration_refs/. The per-renderer attached fields (qualitative baselines shipped) re-fit to ground truth via the calibration loop itself.

▸ User · drop reference renders
R · 05
Research-thread adopts shared Banchoff

The spectral_lotus_fusion mesh-Laplacian Morse-Smale implementation opts into the shared topology/banchoff.py classifier extracted by Option 5. Cross-citation in place; conversion is incremental.

Research thread
§ 07 / 07 · STUDIO SCALE

Where this sits in the studio stack

Scene Stager is one node in a larger workflow: a hybrid 3D × AI film pipeline where image-driven generation, virtual cinematography, and physical 3D-printed mini-bigatures all share one USD substrate. Scene Stager drives lighting and camera physics from reference images. Kitbash Conductor browses asset libraries by shape. Topo Doctor enforces interchange-grade meshes between every stage. HolyGrail produces clean quad topology from triangulated booleans. Scene Composer orchestrates them all from prose prompts.

(a) DIGITAL · UE5
Virtual cinematography stage

Sequencer · EXR · ProRes. UE5 Symmetry/PCG widgets. Tracked camera + 3D-stage match. RED-VRAPTOR 8K VV virtual cinematography.

(b) PHYSICAL · 3D PRINT
Mini-bigatures + LED stage

Same USD asset, printed at scale (1 uu = 1 cm). HDR dome / LED stage backdrop. Camera match. In-camera weight.

(c) LATENT · HDR BACKDROP
Custom LDM extension

Diffusion-extended infinity backdrops trained on the scene's motif corpus. Non-linear feedback loop into ideation.

Coalition Maana-class freighter in dry dock — Scene Stager reference target
Reference · Maana freighter dry dock · 75 mm Kodachrome
EscherGate — recursive archway used as the hybrid pipeline test motif
EscherGate · hybrid-pipeline motif · master scene
▸ Forthcoming whitepaper
Hybrid 3D × AI Film Workflow

Sketch → photoreal → curate → custom LDM → image→3D → ZBrush sculpt → Maya retopo → USD interchange → UE5 assembly → variant generation → branch to digital / physical / latent. The eleven-step pipeline that ties every ZForge AI-tier tool together. Scene Stager is the lighting/camera node.

Read the workflow PDF →