World building / Water · In the engine

A real ocean, for half a millisecond of a frame.

Talos Engine simulates the sea as a spectrum of real waves: wind sea and swell, summed, in any weather you ask for. The picture and the physics read the same waves, so a hull rides the crest you see.

A 13 m/s wind and a 2 m swell, low sun ahead.

  • 0.43 to 0.57 msfor the open ocean, at High quality on an RTX 3080
  • 0.16 to 0.19 msat Low quality, same card
  • 0 mswhen a scene has no sea

In the engine Shipped in v0.6.0, Beta. The sky in these clips is the new cloud style, which is in development. The clouds page

Open ocean

The same sea, from the deck and from the waterline.

12 m above the water
A 13 m/s wind and a 2 m swell, low sun ahead.
4 m above the water
The same sea from near the surface.

Heavy weather

Into a gale, on the same waves.

A rescue RHIB at 18 knots heading into a gale: 40 knots of wind and about a 4 m sea. The hull rides the engine's waves; nothing is animated by hand. The storm sky, rain and lightning are this scene's own effects.

The shoreline · Coming next

Put a sea beside a terrain. The shore is there.

The engine reads the ground under the sea from the scene itself, and the waves respond to it. There is nothing to set up.

A 1 m swell on a gentle sand beach in a fresh breeze, at golden hour. The terrain, the sand and the boulders are generated.
  • Along the waterline: foam left on the wet sand.
  • The same beach from a raised view.
  • Waves feel the bottom

    Swell slows, steepens and bends toward the beach as the water gets shallow.

  • Breakers

    A wave near its breaking depth leans and is thrown forward, white water rolling down its face.

  • Surf and swash

    Broken waves run in, leave foam that thins into lace, and send a sheet of water up the sand.

  • Wet sand

    The beach stays dark and glossy up to the line the last waves reached.

  • Clear shallows

    See-through at the edge over pale sand, deepening to turquoise, then to the open sea's blue.

  • Tune it, or leave it

    Five numbers set the run-up, the foam and the wet sand, in the scene file or the editor.

Coming next Built and on the engine's main branch; not in a release yet.

What it is

Describe the weather. The engine works out the waves.

A 13 m/s wind over 200 km of open water, and a 2 m swell arriving from a storm somewhere else. Change the numbers and the sea changes with them. Give it sea states on a timeline and the weather builds and falls on its own.

The whole sea in these clips

"ocean": {
  "seaLevel": 0,
  "seed": 7,
  "layers": [
    {
      "kind": "wind",
      "windSpeedMps": 13,
      "fetchKm": 200
    },
    {
      "kind": "swell",
      "heightM": 2.0,
      "periodS": 11
    }
  ]
}

What you get

Weather, foam, and things that float.

  • Wind sea and swell, summed

    Up to six layers, each with its own direction.

  • Weather on a timeline

    Sea states from Beaufort 0 to 12, blended smoothly.

  • Whitecaps, foam and spray

    Crests break in strong wind and leave foam that drifts and fades.

  • Light through water

    Five water types, from clear ocean blue to green coastal water.

  • Above and below

    Under the surface: light fading with depth, and shafts of sunlight.

  • Things float on it

    One component on a body and it rides the waves you see.

The same seed gives the same waves, and a replay on the same machine gives the same sea.

Underwater view with blue fog and shafts of light from the surface
Underwater in the high-definition water: fog and shafts of light from the surface.

What it costs

About 3% of a 60 fps frame.

High, 0.57 msLow, 0.19 msthe rest of a 16.7 ms frame

The open ocean takes 0.43 to 0.57 ms at High quality on an RTX 3080, from a light breeze to a storm.

A scene without an ocean runs no water pass and allocates nothing for it.

ViewLow, msHigh, ms
Light breeze (Beaufort 2)0.160.43
Strong breeze (Beaufort 6)0.170.50
Storm (Beaufort 10)0.190.57
Under the surface0.210.58
A coast in view, with the shoreline (coming next)0.230.61
Surf filling the view, over a depth map0.370.82
A scene with no ocean00

A shore costs a little more, because the surf, the swash and the wet sand are drawn too: about 0.1 ms more at High with a coast in view.

At 2560x1440 the open ocean takes 0.20 to 0.26 ms at Low and 0.59 to 0.81 ms at High.

Measured on one graphics card, an RTX 3080, at 1920x1080 with the engine's own water bench: the median of 150 frames, the water's passes added together. Only Low and High were measured. These are the water's passes, not a game's frame rate.

For AI agents and scripts

The sea is data an agent can write.

The ocean block is plain JSON with documented ranges, and the engine's validator names any value that is out of range. While the scenario runs, a script can read the sea and change it.

In a script

// height and motion at a point
ctx.water.sample(x, z)

// a storm, over thirty seconds
ctx.water.setSea({ beaufort: 8, blendS: 30 })

// a ripple
ctx.water.poke(x, z)

What it does not do

The limits, stated plainly.

  • The picture is the high-definition renderer's, the shoreline included. The simulation and floating bodies work in the standard renderer too, which draws no ocean.
  • The shoreline that needs no setup is not in a release yet. In the released engine, waves break over a shore where the scene gives the sea a depth map.
  • Breakers lean and are thrown forward; they do not curl over into a tube.
  • The shoreline is the picture: a body near a beach still floats on open-water waves unless the scene gives the sea a depth map.
  • Only the Low and High presets were measured, on one graphics card.
  • Every clip here has a fixed camera and was recorded frame by frame: it shows the picture, not a frame rate.

Questions

Is this an FFT ocean?
Yes. The waves come from a wind-sea spectrum and swell, transformed on the GPU each frame at several scales, so there is detail from hundreds of meters down to ripples.
Does the physics use the picture?
No. Bodies read a CPU copy of the same waves, so floating works on a server with no screen.
Can I have lakes and rivers?
Yes. They are separate features, listed with the rest of world building.

A sea your scenario can sail on.

In the engine today. Bring your scenario to a pilot.