Ten days, in pictures
One picture from each stretch of the history, oldest on the left: code-built concepts, the first generated interiors, the first arena, the drill, a Harrow hall, a boss, cities, armour and cloth. Scroll sideways.
The eras
The plan lives in PLAN.md and the stories on a GitHub board; these sections group the history by what it set out to do. Some pictures are AI-made concept art, and each says so.
A name, a pitch and a walking proof
Day one, 5 October: a pitch, a roadmap, design docs and concept scenes drawn in code, then a bought character walking, fighting and being animated in the browser by the same evening. The game was still called Undertone.
Generated levels, and the owner’s verdict
Two attempts at generating levels, and one blunt playtest. The generator was rebuilt as explorable zones, filled with a station kit, and then judged by the owner to be really bad. The fix was to stop placing individual pieces by rule.
A room builder, and kits to build with
If the code cannot place pieces well, the owner will. A room builder that works on a phone, online behind a login, with new art kits to feed it. Along the way: transparent troopers.
A board, a new name and a playable demo
One long night: a roadmap board with 164 stories and 17 role agents, the rename to Hush Money, ten playable bodies, a first demo with troopers fighting back, synthesised sound, effects in code and a character-creation screen.
Feel, phones and layered maps
The first real playtest said combat felt clunky. A feel pass, realistic effects, troopers that find their way, device tiers for phones, Cloudflare hosting, and the idea that levels should have sky, ground and underground.
The room library, caves and the drill
Small-model agents designed rooms, the owner walked them and flagged what was wrong, and a library grew from 54 rooms to 255, with caves, round rooms, descents, a Harrow style that looked cheap and a Deep-Core Drill that was rebuilt twice.
One weekend to a whole game
The owner asked for everything hooked together: missions, travel, profiles, progression, co-op, raids, assaults, cities, native sites and a second faction. Several agents worked in parallel against one contract.
Modular freelancers, armour and concept art without credits
The freelancer became a set of parts. Seven armour sets and ten weapons were designed and built, concept art moved to Cloudflare to stop burning credits, and a boss that could be shot from 25 m was reworked.
Cloth, coats, shields and a tune-up
Capes with physics, a greatcoat, the first two of seven shields, a performance sweep, Blender on the GPU, and a repo that finally has the right name. This is where the history stops, on 14 October.
What the plan still holds
From PLAN.md: the foundation phase, the hub and the release candidate. The board has 545 issues, 400 of them still open.
A name, a pitch and a walking proof
Day one, 5 October: a pitch, a roadmap, design docs and concept scenes drawn in code, then a bought character walking, fighting and being animated in the browser by the same evening. The game was still called Undertone.
- 1 5 Oct
Phase 0: a name, a pitch and a plan
doneThe repository starts on 5 October with the paperwork a game needs before any code. A pitch, a roadmap with phases 0 to 14, design docs for the world, the core loop, five tech disciplines, items and set-pieces, and a visual style called work lights in the dark.
The game is a browser action RPG in the Cantorite universe, the Vesper Reach of Harrowfall. You are a freelancer, and the hook is Resonance: everything loud you do pays better and wakes the Harrow. It was still called Cantorite: Undertone, after the sound under the sound.
A read-only research agent checked the lore against the Harrowfall repo before anything was written down as canon.
Harrowfall supplied the stack and the habits: TypeScript, three.js, Vite, Cloudflare in the EU, design before code, budgets as CI checks. The rules came across in the first commit.
b6c254e4The contract-board mockup from the pitch site. The file in the repo was re-rendered after the rename, which is why it already says Hush Money. Mockup · 5 Oct - 2 5 Oct
Concept scenes, drawn in code
doneBefore any art existed, three.js scenes were built in code and rendered headless to PNG: the Deep-Core Drill site at walkable scale, a freelancer in five discipline loadouts, and Fallow with a dormant faceted titan standing in the sand.
The same commit added a static pitch site and mockups of the main menu, the contract board and the HUD, with self-hosted fonts and no runtime requests to Google.
Roadmap: show the look before committing to it. A concept made from code costs nothing and can be re-rendered when the direction changes.
dadffe86The Deep-Core Drill site, built in code: the first picture of the game. From the repo · 5 Oct Fallow, the endgame world, with a dormant faceted titan. From the repo · 5 Oct One freelancer in five discipline loadouts. From the repo · 5 Oct The same drill from the gameplay camera, about five times closer than Harrowfall's. From the repo · 5 Oct - 3 5 Oct
Two promises: no console lock-in, melee that matters
doneTwo decisions went into the docs within the first hours. Consoles are a nice-to-have, not a target: the stack cannot ship on PlayStation or Switch as it is, so the plan keeps a port cheap instead, with controller-first input and menus, a pure TypeScript simulation, the renderer and platform services behind interfaces, offline play and Switch-class Low budgets. The Steam Deck is the controller proving ground.
The second: melee is a first-class pillar. Every discipline gets a real melee path (the Bulwark maul and Breach Ram, a Veil blade, a Graft gauntlet, a Tuning glaive), and melee is in the first combat phase, not bolted on later.
Roadmap: keep every option for the platform and every discipline for the fight, while the code is still small enough to change.
babf9061 - 4 5 Oct
The character proof: a bought hero, walking and fighting
doneThe ARPG camera is about five times closer than an RTS camera, so characters are the art risk. The first proof took one bought character pack, the Valkyrie, and put it in the browser at full quality: runtime PBR materials per slot, translucent energy for the shield, alpha-tested hair, with the models kept out of git until the licence was confirmed.
Then came animation. Mixamo clips were retargeted onto the skeleton offline in headless Blender, 207 clips across four packs, with root motion pulled out to a per-clip curve. On top of that sits a playable demo: a follow camera, a three-hit combo with input buffering, a soft target lock, hit-stop at the measured hit frame, dash, block, and keyboard, gamepad and touch controls.
A third step added a gallery for the Dystopia Soldiers pack: a soldier, a pilot and a mech suit. The awkward bit was that one pack's clip files disagreed with its mesh files about the rest pose, so played raw they lay flat on the floor. The retargeter learned to cope.
Roadmap: the first art milestone is one body at final fidelity, before any enemy variety. Everything after this builds on that retargeting pipeline.
853027d7 - 5 5 Oct
A level designer before there were levels
doneThe first generator laid a macro loop around a reserved set-piece, carved it by archetype, populated it along a pacing curve, analysed it with Dijkstra and rerolled until the hard checks passed. A page at /levels.html shows five contract templates with overlays and metrics, and walks the level at the game camera.
On 30 seeds of five templates every level passed its hard checks. That sounded good. The next morning the owner played one.
Roadmap: levels are the product in an extraction game, so the generator came before the combat did. The same evening a Mixamo downloader was written for the owner's account, signing in through a visible browser on the owner's machine.
26838f27
Generated levels, and the owner’s verdict
Two attempts at generating levels, and one blunt playtest. The generator was rebuilt as explorable zones, filled with a station kit, and then judged by the owner to be really bad. The fix was to stop placing individual pieces by rule.
- 6 6 Oct
Levels v2: zones with loops instead of a corridor
doneThe first generator played as a corridor: one ring of rooms, 10 to 24 percent of the area walkable, the exits next to the job. It was rebuilt as zones, regions of open ground on a 24 m grid, with a region graph that adds passages between regions far apart in the spanning tree, so there are several big loops.
The job hides part-way in, there are two exits in different directions, and points of interest are dealt from a deck for each contract. One slider runs from campaign zone to farming run. New checks measure walkable share, ground explored before the job, junctions per 100 m, exit angle, and run-to-run variety.
Roadmap: a 12-minute run you want to repeat needs levels that differ from run to run. The same commit opened ticket T8 for the CGTrader kit licences and purchases.
14415df5 - 7 6 Oct
Bore Seven’s interiors on the station kit
doneAn interior is built from a bought station kit on its own 4 m grid: a hub with corridors to each exit and seven room kinds, pump hall, control, cargo, server, lab, store, maintenance. All 111 usable pieces were exported with their textures, and an interior draws as one batch per material, about 58 draws. A gallery at /kit.html shows every piece.
The same morning a walk page appeared, where the Valkyrie can run through the generated levels at the game camera. It also taught a lesson about lighting. The lights had been tuned on headless screenshots that only render a few frames, while the real light pool fades in over a third of a second, so on a real GPU everything came out two to three times too bright and the bloom washed it white. The fix was to settle the pool before judging, raise the bloom threshold and add eye adaptation, so the showcase's upper decks stopped whiting out.
Roadmap: prove that a bought kit can be assembled by code into buildings you fight through.
660ca1d4A generated Bore Seven interior at the game camera, before the redesign. Shot later for the before-and-after comparison. From the repo · 6 Oct - 8 6 Oct
The Directorate’s drill, generator and trooper
doneIn parallel an art session rebuilt the Directorate's look at the new camera distance: the Bore Seven drill, the generator, and a trooper from a bought BlenderZone model run through the Mixamo pipeline. Textures moved to KTX2 through one shared loader with a WebP fallback.
The point of the comparison pictures is how much more there is to see at this distance. Harrowfall's tiny RTS unit becomes a character you look at for a whole run.
Roadmap: the first enemy line is the Directorate, because the Deep-Core Drill the RTS player builds becomes the level you climb.
b0c3b073Harrowfall's Deep-Core Drill (left) beside the Bore Seven drill rebuilt for this game. From the repo · 6 Oct The RTS armoury trooper beside the new trooper, common and elite. From the repo · 6 Oct - 9 6 Oct
“Really bad”: the owner plays the interiors
doneThe owner played the generated interiors and was blunt: dead ends, very small rooms, stairs that lead nowhere. The agent measured before it argued. Over ten seeds and 41 buildings, 678 of 783 rooms had no 8 by 8 m square of floor, 548 dead ends had nothing in them, and on the walk page's own collision 79 of 218 stair tops could not be reached. Three buildings could not be entered at all.
The v3 redesign took the kit's own demo station as the model: a hall wall to wall, a railed dais in the middle, wide stair banks up to galleries. Then the owner walked the result and was not impressed. Lights standing in the middle of nowhere, floating pieces, doors that lead nowhere, railings dropped at random. The question was whether the generator could make levels that work at all, and the owner would rather drop the idea than keep these.
“Are you even able to generate levels that would work?”
20a88b62Before the v3 redesign: seed 4, building 1. From the repo · 6 Oct After the v3 redesign: the same seed. Clearer, and still not good enough. From the repo · 6 Oct Floor plan, before: a maze of small cells. From the repo · 6 Oct Floor plan, after: halls with side rooms. From the repo · 6 Oct - 10 6 Oct
Stop placing pieces by rule
doneThe diagnosis was simple. The v3 generator placed about 2,800 kit pieces by rule, a lamp on a wall strip, a railing on a deck edge, a gate in a wall, and every rule has edge cases: a wall that is low, a deck turned the other way, a wall with nothing behind it. Its checks measured the floor plan, not the pieces, so nothing asked whether a lamp had a wall.
The proof that replaced it uses hand-built rooms joined at gates. Generated shells, artist-made clusters only. A research agent surveyed published methods, and the answer to the owner's question, why not use a published method and plot the assets on it, was room templates with configuration spaces, driven by a hand-written catalogue of building flows that are built on cycles. Nothing that places single pieces by rule.
The owner tried the proof (a seed button on the walk page) and said the rooms now felt workable. Then came a request for hallways, rooms of different sizes, and grey placeholder rooms for the ones not yet designed.
After trying it, the owner: the rooms feel workable, but it has to feel like a real level, not what we had before.
728bc0caThe room-template proof: a hall built by hand, joined at gates. From the repo · 6 Oct A building plan from the proof, seed 1: rooms joined at doorways. From the repo · 6 Oct A gate between two hand-built rooms. From the repo · 6 Oct
A room builder, and kits to build with
If the code cannot place pieces well, the owner will. A room builder that works on a phone, online behind a login, with new art kits to feed it. Along the way: transparent troopers.
- 11 6 Oct
Could I just build the rooms myself?
doneThe owner's next idea was the one that stuck. A room builder, where the owner places the pieces, the result is stored as JSON, and the generator only decides which rooms to use and how to join them. That way the owner also decides sizes and hallways.
The builder stores drafts in a database and commits only a room marked final to git, so what the agents read is always finished work. Every save is kept as a version. A final room is read-only until it is set back to draft. Doorways are built closed, and when the generator joins one it swaps the wall for the kit's own gate.
Roadmap: let the person with taste place the pieces and let code do the joining.
dcd767bf - 12 6 Oct
Online behind a login, and fit for a phone
doneThe builder went to a development address behind Cloudflare Access with a one-time PIN, with the database in the EU. It took a few tries: one Access application per hostname, because with both on one, a login came back to the wrong host. And at one point the assistant refused to create the login rule at all, on a safety check of its own, until the owner changed the permission mode.
Then the owner said they would mostly build on their phone. Within the hour the builder had a full-screen view, bottom tabs and sheets, tap to place or select, and no browser zoom. Placing a piece precisely by tapping was hard, so the next commit added arrow buttons that move a preview and a Place button, with a step size. Then double-tapping turned out to zoom the page, so zoom, scroll bounce and text selection were switched off on the UI.
Roadmap: whatever the owner finds comfortable gets used. The owner builds on a phone, so the builder had to work on one.
ce179884 - 13 6 Oct
Troopers you could see through
doneThat evening the owner noticed that all four trooper types had a transparent body under the armour. You could see the far shoulder through the chest. A first fix drew both sides of the material and it was still transparent, even as WebP.
The cause was the model reduction. The hidden-face cull had removed the inside of the plates and the undersuit beneath them: the reduced trooper had 3,616 open edges, the elite 7,372. The cull was turned off and only true specks are dropped now, leaving 220 and 361 open edges. A full, non-reduced model was added too, because the owner's view was that these models have to be good.
Owner: all troopers have a transparent body below the armour, so they seem broken.
2eb75d0f - 14 7 Oct
Kits: the station, the industrial yard
doneMore kits, so rooms could look different. The Sci-Fi Industrial pack came through the same kit pipeline: 634 pieces, with the HDRP textures repacked for glTF, and its Unreal demo map walkable at /walk.html?level=industrial. Meshes that exist only inside the Unreal project were decoded from their mesh descriptions until all 8,616 of 8,616 placements were there, with Unreal's own materials, sky, 94 decals and ground layers.
That evening the owner asked a sharp question: is it clear how the pieces of the pack connect, could you generate logical architecture for a generated map, or would you still have me build the maps? The answer was a yard generator proof that measures the joins from the demo's own placements and lays seven whole blocks out on a walled, paved site, plus a minimap for the walk page.
Roadmap: more kits means more variety for the builder's palette.
d58a5a7bA hangar from the Sci-Fi Industrial kit, from the catalogue renders made the next day. From the repo · 8 Oct
A board, a new name and a playable demo
One long night: a roadmap board with 164 stories and 17 role agents, the rename to Hush Money, ten playable bodies, a first demo with troopers fighting back, synthesised sound, effects in code and a character-creation screen.
- 15 7 Oct
A roadmap board and seventeen role agents
doneWith the level work handed to other agents, the owner asked the main session for a roadmap with tickets and user stories, as a GitHub project like the one Harrowfall has, and for agent files for each role the work would need: lead designer, gameplay director, skill designer, UI designer, tester and so on.
The result is a sync script that turns PLAN.md and a JSON file of stories into GitHub issues: one epic per phase, stories as sub-issues, fields for kind, phase, area, role, priority and size, and milestones M0 to M5. It started with 164 stories and 17 role agents. Later that night commits began to name their issue, and a commit saying Fixes #n closes it.
It was not flawless. Six of the agent files had a description with a colon in it, which made their front matter invalid YAML, so those agent types silently never loaded until someone quoted them the next morning.
Roadmap: with several agents working at once, the board is the shared memory. The count since then: 545 issues, 145 closed.
19f0ef51 - 16 7 Oct
Undertone becomes Hush Money
doneThe working title Undertone came from canon: near big cantorite fields the radio carries the Hum, and an undertone is the sound under the sound, the thing the freelancer learns to listen for. But a web search for it returned almost only a well-known indie RPG whose name is one letter away, and the owner asked for catchier options.
Round two weighed double meanings: the name should be the hook. Earshot was the top pick (out of earshot is the whole game). Hush Money was the strong second: the Hush, a faction in canon, pay you for silence, and the loud job pays more. Others were Pitch Dark, Loud Money, Last Toll. The owner said Hush Money it is, and within minutes the rename went through everything a player or the owner sees: page titles, wordmark, mockups, docs, agents and the board.
What kept the old name: identifiers nobody sees, the repository, the npm workspaces, the Workers and the database names, because renaming a database would orphan the saved rooms. (The repository itself was renamed a week later; see the last era.)
Hush Money is two words that say the hook, and the faction was already canon.
862ea937The main-menu mockup, re-rendered with the new name. Mockup · 5 Oct - 17 7 Oct
Translatable from the first screen
doneOne rule went in before there was much to translate: no player-facing text inline. The simulation returns codes, the UI looks them up, and CI checks it. English is the source language and Dutch the first extra one, following the approach Harrowfall uses.
On 8 October a cloud session added the checks that make it real: a glossary with context for translators, a check script, Latin Extended-A fonts, a lint that forbids physical CSS where a logical property is needed, and a pseudo-language that stretches and brackets every string so overflow shows up in screenshots. Dutch is live as a preview.
Roadmap: retrofitting translations is miserable, so the rule is cheaper on day two than on day fifty.
fc387179The creation screen in the pseudo-language, which makes every label longer and bracketed so overflow is obvious. From the repo · 8 Oct - 18 7 Oct
Ten bodies, any species
doneThe owner pointed to five more character models from the same maker, MB-Studio, on top of the Valkyrie, and set the rule: every one of them is selectable as the freelancer, each with at least one melee weapon and a gun, some way to do magic, and a block. Animations and weapons may differ between them; for now only the appearance changes. They all need a high-definition version, because players look at them.
Two decisions followed the same evening. Looks may be any species, alien creatures included, and may use gold: the canon rule that gold belongs to the Harrow still holds for factions, enemies, UI and loot, but player bodies are exempt. And weapons are a shared pool, with the move set following the weapon class, not the body.
Roadmap: every bought character becomes a selectable look. Eleven by the next day.
bc0ed080The pack's lineup in a T-pose, measured for the design doc. From the repo · 7 Oct The same lineup from the game camera. From the repo · 7 Oct - 19 7 Oct
Animations: a whole Mixamo library, and an NVIDIA proof
doneMixamo needs the owner's account, so the downloader signs in through a visible browser on the owner's machine. For a while the owner downloaded animations by hand while the tool caught up; its all command later fetched the whole library, resumable, skipping clips already there. It stalled more than once, and one bug saved the previous job's file as the new clip because the monitor lags the export. By the early hours the library stood at 2,435 verified clips, after mislabelled files were re-fetched.
In parallel, a proof of concept with NVIDIA's Kimodo motion generator: four of its sample motions retargeted onto the Valkyrie, with the licence read first (fine for use in the EU) and an owner ticket for the one open question.
Roadmap: animation is the second art risk after characters. A motion library of this size means no animator is needed for the demo.
8617f133Kimodo sample motion, run and leap, retargeted onto the Valkyrie: a filmstrip. From the repo · 7 Oct Another of NVIDIA's four sample motions, a dance. From the repo · 7 Oct - 20 7 Oct
The first playable demo
doneBy the end of 7 October there was a page, /play.html, that you could actually play: three fighting styles (melee, rifle and tuning) with seven skills, troopers that come in waves and fight back, health, stamina and Charge, a HUD, and a Dome, a Shock Maul, a rail shot and a split beam to try. When your integrity hits zero a Again screen offers a retry or a different freelancer.
The design rule behind it was interfaces first: loadouts, effects, audio and gameplay were built on separate branches by separate agents, against interfaces that the main session wrote down, then merged within an hour of each other.
Owner: health, Charge, stamina and regeneration, with trooper health bars, added in the same session.
7becf097The first arena on a desktop: a freelancer among cargo crates, with the trooper wave about to start. From the repo · 7 Oct The Aegis Dome skill. From the repo · 7 Oct A rail shot, with the second wave announced. From the repo · 7 Oct Death: a retry or a change of freelancer. From the repo · 7 Oct - 21 7 Oct
Effects and sound, made in code
doneTwo modules arrived within minutes of each other. createFx is an effects module with a bench page at /vfx.html and a realistic pass; createSfx synthesises combat sound from code with no audio files, with a bench at /sfx.html and a listening ticket for the owner, T20.
The owner's brief for both was the same: the weapon and skill effects should read as hyper-realistic, like the player models do, and the menus should look less cartoony. Round two of the effects came the next day.
Owner: the weapon and skill effects should read as hyper-realistic like the player models do.
5031ec95 - 22 8 Oct
A character-creation screen
done/create.html is the new-freelancer screen at final quality: five steps, origin, loadout, look, name and confirm, on a lit pedestal, with each step's choices in a panel beside the character. It runs on keyboard and mouse, on touch at phone size, and with a controller including an on-screen keyboard for the name. One i18n runtime serves both this screen and the demo.
The screens in the repo from this night are worth a look as a contrast with the first mockup: the owner had said an earlier version looked too cartoony, and the pedestal, rim light and dark panels are the answer.
Roadmap: the first screen a player sees should look like the game.
3bf11726Step 1: whose colours do you wear? Directorate, Umbra and others. From the repo · 8 Oct Step 2: what do you carry? Melee, gun and a cast. From the repo · 8 Oct Step 3: who walks off the barge? Pick a body. From the repo · 8 Oct The same step on a phone in landscape. From the repo · 8 Oct
Feel, phones and layered maps
The first real playtest said combat felt clunky. A feel pass, realistic effects, troopers that find their way, device tiers for phones, Cloudflare hosting, and the idea that levels should have sky, ground and underground.
- 23 8 Oct
Eleven looks, nine weapons, one asset store
doneThe looks landed overnight: eleven bodies, each in three quality tiers (HD for the creation screen, Game for play, LOD for distance), nine weapons, and clip sets per weapon class fitted at load, so a hammer and a rifle each get the right moves on any body. The creation screen was rewired to the real looks, with portraits, colours and heads.
The weights of all this live outside git. An asset store keeps a manifest in the repository and the files in object storage.
Roadmap: every bought model a freelancer can wear, without hand-animating any of them.
f1016809The look picker once it had portraits for all eleven bodies. From the repo · 13 Oct Picking a head with a controller: the camera pushes in on the face. From the repo · 8 Oct - 24 8 Oct
Device tiers: the phone gets its own game
doneHush Money has to run in a phone browser. The first answer was device tiers. Low, for phones, means blob shadows, no MSAA, lower-detail looks, reduced effects and sound, and fewer draw calls through one draw kind per material and merged statics. Sound on the Low tier caps takes per sound and renders them one at a time, to spare the main thread during warm-up.
The phone is tested on a stand-in, 844 by 390 at three times the pixel density with the CPU throttled four times.
Roadmap: it plays on a mid-range phone browser at 60 fps; that is the north star.
82278594The arena on the phone stand-in, with touch controls. From the repo · 7 Oct A skill effect on the Low tier. From the repo · 7 Oct - 25 8 Oct
Behind a gate, with assets in the EU
doneThe game moved to its own domain on Cloudflare, with the Worker behind Access. Production assets are served from an R2 bucket in the EU through the Worker, and the deploy build points the client at it. GitHub Actions only deploy for now: a push that only changes docs, the board or tooling notes skips the deploy, on the owner's instruction to save Actions minutes.
The domain is the one place the sources disagree. The chat at the time says the game would start on a hush subdomain of cantorite.com; the naming doc says hushmoney. Both names appear in the docs.
Owner: CI at a minimum, and production stays behind Access for now.
a32411df - 26 8 Oct
A cloud session builds the plumbing
doneWhile the main session fought with levels, a cloud session built what every later system leans on: a debug page with a card for every page and a pages check, a simulation package with a purity check (no DOM, no three.js in game rules), a seeded random number generator and deterministic maths, and the i18n checks.
The debug page's sound card caught a bug. On a device whose audio output runs at 44.1 kHz, the reverb convolver threw because its impulse response was baked at 48 kHz, which stopped the creation page before its canvas existed. The audio context now runs at 48 kHz.
Roadmap: phase 1 is the foundation; a pure-TypeScript sim is the one decision that is expensive to make late.
da6bb6f6 - 27 8 Oct
The trademark search
doneFacts, not legal advice. A search through TMview, which covers EUIPO, Benelux, the national offices and WIPO Madrid, found no mark live or dead for Hush Money, Hushmoney or Cantorite in the EU or Benelux. The only risk is the many live Hush marks in classes 9, 41 and 42; none covers video games, and hush money is an everyday idiom. A physical board game uses it as a subtitle. Verdict: some risk, low, not blocked.
Owner: you can look these up. The questions for an attorney, if the owner ever files, are written down.
16daab1f - 28 8 Oct
The first playtest: combat feels clunky
doneThe owner played and wrote it down: combat felt clunky, melee should be strong but its reach was low, the magic animation was bad, the enemies were shooting from off-screen. The request was for a 45-degree camera and a zoomed-out view as the defaults, with zoom for the player.
Six stories came out of it and one pass fixed them: the genre's camera, a skill bar where magic works on any weapon, melee that reaches, troopers and rushers that play fair, and casts that follow the weapon. A second review found a nastier bug: with attack held, the dodge never fired, because the combo chained first. It was measured with a latency probe and fixed; held dodges now come out at the same point as tapped ones.
Owner: the combat feels a bit clunky; melee should be strong, but the range is low.
fcb31f6bThe Shock Maul, with lightning and an Aegis dome. From the repo · 7 Oct A combo trail behind a melee swing. From the repo · 7 Oct - 29 8 Oct
Effects get realistic
doneOn the brief to research how others do spell effects, the effects module gained noise, colour ramps, erosion and mesh effects, a readability pass, a beam built in layers, swooshes, fireballs, a dome that warps what is behind it, a death erosion and cast circles. A separate pass added bloom on emissives, heat haze (High tier only) and soft particles.
A bug hunt in the post pass found that a single NaN or Inf glow texel could blank the whole bloom. D3D drops isnan, so the texel is now tested by its exponent bits. Another: when nothing glows, the composite kept showing the last glowing frame, because clearing an MSAA target without drawing does not resolve it.
Owner: I need higher visual fidelity.
fb3f2bfaAll effects at once, before the fidelity pass. From the repo · 7 Oct After: noise, ramps and ring layers. From the repo · 7 Oct The beam in layers, in play. From the repo · 8 Oct - 30 8 Oct
Troopers that find their way
doneEnemy steering got a flow field, firing spots and a pooled set of bodies, so troopers walk round props and take firing positions. A later fix lets a controller or touch swing catch the pack the way the mouse does: the lunge stops when a trooper comes within reach, and with no pointer the swing faces the middle of the pack round the lock.
Owner: the enemies are shooting off-screen and the melee range is low; both get fixed here.
e6785bb8 - 31 8 Oct
Levels with a sky, a ground and an underground
doneThe owner wanted to revisit the generator. The idea: every map is a combination of outside areas that are specific to the world (trees, flora, fauna, sunlight), buildings and underground. The design that followed, layered maps, gives each region a layer and a floor, a filler per layer, hand-built seams between them, and the boss at the job.
It needed more art. The owner shared two cave packs, one whimsical and one an ancient cavern, and they were bought and downloaded. A catalogue of 844 pieces was checked against renders, with contact sheets and a catalogue page, and small Haiku agents classified the cave pieces from fact sheets. The owner also noted that Harrowfall has no fauna at all, and said it could, starting with the alien worlds.
Owner: I have a feeling we should be able to create way better maps.
5a0b7bb6A layered map, seed 1, from above: desert ground with the building at its heart. From the repo · 8 Oct The same map as a plan with its zones and the job. From the repo · 8 Oct Alien trees, from the catalogue renders of 844 pieces. From the repo · 8 Oct - 32 8 Oct
A gate for CI, and a limit that is a target
donenpm run gate is the one command a branch has to pass: type-check, checks, an asset budget check over every shipped file (classes, meshopt, KTX2, PNG and credits) and more. Three of the freelancer looks were over their player budgets and sat on an allow list with a story each, until a later pass brought the Marauder, Woman 01 and Soldier 01 inside.
The 15 MB first load was meant as a hard limit and the owner softened it: it is a target, and going over warns but never fails. The same afternoon a settings screen arrived in the pause menu: the graphics tier live, volumes, reduced flash, and exporting and importing the save.
Owner: the 15 MB shouldn't be a hard limit.
5bd7c2a9 - 33 8 Oct
“These levels are way better”
doneThat evening the owner deployed the layered levels, had a look and said so, with a question: were these just demos, and could they expand, with more interiors, more underground? The agent came back with six questions. The answers on two of them: put the boss near the job but not predictably, sometimes a few rooms before, maybe even two bosses so you cannot tell; build a few larger setups and pick some at random for each level.
He asked for small Haiku agents to set up many rooms with attachable doors, to see if a large library could be made, and handed that to another account's session. The owner went to sleep with one instruction: the top priority is a map designer and level generator that really work.
Meanwhile a phone pass made waves ready before they arrive and froze bodies that stand still. On the 4x CPU stand-in the fight median dropped from 36 to 47 ms down to 28 to 35 ms, and spawn frames that reached 131 ms now stay at 41 to 53.
Owner: these levels are way better. Chapeau.
46f1c13b
The room library, caves and the drill
Small-model agents designed rooms, the owner walked them and flagged what was wrong, and a library grew from 54 rooms to 255, with caves, round rooms, descents, a Harrow style that looked cheap and a Deep-Core Drill that was rebuilt twice.
- 34 9 Oct
Fifty-four rooms from small models
doneThe owner had asked another account's session to see whether a large library of rooms could be made by small, cheap models. The answer arrived on the morning of 9 October: 54 kept rooms, written by small-model designers from a 149-line specification, each checked by script. The checker reads the room file and renders shots; a self-test feeds it 34 deliberately broken rooms and all of them are caught. Reviews from larger models scored the shots and gave a verdict on each room.
A playtest page, /roomlib.html, lists every kept room in a dropdown by type and depth, with previous and next, a sealed toggle and a plan view.
Roadmap: rooms are the content. If agents can build them under a strict checker, the owner only has to judge.
b0bc5a0eContact sheet of the hallway rooms at the game camera. From the repo · 8 Oct Contact sheet of the office rooms. From the repo · 8 Oct Contact sheet of the multi-level rooms. From the repo · 8 Oct - 35 9 Oct
Flag this room, and concept art for every kind of room
doneThe owner would walk each room, so the owner asked for a way to flag one and write what is wrong. A Flag button on the playtest page sends the note, the room, where they stood and the page's toggles into the EU database, and a script lists open flags per room for the agents. The first reaction was that it did not work, and the fix, minutes later, made flags work from the local dev server too.
He also asked for concept art first. Meshy produced 20 images of room types (72 credits, four re-rolls), then ten Harrow-overrun rooms for the invasions (39 credits), then twelve that were explicitly invited outside canon (36 credits). Every image was looked at, and the design doc records what is worth taking from each. The old Harrow cathedral-style rooms were singled out as the ones liked.
Owner: could you make an option so I can flag a room and mark what is wrong? You can read that from the database.
96ab9b87Concept: a boss room round a crystal reactor. Concept art (AI-made with Meshy) · 9 Oct Concept: a flooded cave with a central platform. Concept art (AI-made with Meshy) · 9 Oct Concept: a Harrow seam tearing open a cavern, gold light in the crack. Concept art (AI-made with Meshy) · 9 Oct Concept: a choir ring of the Harrow's pillars. Concept art (AI-made with Meshy) · 9 Oct Concept: a lava crossing. Concept art (AI-made with Meshy) · 9 Oct - 36 9 Oct
115, then 255 rooms: shapes and heights
doneThe library grew in waves through the day. Wave two made 38 rooms in every style, taking it to 115. Then the owner noticed that there were hardly any multi-level rooms, and none in caves, and asked for outdoor height, and for a spiral or a stair down into a door so another room could attach directly, which would let a mission go eight levels down. That became the descent field: a way in high, a way out low. Wave three added 28 multi-level rooms, wave four 13 descent rooms, and wave five 17 more, bringing the total to 255.
Round and octagonal rooms followed in every style, with L, T, cross and ring halls. They came with a problem: a black void around the room where the square one used to sit. The surround pass gives each style its own: a roof, rock, timbered rock or sinking sand. Curved outlines and corners took a second round after the owner's shots showed square corners behind a slanted wall.
Owner: we hardly seem to have multi-level rooms, and in caves I am not seeing any.
410feb49A round cave arena with the black void around it, before. From the repo · 9 Oct The same room with a rock surround that follows the curve. From the repo · 9 Oct A rotunda with a curved wall and a surround. From the repo · 9 Oct The three-tier cave loop, a descent room, after the pass. From the repo · 9 Oct - 37 9 Oct
Falling through the floor of a cave
doneThe owner walked the caves and wrote back with annotated screenshots. The spiral was not really a spiral. On the lowest level of the three-tier loop the owner could walk through one spot and fall through the cracks into nothing. The seams between the raised floor tiles looked unnatural, and the underground lake was missing its shore floor. The new cave floors were liked in principle.
The fixes are in the commits: a modelled rock spiral is allowed and Blender can build it, ramps come in several looks, and every cave outline gets a walk test. The final result: every cave room keeps the player on the floor, 88 of 88. That commit was squashed from a branch whose history carried 36 MB of experiment pictures, which is a lesson about what to commit.
Owner: I can fall through the cracks into nothingness.
a191a875One of the owner's annotated shots: red marks on the spiral and the ledge. From the owner's playtest · 9 Oct The spot where a player could walk through the floor of the three-tier loop. From the owner's playtest · 9 Oct Seams on the raised rock floors. From the owner's playtest · 9 Oct The rock spiral in a spire room, two views. From the repo · 10 Oct - 38 9 Oct
The Harrow looks cheap
doneThat evening the owner turned to the Harrow rooms. Many of the Harrow items had graphical glitches, and most Harrow-only rooms looked underwhelming next to the others: low quality, not in the style of the game. The ask was for the fidelity of everything Harrow to be raised so it fits.
Four Meshy concepts set the direction, the Harrow's old sites at the game's realistic look. The pass behind it brought real stone, quartz and gold texture sets, mouldings, chips and cracks, and a follow-up sweep for glitches on the old-site stairs, cut walls and rails. A rule had been relaxed earlier that day: glowing gold is the Harrow's, but painted trim and warm colours are fine for everyone else.
Owner: most harrow-only rooms seem a little underwhelming; can we increase the fidelity of everything Harrow related?
7be532f2The owner's shot of an old Harrow site that prompted the pass. From the owner's playtest · 9 Oct A Harrow station hall before the pass. From the repo · 9 Oct After: real stone, quartz and thin gold. From the repo · 9 Oct - 39 9 Oct
The Deep-Core Drill, three times
doneThe drill is the game's emblem, and the owner was hard on it. First thought: if the machine stands on the surface, you would only see the shaft below, not all the pillars. Done. Next: it looks tiny against a player, and when it runs, only the drill itself feels alive, with no smoke, no rubble, and cracks that just exist. Three real-scale concepts with a figure for scale, and a giant drill with five drill rooms, followed.
Then the owner's walk: things shrank and vanished when they got close, which is the camera's see-through fade, and not all the railings worked. The answer was a rebuild in Blender with the kit's cutaway, solid rocks and rails, and, from files the owner uploaded, Midgard trucks and a landing ship. Fixes kept coming into the next day: rocks and crystals solid where you can see them, the bit lit, cabins that open, and vehicles that are never cut away.
Owner: the current drill looks tiny against a player.
8b5f53ceConcept: the drill rig at real scale, with a figure beside it. Concept art (AI-made with Meshy) · 9 Oct Before: the first drill rig in a room. From the repo · 9 Oct After the giant-drill pass: bigger, banded, with cables. From the repo · 9 Oct After the Blender rebuild: the bit chamber, with crystals and rock. From the repo · 10 Oct - 40 9 Oct
Thirty degrees, far out, and a level from the surface to the crystals
doneThe last pieces of the day made the library a level. The descent generator chains library rooms from the surface down to the crystals, with a drill mission on top. The owner said the level generator was great and that they would wait for the drill and caves to be reworked, since those bugs still existed. And a camera decision: make 30 degrees the standard, with the camera far away. It is the default on the walk page and in play, and a pass followed for rooms at the new camera, with front-line openings, corner skirts and cave light.
Owner: the level generator is great. Can we make 30 degrees the standard, and the camera far away?
9b5bda41 - 41 10 Oct
The morning walk: cave floors, water and an Unstuck button
doneThe owner walked everything on the morning of 10 October and said they were getting there. The most important point was the caves: the new floor tiles looked bad. The game had gone from realistic pack assets that needed seam work to low quality code-made texture. The answer was floors, ramps and spirals from the pack's own rock, and the code-made texture was dropped. Pools, lakes and rivers got lobes, coves, meanders and shore rocks so they stop being rectangles.
On the owner's phone the bore level had see-through floors at the edges and around the blue alien prop. The descent now builds the caves' rock masses, and the camera cut no longer reaches behind the player.
And there was a request for a button: dashing can leave you stuck, so there should be an Unstuck option in the menu, usable once per 30 seconds, that returns you to the nearest walkable spot you have already stood on. It shipped the same morning.
Owner: we really need an unstuck button for the game.
ff0d2a3bAn underground lake before the water pass, two frames. From the repo · 10 Oct The same lake after it, at the 30-degree far camera. From the repo · 10 Oct The bore's ring on floor 19, before (left) and after the caves were made solid. From the repo · 10 Oct - 42 10 Oct
A tank, and a steel mask we left off
doneThe owner floated an idea: could a mask over every code-built Directorate prop make it look more like the industrial steel? A trial added a steel layer, switchable with ?steel=1. The owner looked at it and said to keep it off everywhere: on the drill it showed artifacts when the ground shook, because the texture stayed still while the model moved. The Directorate can read whiter, which was fine.
The same day the heavy tank was started as a trial, half-built in a factory bay as a room prop.
Owner: keep it off everywhere; the Directorate can read more white, that is okay.
910a4affThe tank in its bay, two views of the steel-layer trial. From the repo · 10 Oct The heavy tank half-built in its factory bay. From the repo · 10 Oct
One weekend to a whole game
The owner asked for everything hooked together: missions, travel, profiles, progression, co-op, raids, assaults, cities, native sites and a second faction. Several agents worked in parallel against one contract.
- 43 10 Oct
One weekend to a whole game
doneOn 10 October the owner asked for a fully playable demo with everything hooked together: enemies, fighting, skills, character creation, missions on top of the level generator, a minimap that shows only explored rooms, a loading screen with the space shuttle and a travelling animation between missions with a briefing, controller detection, graphics presets, profiles and login, achievements, credits to earn and spend, co-op and a tutorial. Three freelancers free to start, more bought with credits. And a ship that lands on the planet you are about to work on.
The plan was one contract and several agents. A TypeScript contract file sits between a run side (missions, levels, travel, tutorial, minimap, debrief) and a meta side (profile, roster, shop, achievements, settings, hangar, accounts, relay). A third agent took the Umbra, the second faction. The main session merged, deployed and did anything that needed Blender or the owner's tokens, and the owner had two more accounts that could help, mostly cloud environments, which is why heavy rendering stayed on the owner's machine. 22 stories went on the board that morning.
Owner, on the travel and briefing concept art: that looks exactly what I want.
d394d7caConcept for the travel and briefing screen: a cockpit window with the mission card. Concept art (AI-made with Meshy) · 10 Oct Concept: the ship above a planet, with the briefing on the side. Concept art (AI-made with Meshy) · 10 Oct - 44 10 Oct
Progression: loot, grades and the Lattice
doneA fourth agent took progression, in its own files beside the run, meta and Umbra work: fixtures in the world, loot, contract grades and a skill tree called the Lattice. Gear sits on any body, since stats are body-free and pieces hang on the shared skeleton with a maker and a rarity accent. The Lattice has four active skills of its own and a check that its tree rules hold.
Two owner decisions shaped it. Gold may be a rarity colour, relaxing the world rule for loot only, and gear changes happen in the hangar. And death is a retry of the floor: it costs 30 seconds and a Wounded stack that takes 10 percent of max integrity, down to a floor of 60 percent, cleared by a med station. The mission board shows grade chips, locks, a recommended grade and risky ones, and pay is multiplied by the grade.
Roadmap: loot and grades are why you run it again.
491cce68Concept: the Lattice skill tree. Concept art (AI-made with Meshy) · 10 Oct Concept: loot cards by rarity, from Standard to Relic. Concept art (AI-made with Meshy) · 10 Oct The mission board with grade chips, from the game. From the repo · 10 Oct - 45 10 Oct
Profiles, sign-in, achievements and a ladder
doneThe meta side built the title screen with a profile picker, a hangar with panels for missions, roster, shop, achievements, co-op and settings, controller glyphs for PlayStation and Xbox pads, and a page of achievements in three tiers, Steel, Teal and Violet, with toasts when you earn one.
Sign-in is optional, because local play is complete without it. An accounts Worker with an EU database sends a six-digit code by e-mail, with specific error texts for rate limits, wrong codes and expired ones. The owner found that the caret in the code field jumped to the start while typing, because the profile panel kept taking the form out and putting it back on; fixed. A ladder, with its own EU database and a signing secret, goes live behind it. Its design rewards what the game is about: a weekly contract with careful and greedy boards, sprint boards, and a quiet board. Every number on a board is recomputed on the server and never trusted from the client.
Owner: could you also think of some stuff like leaderboards?
7a0791cfThe title screen with the profile picker. From the repo · 10 Oct The sign-in step that follows creating a profile. From the repo · 10 Oct The achievements page. From the repo · 10 Oct - 46 10 Oct
Travel: a nebula, a ship and a landing on the real pad
doneBetween hangar and mission the player now watches a journey. The travel screen has a nebula sky with dust lanes and the galaxy's band, 9,000 twinkling stars, the sun's glare and bloom, planets with domain-warped terrain or storm belts and dusty rings, and the freelancer projected as a hologram from the bottom left. Four flyover concept frames cost 12 credits.
The owner steered it with short remarks. The hologram was a bit too bright, so its opacity went from 0.5 to 0.2. There was a black screen before the travel screen, so play.html now paints a boot mark, a turning cyan ring, with no words because the language is not loaded yet. And on 11 October: the landing place looked nothing like where you actually land. The final approach now flies on over the real level and settles onto the run's pad, fading through the surface's own haze. The shop sells ship styles too: the Kestrel and the Sentinel at 50,000 credits each, and a Lancer.
Owner, 11 October: the landing place looks nothing like where we actually land; can we make that happen?
621207b5Concept frame 1 of the arrival flyover: the deck. Concept art (AI-made with Meshy) · 10 Oct Concept frame 3: the work site. Concept art (AI-made with Meshy) · 10 Oct The travel screen as built: a ringed planet, the briefing and the hologram. From the repo · 10 Oct Frames from the flyover: the base, the pad, the work site. From the repo · 10 Oct - 47 10 Oct
A loading screen that does not freeze the machine
doneLoading a level is a lot of work, and the owner's first report was that the loading screen froze the computer. The fix was a pacing module that yields frames between pieces of load work, waits longer and shrinks its slices when frames come late, and compiles the shaders a few at a time. Each floor's build, collision and nav grid yield in between.
Then the owner's second report: it was now actually slow, and could we find the middle ground. That took two rounds. The first made slices 1 to 6 ms with two frames for the screen between them, and 1 ms while the player used the briefing. The second grew slices to 14 ms on a smooth machine, one free frame between, halved on late frames, and 2 ms while the briefing is in use.
Owner: the loading is now actually slow; can we find the middle ground?
7f59a7fc - 48 10 Oct
Hold the line, and the Umbra get their own ground
doneHold jobs were a room and a timer until the owner said they should have waves. Now there are five, of 4, 5, 7, 8 and 10 troopers from the rooms around, an elite heading waves three and five, a Wave n of 5 banner, and the next wave when two are left or after 25 seconds.
The third agent gave the Umbra, the second faction, their own site on the planet Nocturne: the Tithe Font, whose job always sits at its heart, and elite skills picked in the briefing. The Sounding, a dig that mirrors the drill's bore, has a yard and a shaft of eight rooms, its bottom floor taking the Umbra's own steel rooms among the caves. It was checked with 50 seeds, 50 of 50 clean. The Font never draws the Directorate's rooms, and before that fix the job reached the heart in 37 of 50 seeds, after it in all 50.
Owner: with holding levels there should be waves of enemies coming.
eb6e2f8aConcept: the Tithe Font on Nocturne. Concept art (AI-made with Meshy) · 10 Oct The Font's yard in the game. From the repo · 10 Oct A cut hall under the Umbra's violet light. From the repo · 10 Oct An Umbra Hierophant with its ritual circle. From the repo · 10 Oct - 49 10 Oct
The usage limit, and a hand-over
doneNot every entry is a feature. At about 11 on the morning of 10 October the owner reported that the main account was close to its weekly usage limit, about 4 percent of a maximum subscription left, and asked what was worth doing with what remained, floating the idea of upgrading a Directorate model or two. The heavy tank was started. Work would continue on cloud agents after the limit hit, and the owner would make sure uncommitted work got committed if told where it was.
By the afternoon the progression work had stopped at that limit. The demo plan was updated with what was deployed, five work-in-progress branches and their state, and what was still running, and a second update recorded what merged after.
Owner: we are reaching the weekly limit; what would you still do taking into account what the other agents are doing?
60eb004f - 50 11 Oct
Co-op for four
doneCo-op was in the demo ask and ended up at four players. A relay in an EU Durable Object, one per lobby, routes a four-seat star: a guest's frames go to the host only and the host's go to everyone. A four-card lobby sits in the hangar with join codes and links. Crew play adds Down, Revive, Out and the wipe: the host is the authority on everyone's integrity, a downed player bleeds for 20 seconds and crawls at 1.5 m/s, revival is holding interact for two seconds within 1.6 m, and a player who is Out returns at the gate after 20 seconds.
The headless crew found the bugs. The run page joined its seat only after the level loaded, which on a slow device took minutes, and the relay's 20 second grace deleted the lobby, so both players played alone. A downed player's death clip carried the body out of the reviver's reach, because of root motion. A guest took a crewmate missing from one snapshot as gone for good. All three are fixed, and npm run check:coop drives two and four headless players through the real hangar and run page.
Roadmap: co-op was later, but every system was to be built with it in mind. The raid needed it now.
1f3581b5The lobby from a guest's side: the job, two seats, ready buttons. From the repo · 10 Oct - 51 10 Oct
Raids and bosses: the Colossus, the Effigy and the Tiller
doneThe owner wanted bosses, and then a raid: a very tough boss with several mechanics, where co-op makes it easier and a solo raid is almost impossible, maybe scaling with players. The Directorate Colossus and the Umbra Effigy came first, code-built units from Harrowfall exported as models, the Colossus as the end of hunt missions and the Effigy at the Font. Then the Tiller, a Harrow titan, with three phases that each rest on two things at once: the Tines that must break together, the Drink at three crystal beds that someone must stand on or tap dry, and the Shed, where the Knell wipes anyone outside a safe zone opened by someone holding a lever.
The raid runs on its own map and over co-op, with the host running the boss and guests drawing it. During playtests the owner found the mech boss had no targeting at all, and that the Colossus's chin guns needed a telegraph. The chin guns are telegraphed and dodgeable now.
Owner: maybe even a raid mission where we have to take on a very tough boss with several mechanics?
73a485d4The Directorate Colossus mid-barrage. From the repo · 10 Oct A seam is cracking: a warning, with the Colossus's volley. From the repo · 10 Oct The Umbra Effigy's beam. From the repo · 10 Oct The Tiller's arena, the apron, in a reaped bed on Fallow. From the repo · 13 Oct - 52 11 Oct
Assaults: take a base with an allied column
doneThe next idea came on 11 October: an attack-raid mission, working with the Directorate to invade an Umbra base, with soldiers and maybe a tank walking with you, a gate to blow up or a stealthy side way. And not only that pairing: it could be the other way round, or rebels against the Directorate. The design is one mission kind parameterised by a pairing, with the Directorate against the Umbra built first.
It uses its own map, no level laid, behind the same shape as the raids so combat, HUD and skills work unchanged. A base has walls, a gate, a culvert, a keep, a core and turret lines, with a pure plan and a check. The tank takes a lane beside the road and the column lasts the push. It was synced over co-op afterwards.
Owner: could we also have an attack-raid style mission, working with the Directorate against an Umbra military base?
562ad90fThe core of an Umbra base, with a charge to set. From the repo · 11 Oct Staging at the pump works, before the push. From the repo · 11 Oct - 53 11 Oct
Cities: Harrowfall’s city generator, at ground level
doneAnother request: ground-based levels. Harrowfall has a city generator with ruined cities in each faction's style, and the owner asked whether the Swarm, Harrow, Umbra and Directorate versions could become runs. The camera is five times closer than the RTS's, so the street is the floor and the buildings are the walls. A run is two or three districts joined at gates where road meets road.
Four cities came across: Fallow, Hivemere, Penumbra and Meridian, each with a mission, such as holding the nerve node at Hivemere or bringing down the Effigy at the Penumbra sanctum. Then a fidelity pass compared Harrowfall's own shot with the version before and after. A phone-memory measurement shows what it costs: Fallow seed 2 before the pass used 169 MB on the GPU, 143 MB after. Meridian was parked until the pass was done and then returned on Harrowfall's street kit, after a war.
Owner: could we create another level idea? City-based runs. Harrowfall has a city renderer.
5bed362cPenumbra: Harrowfall's shot, the first version, and the result. From the repo · 11 Oct Meridian: the same comparison. From the repo · 11 Oct The Effigy waiting at the sanctum. From the repo · 11 Oct - 54 11 Oct
Native sites: the Harrow’s cathedral and the Swarm’s hive
doneThe owner asked for levels where you land on a Harrow site, a relic, cathedral or old city ruin, and the same for the Swarm, so there is some variety. If a faction built it, it cannot be industrial. Not all of them should go down either: some linear, maybe a Harrow spire that goes up.
The sites agent delivered five: climb a Harrow spire with the HUD saying Floor 3, 70 m up; walk a Harrow cathedral in one line, nine halls and no loop, to hang a bell; go down a Swarm hive over two linear floors of grown caves; a town the Harrow reaped; and a Directorate yard the Swarm grew over. On native ground there is no Directorate room, no crate and no steel stair.
Owner: it can't be industrial; and maybe some of these maps are linear only, or a spire which goes up.
d4cd645dThe Harrow cathedral in the Vigil job. From the repo · 11 Oct A Swarm hive floor, grown over natural caves. From the repo · 11 Oct A reaped holdfast, a town the Harrow took. From the repo · 11 Oct - 55 11 Oct
The playtest hits back: guns, doors and a missing target
doneThe owner played the whole thing on 11 October and the list was practical. Enemy turrets hardly felt deadly, being easy to dodge and kill, so they got 300 hit points, 7 by 4 shots every 1.2 seconds and more lead, with the laser telegraph kept. Enemies walked through doors without opening them, so a living hostile within 4.5 m now opens one as the freelancer does. The Directorate's blast doors opened at the RTS's 0.5 a second, so a running freelancer met them half open; now 1.2. The mech boss had no targeting; fixed. On the phone an Elite button now sits beside Swap, so the elite skill can be used on touch.
Owner: enemy turrets hardly feel deadly, easily dodgeable and killable.
fb2fadd0 - 56 11 Oct
Co-op: the host’s units are the only units
doneCo-op passed its first real test with a bug report: a turret killed by one player was still standing on the other's page, and infantry on one page was a turret on the other. The cause was that each page spawned its own enemies. An audit wrote down what is seeded, what belongs to the host and what is a guest's own, and then the rules changed: the host's units are the only units. The Umbra cell gets a puppet mode on a guest page, the level's guns go on the wire with kind, spot and facing, and what is fired is drawn on every page. A check compares the same floors on both pages by kind and spot.
Owner's playtest: a turret killed by one player stood on the other's page.
0f50a853
Modular freelancers, armour and concept art without credits
The freelancer became a set of parts. Seven armour sets and ten weapons were designed and built, concept art moved to Cloudflare to stop burning credits, and a boss that could be shot from 25 m was reworked.
- 57 12 Oct
Inventory, a shop and four ships
doneThe owner's wish list on 12 October was about room: the stash limits should be higher, gear should not dismantle automatically on exit, there should be a mass dismantle with filters, and a full inventory at the end of a mission should be manageable on the debrief screen so nothing is lost. Inventory was also wanted as a buy in the shop and a preview for ships you are buying.
The answers given: a 200-slot stash per freelancer, freelancer slots at 80,000 credits doubling each time, stash room bought 50 at a time, an account vault shared by every freelancer where nothing is ever salvaged automatically, and an overflow that waits so nothing is lost or salvaged without the player.
Owner: gear shouldn't automatically dismantle on exit.
46db1601The account vault. From the repo · 12 Oct The shop's ship page. From the repo · 12 Oct A ship preview: the Kestrel on a turntable. From the repo · 12 Oct - 58 12 Oct
Modular freelancers replace the looks
doneAnother agent had built a modular armour picker at /modular.html. The owner told the main session on 12 October to start integrating it, because these models had to replace the freelancers immediately, with a new character builder. The creator now builds a freelancer part by part, on the shared rig, with sets 01 and 02 bought with credits, an Owned-only filter and arrow pickers; two-handed grips use left-hand IK. The eleven old looks stay for faction bosses and elites.
The owner then made a freelancer, edited everything, and found everything had gone back to the default on saving. The cause: the accounts Worker runs the client's profile rules, and deployed by hand it had fallen behind, so it dropped the new outfit field on every sync. Since then every deploy ships the Workers too.
Owner: it did create the freelancer, but everything went back to the default. It's not saving changes.
213d56f9 - 59 13 Oct
Concept art without burning credits
doneBy 13 October the owner was spending Meshy credits quickly on concept art, with 79 left. The owner asked whether it could be done on a local machine or more cheaply, and whether Claude can generate images at all. The research and a proof of concept answered it: Cloudflare Workers AI runs FLUX models. The Meshy heretic-armour prompt was replayed on it, and klein 4B and 9B both worked, as did another model called Lucid Origin.
The rule that followed, rule 13 in the project's rules: 4B for concepts and trials at about a tenth of a cent an image, 9B for images in use at about a cent and a half. Later that day Meshy's text-to-image was switched off in the tools, and Meshy stays for image-to-3D and 3D only. The same rule was written for Harrowfall.
Owner: 4b for concepts and trials, 9b for the actual usage.
326dde8fThe heretic set replayed on FLUX.1 schnell. Concept art (AI-made with FLUX) · 13 Oct The same prompt on klein 4B, the concept tier. Concept art (AI-made with FLUX) · 13 Oct The same prompt on klein 9B, the one used for images that ship. Concept art (AI-made with FLUX) · 13 Oct - 60 13 Oct
Seven armour sets and ten weapons
doneWith the picker in place, agents produced concept sheets for seven armour sets, one per faction or maker that canon supports, and ten freelancer weapons on five sheets, plus a proposal for ten skills and eleven unlockables. The owner picked which sets and the top three weapons to build first. The source rule is firm: armour comes from the Hero Sci-Fi pack on the owner's drive, which is fully modular, and nothing else.
Sets arrived through the day, each built with a kitbash pipeline in Blender and put in the creator, the bench and in play: Heretic, which includes a Penitent blade and Censer rifle; Hollow Veil; Tollkeeper from the Tollway; Molt, the Uncounted's carapace; Touched, the Hollowmere diggers; and Vigil, the Hush. The owner asked whether it was intended that the heretic set was only a few pieces, and later said that the Hollow Veil's hood looked cheap, so it got a cloth pass with twill, folds, hems and seams.
Owner: the cloth hood of the Hollow Veil does look a bit cheap. Can we give the hood some texture as if it were real cloth?
755a9743Concept: the Hollow Veil. Concept art (AI-made with Meshy) · 13 Oct Concept: the Tollkeeper. Concept art (AI-made with Meshy) · 13 Oct Concept: mono-edge blade and capacitor maul. Concept art (AI-made with Meshy) · 13 Oct The Hollow Veil in the hangar after the build. From the repo · 13 Oct The Tollkeeper. From the repo · 13 Oct The Vigil. From the repo · 13 Oct The lineup: the sets standing side by side. From the repo · 13 Oct - 61 13 Oct
The Colossus had no safe distance
doneThe owner fought the Directorate mech and found it doable, then looked at the raid bosses and found the Colossus could be shot down from 25 m with no phase that changed anything. The rework has no safe distance and three phases, and gives both range and melee a job. The Colossus that guards normal hunt missions would have changed too, so the owner asked whether that one should be easier. It is: the hunt gets a lighter ruleset.
Owner: the Colossus that guards normal hunt missions should be easier, with less health and damage.
00b33916The Colossus arena's gate, before the arena rework. From the repo · 13 Oct After the arena rework. From the repo · 13 Oct - 62 13 Oct
City buildings, made in Blender
doneThe city districts looked flat, and the owner asked whether to buy a 3D city pack or generate our own. The test was done on the local machine: concept images from klein 4B, three picked and re-run on 9B, then a Blender self-generation proof of a few Earth and Umbra buildings. The owner's follow-up was the right one: how does it look close up, at this game's size, when the player walks past them? Six Penumbra buildings came with baked colour and emission textures, then all of them with new textures and more buildings, plugged into the city generator as umbra and Meridian building packs with collision baked.
Owner: would you buy an existing 3D pack, or generate our own and work from there?
2d27f7f1Concept: a Penumbra district from above, on klein 9B. Concept art (AI-made with FLUX) · 13 Oct Concept: a Meridian district. Concept art (AI-made with FLUX) · 13 Oct A Blender-built Meridian tower at the game camera. From the repo · 13 Oct - 63 13 Oct
The first press shots
doneThe owner needed a short description of each game for a website, concept art for both, and a catchy first image. For Hush Money, the new armours were wanted. So there are two kinds of pictures here: freelancers at hero camera in the hangar, and fights in the game, one in an interior, one in a cave and two against bosses. The owner also asked whether the graphics settings in the shots were the highest.
Creator concept images were also made on FLUX through Cloudflare, a fraction of a cent to a cent and a half apiece and no Meshy credits, to put around the freelancer creator.
Owner: for both games we need a catchy first image; for Hush Money I'd like to see the new armours too.
689708f0A fight in an interior. From the repo · 13 Oct A fight in a cave, with a shield dome. From the repo · 13 Oct The Directorate mech. From the repo · 13 Oct The Umbra mech. From the repo · 13 Oct
Cloth, coats, shields and a tune-up
Capes with physics, a greatcoat, the first two of seven shields, a performance sweep, Blender on the GPU, and a repo that finally has the right name. This is where the history stops, on 14 October.
- 64 13 Oct
A cape that moves
doneThe owner asked how hard cloth simulation would be, whether libraries exist, and whether it could be hooked to the modular character's cloth armour. The research found no drop-in cloth for skinned characters in three.js, so a small solver was written: Verlet particles with distance constraints, capsule collisions, each particle held within a distance of its skinned rest position, in the character's own frame so that walking and teleporting cannot explode it. Then a proof with a cape: a FLUX texture on a mesh built in code, with physics.
The first versions had problems. A blank stage because of float attributes. The cape hovering above the shoulders and away from the neck, the owner said, and wanting folds and seams. A rebuilt cape with neckline, yoke, pleats and seams, 13 by 20, came next. The review the next morning: the underside did not fall and the gap between the cape and the lower back was too big.
Owner: how hard would it be to create cloth simulation?
44fb9036The FLUX look for the cape: turnarounds of a mannequin in an ochre coat. Concept art (AI-made with FLUX) · 13 Oct The cape in the creator, from behind. From the repo · 13 Oct From the side, in motion. From the repo · 13 Oct On the Vigil set. From the repo · 13 Oct - 65 14 Oct
Cloth on a budget
doneA cape that moves is easy on a desktop and expensive on a phone. The tier rules: cloth costs 0.6 ms a frame on High and 1.5 ms on the Low phone stand-in. On High, the player and up to three others simulate; on Low only the player does, and enemies never do. A frame-time guard with hysteresis degrades gracefully when overloaded, others first and the player last, down to the static fallback. Settings gained Cloth physics: Off, Auto or High, in the pause menu and the hangar.
Roadmap: every effect has a budget, and the budget is a check.
1456e15a - 66 14 Oct
A greatcoat in three panels
doneThe solver was built so a coat is data, not a rewrite. The coat has an upper and three skirt panels, as set K in the creator. Round three of the cloth work had already given the cape a body-hugging yoke, soft defaults and fold keeping. Limb clearance for a coat that hangs to the legs went on the board as a story.
Owner: next on the list is a long coat.
b402fa8fThe coat in the creator, three-quarter view. From the repo · 14 Oct The skirt panels from behind. From the repo · 14 Oct The coat over the Vigil set. From the repo · 14 Oct - 67 14 Oct
Shields: two of seven
in progressUntil now the only shield was the power shield. On 13 October the owner asked for concept art of shields that fit the game, and seven came back on FLUX. On 14 October the order was to build all seven. The first two are in the game: the Toll plate and the Cordon pavise, with a shield recipe and tools for the rest. Four new stories were added for the others. The owner noticed that the shield models another agent had added were not in the armour picker yet and asked a Haiku agent to wire them in. The five remaining shields are in progress.
Owner, 14 October: build all seven shields.
7d6cd133Concept: a sheet of 4B trials for the shields. Concept art (AI-made with FLUX) · 13 Oct Concept: the Toll plate. Concept art (AI-made with FLUX) · 13 Oct Concept: the Cordon pavise. Concept art (AI-made with FLUX) · 13 Oct The Toll plate, built: a contact sheet of poses. From the repo · 14 Oct The Cordon pavise, built. From the repo · 14 Oct - 68 14 Oct
A performance sweep, honestly reported
doneSix Haiku research agents read the code and listed 46 suspected performance problems. Nothing was profiled, so each one was a lead. An engineer then checked every item: 11 were real and fixed, 34 were false or not worth it, one was deferred. Three more fixes were found while checking, among them a failed path search retried every frame.
The counters show real effects. A path-finding cell that made 557 calls in 12 seconds, 548 of them failures, now waits to replan. Material version bumps in a raid fell from 13,778 to zero in 10 seconds. The hangar's ship preview had a 2,037 ms long task that is now 111 to 265 ms. Audio warm-up on the main thread went from 6,176 ms to 431 ms, with the work moved to a worker.
The frame-time comparisons were inconclusive and the doc says so: the machine was shared with three other agents' runs, and a base run's own median moved between 20 and 50 ms.
Roadmap: measure first. The doc's verdict column is the evidence, not the headline.
f613649a - 69 14 Oct
Blender on the GPU
doneThe owner saw Blender using a lot of the GPU and asked whether it was offloading properly or whether this was normal. The outcome was a rule: Blender renders and bakes on the GPU, OptiX or CUDA with a CPU fallback, through one shared helper. The same day the creator froze while editing a freelancer, which went on the board with the optimisation sweep as a story.
Owner: can we add this to the rules, to use the GPU?
38399b26 - 70 14 Oct
The repository is Hush Money now
doneA week after the rename in the product, the repository followed: Cantorite-Undertone became Cantorite-HushMoney on GitHub, and the roadmap sync was told. The Workers were renamed. The code name Undertone stays only where renaming would orphan data, like the database of saved rooms. Production is public except the room API, on the owner's instruction, and the title screen has a BETA badge under the title.
The history this page covers ends here: 1,587 commits on develop in ten days, 545 issues on the board, and a game with a title screen, a hangar, a roster, a shop, missions on generated levels, raids, assaults, cities, co-op for four and a creator with cloth. It is not finished. Four hundred of the issues are open.
Owner: production is public from 14 October, the room API aside.
08148b6bThe title screen, with a sign-in prompt over the nebula. From the repo · 11 Oct The freelancer lineup in the hangar. From the repo · 13 Oct
What the plan still holds
From PLAN.md: the foundation phase, the hub and the release candidate. The board has 545 issues, 400 of them still open.
- N1 Later
The foundation phase
plannedPLAN.md's phase 1: the simulation running in a Web Worker on a fixed tick with capped catch-up, the renderer and platform services behind interfaces, device tiers, suspend and resume, and CI that enforces budgets, determinism and i18n from the first push. Proved on a thin arena, not on new content.
PLAN.md, phase 1 and docs/phases/01-foundation.md.
- N2 Later
The hub, reputation and the release candidate
plannedThe Tollway barge Patience as the hub, with a fence, a refit bay and a graft clinic, and reputation with the Directorate, the Umbra and two minor factions; more disciplines and worlds; the Tiller as a full boss; Fallow as the endgame. Then onboarding, accessibility, a PWA, an Electron build for Steam and Steam Deck verification.
PLAN.md, phases 7 to 14.
- N3 Later
Later, only if it earns it
deferredA console port, through a porting partner. Reach-wide Resonance seasons, the Sanctum Procession set-piece and more homeworlds.
PLAN.md, the later row. Consoles are a nice-to-have; docs/platforms.md says what keeps a port cheap.
Sources: the git history of the game's develop branch (1,587 commits, 5 to 14 October 2026), its design docs, the GitHub board (545 issues, 145 closed) and the owner's working chats with Claude. Dates are commit dates; the repo was called Cantorite-Undertone until 14 October. Pictures are the game's own renders and screenshots, the owner's annotated playtest shots, code-built concepts and, where marked, AI-made concept art from Meshy or Cloudflare FLUX; none is retouched. Nothing here is a release: the game is in development.