核心概念
涌现,是指简单规则的不断重复会产生无人预先写下的复杂性。水分子本身并不湿润。单个神经元无法思考。 而这,就是你能亲手把玩的那个概念。
每个粒子都带有一种颜色,并遵循一条规则:其他每种颜色对它的吸引或排斥有多强。把一个含二十五个数字的 5×5 矩阵交给两千个粒子,结构便自行组织起来——团簇、链条、膜、旋转的旋臂。没有任何脚本;这是物理的产物,而非意图。改变这些数字,一种全然不同的生命便会出现。
让一切成立的那个关键想法
先是一层排斥的地板,再是一口吸引的井
第一个版本只会吸引——而没有地板的吸引力在零距离处最强,于是一切要么坍缩成死团块,要么飞散成尘埃。解决之道就在一条曲线的形状里:粒子过于拥挤时把它们推开,飘散时又把它们拉回。它们最终稳定在一个恰好为 β·R = 30 px 的固定间距上——灰色的尘埃便苏醒为一个星系。
四个世界,一个引擎
同样的两千个粒子。只改变那张数字表格——整个宇宙就会重组为另一种活物。
Galaxy
循环追逐每种颜色都在一个无法闭合的循环中追逐下一种。结果永不停转——风车、卷曲的旋臂、一条活的螺旋。
Cells
内聚 + 排斥每种颜色都紧贴同类、把外来者挡在墙外,只留两座安静的桥。它们凝结成膜——一种能保持形状的组织。
Soup
一条食物链一个温和的生态系统:A 追 B,B 追 C。捕食者与猎物在一种躁动、从不真正静止的平衡中漂移。
Chaos
纯粹追逐每一段关系都是追逐,且从不相互。结构刚一形成便自我撕裂——一种永不安定的运动。
技术内幕
双区力
在 β·R 以内是一层普遍的排斥地板,越过它则是一口吸引的井。就是这一条曲线,构成了死尘埃与活星系之间的全部差别。
O(N) 邻居搜索
空间哈希把世界划分为与交互半径同尺寸的格子;每个粒子只检查其 3×3 的邻域。每帧约 400 万次比较,因此骤降到约 10 万次。
GPU 渲染
WGSL 点精灵配以真实的泛光通道——4 倍降采样 → 高斯模糊 → 加法合成——并以 WebGL2 作为回退,让观感永不降级。
确定性
固定的 60 Hz 时间步长加上带种子的随机数生成器:行为与帧率无关,同一个种子会逐帧重现完全相同的宇宙。
可分享的宇宙
每个世界都是一个简短的 ?s= 链接——矩阵、种子和数量都在一个网址里。打开陌生人的链接,就能看到一模一样的星系在你的屏幕上组装成形。
发现
一套随机规则搜索会依据团簇数量与运动,对成千上万个矩阵评分,从中浮现出值得保留的全新世界。
以 TypeScript 无框架构建,因此引擎可在 Node 中无界面运行——物理经过单元测试,那一对粒子确实会稳定在距 β·R 一个像素以内。
用数字说话



