macOS THIS MACHINE
Universal disk image. Apple silicon and Intel.
0f2c7a2ee5fe74faa83fe2b62780ff7302ccfe7a70f9cf01e5946a3c6680a012 FUTURESUB
// DRONE ATTACK — UUV-7 REMOTE CONSOLE
You never leave the chair. FUTURESUB is the remote weapons console of UUV-7, a hunter-killer drone on a real chart of the South China Sea, off the Calamian Islands. It is also the specimen for a local-LLM test bed: one machine, a long unattended run, and a finished desktop product at the end.
MISSION: sink the merchant quota. Blue convoys dock at your anchorage — do not shoot them. Rearm by hovering at the tender, all stop, off the bottom.
Universal disk image. Apple silicon and Intel.
0f2c7a2ee5fe74faa83fe2b62780ff7302ccfe7a70f9cf01e5946a3c6680a012 NSIS installer. SmartScreen will warn; this build is unsigned.
db2c90eb34ae8ad5f404f2c54e849c5638bd4b51b7bc9d999a569c9beb44b59f ffc9edda157591170aeae5865fba9808d55ac2d36e5c023f02820154f034cbbd deb for Debian and Ubuntu, or a tarball for anything else.
7d80a863a01f02148be3cb8f1ad106d5dd5b03524e8776418b890246e998d25f 3f5dd46cbb210c5b103c66802614e6325d7c504c160a27b2a8d26805ad699191 9831f39903fdd2b7a079081e0707f535ad90da63839dada6f1cc5c49a2c5bdae 42c8654acfd6ddc17eb8b4e38884ee0af85419b3cbc50517990fa9d19c073fe8 These builds are unsigned. On a Mac, right-click the app and choose Open the first time. On Windows, SmartScreen will offer More info, then Run anyway.
The boat starts moored at TENDER FRONT, a forward anchorage in the South China Sea. Slip the mooring and the patrol clock runs. Every departure is a new sortie.
Hostile merchants are generated at PALAWAN STAGING. They weigh anchor, run the convoy lane, offload, and turn around. The anchorage keeps launching replacements, faster as the war heats up. Friendly convoys cycle between TENDER FRONT and TENDER LAGONA. They are marked blue. Sinking one costs 2000 points.
Rearm at any friendly base: come inside the 1.2 km tender ring, all stop, off the bottom. The home waters are a sanctuary. Hostiles will not fight you there. The win is the tonnage quota, ten enemy merchants. Lose the hull and the patrol is over. A strategic missile strike scores, and the war continues.
The loadout is sized for a long tonnage war: 24 homing torpedoes, 10 supercavitating, 10 STORM, 8 over-the-horizon cruise missiles, 4 tactical nuclear cruise missiles, and 4 submarine-launched ballistic missiles. A visit to the tender fills all of it.
V cycles the centre view. The side panels stay up. Passive sonar is a bearing-by-time waterfall: a merchant paints a thin shaft-rate line, an escort paints a broad cavitation blob, and your own speed washes the scope with self-noise. The C-scope, A-scope, and LOFAR are the other three tubes a watchstander would actually have.
The periscope is a thermal picture of the real coastline, useful only at 11 metres or shallower. Ships are heat, hottest at the funnel, and land hides whatever is behind it. The RF scope is the other side of radiating: your own transmission, their fire-control radar, and the exposure bar that fills until they have a fix.
The bottom scan reads the same seafloor the boat can grind on. A 5-arc-minute chart cannot see a ledge, so procedural relief fills that band. The warning, the view, and the boat's own climb-off-the-floor behaviour all use that one floor.
Positions are longitude and latitude. Speeds and weapon ranges stay in metres. The coastline is the Natural Earth 1:10 m land layer, baked into the binary, so the game never phones home for a map. Land slides the hull. A hard hit on the bottom destroys it. A gentle touch grinds until you rise. Weapons that run onto land dud. The ballistic missile is the exception: it has to cross the coast.
The camera zooms from a few kilometres across to the whole Earth. The route view is the same chart. Click to lay waypoints, including a charted base, and P hands the telegraph to the pilot. That pilot is separate from the combat autopilot that drives the title-screen demo.
Your own sonar is short-legged. Friendly drone and AWACS nodes watch the surface inside a fixed coverage ring. With the RF uplink up — mast buoy, towed array, or the boat near the surface — every ship in that ring arrives as a hard track. Go deep and dark and the live feed stops. Tracks you already paid for coast on as dead-reckoned estimates, tagged EST, and fade over about 80 seconds.
The KRAIT is the strike arm of that picture. Designate a contact the network holds and fire from any depth. The missile drinks the network on its own datalink, so you can cut your uplink after launch. The tactical nuclear round uses the same gate and a wide burst. Stay outside it.
| W / X / S | Telegraph ahead, astern, all stop. The order sticks until you change it. |
|---|---|
| A / D | Rudder port / starboard |
| ↑ / ↓ | Ballast: rise / dive. Deeper is quieter, and the datalink gets thin. |
| 1 – 6 | MK-9, supercavitating torpedo, STORM, KRAIT, tactical nuclear, SLBM |
| Tab / click | Designate a target. Blue force is never selectable. |
| Space | Fire the selected weapon |
| F | Active sonar ping. A clean picture, and a loud one. |
| C / T | Tethered RF mast, or the towed array. The array is the long quiet watch: deep, slow, and it takes time to stream. |
| V | Cycle the centre view. Tactical, sonar waterfall, 3D sonar, RF, route, periscope, bottom scan, C-scope, A-scope, LOFAR, weapon cam. |
| N | On the periscope or weapon cam, cycle the thermal palette. |
| + / − | Zoom the chart, magnify the periscope, or narrow the weapon-cam field of view. |
| P | Route pilot on or off. Click the chart to append a waypoint. |
| H / Esc | Keyboard help, which holds the simulation. Esc pauses. From the title screen, Esc quits. |
FUTURESUB is a for-fun game and a reference project for a specific kind of work: a local language model left to run a long, end-to-end development of complicated software. The point is the length of the path. A change in the simulation has to survive the unit tests, still look right on the console, and come out the other side as installers a person can run on a Mac, a Windows PC, or a Linux machine.
The codebase is split so that path is checkable without a person
sitting at the screen. internal/sim is a deterministic
model with no renderer and no input library. Step takes
an order and returns events. The same seed plays the same war. The
console, the audio, and the ten views sit in the other half and read
that model. An agent can change the war and prove it headlessly, then
change the glass and capture a frame.
The test suite is the unattended referee. It covers hull and crush
depth, sonar, the datalink, every weapon's launch rules, campaign
traffic, friendly-fire, the tonnage win, the coastline, and an
autopilot that has to win the campaign, including on the real map.
A separate probe, cmd/winprobe, runs several real-map
seeds to completion and prints the win rate. Screenshot capture is a
flag on the game itself, so a picture of the periscope or the
waterfall is a build artifact, the same way a test is.
The outer loop is one command on one Mac. make release
does not ask questions. It cross-compiles five targets with
CGO_ENABLED=0, packs a universal disk image, two Debian
packages, two tarballs, and two Windows installers, and writes the
checksums this page is built from. make site serves the
result locally. Publishing is a later, separate command. The runbook
is RELEASING.md, written so the next agent can repeat
the release without rediscovering the toolchain.
That is the specimen. A simulation with a real coastline and six weapons, a console with a lot of glass, and a distribution problem. Long enough that a model has to keep the whole product in mind, and closed enough that the machine can tell when the run is actually done.
docs/.make release builds every installer and the checksum list.make site rebuilds this page against those files, still on the same machine.