Evolution.io is a simulation project built in TypeScript on top of a lightweight in-house engine (Phoenix.Engine).
It simulates interactions between carnivores, herbivores and plants on a large procedurally-generated map and produces rich emergent behaviours (hunting, fleeing, reproduction, foraging). The engine is optimized for performance and can handle very large populations (>55k animals on an average machine) while keeping deterministic simulation features and good visual responsiveness.
- Agent-based ecosystem simulation with emergent behaviour
- Efficient spatial structures and rendering (PixiJS) for large entity counts
- Configurable genetics, movement, combat and reproduction systems
- TypeScript codebase with modular systems for simulation, rendering and UI
The project uses multithreading to run rendering and physics loops in parallel. Rendering-related systems (camera, layers, UI, input handling, etc.) are implemented in src/rendering. Physics, AI, and entity interaction logic are located in src/physics.
Although the app runs entirely in the browser, Node.js (v20 or higher) is required for development to start the local server that serves the static files.
- Install dependencies:
npm install- Run the project locally (it should automatically open in a browser tab, otherwise, navigate to
http://localhost:5173).
npm run devView and experiment locally only — redistribution or production use is prohibited. See LICENSE.
