Project Plateau
Project Plateau: four glass plates, one living valley, and the road back to camp.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
Hoverslam: a browser game where you land a rocket booster on a barge by hand on three levels, plus a simulator that explains why your autopilot settings crashed it. For anyone curious how rockets land themselves.
翻訳待ち
Loading the full README. The saved excerpt is shown below.
Land a rocket booster on a floating landing platform. Fly it yourself on three levels, where every run is a different scenario, or tune the autopilot and see why a landing failed.
Play it: hoverslam.vercel.app · No install, no account, built for a laptop with a keyboard; touch controls are a bonus on a phone.
A booster is falling toward a floating landing platform at sea at about 140 m/s. Land it upright, slowly, on the pad. The real engine can't throttle below 40%, so a nearly empty booster can't hover: the burn has to end right at the deck. That manoeuvre is called a hoverslam.Read the full README ↗Land a rocket booster on a floating landing platform. Fly it yourself on three levels, where every run is a different scenario, or tune the autopilot and see why a landing failed.
Play it: hoverslam.vercel.app · No install, no account, built for a laptop with a keyboard; touch controls are a bonus on a phone.
A booster is falling toward a floating landing platform at sea at about 140 m/s. Land it upright, slowly, on the pad. The real engine can't throttle below 40%, so a nearly empty booster can't hover: the burn has to end right at the deck. That manoeuvre is called a hoverslam.
You are the flight computer.
| Key | What it does |
|---|---|
| Space | Engine on or off |
| ← → | Lean the booster. On Easy and Medium it stops drifting by itself when you let go |
| ↑ | Slow down |
| ↓ | Speed up. Let go of both to hold your falling speed |
| R | Retry this scenario |
| N | A new scenario |
| Esc | Settings and help (the flight pauses while they are open) |
On a phone you get touch buttons in two thumb clusters (lean on the left, throttle and engine on the right), and it works in portrait or landscape. The Expert checkbox swaps in raw controls: the arrows swivel the engine directly and ↑/↓ move a throttle lever.
The picture is drawn like a flight diagram. A thin blue line is the path you have flown, and a dashed white line is where you will be if you hold the controls as they are, ending in a crosshair on the deck that says how far from the pad you would land. The booster carries small labels for its engine and legs. The Approach window at the bottom left shows the whole descent side on, and in the last 60 m a magnifier opens beside the deck with your fall speed, sideways speed and tilt against their landing limits (not on phones, where there is no room).
| Level | What changes |
|---|---|
| Easy | Light wind, wide pad, extra fuel, the engine throttles to 15% so it can hover, a landing assist softens the last metres, and it stops drifting when you let go. Lands at up to 6 m/s |
| Medium | Real crosswind, 14 m pad, 30% minimum throttle (it can hover until the tank is nearly empty), landing assist only in the last few metres, drift hold on. Lands at up to 3.2 m/s down, 1.6 m/s sideways, 6.5° tilt |
| Hard | Strong gusts, 11 m pad, the real 40% minimum throttle (it can never hover), no assist, no drift hold. You time one burn that ends at the deck. Lands at up to 3 m/s down, 1.5 m/s sideways, 6° tilt |
The first screen is a how-to-play page with a diagram of a whole descent and the controls, then three level cards. The look is original: a sunset, a moonlit dusk and a night storm, with gulls over the water and a landing platform modelled on a real drone ship.
Each level has its own look: Easy is a sunset, Medium is dusk with a moon, and Hard is a night storm with rain, lightning and a landing platform lit only by its own lights.
Each level has a bank of 30 scenarios, and every play draws the next one from a shuffled bag. All 30 come up once, in random order, before any repeat, and you never get the same one twice in a row. Before each descent a briefing card says what is different this time: a long fall, a fuel leak, an engine that only gives 80% thrust, a flaky left thruster. Pick Retry this one to have another go, or New scenario (or press N) for a fresh one. The game remembers how many you have cleared.
| Level | What varies |
|---|---|
| Easy | The start: low or high, near or far, a calm day or a breeze. No faults |
| Medium | A bit more of everything, and usually one fault: a heavy fuel leak (up to 90 kg/s), an engine limited to about 60–75% thrust, or one brief engine cut-out |
| Hard | Strong gusts and one or two faults: a fast leak (up to 90 kg/s), an engine limited to about 60–74% thrust, engine cut-outs (up to four, spread over the whole burn, sometimes one near the deck, sometimes a quick stutter), or very weak (sometimes flickering) steering on one side. About half the scenarios have cut-outs, and some give no warning |
Most faults are shown on screen, with a chip under the readouts, a flashing fuel bar for a leak, and a chip naming the fault. Engine cut-outs are silent: the engine just stops, with no pop-up to distract you. On some Hard scenarios the briefing doesn't mention them at all. So a loss feels like the challenge and not a bug.
Where the scenarios come from. A scenario is a small piece of data: a name, a briefing, a seed, a few numbers (start height, distance, wind, fuel, pad size) and up to two faults. Every scenario must pass two checks before it can enter the bank: its numbers must sit inside the level's allowed ranges, and the simulator must be able to land it (Easy by a player who only lights the engine and steers; Medium by a player using only the keys, lighting the engine at 1,400 to 1,800 m and following the aim-for speed; Hard by that same key player and by the flight computer). The bank in public/bank.js was made by rules. To add more, run:
npm run scenarios # top the bank up from rules, no key needed
npm run scenarios -- --claude # also ask Claude to write scenarios
npm run scenarios -- --per-level 50 # a bigger bank
This is the beginning of the README. Read the rest at the original. Read the full README ↗