Skip to content

Work

Four subsystems, 22 projects.

Everything I have built, grouped by the system it models: the flagship of each line, how it works, what it descends from. 11 of these run in the browser.
S1Subsystem · 3 projects

Economies

What happens to inequality when you change the rules?

Econ-Engine dashboard showing household, market and government metrics
Fig. 1Econ-Engine running in the browser: seeded, paused on day 0, $5,000 in circulation.
$5,000CONSERVEDpurchaseswageswealth taxtransfersprofit taxHOUSEHOLDSFIRMSGOVERNMENT
Fig. 2Econ-Engine’s circuit. Households buy from firms and are paid wages; the state taxes wealth and profit and returns every cent as transfers. It can neither borrow nor print, so total money never changes.
Agent-based economic simulationSince Aug 2026Active

Econ-Engine

A deterministic agent-based economy in the browser, built so that every outcome can be traced to a cause.

Households, competitive firms, a transport monopoly and a government interact in fixed daily phases. Money is conserved exactly in integer cents; the government can only tax and redistribute, never borrow or print. Each MVP adds one mechanism, with a changelog for the software and lab notes for the reasoning.

households with seeded employment and persistent cash
100
households with seeded employment and persistent cash
closed monetary circuit, conserved to the cent
$5,000
closed monetary circuit, conserved to the cent
wealth-tax policies tested against a Gini objective
0–100%
wealth-tax policies tested against a Gini objective

Also on this line

  • Agent Econ

    May 2026 · Archived

    Households, firms, banks and labour markets in deterministic tick phases, run on Web Workers.

    Code ↗

  • Agent-Based Economy (Python)

    Aug 2025 · Archived

    The first agent-based economy, and the precursor to Econ-Engine.

    Code ↗

S2Subsystem · 5 projects

Strategy & worlds

Can a machine learn to play a world, and can a world be modelled well enough to play?

genuine 11×11 maps in a hash-verified split
5,517
genuine 11×11 maps in a hash-verified split
globally stable action IDs with legality masking
63,913
globally stable action IDs with legality masking
values per observation under human-information parity
6,424
values per observation under human-information parity
semantic features per legal action
47
semantic features per legal action
Fig. 3PolyVision in four numbers.
63,913ACTION IDSlegal actionnext state + reward6,424 valuesPPO POLICYGAME ENGINEOBSERVATION
Fig. 4PolyVision’s learning loop. The policy picks one of the currently legal actions; the Java engine plays it and returns the next state and a shaped reward.
Reinforcement-learning research environmentSince May 2026Active

PolyVision

A research environment for training and benchmarking reinforcement-learning agents on The Battle of Polytopia.

A Java implementation of the game is driven from Python through Py4J and exposed as a Gymnasium environment. Agents are trained with a legality-aware PPO adapted from CleanRL, on genuine map data, with a frozen train/validation/test split, paired baselines and first-attempt human benchmarks. The current curriculum isolates early-game economy before expanding toward full play.

Began from ClaireBookworm/polytopia_rl and has since been substantially extended.

Also on this line

Top-down procedurally generated hotel floor plan with corridors and rooms
Un-Dead Hotel 2D: a procedurally generated floor of Hilbert’s.
Colony survival gameSince Mar 2026Prototype

Un-Dead Hotel

Colony survival inside Hilbert’s: an infinitely generated hotel overrun by zombies. A 2D browser prototype, now being rebuilt in Unity 3D.

JavaScript / Unity / C#

  • Atlas Core

    May 2026 · Active

    A province-level model of the world on 1 January 2025, assembled from public datasets as a foundation for strategy games and simulations.

    Live ↗Code ↗

  • Project Republica

    Mar 2026 · Prototype

    A country-management game set in Portugal.

    Live ↗Code ↗

  • Project Galáctica

    Mar 2026 · Prototype

    A hard sci-fi grand-strategy design: real astrophysics, wormhole logistics and delayed communication across ten light-years.

    Live ↗Code ↗

S3Subsystem · 8 projects

Artificial life

How much behaviour can emerge from simple local rules?

visual field with line-of-sight raycasts and hearing
200°
visual field with line-of-sight raycasts and hearing
physiological drives, adenosine and ghrelin, modelled over game time
2
physiological drives, adenosine and ghrelin, modelled over game time
maximum accelerated timescale with live behaviour-tree debugger
64×
maximum accelerated timescale with live behaviour-tree debugger
blueprint construction with strict resource conservation
Staged
blueprint construction with strict resource conservation
Fig. 5Life Engine 3D in four numbers.
sight, soundthreatsrecallgoalbuild, gatherhunger, sleep, coldWORLDPERCEPTIONMEMORYBEHAVIOUR TREEACTIONDRIVES
Fig. 6One simulated human, every tick. Drives from modelled physiology push the behaviour tree; what the agent does changes the world it perceives next.
Artificial-life simulationSince Jun 2026Active

Life Engine 3D

Autonomous humans in a 3D world who perceive, remember, get hungry, get cold, and build shelter to survive.

Each agent runs a priority-based behaviour tree over modelled physiology: sleep pressure from adenosine, hunger from ghrelin, and thermal comfort from sun, shade and fire. Agents fell trees, split logs, craft tools and raise structures from staged blueprints with strict resource conservation.

Also on this line

Clusters of violet particles on a black field
Particle Simulator: gravitational clustering under Barnes–Hut.
Astrophysical simulationSince Aug 2025Complete

Particle Simulator

A 2D astrophysical simulator with Barnes–Hut gravity, inelastic collisions and thermodynamics, producing orbits, accretion discs and stellar explosions.

Python / NumPy / Numba / Pygame

Coloured particles forming clusters, with an interaction matrix panel
Particle Life: 1,800 particles, six types, one interaction matrix.
Emergent-behaviour simulationSince Aug 2025Complete

Particle Life

Six particle types, one attraction matrix, and life-like structures that nobody programmed. JIT-compiled with Numba.

Python / NumPy / Numba / Pygame

  • Life Sim

    Jan 2026 · Archived

    An earlier artificial-life simulation in Python. 102 commits.

    Code ↗

  • Life Engine

    Aug 2025 · Archived

    An early experiment in agent physiology.

    Code ↗

  • Modular World Generator

    Aug 2025 · Complete

    A Python library and design tool that generates self-contained, scientifically grounded worlds for other simulations.

    Code ↗

  • Ant Colony Genetic Simulation

    Jul 2025 · Complete

    An ant colony that evolves under natural selection, the project that restarted serious programming in 2025.

    Live ↗Code ↗

  • Ecosystem Evolution

    Jul 2025 · Archived

    An ecosystem simulation centred on realistic plant life. 127 commits.

    Code ↗

S4Subsystem · 5 projects

Personal systems

What if a life were run on evidence rather than impressions?

Kleos landing page with a radar chart scoring eight life vectors, one marked unknown
Fig. 7Kleos: eight vectors scored from evidence. Where there is none, the answer is “unknown”.
training logsstrengthcurrent stateprioritiesnew datahealth, recordsRREINFORCINGEVIDENCEHERACLESKLEOSARIADNEACTION
Fig. 8Fabbro Systems as one feedback loop. Heracles and other evidence feed Kleos’s model of the current state; Ariadne turns it into priorities; acting on them produces new evidence.
Current-state modelSince Sept 2026Active

Kleos

An evidence-based model of a whole life across eight vectors, stored as auditable, dated snapshots with explicit coverage and confidence.

weighted subdomains across eight life vectors, each with fixed anchors
40
weighted subdomains across eight life vectors, each with fixed anchors
invented scores
0
invented scores

Lineage

  1. 2025-08Stasis
  2. 2026-04Blackbox
  3. 2026-04Ariadne
  4. 2026-08Heracles
  5. 2026-09Kleos

Also on this line

Heracles landing page with a phone mock-up of a live workout
Heracles: the public surface of the training ledger.
Training evidenceSince Aug 2026Active

Heracles

An evidence-aware strength-training app: logs every set and shows what it says about strength and which muscles it trained, with the working shown.

JavaScript / Supabase / PostgreSQL / PWA

Ariadne landing page reading “Turn direction into action”
Ariadne: the thread between direction and today.
Strategy & executionSince Apr 2026Active

Ariadne

A personal strategy system linking long-term direction to today’s tasks, with an AI assistant that reprioritises by strategic relevance.

React / Next.js / Supabase / PWA

  • Blackbox

    Apr 2026 · Complete

    A radically simple to-do list: add tasks, then draw one at random.

    Live ↗Code ↗

  • Stasis

    Aug 2025 · Archived

    A time-use app for focused work, guilt-free play and rest, with rhythms, task scoring and a harmony score. Now open source.

    Code ↗

§ 01Index

Everything, newest first.

Including the archived experiments. Most of the flagship work descends from something in this list.
  • 2026KleosActiveAn evidence-based model of a whole life across eight vectors, stored as auditable, dated snapshots with explicit coverage and confidence.Next.js / Supabase / PostgreSQLLive ↗Code ↗
  • 2026Econ-EngineActiveA deterministic agent-based economy in the browser, built so that every outcome can be traced to a cause.TypeScript / React / ViteLive ↗Code ↗
  • 2026HeraclesActiveAn evidence-aware strength-training app: logs every set and shows what it says about strength and which muscles it trained, with the working shown.JavaScript / Supabase / PostgreSQLLive ↗Code ↗
  • 2026Life Engine 3DActiveAutonomous humans in a 3D world who perceive, remember, get hungry, get cold, and build shelter to survive.Unity / C# / NavMeshCode ↗
  • 2026PolyVisionActiveA research environment for training and benchmarking reinforcement-learning agents on The Battle of Polytopia.Python / PyTorch / GymnasiumCode ↗
  • 2026Atlas CoreActiveA province-level model of the world on 1 January 2025, assembled from public datasets as a foundation for strategy games and simulations.React / TypeScript / MapLibre GLLive ↗Code ↗
  • 2026Agent EconArchivedHouseholds, firms, banks and labour markets in deterministic tick phases, run on Web Workers.TypeScript / Web WorkersCode ↗
  • 2026AriadneActiveA personal strategy system linking long-term direction to today’s tasks, with an AI assistant that reprioritises by strategic relevance.React / Next.js / SupabaseLive ↗Code ↗
  • 2026BlackboxCompleteA radically simple to-do list: add tasks, then draw one at random.JavaScriptLive ↗Code ↗
  • 2026Un-Dead HotelPrototypeColony survival inside Hilbert’s: an infinitely generated hotel overrun by zombies. A 2D browser prototype, now being rebuilt in Unity 3D.JavaScript / Unity / C#Live ↗Code ↗
  • 2026Project GalácticaPrototypeA hard sci-fi grand-strategy design: real astrophysics, wormhole logistics and delayed communication across ten light-years.HTML / CSS / JavaScriptLive ↗Code ↗
  • 2026Project RepublicaPrototypeA country-management game set in Portugal.JavaScriptLive ↗Code ↗
  • 2026Life SimArchivedAn earlier artificial-life simulation in Python. 102 commits.PythonCode ↗
  • 2025Particle LifeCompleteSix particle types, one attraction matrix, and life-like structures that nobody programmed. JIT-compiled with Numba.Python / NumPy / NumbaCode ↗
  • 2025Particle SimulatorCompleteA 2D astrophysical simulator with Barnes–Hut gravity, inelastic collisions and thermodynamics, producing orbits, accretion discs and stellar explosions.Python / NumPy / NumbaCode ↗
  • 2025Agent-Based Economy (Python)ArchivedThe first agent-based economy, and the precursor to Econ-Engine.PythonCode ↗
  • 2025Life EngineArchivedAn early experiment in agent physiology.PythonCode ↗
  • 2025Modular World GeneratorCompleteA Python library and design tool that generates self-contained, scientifically grounded worlds for other simulations.Python / PygameCode ↗
  • 2025StasisArchivedA time-use app for focused work, guilt-free play and rest, with rhythms, task scoring and a harmony score. Now open source.React / PWACode ↗
  • 2025Ecosystem EvolutionArchivedAn ecosystem simulation centred on realistic plant life. 127 commits.PythonCode ↗
  • 2025Ant Colony Genetic SimulationCompleteAn ant colony that evolves under natural selection, the project that restarted serious programming in 2025.JavaScript / p5.jsLive ↗Code ↗
  • 2021Nefarious PoliticsArchivedThe website for the political Twitch community, built in 2021.HTML / CSSLive ↗Code ↗

§ 02Engineering ledger

Measured, not claimed.

Live from the GitHub API and refreshed daily: authored commits on each repository’s default branch, including private work, which is listed without names.

Authored commits

Repositories

Contributions, past year

Repositories, most active first

Background

How I got here

I learned Python for my IGCSEs and JavaScript in IB Computer Science at Higher Level, and took a summer course in machine learning and deep neural networks at Imperial College London in 2018.

For years my programming came in waves: game prototypes, and a website for my political streaming community. Large language models changed how fast I could iterate. In March 2025 I returned seriously with an ant-colony simulation, and have not stopped since: particle systems, ecosystems, agent-based economies, a reinforcement-learning environment, and the software I use to run my own life.