Raise a
small world.
Give a process a memory, a boundary, and a place to act. Let its encounters change what it becomes.
A short, hands-on introduction.
Touch the figures. Follow the consequences.
A loop that acquires a history.
A signal arrives. A boundary admits some of it. Memory changes the next response. The response changes the surroundings. A being takes shape through that exchange.[1]
In this world, a slow core carries identity, a quicker membrane adapts, and the environment keeps moving. “Being” names this continuing process; consciousness is not established by the model.
Above: openness changes responsiveness; memory changes how long an encounter matters. This is a small explanatory model of the experience’s three timescales.
Small rules. Shared consequences.
A flock can form through nearby encounters. Digital organisms can inherit variation and face selection. Our beings draw on both traditions: nourishment, movement, cooperation, competition, division, and decay.[2][3]
Change one encounter and watch the histories separate. Deterministic sensitivity and fresh random choices are different mechanisms. Neither means “anything can happen.” The rules still matter.
The full ecosystem uses host-supplied random draws, bounded genes and finite capacity. It explores an evolving space; unlimited open-ended evolution is a further research challenge.[4]
A body is a way to take part.
The same lineage can try different forms: a light-sensitive silicon body, a structure held in tension, a compliant lattice. Shape changes what a being senses, how it moves, and what activity costs.[1][5]
Let a candidate mutate. Keep a better geometry. Carry its CAD, parts, materials, and controller outside the browser. Physical fabrication and testing are the next stages; a geometry score alone does not complete them.
The idea travels with the loop.
State → input → update → effects → state. Any language able to express those operations can host this idea. The host supplies time, storage, signals, and bodies. Numeric precision and scheduling can change a history.
The JavaScript deck treats programming as a material for signals and relationships across scales. Below, three languages express one tiny integer model. The downloadable full ecology currently runs in JavaScript.[6]
JavaScript arrives with a habitat.
The browser puts a rich set of interfaces beside the program. These are host capabilities around the language, which is why the same core can also run in Node.[7]
Events
Touch, pointers and keys become encounters.
Canvas + audio
State takes visible and audible form.
Saved state
A world carries memory and exact body plans.
WebRTC
Live peers exchange descendants and learned state.
Worker pools
Batch simulation work away from the interface.
JSON + files
A terminal or desktop harness can take over.
Worker pools are a scaling route, not the current engine’s implementation. A worker per being is costly. Peer discovery needs signaling; some routes need a relay. Closed tabs do not continue computing.[8][9]
Your first minute.
Meet one.
Conjure creates a new being. Shape me opens its traits.
02 → TouchLeave a memory.
Draw from its edge. Adjust what it keeps and what it lets in.
03 → ReleaseLet it wander.
Nourish it, then Release me. Watch bonds, births, and returns.
04 → EmbodyTry a body.
Choose a material family. Evolve a blueprint. Divide into its model.
05 → ConnectGrow company.
Add a world, cross into it, or connect a separately launched habitat.
06 → CarryMake it yours.
Save a world. Bring it into your editor, terminal, or coding harness.
Each browser habitat holds up to 24 worlds, with 100 beings per world. More independent instances bring more capacity. They still share the limits of their machines.
Uncertainty calls for boundaries.
Prediction has limits. Damage can be simple. A process can exhaust a shared resource without predicting the detailed future of every neighbor.
Try the shock, then partition the worlds. The useful question becomes concrete: what can a failure reach, what budget can it spend, and what can recover?
Finite Rule 30 patterns illustrate complicated histories; this display proves no irreducibility claim. The resource mechanism is deliberately simple. Read the position paper →
Begin with one encounter.
Watch. Change a condition. Save what matters. Give the next generation room to surprise you.
Research and grounding
- Russell Foltz-Smith. Computational Beings, pp. 2–10, 15–16.Author-provided deck. Continuing identity, shared consequences, memory timescales and body blueprints.
- Craig W. Reynolds. “Flocks, Herds, and Schools: A Distributed Behavioral Model” (1987).Local perception and interaction can produce flock-level coordination.
- Richard E. Lenski et al. “The evolutionary origin of complex features” (2003).Experiments with digital organisms. The present ecology is a separate model.
- Tim Taylor et al. “Open-Ended Evolution: Perspectives from the OEE Workshop in York” (2016).Why sustained novelty requires more than a long run.
- Sam Kriegman et al. “How morphological development can guide evolution” (2018).Development, morphology and the search for useful embodied behavior.
- Russell Foltz-Smith. JavaScript’s Vital Murmuration (29 October 2020), pp. 3–14, 20–24.Author-provided deck. Signs, relations, signals, cross-scale feedback and heterogeneous material expression.
- Ecma International. ECMAScript Language Specification (2026), overview.The language and its host environment have distinct responsibilities.
- WHATWG. HTML Living Standard: Web workers.Background execution and the overhead of worker instances.
- MDN. WebRTC connectivity.Signaling, ICE, STUN and TURN; peer connections are not persistent hosting.