← Back to work Let's talk

Genetic Simulation

A browser-based 3D simulation: agents driven by genetic algorithms, surviving and evolving across generations in a procedurally generated environment.

Three.jsTypeScriptgenetic-algorithmsLODcreative-tech

Draft. Site under construction.

What this is

An open-ended, browser-based 3D simulation. Small woodland creatures live in a procedurally-generated terrain. Their behavior is not scripted — each creature carries an evolved policy that drives perception and movement. They survive, reproduce, and pass on traits across generations. Sometimes a generation gets noticeably better at navigating its environment. Sometimes it does not. That is the point.

This is not a product. It is range-and-depth evidence — the kind of obsessive, multi-system work that does not show up on a resume bullet point.

What I built

About 16,000 lines of TypeScript on top of Three.js. Custom systems for genetics and inheritance, agent perception, terrain generation, level-of-detail rendering, and scene management. Browser-only — no server, no backend.

Each system is small. The interesting work is in how they compose. A perception model that is too rich kills the frame rate; a genetic representation that is too simple cannot evolve interesting behavior. Most of the project was tuning the relationships between these pieces.

Stack / Approach

Three.js for rendering. TypeScript throughout. Genetic algorithms drive agent behavior. Level-of-detail systems allow the scene to scale to many agents and large terrain without dropping frames. No frameworks beyond what was strictly necessary.

Why it’s here

Most consultants will tell you they go deep on hard problems. This is the demonstration. A browser tab full of evolving creatures is not anyone’s billable engagement. It is what doing the work looks like when no client is asking.

The same instinct that obsesses over LOD-tuning also obsesses over backups, error handling, and operational durability. They are the same instinct, applied to different problems.

← All work