<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Simulation on AIBussin — AI applications, systems and books</title>
		<link>https://aibussin.com/categories/simulation/</link>
		<description>Recent content in Simulation on AIBussin — AI applications, systems and books</description>
		<generator>Hugo</generator>
		<language>en-US</language>
		
		
		
		
			<lastBuildDate>Mon, 10 Aug 2026 18:59:00 +0100</lastBuildDate>
		
			<atom:link href="https://aibussin.com/categories/simulation/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>How Can Tiny Rules Build Complex Worlds?</title>
				<link>https://aibussin.com/books/cellular-automata-from-first-principles/01-chapter/</link>
				<pubDate>Mon, 10 Aug 2026 18:20:00 +0100</pubDate>
				<guid>https://aibussin.com/books/cellular-automata-from-first-principles/01-chapter/</guid>
				<description>&lt;p&gt;A cellular automaton begins with almost nothing.&lt;/p&gt;&#xA;&lt;p&gt;You need:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;a collection of cells,&lt;/li&gt;&#xA;&lt;li&gt;a state for each cell,&lt;/li&gt;&#xA;&lt;li&gt;a neighborhood,&lt;/li&gt;&#xA;&lt;li&gt;and a rule that tells each cell what to become next.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;That is enough.&lt;/p&gt;&#xA;&lt;p&gt;There is no central controller.&lt;/p&gt;&#xA;&lt;p&gt;There is no object that knows what the final pattern should look like.&lt;/p&gt;&#xA;&lt;p&gt;There is only local state changing through time.&lt;/p&gt;&#xA;&lt;p&gt;And yet some local rules produce stripes, fronts, oscillators, moving structures, traffic waves, cave systems, self-repairing patterns, and systems rich enough to perform computation.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Build Your First Automaton</title>
				<link>https://aibussin.com/books/cellular-automata-from-first-principles/02-chapter/</link>
				<pubDate>Mon, 10 Aug 2026 18:21:00 +0100</pubDate>
				<guid>https://aibussin.com/books/cellular-automata-from-first-principles/02-chapter/</guid>
				<description>&lt;p&gt;In the previous chapter we reduced a cellular automaton to four things:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;space&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;state&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;neighborhood&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;rule&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Now we are going to build one.&lt;/p&gt;&#xA;&lt;p&gt;Not a framework.&lt;/p&gt;&#xA;&lt;p&gt;Not a library.&lt;/p&gt;&#xA;&lt;p&gt;One update step.&lt;/p&gt;&#xA;&lt;p&gt;That is enough to expose the whole mechanism.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;start-with-a-one-dimensional-world&#34;&gt;Start with a one-dimensional world&lt;/h2&gt;&#xA;&lt;p&gt;Create a row of cells and turn on the center cell:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; numpy &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; np&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;width &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;41&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;state &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; np&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;zeros(width, dtype&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;np&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;uint8)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;state[width &lt;span style=&#34;color:#f92672&#34;&gt;//&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;] &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(state)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Conceptually:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;....................#....................&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;We will use &lt;code&gt;0&lt;/code&gt; for an empty cell and &lt;code&gt;1&lt;/code&gt; for an active cell.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Encode All 256 Elementary Rules</title>
				<link>https://aibussin.com/books/cellular-automata-from-first-principles/03-chapter/</link>
				<pubDate>Mon, 10 Aug 2026 18:22:00 +0100</pubDate>
				<guid>https://aibussin.com/books/cellular-automata-from-first-principles/03-chapter/</guid>
				<description>&lt;p&gt;In the previous chapter we built one rule: a cell becomes active when exactly one of its three neighbors is active. That turned out to be Rule 22, but we treated it as a hand-written function.&lt;/p&gt;&#xA;&lt;p&gt;Now we generalize. Instead of writing one function per rule, we encode every possible elementary rule as a single integer — and get all 256 automata for the price of one simulator.&lt;/p&gt;&#xA;&lt;p&gt;An elementary cellular automaton has only three inputs per cell:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Rule 30 and the Surprise of Complexity</title>
				<link>https://aibussin.com/books/cellular-automata-from-first-principles/04-chapter/</link>
				<pubDate>Mon, 10 Aug 2026 18:23:00 +0100</pubDate>
				<guid>https://aibussin.com/books/cellular-automata-from-first-principles/04-chapter/</guid>
				<description>&lt;p&gt;The previous chapter gave us a simulator that can run any of the 256 elementary rules. Now we pick one and look at it closely. Rule 30 is the standard demonstration of why cellular automata are worth studying.&lt;/p&gt;&#xA;&lt;p&gt;Its transition table contains eight bits — the same encoding as in the previous chapter, repeated here so you can check the simulator line by line:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;111 110 101 100 011 010 001 000&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 0   0   0   1   1   1   1   0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Start from one active cell and repeatedly apply that rule.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Rule 110 and Computation in a Grid</title>
				<link>https://aibussin.com/books/cellular-automata-from-first-principles/05-chapter/</link>
				<pubDate>Mon, 10 Aug 2026 18:24:00 +0100</pubDate>
				<guid>https://aibussin.com/books/cellular-automata-from-first-principles/05-chapter/</guid>
				<description>&lt;p&gt;Rule 110 looks like another one-byte transition table.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;111 110 101 100 011 010 001 000&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 0   1   1   0   1   1   1   0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;But its behavior gives us a much deeper idea: a cellular automaton can become a computational medium.&lt;/p&gt;&#xA;&lt;p&gt;The important shift is this:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;pattern generator&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      -&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;signal system&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      -&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;computation&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Rule 110 is computationally universal — under suitable encodings and initial conditions. Matthew Cook published the universality proof in &lt;em&gt;Complex Systems&lt;/em&gt; in 2004, settling a conjecture Wolfram had made in the mid-1980s: this elementary one-dimensional automaton can emulate universal computation.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Conway&#39;s Game of Life</title>
				<link>https://aibussin.com/books/cellular-automata-from-first-principles/06-chapter/</link>
				<pubDate>Mon, 10 Aug 2026 18:25:00 +0100</pubDate>
				<guid>https://aibussin.com/books/cellular-automata-from-first-principles/06-chapter/</guid>
				<description>&lt;p&gt;The previous chapter ended on a limit of one dimension: time supplies the second visual axis, but structures cannot move &lt;em&gt;inside&lt;/em&gt; the world. In two dimensions they can. Conway&amp;rsquo;s Game of Life is one of the cleanest examples of intricate two-dimensional behavior emerging from a tiny local rule.&lt;/p&gt;&#xA;&lt;p&gt;John Conway devised it in 1970; Martin Gardner&amp;rsquo;s October 1970 &lt;em&gt;Scientific American&lt;/em&gt; column introduced it to a wide audience and triggered the volunteer zoology of patterns — still lifes, oscillators, spaceships — that made Life the most studied cellular automaton in history.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Patterns as Data — Oscillators, Spaceships and Gliders</title>
				<link>https://aibussin.com/books/cellular-automata-from-first-principles/07-chapter/</link>
				<pubDate>Mon, 10 Aug 2026 18:26:00 +0100</pubDate>
				<guid>https://aibussin.com/books/cellular-automata-from-first-principles/07-chapter/</guid>
				<description>&lt;p&gt;Once we can run Conway&amp;rsquo;s Game of Life, the next step is not to add more graphics.&lt;/p&gt;&#xA;&lt;p&gt;It is to make the patterns themselves inspectable.&lt;/p&gt;&#xA;&lt;p&gt;A blinker is not interesting because somebody named it.&lt;/p&gt;&#xA;&lt;p&gt;It is interesting because it returns to the same state after two generations — a testable dynamical property, not an aesthetic judgment. Throughout this chapter, &amp;ldquo;interesting&amp;rdquo; always cashes out into something executable: a period, a displacement, a fingerprint match.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Beyond Conway — Life-like and Multi-State Rules</title>
				<link>https://aibussin.com/books/cellular-automata-from-first-principles/08-chapter/</link>
				<pubDate>Mon, 10 Aug 2026 18:27:00 +0100</pubDate>
				<guid>https://aibussin.com/books/cellular-automata-from-first-principles/08-chapter/</guid>
				<description>&lt;p&gt;The previous chapter ended on a causal direction: the rule produces the structures, and only then do we give the structures names. Change the rule and the names change with it.&lt;/p&gt;&#xA;&lt;p&gt;That matters because Conway&amp;rsquo;s Game of Life is famous enough that it can accidentally become the definition of cellular automata.&lt;/p&gt;&#xA;&lt;p&gt;It is not.&lt;/p&gt;&#xA;&lt;p&gt;Life is one point in a much larger design space.&lt;/p&gt;&#xA;&lt;p&gt;Keep the same two-dimensional grid and the same eight-cell Moore neighborhood, then change only the birth and survival counts.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Add Randomness Without Losing the Model</title>
				<link>https://aibussin.com/books/cellular-automata-from-first-principles/09-chapter/</link>
				<pubDate>Mon, 10 Aug 2026 18:34:00 +0100</pubDate>
				<guid>https://aibussin.com/books/cellular-automata-from-first-principles/09-chapter/</guid>
				<description>&lt;p&gt;So far every transition in the book has been deterministic.&lt;/p&gt;&#xA;&lt;p&gt;Given the same state, the next state is fixed.&lt;/p&gt;&#xA;&lt;p&gt;That makes deterministic automata unusually easy to debug: if we preserve the initial condition and rule, we preserve the trajectory.&lt;/p&gt;&#xA;&lt;p&gt;But many useful models need another ingredient.&lt;/p&gt;&#xA;&lt;p&gt;A tree may ignite.&lt;/p&gt;&#xA;&lt;p&gt;An organism may reproduce.&lt;/p&gt;&#xA;&lt;p&gt;A driver may hesitate.&lt;/p&gt;&#xA;&lt;p&gt;A material defect may appear.&lt;/p&gt;&#xA;&lt;p&gt;The local rule can still be precise even when the outcome is probabilistic.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Build a Forest Fire Simulation</title>
				<link>https://aibussin.com/books/cellular-automata-from-first-principles/10-chapter/</link>
				<pubDate>Mon, 10 Aug 2026 18:36:00 +0100</pubDate>
				<guid>https://aibussin.com/books/cellular-automata-from-first-principles/10-chapter/</guid>
				<description>&lt;p&gt;The previous chapter put probability into the rule. A forest fire is almost an ideal first exercise for using it.&lt;/p&gt;&#xA;&lt;p&gt;The visible states are obvious:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;0 = empty&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;1 = tree&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;2 = burning&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The interactions are local.&lt;/p&gt;&#xA;&lt;p&gt;And small changes in fuel density or ignition assumptions can produce very different global outcomes.&lt;/p&gt;&#xA;&lt;p&gt;This is not intended as a high-fidelity wildfire model.&lt;/p&gt;&#xA;&lt;p&gt;It is a deliberately simplified &lt;strong&gt;spread model&lt;/strong&gt; designed to isolate one mechanism:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Simulate Traffic with Rule 184</title>
				<link>https://aibussin.com/books/cellular-automata-from-first-principles/11-chapter/</link>
				<pubDate>Mon, 10 Aug 2026 18:38:00 +0100</pubDate>
				<guid>https://aibussin.com/books/cellular-automata-from-first-principles/11-chapter/</guid>
				<description>&lt;p&gt;The forest fire consumed its fuel. Rule 184 is the opposite case: a conserved quantity that moves. It is also a clean example of going from an abstract rule table to a model with a concrete interpretation.&lt;/p&gt;&#xA;&lt;p&gt;Use a one-dimensional ring road:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;1 = car&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;0 = empty road&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;A car moves one cell to the right when the destination is empty.&lt;/p&gt;&#xA;&lt;p&gt;That is enough to produce free flow, queues and a macroscopic density-flow relationship.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Diffusion as Local Exchange</title>
				<link>https://aibussin.com/books/cellular-automata-from-first-principles/12-chapter/</link>
				<pubDate>Mon, 10 Aug 2026 18:40:00 +0100</pubDate>
				<guid>https://aibussin.com/books/cellular-automata-from-first-principles/12-chapter/</guid>
				<description>&lt;p&gt;Until now most cells have stored discrete state:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;0 / 1&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;empty / tree / fire&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;road / car&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Now let each cell store a continuous quantity.&lt;/p&gt;&#xA;&lt;p&gt;For diffusion:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;state[y, x] = concentration&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The local transition is no longer birth, death or movement.&lt;/p&gt;&#xA;&lt;p&gt;It is local exchange.&lt;/p&gt;&#xA;&lt;p&gt;This steps outside the strict finite-state definition — a deliberate extension, flagged as such, that the book will keep developing through reaction-diffusion, Lenia, and learned automata.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Reaction-Diffusion and Pattern Formation</title>
				<link>https://aibussin.com/books/cellular-automata-from-first-principles/13-chapter/</link>
				<pubDate>Mon, 10 Aug 2026 18:42:00 +0100</pubDate>
				<guid>https://aibussin.com/books/cellular-automata-from-first-principles/13-chapter/</guid>
				<description>&lt;p&gt;Diffusion smooths differences.&lt;/p&gt;&#xA;&lt;p&gt;Reaction can amplify them.&lt;/p&gt;&#xA;&lt;p&gt;Put the two processes together and a nearly uniform field can develop persistent spots, stripes and fronts.&lt;/p&gt;&#xA;&lt;p&gt;We will use a discrete Gray-Scott reaction-diffusion simulation because it gives us a compact bridge from local cellular updates to continuous pattern-forming dynamics. The model originates with Gray and Scott&amp;rsquo;s autocatalytic chemistry; John Pearson&amp;rsquo;s 1993 &lt;em&gt;Science&lt;/em&gt; paper showed that finite-amplitude perturbations of it produce a surprising variety of spatiotemporal patterns — which is exactly the experiment this chapter runs.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Build a Predator-Prey Ecosystem</title>
				<link>https://aibussin.com/books/cellular-automata-from-first-principles/14-chapter/</link>
				<pubDate>Mon, 10 Aug 2026 18:44:00 +0100</pubDate>
				<guid>https://aibussin.com/books/cellular-automata-from-first-principles/14-chapter/</guid>
				<description>&lt;p&gt;Gray-Scott, like the forest fire, transforms each cell in place.&lt;/p&gt;&#xA;&lt;p&gt;Rule 184 moves occupancy, but in one constrained direction.&lt;/p&gt;&#xA;&lt;p&gt;An ecosystem adds a harder problem:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;organisms move&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;organisms reproduce&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;predators consume prey&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;several organisms may want one destination&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Now local intentions can conflict.&lt;/p&gt;&#xA;&lt;p&gt;That means update semantics become part of the model.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;separate-visible-kind-from-internal-state&#34;&gt;Separate visible kind from internal state&lt;/h2&gt;&#xA;&lt;p&gt;Start with:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;0 = empty&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;1 = prey&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;2 = predator&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; numpy &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; np&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;EMPTY &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;PREY &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;PREDATOR &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kind &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; np&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;zeros(&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#ae81ff&#34;&gt;100&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;100&lt;/span&gt;),&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    dtype&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;np&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;uint8,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;A richer model may need predator energy, age or reproduction state.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Measure a Cellular Automaton</title>
				<link>https://aibussin.com/books/cellular-automata-from-first-principles/18-chapter/</link>
				<pubDate>Mon, 10 Aug 2026 18:50:00 +0100</pubDate>
				<guid>https://aibussin.com/books/cellular-automata-from-first-principles/18-chapter/</guid>
				<description>&lt;p&gt;Up to this point we have mostly &lt;strong&gt;looked at&lt;/strong&gt; cellular automata.&lt;/p&gt;&#xA;&lt;p&gt;That is useful.&lt;/p&gt;&#xA;&lt;p&gt;It is also limiting. Part II closed by asking how we tell which worlds are dynamically interesting, and looking cannot answer that at scale.&lt;/p&gt;&#xA;&lt;p&gt;A human can inspect a handful of spacetime diagrams.&lt;/p&gt;&#xA;&lt;p&gt;We cannot reliably inspect:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;256 elementary rules&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;× several initial conditions&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;× several widths&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;× hundreds of generations&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;× repeated stochastic runs&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;by eye.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Activity, Density and Change</title>
				<link>https://aibussin.com/books/cellular-automata-from-first-principles/19-chapter/</link>
				<pubDate>Mon, 10 Aug 2026 18:51:00 +0100</pubDate>
				<guid>https://aibussin.com/books/cellular-automata-from-first-principles/19-chapter/</guid>
				<description>&lt;p&gt;A cellular automaton can look busy while doing very little that persists.&lt;/p&gt;&#xA;&lt;p&gt;It can also look visually quiet while preserving a small moving structure for hundreds of generations.&lt;/p&gt;&#xA;&lt;p&gt;So we need to separate several properties that are easy to confuse:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;occupancy&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;temporal change&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;spatial variation&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;persistence&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The first three are owned by the previous chapter — &lt;code&gt;density&lt;/code&gt;, &lt;code&gt;change_rate&lt;/code&gt;/&lt;code&gt;change_curve&lt;/code&gt; (our activity observable), and &lt;code&gt;spatial_variation&lt;/code&gt; — and are reused here without redefinition. This chapter adds what they cannot see: whether change persists, where it happens, and how runs end.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Entropy and Information</title>
				<link>https://aibussin.com/books/cellular-automata-from-first-principles/20-chapter/</link>
				<pubDate>Mon, 10 Aug 2026 18:52:00 +0100</pubDate>
				<guid>https://aibussin.com/books/cellular-automata-from-first-principles/20-chapter/</guid>
				<description>&lt;p&gt;A row with almost all zeros is highly predictable.&lt;/p&gt;&#xA;&lt;p&gt;A row containing a balanced mixture of zeros and ones is less predictable.&lt;/p&gt;&#xA;&lt;p&gt;Shannon entropy gives us a precise way to measure that uncertainty — defined by Claude Shannon in 1948 as the expected surprise of a distribution, measured here in bits (base 2).&lt;/p&gt;&#xA;&lt;p&gt;This chapter formally owns what Chapter 3 previewed: the preview &lt;code&gt;binary_entropy&lt;/code&gt; becomes the definition below, with the base convention, edge cases, and limitations stated properly.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Periodicity and Attractors</title>
				<link>https://aibussin.com/books/cellular-automata-from-first-principles/21-chapter/</link>
				<pubDate>Mon, 10 Aug 2026 18:53:00 +0100</pubDate>
				<guid>https://aibussin.com/books/cellular-automata-from-first-principles/21-chapter/</guid>
				<description>&lt;p&gt;Many cellular automata eventually repeat.&lt;/p&gt;&#xA;&lt;p&gt;A fixed point repeats every generation.&lt;/p&gt;&#xA;&lt;p&gt;An oscillator repeats after several generations.&lt;/p&gt;&#xA;&lt;p&gt;On a finite grid, deterministic cellular automata must eventually revisit a previous state because only finitely many states exist.&lt;/p&gt;&#xA;&lt;p&gt;That makes cycle detection a fundamental measurement: where entropy asked how uncertain a state is, recurrence asks whether the dynamics ever come back.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;hash-each-state&#34;&gt;Hash each state&lt;/h2&gt;&#xA;&lt;p&gt;For binary arrays we can store the bytes:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Sensitivity to Initial Conditions</title>
				<link>https://aibussin.com/books/cellular-automata-from-first-principles/22-chapter/</link>
				<pubDate>Mon, 10 Aug 2026 18:54:00 +0100</pubDate>
				<guid>https://aibussin.com/books/cellular-automata-from-first-principles/22-chapter/</guid>
				<description>&lt;p&gt;Change one cell.&lt;/p&gt;&#xA;&lt;p&gt;Then run the same rule twice.&lt;/p&gt;&#xA;&lt;p&gt;If the two futures remain almost identical, the rule is insensitive to that perturbation.&lt;/p&gt;&#xA;&lt;p&gt;If the difference spreads, the rule amplifies local uncertainty.&lt;/p&gt;&#xA;&lt;p&gt;That is one of the cleanest experiments we can perform on a cellular automaton.&lt;/p&gt;&#xA;&lt;p&gt;One language note up front: this chapter says &amp;ldquo;sensitive&amp;rdquo; and &amp;ldquo;irregular,&amp;rdquo; never &amp;ldquo;chaotic&amp;rdquo; in the formal dynamical-systems sense. Whether any cellular automaton earns that stronger word is a classification question for the next chapter, which owns the class vocabulary.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Classify Rule Behavior</title>
				<link>https://aibussin.com/books/cellular-automata-from-first-principles/23-chapter/</link>
				<pubDate>Mon, 10 Aug 2026 18:55:00 +0100</pubDate>
				<guid>https://aibussin.com/books/cellular-automata-from-first-principles/23-chapter/</guid>
				<description>&lt;p&gt;We now have six kinds of measurement. The literature already offers a coarser tool for organizing rules: four broad behavioral classes.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Class I   -&amp;gt; settles to homogeneous behavior&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Class II  -&amp;gt; settles to simple stable or periodic structures&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Class III -&amp;gt; irregular, apparently random behavior&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Class IV  -&amp;gt; persistent local structures and complex interactions&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;These labels are useful vocabulary — phenomenological shorthand from Wolfram&amp;rsquo;s 1980s survey, not formal dynamical-systems theorems. &amp;ldquo;Class III&amp;rdquo; here means &lt;em&gt;Wolfram-class&lt;/em&gt; irregularity, not proven chaos in the mathematical sense; the book has called Rule 30 &amp;ldquo;irregular&amp;rdquo; until now for exactly this reason, and this chapter does not upgrade that word.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Search All 256 Elementary Rules</title>
				<link>https://aibussin.com/books/cellular-automata-from-first-principles/24-chapter/</link>
				<pubDate>Mon, 10 Aug 2026 18:56:00 +0100</pubDate>
				<guid>https://aibussin.com/books/cellular-automata-from-first-principles/24-chapter/</guid>
				<description>&lt;p&gt;Elementary cellular automata give us a rare luxury.&lt;/p&gt;&#xA;&lt;p&gt;The complete rule space is tiny.&lt;/p&gt;&#xA;&lt;p&gt;There are only:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;256 rules&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;So we do not need sampling, intuition or famous examples.&lt;/p&gt;&#xA;&lt;p&gt;We can evaluate every rule.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;build-an-experiment-runner&#34;&gt;Build an experiment runner&lt;/h2&gt;&#xA;&lt;p&gt;Reuse the owned helpers with their real signatures — Chapter 18&amp;rsquo;s runner (rule number, width, generations, seed, single-or-random start) and Chapter 19&amp;rsquo;s fingerprint:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;scan_rules&lt;/span&gt;(width&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;201&lt;/span&gt;, generations&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;200&lt;/span&gt;):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    records &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; []&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; rule &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; range(&lt;span style=&#34;color:#ae81ff&#34;&gt;256&lt;/span&gt;):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        history &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; run_rule(&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            rule,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            width&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;width,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            generations&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;generations,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        )&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        record &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; fingerprint(history)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        record[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;rule&amp;#34;&lt;/span&gt;] &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; rule&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        record[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;mean_entropy&amp;#34;&lt;/span&gt;] &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; float(&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            entropy_curve(history)&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;mean()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        )&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        record[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;compression_ratio&amp;#34;&lt;/span&gt;] &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; compression_ratio(&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            history&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        )&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        record&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;update(recurrence_metrics(history))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        records&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;append(record)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; records&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The hard part is no longer execution.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Search Larger Rule Spaces</title>
				<link>https://aibussin.com/books/cellular-automata-from-first-principles/25-chapter/</link>
				<pubDate>Mon, 10 Aug 2026 18:57:00 +0100</pubDate>
				<guid>https://aibussin.com/books/cellular-automata-from-first-principles/25-chapter/</guid>
				<description>&lt;p&gt;The 256 elementary rules are small enough to enumerate.&lt;/p&gt;&#xA;&lt;p&gt;Most interesting cellular-automata design spaces are not.&lt;/p&gt;&#xA;&lt;p&gt;Add more states, a larger neighborhood, continuous parameters, or several channels and exhaustive search quickly becomes impossible.&lt;/p&gt;&#xA;&lt;p&gt;So we need search strategies.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;why-the-rule-space-explodes&#34;&gt;Why the rule space explodes&lt;/h2&gt;&#xA;&lt;p&gt;For &lt;code&gt;k&lt;/code&gt; possible cell states and a neighborhood containing &lt;code&gt;n&lt;/code&gt; cells, there are:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;k^n possible neighborhood configurations&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;A deterministic rule chooses one of &lt;code&gt;k&lt;/code&gt; outputs for every configuration, giving:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Evolve Rules for Desired Behavior</title>
				<link>https://aibussin.com/books/cellular-automata-from-first-principles/26-chapter/</link>
				<pubDate>Mon, 10 Aug 2026 18:58:00 +0100</pubDate>
				<guid>https://aibussin.com/books/cellular-automata-from-first-principles/26-chapter/</guid>
				<description>&lt;p&gt;Once we can represent a rule, mutate it and measure its behavior, we can evolve cellular automata.&lt;/p&gt;&#xA;&lt;p&gt;The key idea is simple:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;population of rules&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      ↓&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;simulate&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      ↓&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;measure&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      ↓&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;select&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      ↓&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;mutate&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      ↓&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;repeat&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This chapter builds that loop without hiding it behind an optimization framework. &amp;ldquo;Evolution&amp;rdquo; here is algorithmic — genomes, mutation, selection over rule bits — not a biological claim. The genotype is eight bits; the phenotype is the measured trajectory.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Cellular Automata as Computation</title>
				<link>https://aibussin.com/books/cellular-automata-from-first-principles/27-chapter/</link>
				<pubDate>Mon, 10 Aug 2026 18:59:00 +0100</pubDate>
				<guid>https://aibussin.com/books/cellular-automata-from-first-principles/27-chapter/</guid>
				<description>&lt;p&gt;A cellular automaton is a state machine distributed across space.&lt;/p&gt;&#xA;&lt;p&gt;Each cell reads local information, applies the same transition rule, and writes a new state.&lt;/p&gt;&#xA;&lt;p&gt;That is computation in the thin sense: deterministic state transformation. Every automaton in this book computes, in that sense, every step it runs.&lt;/p&gt;&#xA;&lt;p&gt;The deeper question — and the one this chapter formally owns — is whether local patterns can carry, transform and combine information in a way that supports &lt;em&gt;general&lt;/em&gt; computation. Chapter 5 gave the first exposure through Rule 110&amp;rsquo;s gliders; here universality becomes a precise comparative property rather than an impressive example.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
