COMPUTED IN THREE DIMENSIONS
Follow the pulse.
A force, a source, a sealed box.
A compact source injects tracer for the first 30 accepted steps. A localized oblique force drives flow through a unit box. Press Run to advance the existing Rust solver in a Web Worker. Each visible state contains a complete 24 × 24 × 24 concentration field and three staggered velocity components.
Predict where the pulse travels after injection stops. The amber outline marks the injection region. It is a source, not a solid obstacle. The box walls block normal flow. Accepted simulation time advances only when a native step passes its pressure, divergence and Courant checks; wall-clock playback speed depends on the device.
Rotate the data, not a flat image.
Orbit the volume to inspect different depths of the same accepted field. Perspective rays sample the actual three-dimensional tensor. Trilinear interpolation smooths its display; it does not add numerical resolution. The fixed opacity law integrates concentration along each ray. Overhead lighting uses that same concentration field as a depth cue without changing opacity. Camera motion and display rendering never advance the simulation.
The curves trace the current staggered velocity field from six fixed seeds. Their colour uses a fixed 0–1 m/s speed scale. They are instantaneous streamlines: each curve follows the velocity at this accepted time, not the past or future path of a particle. Toggle lighting or curves in the inspector to compare the same data. No procedural smoke, synthetic particles or liquid surface is added.
Measure what the picture cannot tell you.
Open the inspector to compare accepted time, divergence, Courant number, force work and tracer amount. After the source switches off, the tracer amount can decline: bounded appearance transport is not a conservative liquid-volume update. The run ends after 80 accepted steps; reset starts a new experiment.
Scope. Density is constant. The force is prescribed, with no viscosity, physical buoyancy, free surface or moving geometry. The fixed-obstacle pressure operator exists separately, but is not composed into this timestep. An impermeable internal obstacle therefore requires further solver integration and qualification. No coupled obstacle collision is depicted.
Read rendering and output → · Inspect the exact first-step contract →