Why this exists
I got interested in artificial life (alife), or the idea that a few simple rules are enough to produce something that behaves like it's alive. I wanted somewhere to actually experiment with it rather than watch someone else's finished demo. So I built the sandbox I wanted with Claude.
EntLab is short for Entity Lab. An Ent is one entity, a single cell that is either there or not. The lab part is the point of this thing, nothing is hardcoded. You can change or edit the rulesets for worlds whenever.
What you get
Rules you write
A ruleset is a single .py file defining step(world).
Nine examples are included.
Drawing tools
Place, select, move, and shapes, with brush sizes 1–10. Copy any patch and stamp it anywhere, rotating and flipping as you go.
Go forwards or backwards in time
Every tick is recorded, so you can step backward as well as forward at many speeds, with a reset button taking you to when you pressed play last.
Watch the population
A live sparkline of how many Ents exist makes booms and collapses legible. A minimap shows where you are on big boards.
Boards up to 2048²
Vectorised rules stay comfortable at scale, Conway runs about 2 ms per tick on a 1000×1000 grid. Speed goes from ×0.1 to ×1000.
One file is a whole world
Saving writes a .grid with the ruleset's source
embedded, so a world you send someone always runs. Drag it onto the
window to open it.
Conway's Life
This is a complete, working ruleset. NOT an excerpt:
def step(world):
n = world.neighbor_counts()
world.cells[:] = (n == 3) | (world.cells & (n == 2))
world.cells is a live NumPy array, so whole-grid rules stay
short and fast. Per-cell get / set works
too, which is how you write things that aren't cellular automata at all.
The included gravity ruleset makes Ents fall and stack, and
langtons_ant is a walker that keeps its own state.
Get it
In your browser
Nothing to install. The web version isn't a lookalike. It is the same Python program compiled to WebAssembly, with the same menus, tools and keybinds. The first visit downloads a Python runtime of about 15 MB, then it's cached.
As an app
Download for macOS or Windows, unzip, open. No Python needed. Your
rulesets, worlds and logs live in Documents/EntLab as plain
files you can browse and drop things into.
From source
With Python 3.8 or newer from python.org,
double-click EntLab.command on macOS or
Launch EntLab.pyw on Windows. Nothing to set up either way,
and the first run installs pygame and NumPy for you. From a terminal it's
python3 main.py. Source runs keep every file in the one
folder.