The slab rule for sound nodes — pure functions, no DOM, no Web Audio.
A sound node's audibility IS the hidden-dimension slab rule the geometry
nodes use for visibility (SOUND_SPEC.md §3.1, §7): its (K, ndim) rows are
tested against the current slice with the same per-vertex kernel a mesh runs
(wasm/typescript/mesh-culling.ts), through the same deriveNodeViewState
that folds extend_to_all and the inverse nd_transform in. So "sounds react
to hidden dimensions" is one mechanism, not a second one.
The base view state is rebuilt from the dims manager's SimpleDims on every
dimension change — the scene loader's own view state is private and its sweep
is async and lock-serialised, while audibility is a synchronous boolean.
The slab rule for sound nodes — pure functions, no DOM, no Web Audio.
A sound node's audibility IS the hidden-dimension slab rule the geometry nodes use for visibility (
SOUND_SPEC.md§3.1, §7): its(K, ndim)rows are tested against the current slice with the same per-vertex kernel a mesh runs (wasm/typescript/mesh-culling.ts), through the samederiveNodeViewStatethat foldsextend_to_alland the inversend_transformin. So "sounds react to hidden dimensions" is one mechanism, not a second one.The base view state is rebuilt from the dims manager's
SimpleDimson every dimension change — the scene loader's own view state is private and its sweep is async and lock-serialised, while audibility is a synchronous boolean.