A lunar base spread across the floor of Shackleton Crater at dusk, low sun raking the rim behind rows of solar arrays, domes and a landed Starship.

Shackleton Crater · Lunar south pole · Sol 1

Moonbase One

Two Starships are on the regolith. Neither has the propellant to get home.

The dirt under your boots is 43% oxygen, and oxygen is 78% of a propellant load by mass. Cook it out of the rock, fill the tanks, and beat a sunset that lasts 354 hours.

GenreReal-time lunar colony
Night354 hours
Landed12 crew · 200 bots
Endings5 recorded
StatusPlay now, in a tab

The game

SOL 000 H

You do not walk
around. You decide.

Twelve people, two hundred Optimus units and forty tonnes of equipment came down in the crates. Everything after that is arithmetic you do out loud, on a clock that does not stop.

01 · Propellant

Oxygen is the way home

A Raptor burns methane and oxygen at 1 to 3.6, so 78% of a propellant load is oxygen by mass and 22% is carbon Earth has to fly up. Oxygen is 43% of the dirt outside: cook it out of regolith at 1600 C, or haul ice 260 metres up out of a 40 K cold trap and crack it.

36t of oxygen per ship, made here. Earth flies the other 10 t up as methane — 46 t, and then the window closes
A Starship standing on a sintered landing pad at night, floodlit against the black crater floor.
Pad 01 · fuelled on oxygen made out of the ground under it

02 · The clock

354 hours of night

Sunset takes solar output to zero, not low. Whatever is not banked does not come back until dawn. You reorder the shed list by hand: grow-lights or cryocoolers, crops or propellant.

A battery bank holds eight kilowatt-hours. Nobody has ever had enough banks.

Walk the night

03 · The grid

The base is a graph

Power lines carry 260 kW per run; push more through and the whole grid derates, so a base with enough generation still browns out. Sever a pressurised tube and everything downstream is islanded.

Road, tube and power line reach 26, 30 and 46 metres per span, and cable joints are real vertices — a run that almost reaches does not reach at all. Roads make rovers 60% faster.

04 · Labour

Two hundred hands

Bots mine, haul, build, tend crops and patch breaches. A factory prints one more every ninety seconds from local metal. At 100 K, an unheated depot is a row of machines that will not move again.

A mature colony holds 61 building sites and 159 moving agents at once: 118 bots, 14 crew, and 27 rovers, trucks and sedans.

05 · The story

Five ways this ends

Outpost. Colony. Gateway. Commonwealth. Or Monument. Four acts, a rival consortium on the far rim, and a night in Act III where somebody always has to lose.

210 authored transmissions across four acts — 56, 73, 38 and 43 — five speakers, five recorded endings.

A crescent Earth over a black star field, the terminator laid hard across the crater rim in the foreground, and the base far below on a floor still in shadow with two agri-domes lit green.
Survey 89.9° S · Shackleton · horizon curved on a 1,737,400 m radius

The world

SOL 142 H

Ground nobody
has ever stood on.

Shackleton Crater, lunar south pole, Sol 1. Two Starships put forty tonnes of equipment, twelve people and two hundred Optimus units on the ground, and had nothing left to leave with.

The rim catches sun ninety per cent of the year and is the most valuable real estate on the map. The floor never sees it at all, sits at 40 K, and is the only place with water ice in it. Everything you site is an argument about which of those two you can afford to be near.

Earth hangs fixed in the sky, 1.28 seconds away each way, so every transmission lands after you have already dealt with it. Across the rim the Selene Consortium is drilling the same trap. They will offer you forty kilowatts with no invoice attached, and later ask, politely, what your claim is.

The Apollo memorial is a replica plaza three hundred metres out, a tourist-rover stop with a thousand-metre no-build radius drawn round it. Shepard’s golf ball is on the map exactly once, at 42.67 mm, unscaled.

The flag is rigid, because it has to be.

Site
Shackleton Crater, lunar south pole
Surveyed ground
2,016 m edge to edge
Rim
0.90 solar exposure — peaks of eternal light
Cold trap
40 K, zero sun, ice richness 0.65
Ambient
100 K in shadow
Earth
1.28 s each way, fixed in the sky
Neighbours
Selene Consortium, far rim
Memorial
Apollo replica, 325 m out, 1,000 m no-build
Landed
12 humans, 200 Optimus units, 40 t of cargo

The feed

Five speakers, 210 authored transmissions, four acts. Every one of them arrives 1.28 seconds after the thing it is about.

  • Elon Calls from Starbase with impossible schedules and unfeigned delight.
  • Dr. Amara Okonkwo Runs the domes. Keeps asking whether this is a factory or a home.
  • PRIME Narrates your systems, then gradually starts editorialising. Nobody authorised that.
  • UNIT‑07 Has no lines. Turns up in every act slightly more dented.

Five recorded endings

Four acts, and a night in Act III where somebody always has to lose. Deciding who is the game.

  1. 01Outpost
  2. 02Colony
  3. 03Gateway
  4. 04Commonwealth
  5. 05Monument

“Everyone left. The lights are still on. It is still running itself.” Ending 05 · Monument

A lattice agri-dome glowing green at the edge of the colony at night, transit lines and habitat shells running away from it across unlit regolith.

Life support

One dome is worth
one Earth.

Eight crops on real cycles under fifty-eight square metres of lattice, drinking the crew’s exhaled CO2 and handing oxygen back. A dark dome loses its crop in two thirds of a sol and needs 1.8 sols of light to bring it back.

Fed by one agri-dome
17 people
Flown up from Earth, per sol
0.95 t

Earth will never fly you more than 0.95 tonnes of food a sol, at any standing, forever. One dome feeds seventeen.

Morale runs on variety, not calories. The strawberries are a terrible use of water, volume and light, and the only thing on the base a human will cross a room to look at.

The long night

SOL 284 H

354 hours of night

Sunset does not take solar output low. It takes it to zero, and holds it there for 354 hours. Whatever is not banked does not come back until dawn.

“Storage is a promise you make to yourself at noon.”

Sol hour 470 H
Phase Night
Solar output 0 %
Banked reserve 51 %

Sol 0 · dawn Noon Sunset · 354 h Sol 708 · dawn

Solar output Banked reserve Night — 354 h at zero Drag the clock. Reorder the list.

The shed list, in the order you set it

Every structure carries a shed priority from 3 to 96. The list decides things while you sleep.

The game ships a default order. It protects life support and drops the oxygen plant at position five — so a director who never opens this screen survives the night, and never ships anything.

  1. 01 Depot heating At 100 K an unheated depot is a row of machines that will not move again. Shed
  2. 02 Cryocoolers Thirty-six tonnes of liquid oxygen per ship stays liquid, or it does not. Powered
  3. 03 Grow-lights Eight crops on real cycles, breathing the crew’s CO2 back as oxygen. Powered
  4. 04 Oxygen plant Regolith cooked at 1600 C on 42 kW. Forty-three per cent of it comes back as oxygen. Powered

Dark: depot heating. On this order the bank does not make dawn.

Schematic of one cycle. The 354 hours, the zero output, the eight kilowatt-hours per bank and the 3-to-96 shed priorities are the game’s own numbers; how far your bank actually stretches is the thing you play for.

Frames

SOL 426 H

One base, across
one lunar day.

Captured in the running game at ultra quality on world seed 20260813. Every load builds the identical world.

A crescent Earth over the curved lunar horizon, the crater rim in silhouette and the base a scatter of small lit domes on the floor below.
Earthrise · fixed in the sky, 1.28 seconds away
The hub dome seen from above at night, transit lanes streaking white between habitat shells and landed Starships.
Hub · transit threading the dome cluster
Ground level on a lit sintered road, transit cars queued at the kerb, crews and bots crossing a concourse under a lunar flag.
Street level · sintered slab and rover tracks
An ogival lattice agri-dome lit from inside, its panels glowing white against the black crater floor, Earth small above it.
Agri-dome · eight crops under grow-lights
The director's console over the colony: sol clock, power grid with margin and shed order, departure windows counting down and a character feed.
Console · sol clock and shed order
The build menu open over the colony, listing structures with their cost, power, heat and crew requirements, a departure clock at T-03:45.
Build menu · 24 structures across four tiers, plus three networks

Optics

SOL 472 H

There is no air.
Everything follows.

Almost every trick a renderer uses to sell distance and softness is a trick about atmosphere, and there is none here. Take the air away and the numbers have to come from somewhere else: the size of the sun, the gravity, the reflectance of the dirt.

scene.fog

null

Banned outright, and guarded in two separate files so it cannot creep back in. Distant hills hold full contrast right up to a knife-edge horizon. Depth is bought with silhouette layering, lighting contrast and detail falloff instead of haze — which is harder, and is the only honest way to do it.

Sun angular diameter

0.53°

The shadow filter radius is derived rather than picked by eye: occluder height × tan(0.53°). A 20 m dome throws a shadow edge 18 cm wide. Interiors floor at #0e1522, and the sky stays black at noon with the stars still in it.

Opposition surge

0.55

albedo *= 1.0 + 0.55 * pow(dot(V, L), 8.0) Real regolith backscatters toward the light, so the ground brightens as your view vector swings onto the sun vector. It is the single term that separates a lunar surface from grey sand.

Lunar gravity

1.62 m/s²

Every particle integrates against it. Dust thrown by a wheel or a boot leaves on a parabola and lands. Nothing billows, swirls, curls or hangs, because there is nothing to suspend it in.

Shadow cascades

20 / 70 / 240 / 900 m

Four texel-snapped cascades, 2048 square each. The 900 m rung is not optional: at 11 degrees of sun elevation a 50 m Starship throws a 257 m shadow, and the crater rim throws kilometres of it.

Starfield

36,000 stars

Instanced points with log-normal magnitudes and blackbody colour, 9,000 of them on Low. The sky itself is dithered in the shader, because a near-black gradient bands on 8-bit output and this sky is almost entirely near-black.

The build

SOL 568 H

Three requests,
no art files.

A document, one JavaScript bundle, one CSS bundle. Nothing else is ever fetched: no images, no models, no fonts, no audio. Every texture in the scene is written in code at boot, and the only binary the tree would have needed was a favicon, so that is an inline SVG data URI too.

Sixty-six TypeScript files and 94,586 lines, and not one image, mesh, font or audio file among them. Every texture, hull, walk cycle and sound is generated in code at load. The terrain under it all is a 1009 × 1009 sample field over a 2,016 m square, with a far field carried 5,760 m past the mesh edge.

Shipped payload, gzipped

  • 722,695 BJavaScript
  • 10,622 BCSS
  • 0 Bimages, models, fonts, audio

733,317 bytes on the wire. 2,047,491 raw.

Controls

Right-drag orbits, wheel zooms, WASD pans. TAB opens the build menu and left-click sites the ghost. SPACE pauses, 1/2/3 set speed, P is photo mode, F1 rebinds any of the 24 actions. On touch it is drag, pinch and tap.

Payload
707 KBThe entire game gzips to 724,113 bytes of JavaScript plus 10,712 bytes of CSS — 2,047,491 bytes raw.
Requests
3Document, one JS bundle, one CSS bundle. No images, models, fonts or audio files are ever fetched.
Textures
100Every texture in the scene is generated in code at boot; the favicon is an inline SVG data URI for the same reason.
Triangles
18,434,748Per frame, measured on the mature scenario at High quality across 795 draw calls and 96 compiled shader programs.
Heightfield
1,018,081A 1009 × 1009 sample field over a 2,016 m surveyed square, with a far field carried out to 5,760 m.
Horizon
1,737,400 mThe real lunar radius is used to curve the horizon, with the camera far plane set at 6,000 m.
Seed
20260813Math.random is replaced at boot so every load builds the identical world; ?seed=off restores native randomness.
Buildables
2724 structures across four tiers plus three network types, each with cost, power, heat, crew and shed priority.
Economy
12 resourcesOxygen, water ice, food, regolith, metals, helium-3, hydrogen, steel, silicon, methane, components and credits.
Bindings
24Every camera, build and game binding can be remapped from the title screen or F1.
354 hLength of the lunar night
27Structures and networks
210Authored story beats
200Optimus units landed
116Structures live in a mature base
2,016 mSurveyed ground, edge to edge

Departure window

She flew. On oxygen out of the ground under your feet.

Real-time lunar colony strategy. Opens in the tab you already have open.