| --- |
| title: Digital Life Evolution Simulator |
| emoji: 𧬠|
| colorFrom: blue |
| colorTo: red |
| sdk: static |
| pinned: false |
| short_description: A self-evolving ecosystem that runs entirely in the browser |
| --- |
| |
| # Digital Life Evolution Simulator |
|
|
| A self-evolving AI ecosystem where autonomous entities compete, reproduce, and adapt through neural networks and genetic algorithms. Watch digital life emerge and evolve in real-time. |
|
|
| ## What It Does |
|
|
| This simulation creates a population of AI entities with unique genomes that control their behavior through neural networks. Each entity: |
|
|
| - **Perceives** its environment (food, energy, other entities) |
| - **Decides** actions based on neural network processing |
| - **Adapts** through natural selection - successful traits get passed to offspring |
| - **Evolves** over generations as mutations introduce variation |
|
|
| Four entity types exist: |
|
|
| - **Gatherers** - Collect food and energy efficiently |
| - **Predators** - Hunt and consume other entities |
| - **Builders** - Create structures and territorial markers |
| - **Explorers** - Scavenge and discover new resources |
|
|
| ## Quick Start |
|
|
| ```bash |
| # Start a local server |
| npx serve . |
| # or |
| python3 -m http.server 8000 |
| |
| # Open in browser |
| http://localhost:8000 |
| ``` |
|
|
| ## Features |
|
|
| - **Neural Network AI** - Each entity has a unique brain with 80+ configurable parameters |
| - **Genetic Algorithm** - Reproduction with crossover and mutation |
| - **Spatial Awareness** - Efficient spatial hashing for proximity detection |
| - **Real-time Stats** - Track population, generations, fitness, and neural activity |
| - **Visual Feedback** - See neural network activations while watching decisions |
|
|
| ## Tech Stack |
|
|
| - Pure vanilla JavaScript (ES2022 modules) |
| - HTML5 Canvas rendering |
| - No build step, no dependencies |
|
|
| ## Project Structure |
|
|
| ``` |
| js/ |
| βββ ecosystem.js # Main loop, initialization |
| βββ world.js # Environment, resource spawning |
| βββ entities.js # Entity behavior logic |
| βββ entityManager.js # Lifecycle management |
| βββ genetics.js # Genome creation, reproduction |
| βββ neuralNetwork.js # AI decision-making |
| βββ particles.js # Visual effects |
| βββ stats.js # Performance telemetry |
| βββ ui.js # Controls, event logs |
| βββ utils.js # Math, object pools, spatial grid |
| ``` |
|
|
| ## How Evolution Works |
|
|
| 1. **Selection** - Entities with higher fitness are more likely to reproduce |
| 2. **Crossover** - Two parents combine their neural network weights |
| 3. **Mutation** - Random Gaussian noise introduces variation |
| 4. **Survival** - Less fit entities die; successful traits propagate |
|
|
| Over time, you'll observe emergent behaviors as entities adapt to the competitive environment. |
|
|