Work09

Harbor

This website — a flight sim that happens to be a portfolio

Year
2026
Role
Everything
Built with
  • Three.js
  • Rapier
  • Astro
  • GLSL

A hand-built WebGL world with real rigid-body physics, a custom water shader and a full parallel HTML site underneath it for anyone who would rather just read.

The site you are looking at is the artifact. An archipelago you fly a drone around, where every island is a project and flying into its beam of light opens the case study — and, underneath all of it, an ordinary static site that has every word the world does.

The decisions worth defending: the drone cannot crash, because a proportional controller holds whatever altitude you last asked for and only ever raises it to clear terrain — that single choice is what makes the world explorable by people who do not play games. Each island is generated from one integer seed, and its physics collider is built from the exact vertex buffer that gets drawn, so the picture and the physics cannot drift apart. The water is Gerstner swell with shore foam and subsurface scattering.

And for anyone who would rather not fly at all, there is a map: open it, pick an island, and the drone flies itself there and opens the project when it arrives. It steers through the same stick input a human would give, so the flight model and the chase camera behave exactly as they always do.

The discipline bit: everything in the 3D world also exists as a static, crawlable, keyboard-navigable page. Astro builds them all ahead of time; Three.js and Rapier only load on the homepage. The game is the front door, not the only door.