Per-Pixel prop wash in Triton 3.05Version 3.21 of the Triton Ocean SDK includes some new enhancements to propeller backwash (AKA “prop wash” or “turbulent wake”.) These improvements make it easier to estimate the velocity of a ship based on the length of its wake, and to estimate the sea conditions based on these wakes.

We’ve always modeled the expansion of the prop wash’s width as a function of the distance travelled by the ship. This effect is based on the paper “The Speed and Beam of a Ship from its Wake’s SAR Image“, and is one way to estimate the speed and size of a ship just based on its wake viewed from above.

However, that’s not the only way to estimate a ship’s velocity based on its wake. We can also use the knowledge that the foamy turbulent wake left behind a ship as it travels dissipates at some given rate. This means that a fast-moving ship will leave a longer wake than a slow-moving ship of the same kind.

Until Triton 3.21, the prop wash behind a ship just faded out linearly to the end of its trail, which was capped by a single value in Triton.config:

# The length, in meters, after which the turbulent wake dissipates entirely
# Has no real physical basis, but is useful to enforce an upper bound on
# prop wash segments per ship.
wake-wash-length = 500

With Triton 3.21, the length of the wake will still be capped by this value in order to enforce an upper bound on performance. But, it will also fade out as a function of time. As each segment of the prop wash is laid down behind the ship as it travels, a timer is started over which it is faded out. The time it takes for a given piece of prop wash to fade away is given by this new setting:

# The number of seconds prop wash segments will fade out over. Used in
# conjunction with wake-wash-length - segments will fade out over that
# length, and over time. You can set one or the other to very high values
# if you want to prop wash dissipation to be based only on time, or only
# on distance.
prop-wash-default-fade-time = 30.0

You may also set this on a per-wake basis, using the propWashFadeTime property of Triton::WakeGeneratorParameters.

It’s also true that prop wash will dissipate more quickly in rough seas than in calm seas. To approximate this effect, we also introduce this new setting:

# The wave height at which prop wash will dissipate entirely. This effect
# also gets multiplied in the the fading based on length and time.
prop-wave-height-fade = 20.0

This essentially means prop wash won’t exist at all once waves get up to 20 meters in height, and will be faded out linearly in between calm seas and that value.

These new features mean more realistic prop washes, which is important to many maritime, UAV, and flight training applications. In addition to the width of the wash, its length may be used to estimate the ship’s velocity, and its intensity will vary given the sea conditions.

It may seem like overkill, but for our simulation and training customers these details are very important! We’ll keep working to ensure the Triton Ocean SDK remains the most physically realistic ocean simulation available on the water, as well as one of the fastest.