LIVE FLUID PARAMETERS · BUILD 123
Shape the flow. ✕ Close
Physics Gravity Visuals Scene Analysis Forces Flow Heat Surface Transport Pigment Instruments Waves Particles Transfer Rheology Salinity Walls Motion
05 / Solver analysis IMMERSIVE SOLID GRID
Before / after pressure-projection divergence history while the tank runs. Static solids impose zero normal flow on blocked MAC faces.
Before After
Divergence before —
Divergence after —
Pressure residual —
Solid cells 0
Blocked internal faces 0
Boundary leakage —
Export solver telemetry CSV
BUILD 085 / NUMERICAL PERFORMANCE LAB
Profile live physics steps (opt-in)
Rolling sample window
30 steps 90 steps 180 steps
No timed steps yet
Enable to measure solver work.
Clear live timing
Isolated physics benchmark
Current particle count 2,800 particles 10,000 particles 30,000 particles All three sizes
Compare reference, fast P2G, fast G2P and both (exact-state check)
Also compare collision indexing (8 combinations; requires 4+ circular obstacles)
Three rotated trials with reference before/after each pass (required for recommendations)
Run benchmark
Stop
Export CSV
Apply verified fastest mode
Run a three-trial comparison at the current particle count to receive a conservative recommendation.
Benchmarks clone the scene in a cancellable Web Worker and run 3 warmup plus 6 timed steps per case. Three-trial comparisons rotate candidate order and bookend each pass with reference physics (135 steps for four modes; 243 for eight), checking exact particle/MAC equality and rejecting timing drift; the live play/pause state is restored.
Eight-mode comparisons test the original obstacle contact path against spatial broadphase jointly with P2G/G2P acceleration. Indexing requires four or more circular obstacles; a recommendation is manual, numerical-state guarded, and may disable an accelerator if that combination is faster.
Measurements are device-specific CPU milliseconds per physics step, not rendered FPS; background workers require browser support. Pressure time includes projection and its nested work; “remaining” includes particle advection, forces and uninstrumented stages. Profiling adds measurement overhead but never reduces simulated particles, grid fidelity or solver tolerances.
BUILD 086 / ENERGY & MOMENTUM EXCHANGE LAB
Audit actual PIC/FLIP steps (opt-in)
Rolling sample window
30 steps 90 steps 180 steps 360 steps
Enable to measure real PIC/FLIP steps.
Clear audit Export CSV
Disabled by default; the live fluid canvas remains visible.
Unit-mass particle kinetic energy, gravity work, and non-gravity exchange are measured from the same physics step; momentum impulse subtracts the expected gravity impulse. Pressure and viscosity show changes in squared MAC-face velocity sums, not physical joules; non-gravity exchange includes collisions, sources, numerical transfer, imposed forces and solver losses, so it is not a conservation-error or CFD accuracy score. Source/sink steps are excluded from paired comparisons; no solver settings are modified.
BUILD 087 / SPATIAL EXCHANGE HEATMAP
Overlay measured exchanges on the fluid (opt-in)
QuantityNon-gravity kinetic energy exchange Residual momentum impulse
Temporal smoothingInstant / 1 step 8-step memory 32-step memory 128-step memory
Overlay opacity
Disabled; physics runs normally.
Clear map Export cell CSV
Orange indicates non-gravity energy gain, blue indicates loss, and yellow shows gravity-corrected momentum impulse.
Maps are computed from actual per-particle before/after velocities and positions, grouped into MAC cells, with a configurable fading memory and source/replacement exclusions. This is a unit-mass numerical diagnostic, not calibrated joules, a validated energy-conservation score, or a replacement for the pressure solver; turning it off leaves the physics untouched.
Grid solids are a stair-step approximation; no subcell cut faces, surface tension, or fluid-driven rigid-body motion is calculated.
07 / Flow Network Lab SOURCES + SINKS
Build fountains, rainfall, drains, and recirculating tanks with particle injection and removal. Emitted momentum enters the next PIC/FLIP grid transfer.
Device typeEmitter / source Drain / sink
Flow rate 480/s
Opening radius 6.5 cm
Exit speed 2.3 m/s
Direction 90°
Spray spread 10°
+ Add Remove Clear
Tap tank to place next device
Drag existing devices
Experiment presetsChoose preset… Twin rainfall emitters Fountain and bottom drain Feed and return loop
0/8 installed · select a device below to tune it.
INLET / OUTLET SCALAR LEDGER
Emitted / drained particles 0 / 0
Temperature sum in / out (particle·°C) 0 / 0
Salinity sum in / out (particle units) 0 / 0
RGB emitted (particle units) 0 / 0 / 0
RESIDENCE-TIME / SOURCE TRACING · BUILD 048
Follow each simulated particle from its initial state or inlet to its first drain exit. The chart compares particles still inside with the cumulative outlet distribution.
Simulated clock 0.00 s
Inlet-origin particles in tank 0
Live mean age 0.00 s
Live 90th percentile (upper bin) 0.00 s
Drained particles 0
Outlet mean residence 0.00 s
Outlet 90th percentile (upper bin) 0.00 s
Inside tank Exited through drain
Place a drain to collect outlet residence samples.
Export residence-time CSV
Residence uses simulation seconds and particle counts, not calibrated volumetric residence or mixing kinetics; bins above 64 seconds are grouped together.
SPATIAL SOURCE MIXING · BUILD 049
Normalized conditional Shannon entropy of source-tagged particles across occupied tank tiles: 0% means segregation; 100% means local cohort proportions match the global mixture.
Analysis tiles8 × 8 12 × 12 16 × 16
Trace cohortsInitial + inlets Inlets only
Mixing index —
Global entropy —
Source cohorts 0
Analyzed particles 0
Occupied tiles 0
≥90% single-source tiles 0
Add a source to measure spatial mixing.
Export spatial mixing CSV
Particle-count diagnostic, not molecular diffusion or calibrated concentration. Two cohorts are required; trends sample every 0.5 simulated seconds.
FIRST-PASSAGE ROUTE NETWORK · BUILD 050
Track which inlet cohort reaches each drain, with first-exit residence time, destination share and rolling 30-second drain throughput.
Analyze destinationAll drains
Recorded route exits 0
Attribution coverage 100%
Last 30 simulated seconds 0 particles/s
Observed inlet → drain paths 0
Source Drain Exits Mean P90 ≤ Share
Export source-to-drain CSV
Counts are simulated particles, not calibrated volume. Legacy exits without destination identity are reported separately.
LAGRANGIAN DISPERSION & PATH-LENGTH LAB · BUILD 051
Follow actual PIC/FLIP particles from a reference position, separate mean transport from spatial spreading, and quantify anisotropy and traveled distance.
Enable particle trajectory tracking
Particle cohortAll tracked particles Initial tank only Source inlets only
Minimum tracked ageNo minimum 0.25 s 0.5 s 1 s 2 s 5 s
Eligible particles 0
Drift-corrected RMS spread 0
Mean traveled path 0
Mean X / Y drift 0 / 0
Apparent spreading coefficient 0
Mean path straightness 0%
Dispersion ellipse axis ratio —
Rebaseline positions Export dispersion CSV
Enable tracking to establish a new reference for each particle.
Opt-in to protect mobile performance. All distances are normalized tank units; apparent spreading is not calibrated diffusion, and closed walls limit long-time variance.
CLOSED-LOOP PARTICLE FLUX · BUILD 054
Regulate a source or drain from signed crossings of a virtual transect. Independent simulated-time PID loops include filtered feedback, anti-windup, hard output limits and bounded rate changes; add a flow device and transect first.
+ Add controller Remove selected
0/3 loops installed · one controller per actuator.
Enable feedback
Controlled source / drain
Measurement transect
Crossing directionPositive Negative
Sample period0.5 s 1.0 s 2.0 s 4.0 s
Target particles/s —
Proportional gain —
Integral gain —
Derivative damping —
Max slew (particles/s²)100 250 500 1000 2000
Actuator rate ceiling —
Filtered crossings —
Actuator command —
Control error —
Add a flow device and a transect to begin.
Export PID samples CSV
0 stored samples per selected loop (maximum 120). These are simulated particle counts, not calibrated flow; reversed gate orientation or blocked pathways can prevent reaching the setpoint.
PROGRAMMABLE INLET / OUTLET WAVES · BUILD 054
Apply repeatable simulated-time rate waveforms to emitters and drains before each PIC/FLIP step. PID-owned devices are automatically interlocked; programmed rates are particle counts per simulated second, not physical volume.
Free flow device + Add program Remove selected
0/4 programs · one waveform per device · tap a program to edit.
Enable programmed flow
WaveformSteady baseline Square pulse Triangle Smooth sine Repeating ramp
Base rate /s
Signed amplitude /s
Period (sim s)
Square duty (0–1)
Phase (0–1)
Start delay (sim s)
Duration (0 = continuous)
Slew limit (rate/s²)
Desired rate —
Actual command —
Elapsed sim time —
Add an emitter or drain to program its flow.
Export waveform CSV
0 samples stored (120 maximum per program); blue dashed = desired, green = slew-limited command. Stop or remove a program to restore its pre-program rate.
Disable
Live particles —
Total emitted 0
Total drained 0
Blocked / cap-limited 0
Rate is simulation particles per simulated second, not volumetric flow. Capacity: 200–30,000; excess particles are discarded rather than queued.
10 / Adaptive Transport Lab RK2 / RK3 + SWEPT COLLISIONS
CFL-aware particle subcycling reduces long jumps without changing the fixed-step MAC pressure solve. Continuous segment/circle tests prevent high-speed tracers from passing through circular obstacles.
Target particle CFL 0.75
Maximum particle microsteps 6
Swept solid collisions (continuous detection)
Transport profileSelect profile… Precision / 10 microsteps Balanced / 6 microsteps Efficient / 2 microsteps
Maximum observed CFL 0
Mean particle microsteps 1
CFL-limited particles 0
Swept solid impacts / step 0
Choose Transport CFL in Visuals for a cell-level flow-speed map. Microsteps advect particles only; they do not perform additional pressure projections, so this is a transport-stability improvement rather than a fully adaptive Navier–Stokes time integrator.
BUILD 100 / HIGH-ORDER PARTICLE TRAJECTORIES
Optional third-order Runge–Kutta paths integrate the actual staggered MAC velocity field rather than the original particle/midpoint blend. Adaptive RK3 compares a second-order midpoint estimate and splits difficult trajectories within the existing 1–12 microstep budget; pressure projection and PIC/FLIP momentum transfer remain unchanged.
Trajectory integrator
Original RK2 / lowest CPU RK3 / high-order fixed CFL Adaptive RK3 / embedded error control
Local path error target 2.5% cell
Integrator profileChoose profile… Original / exact legacy behavior RK3 / efficient Adaptive / balanced Adaptive / precision
Original CFL-aware midpoint paths
Mean accepted microsteps 0.00
Rejected trial segments 0
Budget-limited particles 0
Maximum local path estimate 0.00% cell
The error estimate measures trajectory integration, not pressure or physical-model error. The adaptive budget never exceeds the maximum microsteps above, and curved trajectories are still subject to swept obstacle, drawn-wall and moving-solid collision handling.
BUILD 080 / EXACT COLLISION BROADPHASE
Spatial buckets skip disjoint circular obstacles before the original continuous collision test. The index rebuilds after moving obstacle updates; particle count, pressure accuracy, and contact order remain unchanged.
Accelerate swept obstacle checks
Spatial bucket width 6 cells
Reference: every obstacle checked
BUILD 095 / FREE-SURFACE VELOCITY EXTENSION
After MAC pressure projection, extend updated wet-face velocities a few cells into neighboring air to improve PIC/FLIP sampling at the moving free surface. This does not alter any face adjacent to fluid, blocked wall faces, or the pressure divergence result.
Enable solid-aware post-projection extension
Air extension depth 4 cells
Air-face replacement strength 100%
Show projected air velocity vectors on tank and recordings
Sampling profile
Choose profile… Off / original solver
Balanced / 3 cells Smooth / 6 cells + vectors
Gentle / 50% blending
Off: original PIC/FLIP
Newly extended faces 0 faces
Reachable air coverage 0.0%
Maximum velocity correction 0.000 m/s
Maximum extension depth 0 cells
Optional educational air-velocity extrapolation, not an air-flow simulation or an additional pressure solve. Disabled by default to preserve your published 13,600-particle reset preset and existing results.
17 / Affine Velocity Transfer Lab SPIN + SHEAR PRESERVATION
Optional first-order particle velocity gradients improve shear and rotational motion carried back to the MAC grid. Unlike pure translational PIC transfer, each particle can contribute a local affine velocity field; pressure projection and all previous physics remain active.
Enable APIC-inspired affine transfer
Affine transfer weight 80%
Gradient safety cap 20 /s
Gradient refresh 2 steps
Transfer profileChoose profile… Classic PIC/FLIP (off) Smooth / low CPU Balanced affine Maximum detail
Inject vortex pulse Clear gradient memory View local spin
Particles with gradients 0
RMS velocity gradient 0 /s
Mean absolute spin 0 /s
Updated this step 0 particles
This is a bounded APIC-inspired Jacobian transfer, not a full angular-momentum-conserving APIC solver. Increasing the gradient cap or refresh rate may increase turbulence and CPU use, particularly above 12,000 particles.
High-count particle transfer · Builds 078–079
An allocation-free MAC face deposition path for thousands of particles, retaining the original bilinear weights, Float32 accumulation order, affine gradients, solid masks and pressure solver.
Enable accelerated particle-to-grid transfer
Original reference transfer active
Enable accelerated grid-to-particle velocity sampling
Original reference sampling active
The callback-free bilinear sampler accelerates PIC/FLIP updates, RK2 transport and affine-gradient reads without changing interpolation weights or edge renormalization. Grid reads are counted per physics step; all particles and pressure iterations remain unchanged.
Timing covers deposition and grid extrapolation, not complete simulation FPS. Switch off for A/B comparison; scene JSON and Undo/Redo preserve this setting.
BUILD 025 / Moving-Solid Flux Lab PISTONS · ORBITS · SPIN
Animate circular solids and transfer their surface motion into the fluid while keeping the tank visible.
Enable moving obstacles
Draw motion outlines
Displace fluid using pressure-coupled moving-solid faces
Recover tracers swept by moving solids before grid transfer
Contact clearance 0.12 cells
Momentum response 1.00×
Swept relative disk contact prevents fast prescribed obstacles from passing through particles before PIC/FLIP deposition, preserving count and carried scalars.
BUILD 024 shear-only behavior remains available with this off; spin continues to use tangential shear.
Obstacle
Add an obstacle in Scene to enable motion.
Animate selected obstacle
PathFixed / spin Horizontal oscillation Vertical piston Circular orbit
Travel amplitude
Cycle frequency
Angular spin
Shear coupling
ExperimentChoose preset… Horizontal mixer Vertical piston Orbital agitator Rotating impeller Stop motion
Simulation time —
Moving solids —
Sheared MAC faces —
Particle contacts —
Peak surface speed —
Grid kinetic work —
Driven normal faces —
Peak normal speed —
Net boundary flux —
Pre-grid contacts —
Largest recovery —
Unresolved overlap —
Optional moving-solid normal flux participates in classic, adaptive and density-weighted pressure projection; still a voxelized one-way kinematic approximation, not cut-cell CFD or fluid-driven rigid-body physics. Settings persist in scene/timeline/Undo.
BUILD 037 / FLUID-DRIVEN SOLIDS & SURFACE TRACTION
Release a selected circular obstacle into the simulated flow. Pressure forces from the preceding MAC projection move it through the fluid, with bounded inertia, drag and solid contact.
Enable two-way pressure feedback
Release selected obstacle
Show moving-body vectors
Body density
Pressure response
Gravity coupling
Linear drag
Speed limit
Impact bounce
Body horizontal speed —
Body vertical speed —
Active free bodies 0
Solid contacts 0
Selected angular speed —
Peak sampled viscous torque 0 N·m/m
Wet shear samples 0
Frictional contacts 0
Tank-wall contacts 0
Tangential impulse 0 N·s/m
Friction energy loss 0 J/m
Swept impacts / step 0
Swept wall impacts 0
Contact budget exhausted 0
CCD path legs 0
Rebound reversals 0
Solid travel distance 0 m
Path-resolved tracer contacts 0
Wake face updates 0
Wake path samples 0
Peak wake velocity change 0 m/s
Wake fluid impulse (pre-projection) 0 N·s/m
Paired body reaction impulse 0 N·s/m
Wake torque impulse 0 N·m·s/m
Impulse-limited bodies 0
Wake kinetic energy change 0 J/m
Energy-guarded bodies 0
External allowance used 0 J/m
Projected boundary faces 0
Local pressure impulse 0 N·s/m
Rigid pressure reaction 0 N·s/m
Projected torque impulse 0 N·m·s/m
Reaction-limited bodies 0
Local pressure energy change 0 J/m
Rigid kinetic energy change 0 J/m
Shared work allowance used 0 J/m
Wet perimeter samples 0
Perimeter samples tested 0
Peak geometric pressure force 0 N/m
Wet viscous samples 0
Peak viscous force 0 N/m
Peak viscous torque 0 N·m/m
Paired shear MAC faces 0
Paired wet shear samples 0
Fluid shear impulse 0 N·s/m
Rigid shear reaction 0 N·s/m
Paired shear torque impulse 0 N·m·s/m
Coupled kinetic energy change 0 J/m
Limited shear interactions 0
Shear momentum residual 0 N·s/m
Pre-balance angular mismatch 0 N·m·s/m
Angular impulse residual 0 N·m·s/m
MAC couple correction 0 N·s/m
Unresolved low-leverage contacts 0
Post-shear divergence before 0 s⁻¹
Post-shear divergence after 0 s⁻¹
Shear increment divergence before 0 s⁻¹
Shear increment divergence after 0 s⁻¹
Repair pressure sweeps 0
Corrected wet MAC faces 0
Relative pressure residual 0
Peak velocity correction 0 m/s
Speed-limited corrections 0
Pressure reaction contact faces 0
Paired body impulse 0 N·s/m
Unpaired linear impulse 0 N·s/m
Contact torque mismatch 0 N·m·s/m
Coupled kinetic-energy change 0 J/m
Accepted repair fraction 1.0000
Unassigned corrected faces 0
Energy/speed limited 0
Enable feedback and release a solid.
Contact friction uses capped tangential impulses and finite rotational inertia at wall and circle impacts when spin is enabled; μ = 0 preserves legacy normal-only impacts. Swept collisions record each rebound leg and recover fluid tracers against those legs before grid deposition; the pressure/shear grid still approximates each step using net motion. Path segments are bounded by the event budget, and fluid-solid coupling remains educational rather than validated FSI. Paired wake impulses conserve the sampled linear momentum before projection but not necessarily after pressure correction, contact resolution or clipping; angular reactions require spin to be enabled. The optional guard bounds sampled pre-projection kinetic energy; the optional post-projection reaction uses local fluid energy loss and remaining shared work allowance to limit additional rigid energy. Neither feature guarantees globally passive projection, and the new reaction may supplement existing one-step-lag pressure loads, so tune conservatively. Translation, spin and orientation persist in scenes, timeline and Undo/Redo.
01 / Gravity control MOTION + TOUCH
Phone tilt
Pad
Fixed ↓
Drag the dot to tilt the tank's gravity. On a phone, tap Enable gyro and grant motion access if requested.
Gravity strength
03 / Scene & visuals LIVE RENDER
Start geometryDam break Water pool Floating cloud Thin column
Render qualityEco / 1× Balanced / 1.5× Ultra / 2×
Visual modeLuminous water Velocity spectrum Particle tracer Pressure + particles Remaining divergence / error map Grid occupancy + solids Temperature / heatmap Interface curvature + tracers Transport CFL + impact markers RGB pigment mixing / tracers Residence age / source provenance Spatial source mixing / segregation Lagrangian travel distance / dispersion Particle density / occupancy heatmap Local affine spin / shear Effective viscosity / rheology Salinity / density tracer
Quality adjusts rendering resolution only. Physics quality is governed separately by the grid and pressure iterations.
Adaptive mobile draw budget · Build 077
Opt-in measured frame governor lowers only particle drawing and canvas pixel density under sustained render pressure; the full PIC/FLIP particle and pressure computation stays unchanged.
Automatically adapt drawing load
Target refresh30 FPS · battery 45 FPS · balanced 60 FPS · smooth
Minimum visible particle fraction50% 25% 12.5%
Minimum canvas raster scale85% · crisp 70% · balanced 50% · economy
Disabled · 100% particles drawn
Frame timing awaiting samples
A physics-bound scene is not silently simplified; PNG captures include every particle at the current canvas resolution. Render settings are saved with scenes and Undo/Redo.
BUILD 089 / UNIFORM PARTICLE REINITIALIZATION
Repack all fluid particles into an even, obstacle-aware lattice and zero their velocities without changing particle count, size, viscosity, gravity or other solver settings. Keeps existing solid obstacles; one-step Undo restores the prior experiment.
Fluid depth100% · full tank 75% · lower tank 50% · lower half 25% · bottom layer
Position variation0% · regular lattice 10% · gentle offset 20% · offset
Reinitialize fluid uniformly
Ready · all current physics settings are retained.
BUILD 092 / DRAWABLE SOLID WALLS
Draw straight barriers or curved polylines directly on the live tank, even on a phone. Walls block MAC-grid pressure flux and use swept particle collision with adjustable bounce and friction; the tank stays visible while you edit.
Draw walls on canvas
Stroke styleStraight segment · drag Freehand polyline · drag
Barrier thickness 4.0 cm width
Surface friction 25%
Surface bounce 5%
Undo last wall Clear walls
Walls 0/24 Solid cells 0 Contacts/step 0
Ready · draw a wall to redirect the fluid.
BUILD 015 / EXPERIMENT TIME MACHINE
Record bounded full-scene checkpoints, rewind and branch from any captured moment. Every frame includes fluid, solids, sources, dyes and solver settings; the simulation remains visible while scrubbing.
Capture simulation snapshots
Capture rate0.5 Hz 1 Hz 2 Hz 4 Hz
Time window15 sec 30 sec 45 sec 60 sec 120 sec
Memory cap8 MB 16 MB 24 MB 32 MB
Simulation 0.0s 0.0s – 0.0s
Scrub recorded physics state
— 1 frame · 0 branches
No comparison yet
↶ 5 sec
◂ Frame
Frame ▸
Latest
+ Pin checkpoint
Clear history
Export timeline
Import timeline
RAM 0 MB 6 pinned checkpoints max
Recording physics snapshots in memory.
Rewinding pauses the solver; Resume starts a new branch and discards its future frames, not your pinned checkpoints. This is bounded state recording, not exact CFD replay or a permanent autosave.
04 / Lab notebook LOCAL FIRST
Save scene Restore saved
↶ Undo ↷ Redo
Export JSON Import JSON
Save PNG ● Record 30s
Solver steps 0 Mean kinetic energy 0 Pressure sweeps 36
Performance is limited on this device. Try Eco rendering, fewer particles, or a smaller MAC grid.