Skip to main content
← Roadmap
🌊 Oceanology ProIn Progress6.0.0

Included in Oceanology Pro and Oceanology Lite.

Whirlpools, drains, springs and currents

An authoring kit for hydraulics: drop a Force actor set to Vortex over a lake and the water genuinely rotates around it. Sources feed water in, drains empty it, currents push boats downstream.


Hydraulic features you place and tune in the details panel instead of writing a Blueprint that fires an impulse every tick. Three typed components, Source, Force and Wave, each with a matching placeable actor, describe a persistent contribution to a shallow water simulation: how much water enters or leaves, which way it is pushed, and what shape the surface should be driven toward. None of them tick. A world coordinator gathers them on the solver's own cadence, so a hundred placed features cost nothing per rendered frame.

The three lanes

  • Source moves water mass. Add Water Depth is a spring or an inflow; Remove Water Depth is a drain or a leak; Relax To Rest Surface holds a level, converging on the authored rest surface plus an offset rather than accumulating. Added water carries the momentum you author through Injected Velocity, and removing water removes foam in the same proportion as mass, so a drain does not leave a foam stain hanging over nothing.
  • Force moves momentum. Directional is a current. Radial pushes outward for a positive acceleration and inward for a negative one. Vortex is the whirlpool, rotating counter-clockwise for a positive acceleration. Target Velocity converges the water toward a chosen velocity at a chosen response rate instead of accelerating it forever, which is what you want for a channel that should settle at a speed.
  • Wave drives a bounded analytic target surface from a direction, amplitude, wavelength, frequency, phase and response rate, either continuously or as a one-shot pulse. Because it targets a surface rather than adding height, repeating it cannot pile up.

How they reach the water

Each contributor resolves exactly one target simulation: automatically from its own location, or explicitly by water body, water zone or simulation actor. The coordinator builds one immutable, deterministic snapshot per solver dispatch and then advances lifetimes only for the records that were actually accepted into it. That distinction matters for timing. Duration counts simulated seconds this contributor genuinely influenced, never wall clock, so a timed feature does not burn its life during a load hitch, while the game is paused, or while an editor preview is stopped, and slow motion stretches it correctly instead of desynchronising it. Continuous entries are re-evaluated on every numerical substep; one-shot entries are applied during the first substep only and acknowledged by event sequence, so nudging the actor in the editor cannot re-fire them.

Shape, orientation and order

Footprints are an ellipse, a box, or the entire simulation, oriented by the component's own yaw, with half extents in centimeters and a world-space edge feather. Sort priority decides evaluation order, which genuinely matters now that the operations are not all commutative, and stable identity breaks ties so the same scene produces the same result frame after frame.

Recipes

  • Whirlpool: a Force in Vortex mode over an ellipse. Pair it with a Source in Remove Water Depth mode at the same center and it drains while it spins.
  • Drain or sinkhole: a Source in Remove Water Depth mode. Depth rate is centimeters of column per second, so it is a flow rate you can reason about, not a magic hole.
  • Spring, spout or outflow pipe: a Source in Add Water Depth mode with an injected velocity, so the new water arrives already moving in the pipe's direction.
  • Current, millrace or tidal race: a Force in Directional or Target Velocity mode with a box footprint aligned to the channel.
  • Weir or held pool: a Source in Relax To Rest Surface mode with a positive or negative offset. It settles on a level and stays there, and the water returns on its own when you disable it.
  • Ship wash, explosion swell or a scripted surge: a Wave in One Shot Pulse mode, re-armed from Blueprint with Restart Contributor.
Oceanology NextGenOceanology Pro
Available in NextGenNothing comparable. With no fluid solver in the plugin there was no hydraulic state to contribute toA typed contributor system layered on the native shallow water solver
Component modelThe legacy Water Modifier: one untyped disturbance with radius, axis ratio, height offset, flow velocity, swirl and foamThree typed components whose mode is the operation, each with its own GPU payload and budget
Repeating a sustained featureAdditive submission every tick, so amplitude pulsed with tick rate and drifted with frame rateModes that converge: relax to a level, target a velocity, drive a wave surface. Re-submission settles on a shape instead of accumulating
BudgetShared the solver's 16 impulse slots with automatic wakes and gameplay hitsIndependent per-type budgets of 32 sources, 32 forces and 32 waves per simulation, leaving the impulse slots free for gameplay
TargetingWhichever simulation happened to contain the modifierAutomatic at location, or pinned explicitly to a water body, a water zone or a named simulation actor
TypesSource, Force and Wave, as components or as placeable Oceanology Shallow Water Source, Force and Wave actors
Source modesAdd Water Depth, Remove Water Depth, Relax To Rest Surface
Force modesDirectional, Radial, Vortex, Target Velocity
Wave modesContinuous, One Shot Pulse
FootprintEllipse, Box or Full Simulation; half extents default 300 by 300 cm; edge softness default 50 cm
Source defaultsDepth rate 50 cm/s, relaxation rate 4 per second, injected velocity in cm/s, normalized foam rate per simulated second
Force defaultsAcceleration 100 cm/s^2, target velocity response 4 per second
Wave defaultsAmplitude 25 cm, wavelength 600 cm, 1 Hz, response rate 4 per second
LifetimeNegative runs forever, positive is that many simulated seconds, exactly zero fires a single one-shot
Per-simulation budgetUp to 32 sources, 32 forces and 32 waves, each continuous entry evaluated on every numerical substep
OrderingSort priority first, stable identity as the tie-break

This is one entry on the Galidar roadmap. For what already shipped in each release, see the Changelog.