规则里游出的生命
方格一张,规则三条,便有图案在纸上爬行:这是 1970 年的“生命游戏”。把格子、时间和生死都化成连续的,培养皿里便游出一种谁也没有画过的东西:它会滑行,会愈合,还分作许多物种。
向下滚动
生命游戏
1970 年,数学家约翰·康威造了一个没有玩家的游戏。方格之中,非生即死;每过一代,每一格同时数一数身边八个邻居:死格逢三,便活过来;活格逢二逢三,便活下去;其余的,尽归沉寂。
规则不过如此,却生出意想不到的东西。五个格子拼成的“滑翔机”,每四代斜行一格,仿佛在爬。它没有腿,也无人推它:格子只是依律生灭,同样的形状,恰好在旁边重新浮现。
抹平
生命游戏里的一切都是一格一格、一拍一拍的:格子只有生死两态,邻居只有贴身一圈,时间一代一代地跳。若把这三样都化开呢?于是每一格存一个 0 到 1 之间的数,如墨有浓淡;邻居扩成半径 13 格的圆环,环的中线最重;一代切作十小步,每一步只动一点。这个连续的版本叫作 Lenia,取自拉丁文 lenis,“平滑”。
皿中那道金色的光环,便是一格的邻域。环下诸格按轻重取平均,得一个数 U,说的是“四周有多满”。每一格都有这样一个环,千千万万,彼此交叠。
生长曲线
得了 U,每一格再去问一条曲线:该浓,还是该淡。那曲线是一座钟形的小山。U 落在 μ 近旁,格子便长;离 μ 太远,四周太空也罢,太挤也罢,都要消退。σ 是山的宽窄。这个世界的全部天理,不过一环、一线。
此刻皿中显出的不是浓淡,而是变化:金色处正在长,蓝色处正在消。前头生,后头灭,整个图案便一点点向前流去。走动的并不是格子,而是那个形状,在前方一遍遍重新长成。
球虫
在 μ = 0.15、σ = 0.015 的世界里,住着一种小东西:圆圆的身子,身后拖一道新月似的尾,不疾不徐地滑行,约莫每三十步,走过一个身长。只要等得够久,它会从随手撒下的斑点里自己冒出来。它的学名叫 Orbium unicaudatus,“单尾球虫”。
皿中这一只,用的是公开的原始数据:图案、半径、μ 与 σ,一个数也没改。没有人画过它的模样,也没有哪行代码写着“向前游”。规则只说每一格如何看待邻居;身子、尾巴和去向,都是千百个格子彼此牵动,自己浮现出来的。
定律之窄
定律若偏一分,会怎样?下面是那条生长曲线,旁边是一张地图:横为 μ,纵为 σ,每一小格,都是我们把一只球虫放进那样的世界,看它最后的下场。青色,它仍在游;浅色,它散了;红色,它胀满了整个世界。图上的黑点,便是皿中此刻的定律:黑点落在哪里,球虫就活在哪里的天理之下。
能活的地方,只是一道细细的斜带。曲线太窄,格子难逢让自己生长的那种拥挤,球虫便一点点褪去;曲线太宽,处处都在长,它便炸开,漫满整只培养皿。这两种死法,一叫“蒸发”,一叫“爆炸”。斜带里还藏着一句话:μ 往上走,σ 也得跟着放宽,球虫才活得下去。
伤口
皿上轻轻一点,便从它身上咬去一小块。咬在边上,它几秒之间就把缺口长回来,复归原形,接着往前游。没有哪条规则写着“修复”:补上缺口的,仍是那一条生长曲线。
它却并非不死。同样大的一口落在浓密的身子中央,整只球虫便散了。这个世界里的许多生物相当坚韧,变了形、撞了头也能复原;球虫身量小,伤在要害,便无可挽回。个头大些的并翼虫,挨同样一口,在这里能活下来。
图鉴
球虫只是开端。改动圆环的层数、半径与曲线,这个世界里已寻得四百多个物种,分属十八科,像博物学那样分了类、起了名。皿中依次放着其中几种:绕圈而游的旋球虫,形如盾牌的盾虫,展着宽翼的并翼虫,以三重圆环感知四邻的水双子虫,还有两重圆环的冠虫。
它们形貌千差万别,规则却是同一条,变的只是那几个数。形体的对称与行止总是相合:四面对称的守在原地,旋转对称的兀自打转,唯有左右对称、前后不同的,才一路向前。
这算活着吗
这些生物没有细胞,不饮不食;到 2019 年,也还没有找到会自我复制的物种。它们只是一张数表,被同一条公式一遍遍改写。可它们有清楚的边界,守得住自己的形状,会走,受了伤会复原。生命的许多模样,似乎并不需要化学,只需要许多简单的部分,按同一条局部的规则彼此牵动。这叫自组织。
2020 年,这条规则被推广到多个通道、多个核与更高的维度,在那里出现了自我复制,还有内部各司其职的“虚拟真核生物”。至于这些图案凭什么守住自己,其中的机制至今还没有被很好地理解。人工生命这门学问追问的正是此事:活着,是物质的性质,还是组织的性质?
实验台
六个物种,两根旋钮,一只培养皿。时间可快可慢;皿上一点,便是一道伤口,长不长得好,看它自己的造化。
试一试σ 收到 0.012,球虫还撑得了多久?放宽到 0.025 呢?
模型省略了什么
这里运行的是离散的 Lenia:96 × 96 个格子,球虫的环半径 13 格,每个时间单位 10 步,环的形状和生长曲线与原作者的参考程序一致,在你的显卡上逐格计算。世界的边缘是接起来的:从右边出去,会从左边回来,像在甜甜圈的表面上,这是这类模拟的惯例;培养皿像显微镜的载物台,跟着生物移动,只显示世界的一部分,网格线随世界一起走。同样的物种也在更细的网格(环半径上百格)上研究过。地图上的每一格,是在 64 × 64 的小世界里从原始的球虫图案出发跑 60 个时间单位的结果;靠近斜带边缘的格子,换一个起点或跑得更久,结局可能不同。玻璃培养皿和凝胶只是展示:Lenia 是数学,不是化学。
一个常见的误解
球虫不是谁画好、再让它动起来的动画,规则里也没有“身体”“尾巴”或“方向”这些东西;它是规则自己维持住的图案。但它也不是生命:它不吃、不长大、不进化。把它们叫作“物种”,是借来的说法,好让我们描述和比较它们,并不意味着它们活着。
资料来源
- Bert Wang-Chak Chan(2019):Lenia — Biology of Artificial Life,Complex Systems 28(3): 251–286,arXiv:1812.05433
- Bert Wang-Chak Chan(2020):Lenia and Expanded Universe,ALIFE 2020 会议论文集,221–229,arXiv:2005.03742
- Bert Wang-Chak Chan:Lenia 主页(论文、视频与相关研究)
- Chakazul/Lenia(Bert Wang-Chak Chan,MIT 许可):参考程序 LeniaND.py 与物种数据 animals.json
- Gardner(1970):Mathematical Games — John Conway’s new solitaire game “life”,Scientific American 223(4): 120–123
- Stephan Rafler(2011),独立提出的相近规则:Generalization of Conway’s “Game of Life” to a continuous domain — SmoothLife,arXiv:1111.1567
数据
Lenia was created by Bert Wang-Chak Chan (chakazul.github.io/lenia.html). Species patterns and parameters: Python/animals.json in github.com/Chakazul/Lenia (MIT licence, © 2018 Bert Chan); the rule follows his reference code, Python/LeniaND.py. SmoothLife (Stephan Rafler, 2011) reached a similar continuous rule independently.
延伸观看
-
Lenia - Mathematical Life Forms 在 YouTube 打开 ↗ -
Bert Wang-Chak Chan - Alife 2020 Contributed Talk 在 YouTube 打开 ↗
播放器来自 YouTube,按下播放后才加载。

