~/writing $ cat writing/dino-arena-determinism.md
Dino Arena's determinism contract
2026-07-13 · Architecture Notes · 2 min read
A deterministic simulation environment for reproducible agent benchmarking and human-versus-AI experimentation. Eight algorithmic opponents span fixed-cadence hobbyist play to model-predictive expert-level control, with no learned models or randomness in the core.
The core idea
Dino Arena is a deterministic browser runner for human-versus-agent experimentation. The simulation core has no React, no Canvas, no DOM dependencies, no wall-clock timing, and no Math.random. It exposes a clean API: reset(seed) initializes a deterministic match, step(action) advances one tick at 60 Hz, serialize() captures the full match state for replay. That separation means the same simulation runs identically in a browser, in a headless benchmark, or as training scaffolding for a reinforcement learning agent, with no framework-specific code in the core.
Eight opponents
Algorithmic difficulty spans eight controllers. Clockwork Hopper, the easy opponent, has no sensor access and jumps on a fixed cadence. Late Reflex sees the nearest obstacle and jumps when it's within a threshold distance. The progression continues through TTC Pilot (uses time-to-collision estimation), FSM Sentinel (a state machine that tracks approach, commitment, and recovery phases), Arc Analyst (an analytical ballistic solver that computes jump windows and collision times explicitly), Horizon Scout (bounded model-predictive rollout over the next three obstacles), and Course Cartographer, the expert, which reconstructs the entire seeded obstacle tape from the match seed and plans a perfect line through it.
Difficulty is not tuned per agent. Instead, the course generator maintains a recovery gap above the maximum jump distance, and that single parameter controls the whole hierarchy. Controllers hit fundamental limits naturally: Clockwork can't adapt, so it fails when the gap grows too wide. The experts can model ahead and plan accordingly. The gap algorithm is embedded in generation, ensuring no agent can accidentally face an impossible late-game cluster just because the seed happened to pack obstacles densely.
The transparency trade
No learned models are involved by design. All eight opponents are hand-engineered: state machines, closed-form solvers, or explicit rollouts. The transparency is the point. Every agent's decision is traceable through its algorithm, not a black box neural network. Course Cartographer, labeled Expert, is intentionally transparent: it rebuilds the known deterministic tape from the match seed. It's not a learned master player, it's a model-predictive agent given full information about the course. That limits believability if a human player has learned an intuitive strategy the cartographer can't replicate, but it gains reproducibility and auditability. Seeded resets and state serialization make every run replayable and every agent's behavior verifiable, which matters when the goal is to run reproducible human-versus-agent trials.
Related projects