# Mathematical models and numerical specification

Companion to the [technical report](research-report.md) and [literature review](literature-review.md). The current reconstruction correction is documented in the final section below; earlier version sections remain historical. The model-family sections are proposed implementation specifications. The versioned sections below record the implemented demonstrator and its explicitly chosen display rules. Standard governing models are identified by references; forcing laws, musical mappings, regularization, and validation experiments below are project design choices.

## 1. The physical quantities

Use consistent units before choosing a visual scale.

| Symbol | Meaning | SI units |
| --- | --- | --- |
| w(x,y,t) | Plate displacement perpendicular to its surface | m |
| u(x,y,t) | Membrane displacement | m |
| ρ_s, h | Solid density and plate thickness | kg/m³, m |
| μ = ρ_s h | Mass per unit area | kg/m² |
| E, ν | Young's modulus and Poisson ratio | Pa, dimensionless |
| D = E h³/[12(1−ν²)] | Plate bending rigidity | N m |
| T | Uniform membrane tension per unit length | N/m |
| p(x,y,t) | Transverse forcing per unit area | N/m² |
| ω, f = ω/(2π) | Angular and ordinary frequency | rad/s, Hz |
| a(t) | Normalized digital audio input | dimensionless |
| D_p(x,t) | Particle diffusivity, distinct from bending rigidity | m²/s |
| n(x,t) | Grain number density | grains/m² |

A digital amplitude of 0.5 does not specify a mechanical force in newtons. A transducer gain or an explicitly arbitrary demonstration scale is required. Rescaling frequency, displacement, or time for visibility must be recorded.

## 2. Membrane and bending plate

A small displacement, uniformly stretched membrane can be represented as

$$
\mu u_{tt}+2\mu\gamma u_t-T\Delta u=p,
\qquad c=\sqrt{T/\mu}.
$$

The Laplacian Δ differentiates twice in space. The damping term here is a chosen linear extension. For a membrane with fixed edges, u = 0 on its boundary. A finite element eigenproblem is a practical route for general domains. [Müller, 2013](https://arxiv.org/abs/1308.5523).

For an ideal thin, homogeneous, isotropic Kirchhoff–Love plate, the corresponding bending model is

$$
\mu w_{tt}+2\mu\gamma w_t+D\Delta^2w=p,
\qquad D=\frac{Eh^3}{12(1-\nu^2)}.
$$

The biharmonic operator Δ² differentiates four times in space. The chosen linear damping is not a claim to capture all material losses. Thin plate assumptions, small displacement, and a specified support model define the intended regime. [Brugnoli et al., 2019](https://arxiv.org/abs/1809.11136).

Clamped, simply supported, and free plate boundaries require different conditions. Clamping fixes displacement and normal slope. Simple support fixes displacement and the appropriate bending moment. Free edges require the moment and effective shear conditions. A central support also changes the eigenproblem; merely drawing a dot at the center does not implement it.

### Analytical rectangular benchmark

For a rectangle 0 ≤ x ≤ L_x, 0 ≤ y ≤ L_y, a fixed-edge membrane and a simply supported plate admit the following separable mode shapes:

$$
\phi_{mn}(x,y)=
\sin(m\pi x/L_x)\sin(n\pi y/L_y),\quad m,n\ge1.
$$

Define

$$
\kappa_{mn}^2=(m\pi/L_x)^2+(n\pi/L_y)^2.
$$

Substitution into the respective undamped equations gives

$$
\omega_{mn}^{\mathrm{membrane}}=c\kappa_{mn},
\qquad
\omega_{mn}^{\mathrm{plate}}=\sqrt{D/\mu}\,\kappa_{mn}^2.
$$

These expressions are direct derivations for those particular geometries and supports. They explain why identical-looking spatial basis functions need not have identical frequency spacing.

For a square, the modes (m,n) and (n,m) have equal frequency. Their combinations

$$
\phi_{mn}\pm\phi_{nm}
$$

are also eigenmodes and can reveal curved, symmetric nodal sets. An arbitrary combination of modes with different frequencies instead represents a time dependent superposition. It is not one static eigenmode.

Do not substitute a convenient sine or cosine formula for a free, centrally mounted plate without checking its boundary conditions. Start with the rectangle as a verification case; add the photographed mounting as a separate numerical model.

## 3. Audio driven modal dynamics

Represent a truncated response by

$$
w(x,y,t)=\sum_{j=1}^{M}q_j(t)\phi_j(x,y).
$$

With dimensionless spatial modes, define modal masses

$$
m_j=\mu\int_\Omega\phi_j^2\,dA.
$$

Let p(x,t)=F_0 a(t)g(x), where F_0 is a force scale and g has units 1/m² with integral one. Projection gives the proposed modal model

$$
\ddot q_j+2\zeta_j\omega_j\dot q_j+\omega_j^2q_j=b_j a(t),
\qquad
b_j=\frac{F_0}{m_j}\int_\Omega g\phi_j\,dA.
$$

Choosing independent ζ_j generalizes the uniform damping term in the PDE above; ζ_jω_j = γ recovers that uniform damping choice.

For an ideal point exciter at x_e, the coupling is proportional to φ_j(x_e). An exciter on a node cannot strongly drive that mode in this idealization. In the rectangular example, a point force at the center couples only to modes whose two indices are odd. That is an excitation selection rule, not a central clamp.

For a sinusoidal input with complex amplitude A and angular frequency Ω,

$$
Q_j(\Omega)=
\frac{b_j A}
{\omega_j^2-\Omega^2+i\,2\zeta_j\omega_j\Omega}.
$$

This supplies a reference for resonance amplitude and phase. For underdamped free motion, the amplitude envelope decays with time constant approximately 1/(ζ_jω_j).

### Integrate at an appropriate time resolution

A 60 Hz animation loop is unsuitable for directly stepping a 3975 Hz physical vibration with a basic explicit integrator. Options include audio-rate resonant filters, an exact discrete linear state transition, or a properly derived envelope model.

For z_j = (q_j, q̇_j), write ż_j = A_j z_j + B_j a. Under a sample held constant for Δt, use

$$
z_j(t+\Delta t)=
e^{A_j\Delta t}z_j(t)
+\left(\int_0^{\Delta t}e^{A_j s}B_j\,ds\right)a(t).
$$

This is an exact update for the stated hold assumption. Its relation to the sampled input, aliasing, filter discretization, and truncated mode range still need validation. If audio is downsampled, band limit it first.

An AudioWorklet can implement custom filtering and timestamped analysis. Keep allocation and heavy graphics work outside the audio processing callback. [AudioWorklet](https://developer.mozilla.org/en-US/docs/Web/API/AudioWorklet).

### Show slow structure without discarding phase

At display rate, show a declared amplitude or energy envelope, nodal geometry, or explicitly slowed motion. Do not identify aliased instantaneous samples as a faithful picture of rapid plate motion.

A useful activity field is the windowed mean square displacement:

$$
V(x,t)=\langle w(x,t)^2\rangle_\tau
=\sum_{i,j}C_{ij}(t)\phi_i(x)\phi_j(x),
\quad C_{ij}=\langle q_iq_j\rangle_\tau.
$$

The cross terms preserve coherent interference. Replacing this with a sum of independent modal powers is an incoherent approximation and can fail for degenerate or coherent modes. For one sinusoid, √(2V) equals its peak amplitude; for a general mixture it is an effective amplitude proxy.

A simple verification input is two equal-frequency sources with equal magnitudes. In phase they reinforce; in opposition they cancel at locations with equal coupling. Their individual magnitude spectra are identical. This demonstrates why magnitude alone cannot predict interference.

## 4. Grain transport

The displacement solver and grain solver require independent checks.

### A designed attraction model

An inexpensive scene might move particles according to

$$
dX=-k\nabla(\phi^2)(X)\,dt+\sqrt{2D_0}\,dW_t.
$$

For positive k, the drift reduces the squared mode amplitude and favors low-amplitude regions. This is a proposed artistic transport rule, not a universal derivation of real sand motion. It can become a clearly labeled baseline. [Arango and Reyes](https://doi.org/10.1017/S0013091515000139) provide a separate, more carefully specified stochastic treatment to inspect before adopting their model.

### Spatial diffusion model and its domain

Abramian and colleagues studied dilute bouncing grains on a membrane. Their measured high-acceleration regime supports diffusivity scaling with √(gA³), and a flux of the form J = −∇(D_p n) is consistent with their observed accumulation in low-diffusivity regions. Their apparatus does not calibrate a dry metal plate, dense sand, or broadband musical forcing. [Abramian et al., 2025](https://doi.org/10.1103/PhysRevResearch.7.L032001).

For a proposed computational adaptation, choose a bounded, positive diffusivity field. One candidate is

$$
D_p(x,t)=D_{\min}+C\sqrt{g\,A_{\mathrm{eff}}(x,t)^3},
\qquad D_{\min}>0.
$$

Using a mixed-signal effective amplitude in this expression is our hypothesis. C must be calibrated or described as a demonstration parameter. The floor avoids degeneracy at ideal nodes and changes the resulting equilibrium.

The corresponding proposed Itô random walk is

$$
dX=\sqrt{2D_p(X,t)}\,dW_t.
$$

It produces the density equation

$$
n_t=\Delta(D_p n),
\qquad \partial_{\mathbf n}(D_p n)=0
$$

at reflecting boundaries. For a static positive D_p and zero flux, direct integration gives

$$
n_\infty(x)=
\frac{N/D_p(x)}
{\int_\Omega 1/D_p(y)\,dA_y}.
$$

This is a consequence of the specified mathematical model. Ordinary Fickian transport, n_t = ∇·(D_p∇n), instead has a uniform zero-flux equilibrium on a connected domain. The two discretizations should not be interchanged.

### Particle and grid implementations

For the particle version, evaluate D_p at the beginning of each Itô step and scale a Gaussian displacement by √(2D_pΔt). A constant noise amount per display frame would produce frame dependent diffusion. Test reflection and large boundary overshoots as the timestep decreases.

For the density version, use a conservative flux discretization of Δ(D_p n). On a uniform rectangular grid with spacings Δx and Δy, a sufficient positivity bound for the basic explicit stencil is

$$
\Delta t\le
[2D_{\max}(\Delta x^{-2}+\Delta y^{-2})]^{-1}.
$$

This bound follows from requiring the central update coefficient to be nonnegative. It applies to that stencil and positive diffusivity, not every possible solver. An implicit method still needs its own accuracy and positivity checks.

Compare particle histograms and grid density using the same field, boundaries, initialization, and elapsed simulation time. Track total grain number, stationary density error, convergence, and cost. A density rendering may resemble sand without simulating individual contacts; describe it accordingly.

## 5. Signal processing and time alignment

The discrete STFT is

$$
X_m[k]=\sum_{n=0}^{N-1}x[mH+n]\,h[n]\,
e^{-i2\pi kn/N}.
$$

Here N is window length, H is hop, and h is the window function. The coefficients are complex. A spectrogram usually displays their squared magnitudes. [FMP STFT](https://www.audiolabs-erlangen.de/resources/MIR/FMP/C2/C2_STFT-Basic.html).

At a 48 kHz sample rate:

| N | Bin spacing F_s/N | Window duration N/F_s |
| --- | --- | --- |
| 2048 | 23.4375 Hz | 42.667 ms |
| 4096 | 11.71875 Hz | 85.333 ms |
| 8192 | 5.859375 Hz | 170.667 ms |

These are calculations, not measured end-to-end latency. True resolving ability depends on the window and signal. Zero padding interpolates the spectrum rather than creating additional observed information. For H = 512, the hop is 10.667 ms at this sample rate.

RMS over N samples is √(Σx²/N). Band power should be computed in linear power units with the appropriate normalization. If an analyser supplies decibels, identify its convention before converting: amplitude ratios use 10^(dB/20), power ratios use 10^(dB/10). Averaging display bytes is not automatically a meaningful physical energy estimate.

A centroid is Σf_k P_k/ΣP_k for chosen nonnegative weights P_k. Specify whether those weights are magnitude or power. It can guide a designed detail control, but it does not uniquely identify an instrument or emotion.

For onset novelty, positive differences of a compressed spectrum can emphasize attacks. Beat phase and tempo require additional inference. [Spectral novelty](https://www.audiolabs-erlangen.de/resources/MIR/FMP/C6/C6S1_NoveltySpectral.html).

For smoothing a feature s toward a target v, use a time-based update:

$$
s_{\mathrm{new}}=s+\alpha(v-s),
\quad \alpha=1-e^{-\Delta t/\tau}.
$$

Different attack and release constants are a design option. Silence handling and gain normalization should be explicit; normalized controls cannot be reported as calibrated force.

Maintain separate timestamps for input, feature availability, simulation state, and presentation. Use the audio clock for playback alignment. Report uploaded-track lookahead separately from causal microphone processing.

## 6. Other scene equations

### Stereo trace, Lissajous, and harmonograph

A stereo trace uses x(t)=L(t), y(t)=R(t). A synthetic Lissajous demonstration uses x=A sin(at+δ), y=B sin(bt). Rational a/b permits a closed ideal curve over a common period; this does not imply that arbitrary stereo music makes one.

A harmonograph can combine terms such as e^(−λ_j t) sin(ω_j t+ϕ_j) along each axis. Choosing those frequencies from musical features creates a designed mapping. Direct audio-driven oscillator equations provide a different interpretation.

### Wave propagation

Use the forced, damped wave equation from the membrane section with a declared domain, source, and boundary. A basic explicit rectangular-grid wave update has a CFL requirement of the form

$$
c^2\Delta t^2(\Delta x^{-2}+\Delta y^{-2})\le1.
$$

This is a condition for the standard undamped stencil. Reflections, damping, forcing, and alternative schemes require additional checks. Moving an exciter and changing a support should visibly alter the response.

### Incompressible flow and dye

A useful two-dimensional model is

$$
\mathbf v_t+(\mathbf v\cdot\nabla)\mathbf v
=-\nabla\pi+\nu_f\Delta\mathbf v+\mathbf f,
\quad \nabla\cdot\mathbf v=0,
$$

with dye density d satisfying

$$
d_t+\mathbf v\cdot\nabla d
=\kappa_d\Delta d+s_d.
$$

π is pressure divided by constant fluid density. Audio controlling f or s_d is our artistic forcing choice. Semi-Lagrangian advection and pressure projection are practical graphics methods; stability alone does not establish accurate fine-scale flow. [Stam](https://www.dgp.toronto.edu/people/stam/reality/Research/pdf/ns.pdf).

Vorticity confinement can restore visually lost motion on coarse grids, but it adds an explicit force. Record its contribution when discussing fidelity. [Fedkiw et al.](https://www.dgp.toronto.edu/people/stam/reality/Research/pdf/smoke.pdf).

### Gray–Scott reaction–diffusion

For nondimensional concentrations U and V,

$$
U_t=D_U\Delta U-UV^2+F(1-U),
$$

$$
V_t=D_V\Delta V+UV^2-(F+k)V.
$$

F and k regulate feed and removal. Audio modulation is a proposed external control. Numerical steps need to preserve suitable concentrations and resolve both reaction and diffusion timescales. Pearson's pattern regime should not be described as interchangeable with every classical Turing instability. [Pearson](https://arxiv.org/abs/patt-sol/9304003).

### Kuramoto synchronization

For N coupled phases,

$$
\dot\theta_i=\omega_i+\frac K N\sum_j
\sin(\theta_j-\theta_i),
\qquad
r e^{i\psi}=\frac1N\sum_j e^{i\theta_j}.
$$

r measures phase coherence. A proposed music coupling can modulate K or add a term εs(t)sin(ψ_drive(t)−θ_i), with an explicitly defined driving phase. Adding an identical scalar velocity to every oscillator only rotates the population together; it does not by itself change their relative phases. [Strogatz](https://doi.org/10.1016/S0167-2789(00)00094-4).

Swarmalators add spatial interactions to phase dynamics. Their original collective states are a foundation; audio forcing and grayscale phase encoding would be our extensions. Start with the authors' equations and reproduce a known state before modifying them. [O’Keeffe et al.](https://www.nature.com/articles/s41467-017-01190-3).

### Faraday waves

An illustrative linear surface mode under periodic vertical forcing can take a Mathieu-like form,

$$
\ddot h_k+2\beta_k\dot h_k+
[\omega_k^2+\epsilon_k\cos(\Omega t)]h_k=0.
$$

For an ideal inviscid gravity-capillary wave of wavenumber k in depth H,

$$
\omega_k^2=(gk+\sigma k^3/\rho_f)\tanh(kH).
$$

These equations motivate parametric instability; they do not supply the full nonlinear pattern selection of a real viscous, bounded fluid interface. A credible Faraday extension needs appropriate forcing, damping, boundaries, and coupling. [Périnet et al.](https://arxiv.org/abs/0901.0464).

### Chaos and Fourier synthesis

The Lorenz system provides an optional phase-space scene:

$$
\dot x=\sigma(y-x),\quad
\dot y=x(\rho-z)-y,\quad
\dot z=xy-\beta z.
$$

Audio modulation changes the dynamical system and can leave a familiar attractor regime. Parameter limits should be investigated rather than assumed safe. [Lorenz](https://doi.org/10.1175/1520-0469(1963)020%3C0130:DNF%3E2.0.CO;2).

Fourier synthesis draws a signal or path as a sum of rotating complex vectors. Preserve their complex coefficients for faithful reconstruction. Music synthesis, reconstruction of a drawn closed curve, and decorative epicycles driven by band power are three distinct demonstrations.

## 7. Numerical geometry and limits

For discretized modes, solve Kφ = λMφ with the appropriate stiffness and mass matrices. Report residuals, normalization, and mesh refinement. Repeated eigenvalues require subspace comparison because individual eigenvectors can rotate within a degenerate space.

A standard Laplacian finite element mesh solves a membrane or spectral geometry problem. A bending plate needs an appropriate fourth-order formulation, such as suitable elements or a justified mixed method. Squaring an arbitrary mesh Laplacian does not automatically impose the correct free plate boundary conditions.

Spectral geometry also has a useful teaching limit: nonidentical domains can share a spectrum. Frequency information need not uniquely recover shape. [Gordon, Webb and Wolpert](https://arxiv.org/abs/math/9207215).

The implementation should publish a model card for every scene: equations, units or nondimensionalization, boundaries, forcing, audio coupling, timestep, rendering quantity, numerical modifications, validation domain, and known limitations. This is the proposed format for keeping the art and its mathematical explanation connected.



## Historical 3D mappings in version 0.2

> Historical implementation notes. Later sections document the subsequent implementation revisions.

The two additional views are generative audio mappings. They are implemented by WebGL 2 vertex and fragment shaders, with true three-dimensional geometry, camera rotation, and perspective projection. Neither is a physical fluid or astronomical simulation.

For each audio band, the largest finite FFT-bin magnitude is converted from dB to linear amplitude and scaled:

A_band = min(1, 4 max_k 10^(dB_k/20)).

Bands are bass 40–200 Hz, midrange 200–2,000 Hz, and treble 2,000–16,000 Hz. The features are smoothed with an exponential time constant of 0.13 s. They are relative peak magnitudes rather than integrated band power. Activity is a = R(0.48b + 0.32m + 0.20h), where R is the appearance response setting.

### Liquid orb

N points use a Fibonacci sphere distribution: y_i = 1 − 2(i + 1/2)/N, azimuth θ_i = iπ(3 − √5), and n_i = (√(1 − y_i²) cos θ_i, y_i, √(1 − y_i²) sin θ_i). The appearance detail setting chooses N between 1,000 and 24,000.

The vertex position is p_i = r(n_i,t)n_i. The implemented radial field is

r = 1 + (0.14 + 0.14a)W + (0.025 + 0.045hR)F + 0.10bR,

where W = sin(5n_x + 0.5t) cos(4n_y − 0.34t) + 0.5 sin(6n_z + 3n_y + 0.7t), and F = sin(15n_x − 7n_z + t) cos(12n_y + 0.6t).

The visual clock advances with the motion-speed setting. Camera yaw also advances slowly unless the user is dragging or reduced motion is requested. Soft circular points use additive blending. This yields a folded, liquid-looking surface without a fluid solver.

### Constellation

The same directional distribution supplies 36–650 rays, with count = clamp(round(detail/35), 36, 650). A ray has an endpoint and points at fractional distances 0.36, 0.70, and 1.0. Candidate connections use index offsets 13 and 21; they are retained when the directional dot product exceeds 0.75.

For normalized ray seed s_i, the extent is

l_i = 0.35 + 0.8[0.5 + 0.5 sin(t(0.75 + 0.4 fract(17s_i)) + 62.83s_i)] + 0.45 R B_i,

where B_i selects bass or midrange using fract(7s_i), then adds 0.25 times the treble feature. A seeded sinusoidal opacity passed through smoothstep fades rays and their connections. Visibility changes do not imply a simulated creation or destruction process.

### Appearance controls and scientific meaning

Sand count preserves existing particles when increased and seeds additional grains from the current illustrative density. Point size and color affect rendering. The sand motion setting changes its illustrative transport time scale; it is not a calibrated sand parameter. Audio-response strength is available for the wave and 3D mappings.

Wave detail selects 6–29 contour levels. Motion speed changes elapsed visual time while the numerical step remains fixed; response scales source forcing. Trace and Spectrum hide unsupported density, response, and speed controls. Model guides are optional and off by default.

### YouTube input path

A native embedded player handles video playback. After a direct user action and browser permission, getDisplayMedia supplies a tab or system stream containing an audio track. Its audio-only MediaStream feeds the same AudioWorklet and analysers as local files. The output gain is fixed at zero for captured input, so the application does not replay the source tab's audio.

The sharing chooser and available audio surfaces are browser-controlled. A stream without audio is rejected and all its tracks are stopped. Captured input can be paused for visual analysis; the original player remains separate. Source changes, explicit Stop sharing, and page exit release capture tracks.

Implementation references: [YouTube embedded player documentation](https://developers.google.com/youtube/iframe_api_reference), [MDN getDisplayMedia](https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia), and the previously cited [Web Audio specification](https://www.w3.org/TR/webaudio/).


## Historical music interaction in version 0.3

> Superseded in version 0.4: the preset cosine catalog, projected particle targets, and mesh-like orb were removed. The current implementation is specified below.

For version 0.3, this section replaced the visual mapping details from version 0.2. The audio-rate plate oscillators and wave solver retain their original numerical contracts.

### Faster visual features

A separate 2,048-sample analyser with smoothingTimeConstant 0.2 supplies music features. At 48 kHz, its nominal window is 42.67 ms and bin spacing 23.44 Hz. The existing 4,096-sample Spectrum analyser remains unchanged. These are window parameters, not measured total visual latency.

The three band peaks retain the 40–200, 200–2,000, and 2,000–16,000 Hz ranges. Band magnitudes and input RMS use a 0.025 s attack and 0.13 s release envelope for the geometry. A brightness descriptor takes an amplitude-weighted mean of log2(f/40), normalized by log2(16000/40). A dominant spectral peak is selected between 60 and 4,000 Hz. It is not a claim to recover the musical fundamental, individual instruments, or an isolated voice.

A custom onset cue computes normalized positive spectral flux:

F_t = Σ_k max(0, A_k(t) − A_k(t−1)) / max(0.001, Σ_k A_k(t)).

A cue requires F_t > max(0.16, 2.3 times its 0.6 s exponential mean), input level above 0.025, and at least 0.24 s since the previous cue. A 0.18 s decay supplies the visual pulse. This is a simple causal heuristic, with no beat-tracking accuracy or onset benchmark claimed. It follows the positive spectral-change principle described in [librosa's onset-strength documentation](https://librosa.org/doc/0.11.0/generated/librosa.onset.onset_strength.html); it does not reproduce that library's default mel/log-power pipeline.

### Music shapes and the retained plate model

The default Music shapes view uses

Ψ_mn(x,y) = cos(mπx)cos(nπy) − cos(nπx)cos(mπy).

The terms have equal Laplacian eigenvalues −π²(m²+n²) and zero normal derivative at each square edge. Their difference produces interference nodes without making every edge a displacement node. This is an analytical musical geometry mapping, not a replacement mechanical model of the specified bending plate.

A catalog contains twelve nonidentical index pairs. The dominant peak's rounded semitone class and the brightness descriptor select a candidate. It must remain stable for 0.18 s; a new shape cannot replace the current one before Pattern hold (default 1.1 s, adjustable 0.55–2.5 s). A sufficiently strong attack can also select a different catalog pattern after this hold. This prevents every transient from destroying an unfinished shape.

One third of the targets are replenished from domain-wide samples on each morph, preventing repeated projection from emptying some branches. Particle positions remain continuous. Targets are projected toward Ψ = 0 using analytic gradients tabulated on a 128 × 128 grid, bilinear sampling, and bounded projection steps. A small fixed positional spread gives the grains visible thickness. Particle positions approach targets with a 0.16 s exponential relaxation time. Detected attacks briefly displace one fifth of the grains by a bounded small offset. Morphing preserves particle count and continuous positions.

The original Plate model remains selectable. Its simply supported plate response, modal coherence, normalized Itô transport, and uncalibrated grain clock remain as specified earlier. Music shapes makes a different presentation tradeoff: stable, readable forms rather than a direct modal response to every audio sample.

### Colors and motion

Frequency gradient keeps three palette anchors fixed. The orb and constellation interpolate between band-associated anchors; their local band magnitudes affect deformation or ray extent. Spectrum colors correspond to low, middle, and high frequency bars. Sand uses three colored spatial layers on one held shape, with band-dependent brightness. Wave contour colors are a presentation mapping on the RMS-driven field, not a decomposition of that field into physical frequency components.

Sound palette adds an onset-controlled palette offset, advanced by 0.38 + 0.28 times brightness per detected cue and smoothed with a 0.24 s time constant. The three colors coexist and interpolate; the drawing does not flash between single flat colors. Single color supplies the same RGB value to every layer. These are frequency-feature mappings, not audio source separation.

The orb now includes 23 deformed latitude ribbons as well as its point cloud. Its visual time advances at (1.8 + 1.2 times normalized level) times the motion-speed setting, with faster surface-field phases and a bounded pulse expansion. The radius is limited to 0.55–1.28 normalized units. The constellation uses bounded, band-dependent rays, faster seeded visibility changes, and points traveling along rays. Its visual clock advances at 1.9 times the speed setting. Both preserve perspective and drag/keyboard camera rotation.

The synthetic preview is explicitly labelled. Paused file/capture input retains measured visual state. The browser fixture tests changing synthesized music, cue-driven colors, and settled nodal proximity; it is not a listener study or physical validation.


## Retained models introduced in version 0.4

Version 0.3's preset shape catalog and projected grain targets are no longer used. In version 0.5 the three-bank sand view is named Measured layers; the default Five-band sand is specified in the next section. Layered sand returns to the original plate eigenmodes, with a declared hybrid transport and display envelope. The original broadband Plate model remains selectable.

### Three filtered inputs to the same plate

Four causal one-pole lowpasses use cutoff frequencies 40, 200, 2,000, and 16,000 Hz. For sample rate F_s and cutoff f_c, alpha_c = 1 − exp(−2π f_c/F_s) and l_c[n] = (1−alpha_c)l_c[n−1] + alpha_c a[n]. The three inputs are l_200−l_40, l_2000−l_200, and l_16000−l_2000. These are overlapping soft bands, not ideal frequency partitions or source-separated stems.

For each input, a separate bank uses the same modal frequencies, damping, force scaling, and exact held-input oscillator coefficients as the broadband plate. Its mean-square group amplitudes are emitted every 2,048 samples. Coherent equal-frequency spatial modes are retained inside each group:

V_b(x,y) = Σ_g E_bg [Σ_(m,n in g) c_mn sin(mπx/L)sin(nπy/L)]².

Cross-frequency activity terms remain omitted, as in the original display. The broadband bank and its recorded analytic response check are unchanged.

### Continuous grain transport

Each grain has a fixed band identity (index modulo three) and can move throughout the square. Relative modal weights E_bg/Σ_g E_bg use exponential field memory, default 0.7 s and adjustable 0.2–2.5 s. Each activity field is then normalized by its current spatial maximum. This relative exposure can display quiet bands; it does not preserve their absolute physical displacement scale.

No grain is moved when field weights change. The initial distribution mixes 75% samples biased toward low activity with 25% uniform samples. Further reseeding occurs only on explicit reset or for newly added grains.

In normalized square coordinates, the layered transport is

dX_b = −κ ∇V_b dt + √(2D_b(X_b,t)) dW_t.

The attraction baseline already appears in section 4 of this research specification. Here κ = 0.008 times the Audio response setting. The diffusivity is a chosen display rule:

D_b = 0.000025 + 0.0017 V_b^0.85 [0.55 + 0.45√max(0.12,A_b)].

A_b is the bounded relative FFT band peak. The positive floor maintains tremor near quiet regions; finite diffusion produces clusters with visible width. An 80 × 80 activity grid supplies bilinear samples and centered finite-difference gradients. Grain steps are subdivided to at most 1/120 visual second and use reflection at the boundary. Motion speed changes this visual clock.

This is a hybrid stochastic visualization, not a calibrated grain law. The related bouncing-membrane experiment supports studying position-dependent transport in its own regime, without calibrating this metal plate or the added attraction: [Abramian and colleagues](https://doi.org/10.1103/PhysRevResearch.7.L032001). Plate model retains the original broadband, diffusion-only transport described earlier.

A pure tone can give similar nodal geometry in several filtered bands because every bank uses the same mechanical plate. Distinct colors do not guarantee distinct shapes. Broadband music produces superposed responses; memory improves continuity but cannot guarantee a clean single nodal figure at every moment.

### Flow orb introduced in version 0.4

The connected latitude ribbons and common deformed surface are removed. Flow detail chooses 72–800 independent strands (round(detail/30)), with 80 historical positions per strand. The default 9,000 setting produces 300 strands. Band b has an overlapping initial radius 0.83 + 0.075b + 0.14u, for seeded u in [0,1].

For position p = (x,y,z), the analytic velocity is

v(p,t) = p × ∇Ψ(p,t) = curl(−Ψ(p,t)p).

Consequently p·v = 0 and ∇·v = 0 for the smooth potential, at fixed musical coefficients. These are properties of the analytic field, not claims that the whole rendered animation conserves fluid volume.

The version 0.4 potential was

Ψ = 0.34[A sin(2.4x+φ) + B sin(2.4y−0.8φ) + C sin(2.4z+0.6φ)]
    + f[sin(5.7x−0.9φ) + 0.7 sin(5.7y+φ) + 0.9 sin(5.7z−0.7φ)]
    + Ωy,

with φ = 0.22t; A = 0.9 + 0.2R√B_audio, B = 0.8 + 0.15R√M_audio, C = 0.7 + 0.2R√H_audio; f = 0.035 + 0.018R√H_audio and Ω = 0.65 + 0.25R√B_audio. R is the response control. This combines spatial scales and a main vortex axis.

Each population has an additional constant flow gain based on its corresponding band and the common input level. Heads use a midpoint/RK2 update at 1/60 visual second; radius normalization corrects numerical radial drift. Fading line segments connect historical positions of each individual tracer, not different tracers. Initial history is seeded by backward integration for a visible startup.

The display adds small radial ripples, with a different phase per strand. Their amplitude depends on that strand's band and an attack cue; the y-dependent phase propagates upward. Those ripples are a musical rendering choice. Discrete integration, normalization, and ripple deformation do not establish exact discrete volume preservation.

This follows the curl-field construction principle discussed by [Bridson, Hourihan, and Nordenstam](https://www.cs.ubc.ca/~rbridson/docs/bridson-siggraph2007-curlnoise.pdf), using an analytic trigonometric potential rather than their Perlin-noise implementation. It is procedural flow, without a Navier–Stokes pressure or viscosity solver.

The perspective framing scales with the shorter canvas axis and reduces orb scale at high response. This is a camera adjustment to retain visible margins, independent of the flow model.

### Evidence and interface

Tests now check the actual band filter response, continuous modal envelopes, grain jitter and bounds, fixed population identity, tangency/divergence of the analytic flow, and preserved tracer radii. The synthesized musical browser fixture checks measured band-bank input, changing field weights, finite continuous grain displacement, and moving flow trails.

The source panel uses normal document flow and has no independent scrolling region. Its controls are compact; the YouTube view collapses Appearance initially and uses a smaller upload control. Physical grain and listener validation remain outside these implementation checks.

## Five-band interior-pattern view in version 0.5

This is the default musical sand view. It is a feature-driven visualization of a family of virtual plate responses, not the broadband response of the original 0.30 m plate. Measured layers retains the version 0.4 three-bank model; Plate model retains the original broadband calculation. Relative to version 0.4, this sand release left the flow orb and other scenes unchanged. Version 0.6 revises the two 3D mappings below.

### Input and time resolution

Music generally contains concurrent spectral components, including harmonics and noise. One dominant frequency per second is not a useful general assumption. We track the strongest spectral peak in each of five chosen display bands, not instruments or a fundamental pitch:

| Population | Range |
| --- | --- |
| Sub | 20–60 Hz |
| Bass | 60–250 Hz |
| Mids | 250–2,000 Hz |
| Highs | 2,000–6,000 Hz |
| Air | 6,000–16,000 Hz |

These boundaries are design choices. The lower two bands use an 8,192-sample Web Audio FFT with smoothing 0.08; the upper three use the existing 2,048-sample music FFT with smoothing 0.2. Both use the specified Blackman window. At 48 kHz the windows span 170.67 and 42.67 ms, with bin spacings 5.859 and 23.438 Hz. Low-frequency resolution therefore imposes a responsiveness tradeoff. Repeating the read more often does not remove the window's temporal support. See the [Web Audio specification](https://www.w3.org/TR/webaudio/#fft-windowing-and-smoothing-over-time).

Within each band the maximum dB bin is selected. A bounded three-bin parabolic fit to neighboring dB values interpolates its position; the estimate is clamped inside the band. Peaks below −75 dB are inactive. Display level is min(1, 4 × 10^(dB/20)); this is a relative magnitude, not calibrated sound pressure. Its envelope uses 45 ms attack and 180 ms release.

A wideband or noisy source may make the selected peak move often. It is a strongest-component estimator, not a pitch tracker. Equal or nearby components are not all retained. The preview inserts the generated tone frequencies analytically and is labelled as a preview.

### Continuous virtual plate transfer fields

There are 36 modes with indices m,n = 1…6, grouped coherently when m²+n² agrees. Their reference frequencies and excitation couplings use the same analytical bending-plate expressions and fractional exciter position as the original model.

For population b, scale s_b = lower_band_edge / reference_f_(1,2). Its virtual frequencies are f_bg = s_b f_g; thus the (1,2) resonance lies at that band's lower edge. In the plate frequency formula this scaling corresponds to changing square length by 1/√s_b while holding thickness/material fixed. The global displacement and mass factors are removed by normalization. This family is not five measured plates. Its chosen damping ratio is 0.035, distinct from the original plate's 0.015.

For measured peak f_b, the reduced complex transfer is

H_bg = 1 / [f_bg² − f_b² + i 2ζ f_bg f_b].

A common omitted factor (2π)² cancels in normalization. The complex vector is normalized by √Σ_g |H_bg|², then both quadratures use an exponential envelope. Transition smoothing defaults to 0.12 s, adjustable from 0.05 to 2.5 s. Fields are updated at approximately 20 Hz. No grain moves when those coefficients change.

Let C_bg denote the smoothed normalized transfer coefficient. A common display phase is chosen continuously from

θ_b = arg Σ_g |C_bg| C_bg.

The phase slice reconstructs Re[e^(−iθ_b) Σ_g C_bg B_g(x,y)]. This displays nodal curves of one selected phase of the harmonic response. It is not the mean-square response averaged over all phases. The phase choice emphasizes readable curves and avoids presenting the isolated minima of a complex intensity field as the only sand pattern.

There is no stored figure catalog, semitone-to-shape table, target projection, or automatic reseeding. Frequencies alter the transfer function continuously. The finite basis still limits the available spatial detail.

### Why the border accumulated grains, and what changes

Every simply supported sine mode contains the shared factor sin(πx)sin(πy). It is zero at all four edges regardless of audio frequency. Under attraction and slow diffusion, this creates a common edge attractor. Splitting the same fixed plate into more input banks does not remove it.

For the new interior-pattern display, the factor is divided out analytically:

χ_mn(x,y) = U_(m−1)(cos πx) U_(n−1)(cos πy),

where U is the Chebyshev polynomial of the second kind and sin(mπx) = sin(πx) U_(m−1)(cos πx). The polynomial expression has finite edge limits. Inside the square the removed factor is strictly positive, so dividing it out preserves the zero curves of the selected phase slice. It changes the amplitude field and boundary interpretation.

The rendered activity uses the square of the phase-slice amplitude built from χ, subtracts its sampled minimum, normalizes by its sampled range, and raises it to power 0.4. This monotone display contrast preserves sampled minima. A soft inward rim force discourages edge accumulation. The rim remains visible as the domain boundary. These display rules do not model a free plate or establish physical grain behavior.

### Fast transport, loose grains, and tremor

Grain band identity is index modulo five, retained when density changes. Positions are initially uniform in [0.035,0.965]². Only explicit reset and newly added particles invoke seeding.

For sampled activity V and g = ∇V, the drift is

v_drift = −0.7 R √min(1,12A_b) c_i(V) g / (0.2 + |g|) + W(x,y).

R is bounded Audio response, 0.2–2.5. Most grains have c_i(V) = min(1,V/0.08), reducing attraction near quiet curves. For indices i modulo 11 below 2, c_i = 0.12. These roughly 18% looser grains maintain visible motion while the rest settle faster; membership is interleaved across all five colors.

The inward rim term acts separately on each coordinate z:

W_z = 0.95R [max(0,(0.085−z)/0.085)² − max(0,(z−0.915)/0.085)²].

Diffusivity is

D_i = D_floor,i + 0.0011 V^0.8 √A_b,

with floor 0.00018 for the main population and 0.0012 for looser grains. Itô increments use independent Gaussian noise √(2D_i dt). The 64 × 64 field uses bilinear sampling and centered finite-difference gradients. Steps are at most 1/120 visual second, with an accumulated-step cap of 0.08 and reflection at the domain limits. Motion speed changes this display clock.

All constants are chosen transport/presentation parameters, not fitted material coefficients. Fast attraction is intended to make patterns visible before the next phrase; it does not claim that real dry sand settles at the same speed.

### Evidence and limits

Seven additional numerical checks cover concurrent peaks at two sample rates, interior-factor identities, continuous frequency changes without teleporting grains, resonance scaling and degenerate coherence, settling/jitter/bounds, ten-per-second input changes, and five-color palettes. A live synthesized WAV supplies five simultaneous changing tones through the actual file/FFT pipeline.

The tests measure estimator output, activity reduction, rim occupancy, modal changes, grain displacement, and interface fit. They do not establish acoustic source separation, listener preference, physical fidelity, or total end-to-end latency. Broadband songs can still produce complex or unstable peak choices. The five-band view deliberately trades some physical correspondence for readable, faster musical response; the retained views make that tradeoff inspectable.

## Sound controlled 3D views in version 0.6

The sand, plate, wave, stereo, and spectrum models retain their previous equations. Flow orb and Constellation now respond to finer spectral information and band balance. Their controls are designed musical mappings; only the stated analytic curl properties are mathematical flow invariants.

### Measured features and display cells

The 2,048-sample music FFT supplies peak relative magnitudes in 40–200, 200–2,000, and 2,000–16,000 Hz. Its analyser smoothing remains 0.2. These values, B_raw, M_raw, and H_raw, use the existing gain of four. L is min(1,3 × input RMS). Feature envelopes use 25 ms attack and 130 ms release. Listening volume acts after analysis.

The strongest FFT component in 60–4,000 Hz supplies a logarithmic coordinate η = clamp(log2(max(60,f)/60)/log2(4000/60),0,1), smoothed over 120 ms. It is a strongest-component control, not fundamental pitch. Spectral brightness β is the amplitude-weighted log-frequency centroid from 40 to 16,000 Hz, normalized to that logarithmic range and smoothed over 180 ms. P is the existing gated spectral-change pulse, decaying over 180 ms; C is the smoothly accumulated palette phase.

For rendering and flow coefficients, B = sqrt(clamp(6B_raw,0,1)), with analogous M and H, and e = sqrt(L). R is the response control clamped to 0.2–2.5. These nonlinear gains increase visual response to quieter input and saturate at strong input; they are not physical units.

The constellation also reads 64 logarithmic display cells. Cell k spans 40 × 400^(k/64) to 40 × 400^((k+1)/64) Hz. Its value s_k is min(1,4 × the largest linear FFT magnitude sampled in that interval); values at or below −75 dB are ignored. At least one positive FFT bin is sampled, so narrow low cells can reuse bins and adjacent intervals can overlap. At 48 kHz the underlying bin spacing remains 23.4375 Hz and the window spans 42.67 ms. Sixty-four display cells therefore do not imply 64 independently resolved bands. Each cell uses the same 25/130 ms envelope.

### Flow potential and independent histories

Strand counts, overlapping radii, 80-position histories, and the 1/60 visual-second midpoint integrator are retained from version 0.4. The potential replaces its mostly fixed vortex axis with sound-controlled coefficients:

Ψ(p,t) = 0.24[A sin(kx+φ) + B_c sin(ky−0.8φ) + C_c sin(kz+0.6φ)]
         + f[sin(qx−0.9φ) + 0.7 sin(qy+φ) + 0.9 sin(qz−0.7φ)] + Ω·p,

where k = 1.7+3η, q = 4+5β, and φ = 0.45t+ηπ+0.7C. The coefficient names distinguish them from the input bass value:

A = 0.18+R(1.40B+0.35P),
B_c = 0.18+R(1.35M+0.25P),
C_c = 0.12+R(1.60H+0.40P),
f = 0.01+0.14RH(0.3+0.7β).

The preliminary axis is

a = (0.25+1.3(M−H)+0.35 sin(2πη),
     0.15+1.6B+0.2 cos(πη),
     0.15+1.1(H−M)+0.3 cos(2πη)).

Ω = a/max(0.001,|a|) × R(0.25+0.9e+0.65P). Musical coefficients depend on time and sound, not spatial position. Thus v = p × ∇Ψ = curl(−Ψp) remains tangent and divergence-free at each fixed sound state. Each population applies a speed gain using a local level 0.45L+0.55 sqrt(its raw band), capped at one. Its tangent-velocity gain is 0.4+1.3 sqrt(local level)+P.

The user speed multiplies a sound-controlled visual clock by 0.5+2.4e+1.1P. Fixed steps and an accumulator cap prevent unbounded catch-up. This clock is selected for presentation, not real fluid time.

The rendered strand positions add a bounded envelope: bass expands the horizontal scale, mids stretch the vertical scale, and high frequencies add finer coordinate ripples. Visible history length is clamp(0.26+0.62B+0.18M−0.18H,0.18,0.98). Coarse ripple scale follows η, fine scale follows β, and attack pulses increase ripple strength. Displayed positions are bounded to radius 1.42. The camera projection is fixed at 2.45 with scaling by the shorter canvas dimension; it does not cancel musical expansion by zooming.

These deformations apply to individual historical strand positions, without connecting different tracers into a surface. They do not preserve the base-field invariants. The implementation is procedural flow artwork with a researched curl construction, not a pressure, viscosity, or hurricane simulation.

### Spectrum nodes and curved filaments

Node count is clamp(round(detail/35),36,650), giving 257 nodes at the default detail setting. Fibonacci directions distribute nodes around a sphere. Seeded cell identities remain fixed during playback. Their colors follow the cell center: below 200 Hz is bass, 200–2,000 Hz is mids, and above 2,000 Hz is treble.

Let s_max be the strongest display cell. A node's raw activity is r_i = sqrt(s_k/s_max) when s_max exceeds 10^−6; otherwise it uses its boosted band value. Its display activity is a_i = clamp(r_i,0,1) × L^(1/4). This relative normalization emphasizes components within a passage while input level still gates extension and brightness.

A continuous petal modulation blends neighboring integer angular harmonics around order 2+4η. Its phase follows C and slow treble-controlled motion. Radius is clamped to 0.18–1.18 from

0.30+0.82a_i(0.65+0.35R)+0.16B+0.18P+0.16M × petal_i.

A midrange-dependent twist and vertical aspect adjustment rotate each normalized direction. A quadratic Bézier filament runs from a small central radius through a tangential control point to that endpoint. Six segments draw each curve; three points travel along it at a rate increased by H. The points fade near both ends. The endpoint brightness is based on 0.035+0.8a_i+0.12P r_i.

Each nominal node direction chooses its three nearest neighbors once. The undirected pairs are deduplicated. Actual link opacity decreases with endpoint distance and their activity; the distance scale is 0.18+0.5M+0.12P. Geometry therefore changes link length and visibility as measured components extend or retract. A pulse-controlled core and active endpoints use soft point sprites. Additive blending, depth attenuation, and an opacity gain of 1.18 × alpha^0.68 are presentation choices that keep quiet passages visible.

There is no seeded periodic visibility catalog or shape preset. Traveling points and automatic camera rotation still have a presentation clock. Neither those motions nor the petal function represent a stellar force law or source separation.

### Demo and implementation evidence

Demo music generates sixteen seconds of mono 24 kHz PCM locally. Four sections change bass, chord register, arpeggio register, and percussion balance. Note attacks and releases reduce abrupt tonal transitions. The ordinary file source, worklet, RMS, and FFT paths analyze this audio; no descriptors are fabricated for playback. The steady Tone source remains available.

Pause and zero speed retain a copy of the current 3D feature state, including its spectrum, as well as stopping the geometric clock. A new source or resumed playback can refresh the mapping. Camera changes remain explicit user actions.

Six additional numerical tests cover spectral cells and envelopes, independent snapshots, sound-dependent flow histories, sound-dependent constellation geometry at equal time, finite bounded curves, and the generated PCM. A browser comparison holds camera and elapsed time fixed, uses monochrome rendering, and changes only the injected sound descriptors. It distinguishes geometric response from color changes or ordinary animation. Separate playback checks sample all four generated sections through the actual audio pipeline. In the recorded monochrome comparison, 25.86% and 21.57% of orb pixels changed for bass versus chord and treble; constellation changes were 3.49% and 3.15%. A changed pixel had summed absolute RGB differences above 60 on a 520 × 520 canvas. Scripts and machine-readable records are retained with the repository QA.

Those checks establish implementation behavior for the tested fixtures. They do not measure listener preference, synchronization judgments, total latency, physical flow accuracy, or performance across all devices. The proposed research comparisons and listener study remain pending.
## Density and display framing in version 0.7

The version 0.6 section above records its historical envelope and evidence. This revision retains the flow potential, audio features, five-band modal reconstruction, original plate and wave equations, drift/diffusion coefficients, boundaries, and fixed steps. Its changes affect grain count, computational sampling, and display framing.

### Grain count and equivalent sampling

Sand count is independent of 3D detail. The default is 30,000 total particles: 6,000 per interleaved five-band population, 10,000 per measured-layer population, or 30,000 in Plate model. Settings allow 5,000–90,000 total particles in increments of 1,000. Existing particle prefixes survive count changes; only newly added particles are seeded. Counts do not increase FFT resolution or change the modal fields.

For the two musical sand models, one-cell centered differences are computed once per grid update and their nodal values are interpolated bilinearly along with activity. Linearity makes this equivalent to the previous centered difference of the bilinearly interpolated field, including clamped edge extension. Tests compare both samplers at random interior and boundary positions. The gradient grid is rebuilt each advance, so it is not a delayed field.

The musical models generate paired independent standard-normal increments with the Marsaglia polar transform: choose uniform u,v in (−1,1), reject r = u²+v² outside (0,1), and return (u,v)√(−2 ln(r)/r). This preserves the Gaussian increment distribution while changing seeded trajectories because random-number consumption differs. Tests check marginal means, variances, and cross-covariance. The original Plate model keeps its previous scalar sampler. No drift, diffusivity, or integration constants are retuned for this optimization.

### Restrained flow envelope

For strand direction n, boosted band activity b, bass B, midrange M, treble H, normalized level e, pulse P, and response R defined above, the coarse/fine wave w retains its previous scales and phases and lies in [−1,1]. Radial ripple strength is now s = min(0.060, 0.009 + R(0.025b + 0.016P)). The rendered point starts at n(0.92 + 0.10B + 0.035e + 0.018P + sw), then is scaled along its axes by (1 + 0.025B, 1 + 0.035M, 1 + 0.025H). Treble offsets x and z by sinusoidal terms of amplitude 0.009H. Radius is bounded to 1.32. These mild display deformations keep the independent strands rounder; they do not establish a fluid simulation or preserve the analytic base-field invariants after rendering.

### Fit and Fill canvas

Fit shows the complete square sand/wave domain. Fill uses a square of side 1.02 max(canvas width, canvas height), centered on the same canvas. Scaling stays uniform and the excess is clipped; neither the computational domain nor its boundary conditions changes. The plate rim is cropped away. Trace likewise uses uniform scaling. Spectrum expands its plot margins without changing the FFT.

For both 3D views, projection retains aspect correction and multiplies by min(1, aspect) in Fit or 1.25 max(1, aspect) in Fill. The latter deliberately crops the magnified form. Framing changes neither the camera angles nor sound controls; returning to Fit while paused restores identical pixels in the recorded six-view check.

### Current evidence

Four additional numerical contracts bring the suite to 41: independent sand count/prefix preservation, uniform framing, cached-gradient equivalence, and Gaussian increment statistics. The browser canvas suite checks all three sand counts, all six framing round trips, persisted preferences, desktop/mobile layout, and 32 strong-input orb silhouettes. The 0.7 outline check spans aspect ratios 0.889–1.088 on a 520-pixel square canvas. This bounds only the tested views; it is not a general proof of visual quality. Current machine-readable records are in quality, and reproducible browser scripts are in tools/qa.

The canvas timing samples actual application draw calls in one headless Chrome run with 30,000 grains. It does not establish device-independent frame rate, total audio latency, or performance at the 90,000-grain maximum.

## Settings and initial sand count in version 0.7.1

The initial and Reset settings sand count is 15,000: 3,000 in each five-band group, 5,000 in each measured layer, or 15,000 in Plate model. The allowed 5,000–90,000 range, field equations, gradient sampler, and noise laws are unchanged. The version 0.7 measurements above remain dated evidence for its 30,000-grain default.

Every view now exposes Color style, Palette or a custom Color, and Fit/Fill framing in the settings dialog. View-specific sliders still appear only where they change the rendering. On the first migration from version 0.7, the former 30,000 default becomes 15,000; other saved amounts and appearance choices are retained. Thereafter the new preference key preserves explicit choices, including 30,000.

## Rectangular domains and interpretable 3D response in version 0.8

This section supersedes the 0.6/0.7 envelope, constellation and crop descriptions above, which remain dated implementation history. Sand continues to start at 15,000. The color and grain transport choices remain explicit, rather than claiming that colored particles separate instruments.

### Rectangle instead of cropped square

Fit uses the original 0.30 m square. Fill uses an 8-pixel inset rectangle with the viewport's aspect ratio a, rounded to 0.001 and bounded to 0.1–10. Lx = 0.30 max(1,a) and Ly = 0.30 max(1,1/a), retaining a 0.30 m short edge. The analytical frequencies in section 2 now use these dimensions. Modal mass is μLxLy/4. Groups contain only equal frequencies, so the square's swapped-index degeneracies generally split in rectangles. Original audio-rate modal banks are rebuilt when the domain changes; incoming stale-aspect packets are ignored. Audio playback continues.

All sand models rebuild their basis on the normalized rectangular coordinates without relocating existing grains. Five-band resonance scaling still sets its (1,2) mode at each band edge. Physical gradient drift uses 1/ax² and 1/ay², and normal increments use 1/ax and 1/ay, where ax = max(1,a), ay = max(1,1/a). Thus an equal normalized-coordinate displacement is not mistaken for an equal physical displacement along unequal edges. Grain rectangles retain the same screen-pixel size. All boundaries remain visible.

The wave stencil likewise uses rx = r/ax² and ry = r/ay². Its fixed boundary and forcing clock remain unchanged; rx+ry never exceed the former square CFL value. Trace uses separate horizontal and vertical display ranges. The 3D Fill projection is 1.08 min(1,aspect), preserving the complete form rather than cropping a magnified sphere.

### Liquid envelope around flow trails

The relative mode ordering is taken from the small-deformation droplet expansion reviewed in [Easter, Bojarevics and Pericleous, section 2](https://gala.gre.ac.uk/id/eprint/7058/1/Numerical_Modelling_Liquid_Droplet_dynamics.pdf). Six real, unnormalized spherical harmonic functions use orders (2,2,3,3,4,4). With unit direction n=(x,y,z), the basis is:

Y = ((3y²−1)/2, x²−z², (5y³−3y)/2, 2y(x²−z²), (35y⁴−30y²+3)/8, x⁴−6x²z²+z⁴).

These functions have zero spherical mean and magnitude at most one. The physical Rayleigh ordering ω_l² ∝ l(l−1)(l+2) sets only relative rates. The application chooses f_l = 0.85 sqrt[l(l−1)(l+2)/8] visual Hz and ζ_l = 0.32+0.10(l−2). It does not infer surface tension, viscosity or a real droplet radius from music.

Each q obeys q̈+2ζωq̇+ω²q=ω²F, using the exact held-force oscillator update. F = gain × min(1.5,response) × band × (1+0.25 pulse) × sin(0.72ωt+phase); phase is 0 or π/2 within each pair. Gains are 0.082, 0.056 and 0.035 for bass, mids and treble. These band choices are a musical mapping: bass activates broad deformation, while higher bands activate finer spatial orders. When input stops, forcing vanishes and damping releases the deformation. The oscillator time uses the user speed, independently of the faster sound-controlled flow clock.

A uniform scale caps Σ|q| at 0.17, keeping r positive. For δ(n)=ΣqY, the common radial envelope is R c(1+δ), with c = mean_384[(1+δ)³]^(-1/3), sampled on Fibonacci directions, and R = 0.96+0.045 sqrt(level). The correction approximately conserves the envelope's sampled volume at a fixed R; loudness deliberately changes R. An independent 4,096-direction test checks volume error. Static strand layers span 0.975–1.025 of this common radius. They decorate depth and do not conserve physical volume. The underlying tangent curl potential and independent histories are retained. No full liquid or hurricane solver is claimed.

### Fixed spectral rays and recent peaks

The 64 logarithmic cells and 25/130 ms feature envelopes remain. Each Fibonacci ray follows a fixed cell. Default detail gives 129 rays; colors follow the cell's bass/mid/treble range. Define m = max(0.06, strongest cell), e = sqrt(level), and target_k = min(1,sqrt(cell_k/m)) × sqrt(e) × min(1.4,0.7+0.3 response). Relative normalization reveals simultaneous components while the floor and level gate limit quiet amplification.

The spring equation is q̈+2ζωq̇+ω²q=ω²target, with f=3 visual Hz and ζ=0.8. An exact held-target update smooths outward extension and return. The radius is 0.24+0.88 clamp(q,0,1), with an inner stem at 0.20. A peak marker follows p_k=max(max(0,q_k),p_k exp(−Δt/0.45)); the faint marker appears only when it extends sufficiently beyond the current tip. There are no cross-links, petal modulations or traveling beads. These are signal-display dynamics, not mechanical forces measured from sound.

Pause, zero speed and reduced motion retain current geometry and sound snapshots. The tone dialog exposes frequency, current-domain resonance presets and the stereo ratio without adding another scroll region to the source panel. The logo uses the original sine-wave symbol (∿) as a typographic brand mark.

For tone previews, identical channels remain coherent. A nonunit right/left ratio creates two half-amplitude components in the mono-average drive. Their separate mean-square transfer responses and each frequency’s filter gains are added; finite-window beat cross terms are omitted. A browser worklet comparison also checks the 3:2 case.


## Current local research correction — 9 October 2026

The earlier versioned descriptions above are historical. Plate model and Measured layers now reconstruct V = Σ_iΣ_j B_i B_j mean(q_i q_j), including all inter-group terms. The AudioWorklet collects packed symmetric second moments over the same sample windows as its diagonal energies; sampleRate and endFrame identify the measurement clock. The packet covariance label denotes a non-centered second moment.

Broadband field memory applies the same 0.18 s exponential blend to every matrix entry. Measured layers applies relative exposure and a common matrix blend, with a minimum memory of 0.20 s; its control now displays that effective value. Positive scalar normalization and a shared convex blend preserve the second-moment structure. Spatial summation is in Float64, with final Float32 storage and peak normalization.

Analytical previews retain coherence across natural-frequency groups for each drive tone. Separate unequal stereo drive frequencies still omit finite-window beat terms in the paused preview; the live worklet measures those terms. Paused file/capture Trace and Spectrum retain the last measured arrays. A source with no measurement does not fall back to a synthetic tone trace or spectrum.

The [technical report](research-report.md) records the same-bank reconstruction and modal-refinement comparison. Its 24 × 24 reference is truncated. The live 4 × 4 bank is retained as a low-order interactive model; it has significant high-frequency error and is not a physically accurate model over the entire musical range. The default five-band mapping and uncalibrated grain laws are unchanged. Fifty numerical tests and a separate browser regression check these contracts; no listener study or hardware validation is asserted.


## Demo correspondence update — 10 October 2026

All six views and three sand behaviors remain available. A collapsible Model & evidence panel reports the active input, displayed quantity, numerical or visual clock, domain, checks, and limits. It distinguishes live analysis, analytical tone preview, and retained file/capture snapshots. Fit/Fill dimensions and retained natural frequencies are derived from the current plate domain.

The optional Plate model activity overlay displays the existing normalized V grid beneath the existing grains. Pixel brightness is proportional to sqrt(V), with a fixed translucent gray exposure; it is a relative display, not calibrated displacement. Enabling it changes neither V nor grain positions. The Grain response control now scales the activity-dependent term in the original Plate model law:

D_p = 0.000008 + 0.006 r V^0.75, with r clamped to [0.2, 2.5].

Here V has been normalized by its spatial maximum. At the default r = 1, the law is unchanged. The positive floor is independent of r. This control changes illustrative transport, not forcing, material coefficients, modal states, or the mean-square field. Measured layers and Five-band sand retain their respective existing response controls.

Trace now receives both channels from one 2,048-sample AudioWorklet ring window and one end-frame timestamp. Transferred copies remain immutable after later processing. Separate analyser reads previously allowed occasional channel-window mismatch; the common worklet window removes that ambiguity. Spectrum and musical feature analysers keep their existing FFT sizes and smoothing.

The research page loads all ten comparison rows from the saved modal-validation.json. Its 200 Hz coherence and 2,000 Hz truncation links select a square Plate model, equal stereo tone, Fit, and the activity overlay. These are interactive analytical previews of the documented cases, not browser reruns of the independent comparison. Live playback still uses the held-input worklet, finite windows, and field memory. The high-frequency note makes missing higher modes explicit. Four additional numerical regressions bring the suite to 54 tests; a separate browser suite checks field/grain preservation, synchronized channels, all modes, fixture links, and mobile layout.
