wind_manager — evaporative downdraft

Two-way coupled air ⇄ droplet ⇄ temperature solver (WebGPU). A fine spray cools the air it rises through; the cooled column sinks and spreads along the floor as an outflow gust.

Art playground — the legacy 2D canvas toy for quick composition: drag water/wind emitters, watch grass and trees sway instantly. No WebGPU, no build step. Sketch layouts there, then reproduce here with real physics.

Open art playground →
Documentation · shared layout in src/render/sceneData.ts
WebGPU unavailable.
Stylized view — playground scene on physics
Art playground ↗
Wide yard (32 m): click for water spray, Shift+click for air stream. On touch: double-tap empty canvas for air stream. Drag emitters to move; drag the ring or handle to aim. Load the 100 ft tree shake preset and watch flow tracers ride the floor outflow.
Help — controls & physics

Quick start

Load a preset, watch the temperature overlay (blue = cooled sinking air), then try toggling latent heat OFF to see momentum-only updraft.

  • Click canvas — place water spray
  • Shift+click — air stream (momentum only)
  • Double-tap (touch) — air stream on empty canvas
  • Drag emitter — move; drag ring/handle — aim
  • Space / Burst — short high-rate spray on selected emitter (or all)
  • Share → Copy link — bookmark exact setup

Two apps, one yard

1 · Art playground Drag emitters, tune power/angle, watch grass & trees react instantly. No GPU. Same tree/house layout as this sim.
2 · Physics sim Toggle Stylized view for the painterly look driven by real velocity fields. Use temperature/humidity overlays to see why things move.
3 · Share & refine Copy emitter X/Y from Share panel or load a preset. Both apps use the same 32 m yard fractions from sceneData.ts.

Open art playground → for quick experiments, then return here for reproducible downdraft physics.

Overlays

  • None — scene only (grass, trees, houses)
  • Velocity — speed magnitude + optional arrows
  • Temperature — warm spray / cold downdraft (default)
  • Humidity — moisture field; ground band shows accumulated deposition when enabled
  • Moisture — dedicated ground view: puddle + vapor stain map (persists after spray stops)
  • Droplets — Lagrangian spray particles
  • Flow tracers — passive markers riding the wind; enable streaks for paths

Latent heat

When ON, evaporating droplets cool the air (latent heat). Cooled air sinks via virtual-temperature buoyancy → downdraft and floor outflow. When OFF, spray momentum still pushes air up but no cooling → updraft.

Emitters

Water — droplets, humidity, evaporative cooling. Air stream — pure momentum, no mass or latent heat. Use numeric X/Y fields for exact positions (meters). Press Space or Burst for a short high-rate pulse — great with latent heat ON/OFF comparisons.

Try these presets

Presets
Share / reproducibility
Latent heat (evaporative cooling)
ON — evaporative cooling → downdraft
Overlay
Ground moisture layer
Tracer density
Tracer lifetime
Emitters (max 8)
Spray burst
Burst duration
Burst multiplier
World position
Type exact meters · ↑↓←→ nudge 0.01 m · Shift+arrows 0.1 m
Speed
Angle (from up)
Cone half-angle
Emission rate
Min droplet radius
Max droplet radius
Environment
Grass row (floor outflow)
Trees (canopy sway)
Houses + flags / smoke
Clouds (upper wind)
Ground mist (spray shadow)
Wet ground (puddle band + sheen)
Grass density
Grass stiffness
Ambient
Temperature
Relative humidity
Simulation
Advanced — grid & solver
Timestep dt
Substeps / frame
Jacobi iterations
Velocity damp
T/q relax
Domain width
Domain height
Grid nx
Grid ny
cell ≈ 31.3 mm · 256×192
Statusinitializing Sim time0.0 s FPS T range Max speed Emitted Health