The pipeline
The packages
packages/engineowns capture/preparation, modal response, moment and spectral evidence, model contracts, controls, derived GPU fields and rendering.packages/app-shellowns shared React orchestration, control lifecycle, scene mounting and diagnostics.- The web and desktop applications integrate those shared owners into their hosts. Desktop additionally owns stage/operator transport and native output boundaries.
State and observation
The apparatus is a finite rectangular water-cavity model with a 6.25 m default side length. A spherical render hull clips the view. It does not change the cavity’s boundary conditions. Families with the same natural frequency and losses share shell state; signed source overlaps are applied once during spatial reconstruction. Each channel drives signed dimensionless pressure and velocity-basis coefficientsP and R. For a shell with angular frequency omega and quality factor Q:
x(t) is the prepared waveform held over each sample interval. State propagation
uses a precomputed affine matrix exponential. Raw second moments include every shell
pair, retaining interference and finite-time beats. Stereo channels are independent
responses whose quadratic measurements are averaged, not coherently downmixed.
Reconstructed pressure and velocity mean squares give the normalized observation:
N2 is the spatial mean of total pressure-plus-velocity energy; exact zero response
has zero support. A fixed spatial aperture filters the field before geometry extraction.
The persistent observer follows its zero-level surface. Raw energy remains available for
brightness. These are normalized values from the acoustic model, not calibrated room
pressure, particle forces or measured acoustic intensity.
Model boundary and lifecycle
AudioFeatureFrame carries the audio-owned model to visualization. Its versioned
payload includes topology, signed response state, complete moments, spectral evidence,
and source/sample identities. GPU projections are derived caches, not another solver.
OSC Structure Export uses the complete v5 model
for external receivers.
Pause holds acoustic time. Seek, stop, source replacement and incompatible configuration
changes invalidate the affected histories. Natural end supplies audio-clocked silence
so preparation tails and free decay can continue. A display reconnect replays a matching
cached model without restarting capture. Ordered observation delivery preserves the
history the visual observer needs.
The contracts that stay stable
Control schema
The source of truth for control keys, defaults, applicability, and whether a control is live or debug-only. Changing a label is cheap. Changing a key that is persisted or synced is a compatibility change, because that key is effectively part of a stored format.Persistence
Only controls marked live are saved into presets and auto-save; debug-only controls are excluded. Loading starts from schema defaults, drops unknown keys, falls back to defaults for missing ones, and normalizes a few legacy fields forward. Adding a new live control with a correct default is usually safe; renaming or removing a persisted key needs explicit migration.Visualization method
raymarch is the only supported method. Legacy values (fullscreen-volume, cymatics-2d)
collapse to raymarch at ingress. The field is kept as a constant for forward
compatibility; there is no user-facing visualizer selector.
Performance profile
Three values:auto (adaptive step-budget behavior on), custom (adapts toward an explicit
frame budget), and max-quality (step-budget adaptation off). Persisted control/config
ingress still migrates the legacy none alias to max-quality; live render profiles stay
canonical. The user-facing wording is “Performance Profile,” but some compatibility fields
still use qualityPreset or renderQualityPreset — treat those as naming vocabulary that
still matters, not as free renames.