Skip to main content
← Roadmap
💧 Oceanology LitePlanned6.0.0

Synchronized updates with Pro

Fixes to the shared core reach Lite and Pro at the same time. No more waiting for a fix to be ported across two separate codebases.


Until now, Oceanology shipped as two separate source trees. Legacy was one product, NextGen and Pro were another, and they shared ideas but not code. In practice that meant a fix written in one tree usually never reached the other, because reaching the other meant writing it a second time against a different architecture. From 6.0.0 there is one tree, and Lite is that tree with three features gated off.

The two-tree problem, in the source

The clearest example is the Gerstner wave summation itself. It exists twice: OceanologyLegacyGerstnerWaveUtils in the Legacy tree, and OceanologyGerstnerWaveUtils plus OceanologyGerstnerWaves.ush in the Pro tree. Both started from the same math and then drifted. The Pro version gained foam from the Jacobian determinant of the wave field, normals derived from the displacement derivatives, and a GPU compute wave baker. The Legacy version received none of it. Not because it was refused, but because delivering it would have meant re-implementing three separate systems in a codebase with a quarter of the surface area and no shader files to land them in.

What drift looked like

  • Legacy exposes a sub-wave-count selector with five settings from four to twenty waves. The line that reads it in the wave solver and the line that interpolates it between presets are both commented out. The enum still ships; nothing consumes it.
  • No occurrence of a foam bias, a foam gain, or a Jacobian foam term exists anywhere in the Legacy source. Foam on the Pro side is computed from the folding determinant of the displaced surface.
  • Legacy has four shader files, and none of them are the wave, quadtree or underwater shaders. A rendering fix written against the 49-file Pro shader set had no corresponding place to land.
  • Legacy has no spline component, no water body collision component and no navigable geometry export anywhere in its source. Any feature depending on those could not be backported even in principle.

What changes for you

After 6.0.0, a fix to the buoyancy solver, the water quadtree, the underwater pass, the swimming component, the shallow water simulation or the Gerstner evaluation is one change, in one file, and it ships to both products at once. There is no separate Lite implementation of any system to keep in step, because Lite does not have its own implementation of anything. Version numbers move together, and when Pro gets a core fix, Lite gets the same core fix in the same release window.

It also changes what upgrading later costs you. Because Lite and Pro are the same actors, components and parameter names, moving from Lite to Pro is unlocking rivers, spectral and FFT waves and breaking waves on top of a scene that already works. It is not a plugin swap and a scene rebuild, which is what moving from Legacy to any newer Oceanology has been until now.

How updates reached you, before and after

Oceanology LegacyOceanology Lite
Source treesTwo independent treesOne shared tree
Where a core fix landsOne tree, hand re-implemented for the other, often neverOne commit, both products
Gerstner implementationA Legacy-only copy that stopped receiving workThe same code Pro runs
Shader surface a fix can target4 files49 files
Feature backportsManual, expensive and rareNot applicable, the code is shared
Moving up to ProA different plugin and a scene migrationThe same classes with three features unlocked
Shared codebaseOceanology Pro, 99,961 lines of C++
Shared shader files49
Modules shared by Lite and Pro6
Systems with a Lite-specific implementation0
Features gated to Pro3
Legacy tree at end of life17,478 lines, 4 shader files
Cost to Legacy ownersFree

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