Ironvale — Serverless Real-Time Strategy

A complete real-time strategy game in a single HTML file that connects two players directly over WebRTC and runs the same battle on both machines in step, with no server of its own anywhere.

64,145lines of code
191files
99commits

What the measurements mean

Only what is unusual for this project. Every sentence names the field it came from; nothing here is asserted that cannot be checked against the data.

How it works

Each player opens their own copy of the file. The two find each other through a room word, a link or a public lobby, and then talk to each other directly. That only works because the simulation is deterministic integer arithmetic: given the same inputs, both machines compute the identical battle, so only the players' commands cross the network. Running both copies in step this way is called lockstep. The one file holds 32 unit kinds, 22 buildings, 30 technologies across three ages, four factions with their own architecture and music, and eleven battlefields, one of them generated from any seed. There are five spells and a computer opponent at three levels that plays under exactly the player's rules. The pixel art is drawn by code, the music and effects are synthesised as they play, and 2,125 recorded voice lines are embedded.

What kind of engineering this is

Six signals counted from the source: files that run models locally, that act without being asked each time, that check their own output, that survive failure, that touch parsers and protocols, and that were measured then improved. Every axis carries its file count.

Depth profileDepth signals: Local inference 0 files, Autonomy 0 files, Verification 6 files, Resilience 22 files, Low level 5 files, Iteration 0 filesLocal inference0 filesAutonomy0 filesVerification6 filesResilience22 filesLow level5 filesIteration0 files

What it is written in

Share of code bytes. Vendored bundles and generated output are set aside before this is computed, which is why it differs from a simple file count.

Language mixJavaScript 93.8%, HTML 3.7%, CSS 2.2%, Python 0.3%JavaScript 93.8%

What stands out

Capabilities

Grade

Every check names the field it measured. Checks that cannot apply are excluded, never counted as failures.

A
91.2% over 18 of 18 checks100% coverage

Not met

Architecture

Directories carrying real modules, largest first.

Vocabulary

Parsed 4 of 4 Python file(s).

6functions
4documented modules

Functions

Depth

Signals counted from the code, not asserted.

99 commits across 12 separate working days over 1 months, 6 of them revising existing behaviour

Built from scratch

Proves itself

Survives failure

Systems

Networking

Working within limits

Languages

Built with

Recurring themes in the commit history

Evidence

Taken from the code itself: a module docstring or the opening of the README.

Start headless Edge with a DevTools debugging port, safely and silently. python tools/edge_debug.py <port> [WIDTHxHEIGHT] For tools/probe.mjs, which drives the browser over the DevTools protocol (console messages, timings, frame rates). Like tools/shot.py it launches only through C:/coding/WhisperKeyboard/scripts/headless_edge.py, which seeds a throwaway profile: a bare `msedge --headless` on this

At a glance

Status
active
Primary language
JavaScript
First commit
2026-09-17
Last activity
2026-10-13
Domain
AI & machine learning
Agent docs
CLAUDE.md, .claude