<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Artificial Life on AIBussin — AI applications, systems and books</title>
		<link>https://aibussin.com/categories/artificial-life/</link>
		<description>Recent content in Artificial Life on AIBussin — AI applications, systems and books</description>
		<generator>Hugo</generator>
		<language>en-US</language>
		
		
		
		
			<lastBuildDate>Sat, 15 Aug 2026 05:00:00 +0100</lastBuildDate>
		
			<atom:link href="https://aibussin.com/categories/artificial-life/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>01: How to Read This Book</title>
				<link>https://aibussin.com/books/digital-life/01-how-to-read-this-book/</link>
				<pubDate>Fri, 14 Aug 2026 08:30:00 +0100</pubDate>
				<guid>https://aibussin.com/books/digital-life/01-how-to-read-this-book/</guid>
				<description>&lt;p&gt;This is a science book, but you do not need to reproduce every experiment to read it. You can simply follow the investigation: watch something strange appear, notice the explanation we reached for, see how the experiment tested it, then ask what survived.&lt;/p&gt;&#xA;&lt;p&gt;If that is all you want from the book, the main text is enough. But every important result sits above a deeper record, and that record is available if you want to inspect it.&lt;/p&gt;</description>
			</item>
			<item>
				<title>02: What Would Digital Life Mean?</title>
				<link>https://aibussin.com/books/digital-life/02-what-is-digital-life/</link>
				<pubDate>Fri, 14 Aug 2026 09:00:00 +0100</pubDate>
				<guid>https://aibussin.com/books/digital-life/02-what-is-digital-life/</guid>
				<description>&lt;p&gt;Suppose life were possible in software.&lt;/p&gt;&#xA;&lt;p&gt;What would we actually be looking for?&lt;/p&gt;&#xA;&lt;p&gt;The honest answer is that we do not know yet, and that is the reason for this book.&lt;/p&gt;&#xA;&lt;p&gt;We could certainly build something that looks alive: a graphical creature, an animated agent, a personality-driven assistant. That is not the experiment. The harder question is whether a computational system can produce, through its own operation, properties that justify some of the language we associate with living things.&lt;/p&gt;</description>
			</item>
			<item>
				<title>02: What Would Digital Life Mean?</title>
				<link>https://aibussin.com/books/digital-life/02-what-would-digital-life-mean/</link>
				<pubDate>Fri, 14 Aug 2026 09:00:00 +0100</pubDate>
				<guid>https://aibussin.com/books/digital-life/02-what-would-digital-life-mean/</guid>
				<description>&lt;p&gt;Suppose life were possible in software.&lt;/p&gt;&#xA;&lt;p&gt;What would we actually be looking for?&lt;/p&gt;&#xA;&lt;p&gt;The honest answer is that we do not know yet, and that is the reason for this book.&lt;/p&gt;&#xA;&lt;p&gt;We could certainly build something that looks alive: a graphical creature, an animated agent, a personality-driven assistant. That is not the experiment. The harder question is whether a computational system can produce, through its own operation, properties that justify some of the language we associate with living things.&lt;/p&gt;</description>
			</item>
			<item>
				<title>03: Look at This Thing</title>
				<link>https://aibussin.com/books/digital-life/03-look-at-this-thing/</link>
				<pubDate>Fri, 14 Aug 2026 09:30:00 +0100</pubDate>
				<guid>https://aibussin.com/books/digital-life/03-look-at-this-thing/</guid>
				<description>&lt;p&gt;Don&amp;rsquo;t read anything yet.&lt;/p&gt;&#xA;&lt;p&gt;Watch this.&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;https://aibussin.com/images/books/digital-life/ch01-lenia-organism.gif&#34;&#xA;&#x9;&#x9;&#x9;alt=&#34;A localized continuous cellular automaton pattern evolving and moving through time.&#34;&gt;&lt;figcaption&gt;&#xA;&#x9;&#x9;&#x9;&lt;p&gt;One state of a continuous cellular automaton evolving through time.&lt;/p&gt;&#xA;&#x9;&#x9;&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;Something is moving. It appears to have a boundary. Different parts of it seem to behave differently: an edge that ripples, an interior that stays denser, a leading region that seems to pull the rest along. Its shape changes as it travels, and yet some larger organization survives those changes. Watch it for thirty seconds and you will start predicting what it is about to do.&lt;/p&gt;</description>
			</item>
			<item>
				<title>04: Now There Are Two</title>
				<link>https://aibussin.com/books/digital-life/04-now-there-are-two/</link>
				<pubDate>Fri, 14 Aug 2026 10:00:00 +0100</pubDate>
				<guid>https://aibussin.com/books/digital-life/04-now-there-are-two/</guid>
				<description>&lt;p&gt;In the previous chapter an organization survived while nearly everything participating in it was replaced. By the end of the turnover window, only 7 of the original 20,000 agents remained, yet the broader organized network persisted.&lt;/p&gt;&#xA;&lt;p&gt;That established persistence. It did not establish reproduction.&lt;/p&gt;&#xA;&lt;p&gt;Persistence asks whether an organization continues. Reproduction asks whether it produces another organization with a causal descent relation. Nothing in the Physarum experiment tested that second capability.&lt;/p&gt;</description>
			</item>
			<item>
				<title>05: So We Built the Wrong Thing on Purpose</title>
				<link>https://aibussin.com/books/digital-life/05-so-we-built-the-wrong-thing-on-purpose/</link>
				<pubDate>Fri, 14 Aug 2026 10:30:00 +0100</pubDate>
				<guid>https://aibussin.com/books/digital-life/05-so-we-built-the-wrong-thing-on-purpose/</guid>
				<description>&lt;p&gt;The previous chapter ended with a specification: known rules, controlled interventions, one mechanism varied at a time, a history we can follow. That is the laboratory we will eventually need, and building it is most of the work still ahead.&lt;/p&gt;&#xA;&lt;p&gt;Before building it, there is a cheaper question: &lt;strong&gt;are our tests any good?&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;That is not an idle worry. The last chapter produced the first positive result in this book — a bounded one, but a real one. Structural recurrence intersected with causal ancestry, and a causal claim survived a test we had not designed to make it pass.&lt;/p&gt;</description>
			</item>
			<item>
				<title>06: It Looked Like Flocking</title>
				<link>https://aibussin.com/books/digital-life/06-it-looked-like-flocking/</link>
				<pubDate>Fri, 14 Aug 2026 10:30:00 +0100</pubDate>
				<guid>https://aibussin.com/books/digital-life/06-it-looked-like-flocking/</guid>
				<description>&lt;p&gt;The previous chapter ended with a warning: a deliberately simple swarm could look organized, move coherently and preserve a measured regime without giving us anything we were prepared to call digital life.&lt;/p&gt;&#xA;&lt;p&gt;We then went back to Outlier and almost immediately saw structures moving together — not merely outward with the expanding front, but with what looked like stronger coordination among structures sharing recent causal history. The biological noun arrived immediately: &lt;strong&gt;flocking&lt;/strong&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>07: The Digital Crystal</title>
				<link>https://aibussin.com/books/digital-life/07-the-digital-crystal/</link>
				<pubDate>Fri, 14 Aug 2026 11:00:00 +0100</pubDate>
				<guid>https://aibussin.com/books/digital-life/07-the-digital-crystal/</guid>
				<description>&lt;p&gt;Outlier had taken us as far as it could.&lt;/p&gt;&#xA;&lt;p&gt;Nothing in the previous chapters is retracted. Outlier had shown us what computation could support. But by the end of the flocking investigation, its limitation had become unavoidable: Outlier was much better at producing phenomena than at isolating them.&lt;/p&gt;&#xA;&lt;p&gt;Geometry, ancestry, distance, expansion and local environment all emerged together from the same 512-bit rule. We could observe them, trace them and sometimes reconstruct their causal history. What we could not do cleanly was vary one mechanism while holding the others fixed.&lt;/p&gt;</description>
			</item>
			<item>
				<title>08: The Crystal Gets a Past</title>
				<link>https://aibussin.com/books/digital-life/08-the-crystal-gets-a-past/</link>
				<pubDate>Fri, 14 Aug 2026 11:30:00 +0100</pubDate>
				<guid>https://aibussin.com/books/digital-life/08-the-crystal-gets-a-past/</guid>
				<description>&lt;p&gt;At the end of the last chapter the Digital Crystal could tell us something about the world that formed it. Hide the forcing process, show only the final shape, and the family of that process could be recovered well above chance. Then we asked a harder question.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;What happened first?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;We took exactly the same environmental values and rearranged them in time. Smooth. Bursting. Periodic. Alternating. Random. The final morphology could not reliably tell them apart.&lt;/p&gt;</description>
			</item>
			<item>
				<title>09: Can Experience Change the Material?</title>
				<link>https://aibussin.com/books/digital-life/09-can-experience-change-the-material/</link>
				<pubDate>Fri, 14 Aug 2026 12:00:00 +0100</pubDate>
				<guid>https://aibussin.com/books/digital-life/09-can-experience-change-the-material/</guid>
				<description>&lt;p&gt;At the end of the last chapter the Digital Crystal had a past with real consequences and nowhere inside itself to keep it.&lt;/p&gt;&#xA;&lt;p&gt;A checkpoint could continue it exactly, but the checkpoint belonged to us. An event log could reconstruct how it formed, but the growth rule never read the log. A single received bit could redirect a later trajectory, and two matched pulse histories produced measurably different futures — yet the tested morphology readouts did not recover which history had occurred.&lt;/p&gt;</description>
			</item>
			<item>
				<title>10: What Survives Material Loss?</title>
				<link>https://aibussin.com/books/digital-life/10-what-survives-material-loss/</link>
				<pubDate>Fri, 14 Aug 2026 14:00:00 +0100</pubDate>
				<guid>https://aibussin.com/books/digital-life/10-what-survives-material-loss/</guid>
				<description>&lt;p&gt;The last chapter ended with a mechanism and a constraint. Experience could write a persistent local change into the material of the crystal, and that change could bias what got built nearby — but only while it remained inside the moving causal aperture.&lt;/p&gt;&#xA;&lt;p&gt;Growth advanced outward, the aperture advanced with it, and material left behind stayed perfectly preserved and perfectly irrelevant. Every attempt to fix that was an attempt to keep the trace near the surface.&lt;/p&gt;</description>
			</item>
			<item>
				<title>11: What Does It Cost to Stay?</title>
				<link>https://aibussin.com/books/digital-life/11-what-does-it-cost-to-stay/</link>
				<pubDate>Fri, 14 Aug 2026 16:00:00 +0100</pubDate>
				<guid>https://aibussin.com/books/digital-life/11-what-does-it-cost-to-stay/</guid>
				<description>&lt;p&gt;The last chapter ended with an impressive number and a suspicion about it. Under its exact-count experiment, roughly &lt;code&gt;0.94–0.96&lt;/code&gt; reoccupation events were observed per loss event, and more than ninety-three percent of distinct lost locations returned at least once within the finite run. Among the returns we observed, the typical delay was only a step or two — and all of it happened through the ordinary growth rule encountering ordinary empty sites.&lt;/p&gt;</description>
			</item>
			<item>
				<title>12: Is There Actually One Thing Here?</title>
				<link>https://aibussin.com/books/digital-life/12-is-there-actually-one-thing-here/</link>
				<pubDate>Fri, 14 Aug 2026 18:00:00 +0100</pubDate>
				<guid>https://aibussin.com/books/digital-life/12-is-there-actually-one-thing-here/</guid>
				<description>&lt;p&gt;The last chapter ended with a suspicion about a word.&lt;/p&gt;&#xA;&lt;p&gt;We have been saying &lt;em&gt;the crystal&lt;/em&gt; comfortably since &lt;em&gt;The Digital Crystal&lt;/em&gt;, and the noun has been doing quiet work ever since. We kept using it after material became impermanent. We kept using it after large material turnover appeared beneath the visible state. We kept using it after computational opportunity was shown to strongly constrain its scale, and after no tested budget produced a stationary population.&lt;/p&gt;</description>
			</item>
			<item>
				<title>13: What Does One Attachment Cause?</title>
				<link>https://aibussin.com/books/digital-life/13-what-does-one-attachment-cause/</link>
				<pubDate>Fri, 14 Aug 2026 20:00:00 +0100</pubDate>
				<guid>https://aibussin.com/books/digital-life/13-what-does-one-attachment-cause/</guid>
				<description>&lt;p&gt;The last chapter took away the body&amp;rsquo;s privilege.&lt;/p&gt;&#xA;&lt;p&gt;Two supplied spatial boundaries failed to earn causal privilege. Comparable same-side localization appeared at both tested radial cuts, but under a local update rule and an eight-update horizon that was not evidence of an individual hiding inside either one.&lt;/p&gt;&#xA;&lt;p&gt;So stop drawing the object first.&lt;/p&gt;&#xA;&lt;p&gt;Start with an event.&lt;/p&gt;&#xA;&lt;p&gt;One event.&lt;/p&gt;&#xA;&lt;p&gt;What does it cause?&lt;/p&gt;&#xA;&lt;p&gt;That question turns out to conceal several different causal claims.&lt;/p&gt;</description>
			</item>
			<item>
				<title>14: Can Finite Computation Couple Distant Events?</title>
				<link>https://aibussin.com/books/digital-life/14-can-finite-computation-couple-distant-events/</link>
				<pubDate>Fri, 14 Aug 2026 22:00:00 +0100</pubDate>
				<guid>https://aibussin.com/books/digital-life/14-can-finite-computation-couple-distant-events/</guid>
				<description>&lt;p&gt;The last chapter ended with a causal difference it could measure but could not explain.&lt;/p&gt;&#xA;&lt;p&gt;Under the corrected intervention, cumulative construction outside the measured local region was lower in both FORCE-derived branches than in PREVENT.&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;RETAINED far-field difference&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;−0.318    [−0.583, −0.068]&#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;TRANSIENT far-field difference&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;−0.177    [−0.362, −0.029]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Both intervals lie below zero.&lt;/p&gt;&#xA;&lt;p&gt;So the far-field difference is no longer merely a suggestive discrepancy. It is established under that finite-budget protocol.&lt;/p&gt;</description>
			</item>
			<item>
				<title>15: Can the Past Redirect the Future?</title>
				<link>https://aibussin.com/books/digital-life/15-can-the-past-redirect-the-future/</link>
				<pubDate>Fri, 14 Aug 2026 23:30:00 +0100</pubDate>
				<guid>https://aibussin.com/books/digital-life/15-can-the-past-redirect-the-future/</guid>
				<description>&lt;p&gt;The last two chapters have narrowed the question to one local event.&lt;/p&gt;&#xA;&lt;p&gt;The &lt;em&gt;What Does One Attachment Cause?&lt;/em&gt; chapter forced a single attachment and found an immediate causal effect consistent with the local rule&amp;rsquo;s mechanical prediction. A positive transient cumulative consequence was not established, while the late transient accumulation rate became practically consistent with zero under the frozen criterion.&lt;/p&gt;&#xA;&lt;p&gt;The previous chapter then showed that finite computation can redistribute evaluation opportunity outside the one-step reach of the local rule, change how the perturbation is expressed, and gate whether affected opportunities receive evaluation at all — while resolving no meaningful change in mean twelve-step consequence at the declared ±0.15 scale.&lt;/p&gt;</description>
			</item>
			<item>
				<title>16: We Found an Individual. Then We Didn&#39;t.</title>
				<link>https://aibussin.com/books/digital-life/16-we-found-an-individual-then-we-didnt/</link>
				<pubDate>Sat, 15 Aug 2026 01:00:00 +0100</pubDate>
				<guid>https://aibussin.com/books/digital-life/16-we-found-an-individual-then-we-didnt/</guid>
				<description>&lt;p&gt;The &lt;em&gt;Is There Actually One Thing Here?&lt;/em&gt; chapter asked whether visible geometry marked a privileged boundary, and failed twice to establish one.&lt;/p&gt;&#xA;&lt;p&gt;Its candidate regions were defined primarily by geometry.&lt;/p&gt;&#xA;&lt;p&gt;That left open a stronger possibility: perhaps a boundary that is unremarkable as shape could still be privileged causally.&lt;/p&gt;&#xA;&lt;p&gt;Since then the book has been replacing geometric intuition with causal tests.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;What Does One Attachment Cause?&lt;/em&gt; measured the consequence of one local event.&lt;/p&gt;</description>
			</item>
			<item>
				<title>17: How to Fail Correctly</title>
				<link>https://aibussin.com/books/digital-life/17-how-to-fail-correctly/</link>
				<pubDate>Sat, 15 Aug 2026 03:00:00 +0100</pubDate>
				<guid>https://aibussin.com/books/digital-life/17-how-to-fail-correctly/</guid>
				<description>&lt;p&gt;The most dangerous result in this book was not a noisy one.&lt;/p&gt;&#xA;&lt;p&gt;It was one of the cleanest.&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;measurement            ✓    M = 0.4402&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                            CI [0.419, 0.461]&#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;precision              ✓    MDE80 = 0.0268&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                            against a +0.15 threshold&#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;implementation         ✓    corrected transient intervention&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                            known global channels removed&#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;predeclaration         ✓    regions selected blind to outcome&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                            threshold frozen&#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;fresh reproduction     ✓    selected regions scored 0.4436&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                            in an independent matched-null run&#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;individuation          ✕    not established&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The two numbers come from different runs. V1 measured raw causal containment on seed &lt;code&gt;20260916&lt;/code&gt;. V2 regenerated the selected regions on fresh seed &lt;code&gt;20260917&lt;/code&gt;, reproduced the raw score at &lt;code&gt;0.4436&lt;/code&gt;, and then asked the stronger question: did those regions exceed same-checkpoint matched controls?&lt;/p&gt;</description>
			</item>
			<item>
				<title>18: What Is Digital Life?</title>
				<link>https://aibussin.com/books/digital-life/18-what-is-digital-life/</link>
				<pubDate>Sat, 15 Aug 2026 05:00:00 +0100</pubDate>
				<guid>https://aibussin.com/books/digital-life/18-what-is-digital-life/</guid>
				<description>&lt;p&gt;The previous chapter ended with a list of what survived the tests. Now we can ask what those results add up to.&lt;/p&gt;&#xA;&lt;p&gt;The results are experimental. The pattern they suggest is an inference.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;the-wrong-way-to-finish&#34;&gt;The Wrong Way to Finish&lt;/h2&gt;&#xA;&lt;p&gt;There is an ending available that would undo everything.&lt;/p&gt;&#xA;&lt;p&gt;The Digital Crystal grows and loses material. It replaces most of what it loses. Its material turns over while its process continues. Experimentally written hidden state can change how it responds to the same perturbation at the same visible geometry. A local event has real consequences, and finite computational constraints can reroute how those consequences are expressed. Regions of it retain their own causal influence and resist influence from outside. Earlier in the book, the Outlier system produced reproduction-like organization that survived a causal ancestry test.&lt;/p&gt;</description>
			</item>
			<item>
				<title>From Discrete Cells to Continuous State</title>
				<link>https://aibussin.com/books/cellular-automata-from-first-principles/28-chapter/</link>
				<pubDate>Mon, 10 Aug 2026 19:43:00 +0100</pubDate>
				<guid>https://aibussin.com/books/cellular-automata-from-first-principles/28-chapter/</guid>
				<description>&lt;p&gt;So far most of our cellular automata have used a small set of states:&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 or 1&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;empty / prey / predator&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ready / firing / refractory&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;That makes rules easy to inspect.&lt;/p&gt;&#xA;&lt;p&gt;But it also forces every update to make a hard categorical decision.&lt;/p&gt;&#xA;&lt;p&gt;What happens if a cell can instead hold &lt;strong&gt;any value between 0 and 1&lt;/strong&gt;?&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.0 -------------------------- 1.0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Now a cell can represent intensity, density, concentration, activation or some abstract amount of local material.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Neighborhoods as Convolution Kernels</title>
				<link>https://aibussin.com/books/cellular-automata-from-first-principles/29-chapter/</link>
				<pubDate>Mon, 10 Aug 2026 19:45:00 +0100</pubDate>
				<guid>https://aibussin.com/books/cellular-automata-from-first-principles/29-chapter/</guid>
				<description>&lt;p&gt;A neighborhood does not have to be a list of nearby coordinates.&lt;/p&gt;&#xA;&lt;p&gt;It can be a &lt;strong&gt;spatial weighting function&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;That lets us say:&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;cells near this radius matter a lot&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cells closer in matter less&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cells farther away do not matter at all&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The standard programming tool for applying that same weighted neighborhood everywhere is convolution.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;start-with-a-small-kernel&#34;&gt;Start with a small kernel&lt;/h2&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;kernel &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; np&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;array([&#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;0.0&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0.1&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0.0&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:#ae81ff&#34;&gt;0.1&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0.6&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0.1&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:#ae81ff&#34;&gt;0.0&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0.1&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0.0&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;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Normalize it:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Growth Functions</title>
				<link>https://aibussin.com/books/cellular-automata-from-first-principles/30-chapter/</link>
				<pubDate>Mon, 10 Aug 2026 19:48:00 +0100</pubDate>
				<guid>https://aibussin.com/books/cellular-automata-from-first-principles/30-chapter/</guid>
				<description>&lt;p&gt;We now have two pieces:&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;continuous state&#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;weighted neighborhood&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;But a neighborhood value does not tell us what should happen next.&lt;/p&gt;&#xA;&lt;p&gt;We need a response curve.&lt;/p&gt;&#xA;&lt;p&gt;In Lenia-style systems that curve is usually called a &lt;strong&gt;growth function&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;It converts neighborhood potential into local growth or decay. This generalizes Chapter 28&amp;rsquo;s &lt;code&gt;growth_function&lt;/code&gt;: same Gaussian-bump shape, now with explicit &lt;code&gt;mu&lt;/code&gt; (preferred density) and &lt;code&gt;sigma&lt;/code&gt; (tolerance) parameters instead of fixed constants.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Build Lenia From First Principles</title>
				<link>https://aibussin.com/books/cellular-automata-from-first-principles/31-chapter/</link>
				<pubDate>Mon, 10 Aug 2026 19:51:00 +0100</pubDate>
				<guid>https://aibussin.com/books/cellular-automata-from-first-principles/31-chapter/</guid>
				<description>&lt;p&gt;We now have every conceptual component needed for a minimal Lenia implementation:&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;continuous state&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;radial kernel&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;convolution&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;smooth growth function&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;small time step&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;bounded update&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This chapter assembles them into one runnable system — one historically important system, due to Bert Wang-Chak Chan (&amp;ldquo;Lenia: Biology of Artificial Life,&amp;rdquo; Complex Systems 28(3), 2019): not generic continuous CA, but Lenia specifically. The framing for this part so far:&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;Ch28–30&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;= components&#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;Ch31&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;= one historically important system built from those components&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;&#xA;&lt;h2 id=&#34;fidelity-statement&#34;&gt;Fidelity statement&lt;/h2&gt;&#xA;&lt;p&gt;The engine below implements the canonical Lenia update exactly — state plus timestep-scaled growth of the convolved field, clipped to [0, 1] — with the exponential growth mapping from Chan&amp;rsquo;s paper. It differs from full Lenia in scope, stated here so later comparisons use the same baseline:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Discover Your First Lenia Organisms</title>
				<link>https://aibussin.com/books/cellular-automata-from-first-principles/32-chapter/</link>
				<pubDate>Mon, 10 Aug 2026 19:54:00 +0100</pubDate>
				<guid>https://aibussin.com/books/cellular-automata-from-first-principles/32-chapter/</guid>
				<description>&lt;p&gt;Running Lenia is easy.&lt;/p&gt;&#xA;&lt;p&gt;Finding persistent, localized, non-trivial structures is the hard part.&lt;/p&gt;&#xA;&lt;p&gt;This chapter turns that problem into a repeatable search pipeline. It follows Chan&amp;rsquo;s discovery playbook structurally — random soup generation, survival filtering, parameter tweaking, and, crucially, human judgment for what counts as interesting — while automating the parts that do not need eyes.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;define-what-counts-as-a-candidate&#34;&gt;Define what counts as a candidate&lt;/h2&gt;&#xA;&lt;p&gt;We should not start with the vague objective:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Search Lenia Parameter Space</title>
				<link>https://aibussin.com/books/cellular-automata-from-first-principles/33-chapter/</link>
				<pubDate>Mon, 10 Aug 2026 19:57:00 +0100</pubDate>
				<guid>https://aibussin.com/books/cellular-automata-from-first-principles/33-chapter/</guid>
				<description>&lt;p&gt;A Lenia pattern is not defined by its initial state alone.&lt;/p&gt;&#xA;&lt;p&gt;It also lives inside a particular dynamical world.&lt;/p&gt;&#xA;&lt;p&gt;Change the kernel or growth function slightly and the same seed may:&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;die&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;explode&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;freeze&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;oscillate&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;move&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;split&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;stabilize into a different morphology&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;So discovery has two coupled search spaces:&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;initial condition&#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;world parameters&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;&#xA;&lt;h2 id=&#34;define-parameter-ranges&#34;&gt;Define parameter ranges&lt;/h2&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;PARAM_RANGES &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;    &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;radius&amp;#34;&lt;/span&gt;: (&lt;span style=&#34;color:#ae81ff&#34;&gt;8&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;24&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:#e6db74&#34;&gt;&amp;#34;ring_center&amp;#34;&lt;/span&gt;: (&lt;span style=&#34;color:#ae81ff&#34;&gt;0.25&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0.75&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:#e6db74&#34;&gt;&amp;#34;ring_width&amp;#34;&lt;/span&gt;: (&lt;span style=&#34;color:#ae81ff&#34;&gt;0.05&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0.25&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:#e6db74&#34;&gt;&amp;#34;mu&amp;#34;&lt;/span&gt;: (&lt;span style=&#34;color:#ae81ff&#34;&gt;0.05&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0.30&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:#e6db74&#34;&gt;&amp;#34;sigma&amp;#34;&lt;/span&gt;: (&lt;span style=&#34;color:#ae81ff&#34;&gt;0.01&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0.08&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:#e6db74&#34;&gt;&amp;#34;dt&amp;#34;&lt;/span&gt;: (&lt;span style=&#34;color:#ae81ff&#34;&gt;0.03&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0.20&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;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;These ranges are experimental choices.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Multi-Kernel and Multi-Channel Lenia</title>
				<link>https://aibussin.com/books/cellular-automata-from-first-principles/34-chapter/</link>
				<pubDate>Mon, 10 Aug 2026 20:00:00 +0100</pubDate>
				<guid>https://aibussin.com/books/cellular-automata-from-first-principles/34-chapter/</guid>
				<description>&lt;p&gt;Our Lenia implementation has one scalar field:&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;A(x, y)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;and one kernel:&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&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;That is enough for rich behavior.&lt;/p&gt;&#xA;&lt;p&gt;But it also forces every local process to share the same spatial scale and the same state variable.&lt;/p&gt;&#xA;&lt;p&gt;A richer model can use multiple channels:&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;A0(x, y)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;A1(x, y)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;A2(x, y)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;and multiple kernels linking them.&lt;/p&gt;&#xA;&lt;p&gt;This chapter builds a pedagogical multi-channel formulation in Lenia&amp;rsquo;s spirit — a connection graph with per-edge kernels and growth parameters. Canonical multi-kernel, multi-channel Lenia is Chan&amp;rsquo;s &amp;ldquo;Expanded Universe&amp;rdquo; (ALIFE 2020) direction; the book&amp;rsquo;s version is simpler and says so, keeping the graph inspectable rather than matching the canonical matrix formulation.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Damage, Robustness and Persistence</title>
				<link>https://aibussin.com/books/cellular-automata-from-first-principles/35-chapter/</link>
				<pubDate>Mon, 10 Aug 2026 20:03:00 +0100</pubDate>
				<guid>https://aibussin.com/books/cellular-automata-from-first-principles/35-chapter/</guid>
				<description>&lt;p&gt;A pattern that survives in perfect conditions is only the beginning.&lt;/p&gt;&#xA;&lt;p&gt;A stronger artificial-life question is:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;What happens when the pattern is disturbed?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;We can turn that into an experiment.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;define-damage-explicitly&#34;&gt;Define damage explicitly&lt;/h2&gt;&#xA;&lt;p&gt;Start with a rectangular ablation:&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;damage_rectangle&lt;/span&gt;(state, y0, y1, x0, x1):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    damaged &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; state&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;copy()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    damaged[&lt;span style=&#34;color:#f92672&#34;&gt;...&lt;/span&gt;, y0:y1, x0:x1] &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0.0&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; damaged&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;For a single-channel 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-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;damaged &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; damage_rectangle(state, &lt;span style=&#34;color:#ae81ff&#34;&gt;55&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;70&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;55&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;70&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;For multi-channel state, the ellipsis damages all channels in the same spatial region.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Flow-Lenia and Mass-Conserving Artificial Life</title>
				<link>https://aibussin.com/books/cellular-automata-from-first-principles/36-chapter/</link>
				<pubDate>Mon, 10 Aug 2026 20:06:00 +0100</pubDate>
				<guid>https://aibussin.com/books/cellular-automata-from-first-principles/36-chapter/</guid>
				<description>&lt;p&gt;Ordinary Lenia updates local state by adding growth:&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;A(t + dt) = clip(A(t) + dt × G(U))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;That means state can be created in one region and destroyed in another.&lt;/p&gt;&#xA;&lt;p&gt;For many artificial-life experiments that is perfectly acceptable.&lt;/p&gt;&#xA;&lt;p&gt;But it leaves a major question:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;What changes if local structure must reorganize &lt;strong&gt;existing mass&lt;/strong&gt; instead of creating or deleting it?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Flow-Lenia — Plantec et al. (2023), &amp;ldquo;Flow-Lenia: Towards open-ended evolution in cellular automata through mass conservation and parameter localization&amp;rdquo; — explores exactly that direction through two ideas: reformulating the update around transport so mass is conserved, and embedding rule parameters as local fields rather than global constants. This chapter presents both ideas with small pedagogical models, honestly labeled as stepping stones rather than reproductions.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
