The one stop shop for artificial chemistry
Browse chemistries and reaction networks that people share, and load any of them into your code in one line.
Load a chemistry
import chemart
net = chemart.generate_network("chemart/brusselator", seed=0)
print(net.to_text())Share yours
chemart new my-chem # edit it chemart check my-chem chemart push my-chem # opens a pull request
Fresh on the shelf
See all →Run this one backwards from the others: instead of building a chemistry, it reads one out of a program. The registers of a virtual machine are the species, so an instruction like r3 <- r1 op r2 is read as the reaction r1 + r2 -> r3, and the instructions are drawn in random order…
The chemistry that gave the field its vocabulary. Molecules are lambda-expressions in normal form, and a collision applies one to the other: s1 + s2 -> s1 + s2 + normal_form(s1 applied to s2). Both reactants survive, so every molecule is simultaneously a function and a datum for…
Concentrations used as analog numbers. Pick reactions whose steady state satisfies the algebraic relation you want, then read the answer off the output species once it settles: X -> X + Y together with 2Y -> nothing balances at y = sqrt(k1 x / 2 k2), so a square root falls out o…
The simplest possible rewriting chemistry: a bag of symbols and a list of rules like 'aaa -> c' or 'a -> abba'. Everything interesting comes from how the rules are applied. Rules that enlarge a molecule are called heating and rules that shrink it cooling, and the order they are …
The cheapest constructive chemistry that still does something interesting. Molecules are 32-bit words, and a collision treats the first word as a finite automaton that consumes the second and emits a third: s1 + s2 -> s1 + s2 + A_s1(s2). Both reactants survive, so every string i…
The model that named computational autopoiesis. A lattice holds substrate, a catalyst and links. The catalyst turns two neighbouring substrates into a link; links bond to adjacent links into chains; and links spontaneously decay back to substrate. Nothing tells the system to bui…
The book chemistries · 70 official repos from Banzhaf & Yamamoto
All 70 →Run this one backwards from the others: instead of building a chemistry, it reads one out of a program. The registers of a virtual machine are the species, so an instruction like r3 <- r1 op r2 is read as the reaction r1 + r2 -> r3, and the instructions are drawn in random order…
The chemistry that gave the field its vocabulary. Molecules are lambda-expressions in normal form, and a collision applies one to the other: s1 + s2 -> s1 + s2 + normal_form(s1 applied to s2). Both reactants survive, so every molecule is simultaneously a function and a datum for…
Concentrations used as analog numbers. Pick reactions whose steady state satisfies the algebraic relation you want, then read the answer off the output species once it settles: X -> X + Y together with 2Y -> nothing balances at y = sqrt(k1 x / 2 k2), so a square root falls out o…
The simplest possible rewriting chemistry: a bag of symbols and a list of rules like 'aaa -> c' or 'a -> abba'. Everything interesting comes from how the rules are applied. Rules that enlarge a molecule are called heating and rules that shrink it cooling, and the order they are …
The cheapest constructive chemistry that still does something interesting. Molecules are 32-bit words, and a collision treats the first word as a finite automaton that consumes the second and emits a third: s1 + s2 -> s1 + s2 + A_s1(s2). Both reactants survive, so every string i…
The model that named computational autopoiesis. A lattice holds substrate, a catalyst and links. The catalyst turns two neighbouring substrates into a link; links bond to adjacent links into chains; and links spontaneously decay back to substrate. Nothing tells the system to bui…
What Kauffman's autocatalytic sets look like once you give them kinetics. Polymers split and join, and any polymer can catalyse a reaction, multiplying both directions of it. Run in a chemostat - food flows in, everything washes out - and mass concentrates onto a small mutually-…
A random reaction network built to be thermodynamically honest. Each abstract chemical gets a random free energy of formation; reactions are drawn as association, dissociation and transformation steps, and every backward rate is then computed from the forward one so detailed bal…
Reactivity that is not declared but *measured*. Each atom is a small one-dimensional cellular automaton, and its type is the Wolfram rule that runs it. To decide whether two atoms bond, you let their dynamics settle and read an emergent property - the mean polarity - then compar…
Membranes as the active element rather than the container. A system is a nest of membranes, and each membrane carries a program of actions: phagocytosis engulfs a neighbour, exocytosis expels contents and fuses, pinocytosis buds an empty vesicle inward, mating fuses two membrane…
The minimal oscillator, and the standard first test for anything that handles reaction networks. Two species are held constant as reservoirs, two are dynamic, and the autocatalytic step 2X + Y -> 3X provides the feedback. Push the parameter b past 1 + a^2 and the steady state lo…
A chemistry nobody wrote down - it is read out of a cellular automaton. Run a one-dimensional CA and its space-time pattern separates into regular domains; the moving boundaries between domains behave like localised, persistent objects. Treat those *particles* as the molecules a…