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 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.
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.
| Oceanology Legacy | Oceanology Lite | |
|---|---|---|
| Source trees | Two independent trees | One shared tree |
| Where a core fix lands | One tree, hand re-implemented for the other, often never | One commit, both products |
| Gerstner implementation | A Legacy-only copy that stopped receiving work | The same code Pro runs |
| Shader surface a fix can target | 4 files | 49 files |
| Feature backports | Manual, expensive and rare | Not applicable, the code is shared |
| Moving up to Pro | A different plugin and a scene migration | The same classes with three features unlocked |
| Shared codebase | Oceanology Pro, 99,961 lines of C++ |
| Shared shader files | 49 |
| Modules shared by Lite and Pro | 6 |
| Systems with a Lite-specific implementation | 0 |
| Features gated to Pro | 3 |
| Legacy tree at end of life | 17,478 lines, 4 shader files |
| Cost to Legacy owners | Free |
This is one entry on the Galidar roadmap. For what already shipped in each release, see the Changelog.