Skip to content

Epic · Lumos Trace pipeline — bake the simulation, replay the orb #69

@wow-miley

Description

@wow-miley

Context

Lumos currently runs the full simulation pipeline live on every frame, on every device — CognitiveSceneRuntime → SceneSnapshot → VoxelFrameBuilder → VoxelFrame → ComposeLattice → LumosCanvas. The simulation is deterministic, so the expensive half of that pipeline can run once, offline (M4 Mac mini), and devices can replay the result with near-zero compute.

Decision record (2026-06-11)

Option A selected: bake the data, not the pixels. Record the VoxelFrame stream itself as a serialized VoxelTrace, replay it through the existing projection/render path with the simulation off.

  • A — Trace replay (chosen): perfect fidelity (literally the same frames), resolution-independent, projection + glyph overlay (Add LumosGlyph enum and glyph carving on VoxelFrame #33CliGlyph — ASCII glyph overlay on the projected orb #43/LumosCanvas composable — voxel rendering, halo, glyph overlay #54 path) + rotation stay live at render time, no new rendering dependency. Recording point is VoxelFrame, 3D, pre-projection — event-driven glyphs still fire over baked traces.
  • B — Raster bake (deferred): WebP/sprite RasterTransformer for watchOS/CarPlay/widgets and thermal-fallback tiers.
  • C — Lottie bake (deferred, spike-gated): generated Lottie JSON for web/marketing embeds via Compottie. ~1,500 shape layers per frame is a real render-cost risk; feasibility spike required before any runtime use. Note: Bodymovin is an After Effects plugin and cannot ingest Compose output — any Lottie path is direct JSON generation from traces.

Objective

Phosphor can record deterministic Lumos simulations into versioned VoxelTrace assets, replay them behind the existing consumer surface with no visible behavioral difference, and switch between named trace segments as cognitive state changes — consumed by Socket as a published artifact.

Expected outcomes

  • :phosphor-trace module: VoxelTrace format, Oscilloscope recorder, TracePlayer, TraceStateMachine
  • :phosphor-workbench Compose Desktop studio for tuning, prototype-parity verification, and recording
  • Phosphor 0.7.0 published; Socket replays bundled traces in place of live simulation, validated on-device against the T0 baseline

Dependency chain

T0 — FrameProbe phase timing            (parallel · relatedTo PHO-32, SCKT-384)
T1 — :phosphor-trace + VoxelTrace format
T2 — Oscilloscope capture               (blockedBy T1)
T3 — TracePlayer + LumosSource          (blockedBy T2)
T4 — Workbench studio                   (blockedBy T3)
T5 — TraceStateMachine                  (blockedBy T3)
Release — Phosphor 0.7.0                (blockedBy T3, T5 · relatedTo T4, PHO-30)
SCKT — Socket integration + validation  (blockedBy Release, T4)

Deferred backlog (file when ready — do not scope-creep into this epic)

Working agreements

  • Every child ticket: recon before code, explicit out-of-scope, human-review gate, no closing without genuine DoD validation.
  • Agents run one ticket at a time; no unsupervised multi-ticket sequences.
  • AMPERE-first sequencing applies: Phosphor ships generic contracts; Socket integrates against the published 0.7.0 artifact only.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions