Artificial-life: A 300-line Python reproduction of Computational Life research

What this is
Artificial-life is a 300-line Python reproduction of the Computational Life research paper 'How Well-formed, Self-replicating Programs Emerge from Simple Interaction.' It simulates emergent self-replication in a grid of simple programs.
How it works
The simulation uses a 240x135 grid containing 64 instruction-length Brainfuck-like programs that are randomly initialized. Each iteration follows this process:
- Neighboring programs are randomly paired
- Their instruction tapes are concatenated together
- The combined program runs for a maximum of 213 steps
- After execution, the tapes are split back apart
The instructions can loop and mutate the instruction tapes themselves. As described in the original paper, self-replicating programs that copy themselves over their neighbor's tape often spontaneously emerge and spread to take over the entire grid.
Visual representation and running
Each pixel represents an instruction with unique colors, while black indicates raw data storage (not an instruction). Every 8x8 pixel section represents a single program.
To run a simulation with seed 1:
uv run main.py --seed 1In this specific run, a self-replicator emerges relatively early and takes over most of the grid until a more efficient self-replicator evolves and dominates everything.
The repository includes example outputs: universe.gif and universe.mp4 showing the simulation progress.
Technical details
The project uses Python exclusively (100.0% according to GitHub language detection) and includes standard Python project files: pyproject.toml, uv.lock, and .python-version.
This implementation demonstrates how complex emergent behavior can arise from simple interaction rules, specifically showing how self-replicating programs can evolve without explicit programming for replication.
📖 Read the full source: HN AI Agents
👀 See Also

JetBrains Introduces Plugin for Modern Go Code with AI Agents Junie and Claude Code
JetBrains has released a plugin for AI agents Junie and Claude Code, enhancing their ability to generate modern Go code by adhering to the latest Go features and best practices.

MCP Support Merged into llama.cpp with New WebUI Features
The Model Context Protocol (MCP) pull request for llama.cpp has been merged, adding MCP support, tool calls, an agentic loop, and a server selector to the llama-server/WebUI side.

llm-idle-timeout Fires at 2 Minutes on N100/WSL2 Despite timeoutSeconds Setting
A user reports that the idle watchdog in OpenClaw fires after 2 minutes on N100/WSL2 hardware, ignoring the timeoutSeconds=300 setting, due to slow gateway startup (45+ seconds) and no configurable noOutputTimeoutMs.

latexnav: Python Tool for LLM and Human Navigation of LaTeX Files
latexnav is a free open source Python tool that parses LaTeX files to extract structural elements like theorems, definitions, sections, labels, cross-references, and dependencies, providing summaries with authoritative line numbers to help LLMs and humans navigate large manuscripts efficiently.