Released October 2026

SET + DRIFT

A quiet first-person game about sitting on a raft. Your legs hang over the edge, the ocean rolls under you, and the sky turns from sunrise to stars. There is nothing to win. The sea is the main character, and its waves follow real ocean physics.

rustflintoceanwgslproceduralcontemplative3d

Clips

Where you sit

This is the whole game, as the player sees it. You sit at the edge of the raft, knees up and feet in the water. You can look down at the water, back out to the horizon, and scoot along the edge. A scoot is a real movement: the body leans, plants a hand, and shifts its weight, and the camera goes with it. Nothing on screen tells you what to do.

The deck hesitates

Heavy swell on an overcast afternoon, in real time. The raft has no physics engine under it. Every frame it measures the water's height at five points under its logs, then eases toward that height and slope. It lags the water a little, so it pauses at the bottom of a swell before it climbs. That pause is the feeling the whole game is built around.

Weather

A storm, seen from the seat. The weather drifts on its own between clear skies, scattered cloud, overcast, rain and storm. The wind follows the sky within about twenty seconds. The sea takes a couple of minutes to build and longer to settle, so a swell outlasts the clouds that raised it. Rain falls as streaks and rings the water where it lands. Early in the clip a swell breaks over the raft, and the white flashes are lightning. Thunder comes later from distant strikes, because sound needs time to cross the water.

Dead calm

A rare event before dawn. Within about eight seconds the swell lies down and the sea turns to glass. The wind drops and the sound of the water fades with it. The calm holds for about four hours of game time, mirroring the sky, and then the sea slowly comes back. It only happens under a clear sky, and never in your first days.

The whale

Once each dusk, a whale breaches toward the setting sun, about 130 meters away. You see the splash before you hear it, because sound crosses the water at about 340 meters a second. Storms keep it down.

The visitor

Around noon on your first full day, another raft drifts out of the haze. It is built like yours, but older: grayer wood, a third of its lashings gone, riding lower in the water. It holds about eighteen meters off on the same swells for a few minutes, then drifts away. Now and then it comes back.

Reality tears

Every so often the world splits open and something else shows through for half a minute. The waves turn into falling code, the sea turns to blood at dusk, the picture goes drunk and swimmy, or the ocean becomes a glowing wireframe grid. The game never explains them. Each is a separate rendering mode, eased in through a patchy mask so the tear spreads like a stain.

Screenshots

About

SET + DRIFT is a game about sitting still. You are on a small raft of logs you lashed together yourself, legs over the edge, in the middle of an ocean that goes on forever. There is no goal and nothing to collect. You can look around, look down at your feet in the water, and shuffle along the edge of the raft. Meanwhile the light changes, the weather comes and goes, and the sea moves under you the way a real sea does.

The name comes from navigation. Set is the direction a current carries you, and drift is how fast. You only find them out by watching where you end up. The project started under the working title Float, which is still the name of its code.

The film at the top is one whole day from a camera boat that keeps the sun behind the raft. In the game a day lasts about ten minutes. For the film the clock runs more than twelve times faster, but the waves don’t, so they move at their true speed. The cover is a single frozen moment of sea, cut into strips lit at eight hours from dawn to midnight. Only the light changes from strip to strip; the water is the same.

What It’s Like

The design comes down to a few rules:

  • The ocean is the main character. It is drawn simply: flat bold blues, hard white foam, pastel skies, like a woodblock print. But it moves like water, because your body notices the raft’s hesitation before a swell lifts it. Everything else can be a drawing. The physics can’t.
  • Time is the drama. Sunrise, noon glare, a red sunset, violet dusk, then stars. The sky never cuts; it’s one continuous cycle. The first few days pass quickly while you settle in, then each day lasts about ten minutes.
  • Things happen whether you watch or not. Birds cross at dawn. A whale surfaces at dusk. Some nights the foam glows. Another raft finds you around noon on the first day. None of it is announced, and you can miss all of it.
  • Quiet interaction. Look, and scoot. That’s all the controls there are. Not having goals is the point.

How It’s Built

SET + DRIFT runs on Flint, my own game engine, written in Rust. Float drove a lot of Flint’s rendering work: the ocean, the sky, the weather, the render modes and the underwater view were all built for it first.

  • Real wave physics. The sea is sixteen overlapping waves of the kind ocean scientists use to model swell, sized from a standard wind-sea spectrum. Longer waves travel faster than short ones, as they do in real deep water. The wave math lives in one place on the CPU, and the graphics card receives the same list of waves, so the raft floats on exactly the surface you see. A test checks that the two agree.
  • Foam from physics. Foam appears where the surface is squeezed together just before a wave would break. It doesn’t simply sit on the high points.
  • Sound from the water. The slaps and laps aren’t a looping recording. The game watches each edge of the raft. When the water rises past the underside of a log, it plays a slap whose strength depends on how fast the two are closing. When a crest drains off the deck, you hear the runoff. Wind, rain, distant waves and the music fade in and out with the weather and the hour.
  • Everything is generated. No 3D model, sound or texture in the game was made by hand in an art tool. Python scripts build the raft, the body, the whale and the birds, and synthesize much of the sound. The rest of the sound was generated by an AI audio model from written descriptions. The body script also checks that no animation pushes the hands through the thighs, and refuses to build if one does.
  • Systems that don’t fight. Weather, time of day and rare events all want to change the same sky and sea. Each system publishes a small set of multipliers, and whichever system owns a value applies them all. That way none of them overwrites another’s work.
  • Underwater moments. Sometimes a swell rises over the seat faster than the raft can climb it, and the camera goes under. Instead of clipping through the water’s surface, the picture changes: a foam line marks the waterline, the water darkens in steps, light shafts come down, and the sound goes muffled until you surface.

Like my other recent projects, SET + DRIFT was built in close collaboration with Claude, Anthropic’s AI model: 47 of the project’s 52 commits are co-authored. I set the direction and the taste. Claude did much of the implementation and kept detailed design notes in the repository.

Everything above was captured from the game itself, through a capture mode in Flint. The game advances exactly one frame of time per video frame, however long each frame takes to draw and save, so the footage is smooth and each shot plays out the same way every time. The rare events were set off with the same debug switches the game’s developer panels use, and the external views come from a script-driven camera boat. The first-person shots are the real seat camera, steered by a scripted gamepad. Nothing was painted over. The only editing was trimming the clips, crossfading the hero’s loop point, and cutting the tears together.

Playing It

Download the Windows build above, or get it from itch.io. Unzip it anywhere and double-click Float.bat. You’ll need 64-bit Windows 10 or 11 and a graphics card from roughly 2016 or later. Look with the mouse or right stick, scoot with A and D or the left stick. Press F3 if you’re curious: the developer panels let you scrub the time of day, force the weather, and change the waves themselves.

Technical Details

  • Engine: Flint (Rust, wgpu), included as a git subtree
  • Ocean: 16 Gerstner waves from a JONSWAP spectrum (5–110 m) with deep-water dispersion. Wave phases are computed on the CPU in double precision and uploaded each frame. Foam comes from the Jacobian of the displacement, with banded cel shading.
  • Rendering: custom WGSL for the ocean, the procedural sky (sun, stars, clouds) and the post-processing render modes (the tears and the underwater view)
  • Gameplay: Rhai scripts for buoyancy, the seat camera, time of day, weather, wildlife, world events and the audio logic
  • Assets: Python generators (trimesh and pygltflib for models, numpy for synthesized audio, PIL for textures and title art), plus ElevenLabs for some sound effects
  • Platform: Windows