2026-08-30
Gap: Rapids rendered as flat white churn instead of spray
Screenshots showed a steep, stepped channel rendering as flat white churn instead of small waterfalls: about ten meters of drop over forty meters of run, in ledges roughly a third of a meter tall, below the height threshold every waterfall rule used. Neither the waterfall body nor its small-falls refinement, both built the day before, applied.
Gap: Rapids rendered as flat white churn instead of spray
A 2012 particle-fluid-simulation paper on spray, foam and bubbles describes diffuse spray generated in proportion to kinetic energy, sampled randomly, carried downstream, and dissolved over randomized lifetimes. These ideas became geometry baked once at build time, every random value derived deterministically from ledge position so repeat builds produce identical results.
Spray fields at each ledge, replacing the previous flat white churn.
Several shapes were tried and rejected: a curtain rendered as flat grey film, a full-width foam band as a solid silver rail, and evenly spaced oval patches drew a repeating pattern. The version that held up scatters irregular patches at each ledge, count scaled by local energy, positioned randomly across channel width and downstream distance, fading at a randomized size.
Placing the patches surfaced a separate bug: comparing ground height to water level wrongly passed dry ground as wet, since carved terrain beside a narrow channel can dip below the nominal water level even when dry. The fix tests each patch's footprint against the channel's own geometry instead, the only way found to keep patches off dry land.
The transition width between rapids-scale and full waterfall treatment was set by a three-way visual comparison, widened to match the existing 1.5-meter threshold for waterfall curtains, producing one rule to where the discrete waterfall-step rule takes over. The glassy pour surface at a small tumble's mouth is now trimmed by the same blend; removing it on the smallest tumbles was tried, judged wrong, and reverted.
The finished treatment at medium range — irregular patches, no repeating
pattern, no glassy sheet.
A full rebuild produced a 2.5-gigabyte map file: 164 water courses laid out with matching waterfall-body geometry, zero seam defects across 70 checks, zero mesh cracks across 448,558 vertices, and every flagged defect class matching the last recorded build within one site. The spray geometry adds 1.2 million vertices, folded into ongoing performance work.