Mr. Baby Paint 意外发现新型细胞自动机
速览
Mr. Baby Paint 在进行实验时意外发现了一种此前未知的细胞自动机。该自动机表现出独特的演化模式,可能为计算理论提供新思路。不过相关研究尚处于初期阶段。
AI 深度解读
背景
2026年4月2日,独立开发者 Heikki Lotvonen 在 Hacker News 上分享了他为三岁儿子开发的一款极简协作绘图应用 Mr. Baby Paint。该项目源于一个现实难题:他年幼的孩子渴望参与父亲的一切电脑活动,但现有软件(如 WordPad、MS Paint)对幼儿来说过于复杂——孩子随意点击菜单、工具栏或任务栏会中断操作,父亲不得不频繁干预,导致体验“挫折多于乐趣”。Lotvonen 决心以严肃的软件工程态度,为幼儿及其看护人设计一款真正适合的绘图工具。在开发过程中,他意外发现了一种基于洪泛填充(flood fill)的元胞自动机(cellular automata),并开发了位图字体的像素加粗算法。
核心内容
Mr. Baby Paint 的设计哲学
Lotvonen 将应用设计为“激进简单”:全屏空白画布,无菜单、无工具栏,鼠标点击拖动即可直接绘制。幼儿坐在父亲腿上控制鼠标,父亲用左手操作键盘快捷键——例如 Cmd+S 保存、Cmd+E 清空画布。整个屏幕都是绘图区域,即使孩子乱敲键盘也不会破坏体验。每个操作都有正向反馈:绘图产生笔迹、音效或视觉效果,不存在“搞砸”的情况。
交互方式
- 左键绘制,右键填充,滚动滚轮“撒沙”。
- 绘制速度越快,颜料飞溅效果越明显。
- 为应对幼儿极快的鼠标移动(导致采样点之间间距可达数十甚至上百像素),Lotvonen 采用 Catmull-Rom 样条(Catmull-Rom spline)连接采样点,生成平滑曲线,再沿曲线每1像素戳印笔刷纹理。大笔刷时限制戳印距离以避免卡顿。
边缘交互系统
鼠标移动到屏幕边缘可触发设置变更(无需精确点击):
- 左边缘:16段,控制笔刷大小和字体选择。
- 底边缘:16段,选择16种颜色之一。
- 顶边缘:64段,选择字符(字母、数字、符号等),其中一种字体为图标/形状集。
- 右边缘:2段,切换圆形/方形笔刷。
协作模式
应用面向“家长+幼儿”协作使用。父亲通过键盘快捷键激活复杂功能,幼儿专注绘图。例如,幼儿难以按住鼠标左键时,父亲可按住 Alt(Mac 为 Option)键触发绘制功能,孩子只需移动鼠标。其他快捷键包括:右击或 Cmd/Ctrl+X 填充;滚轮撒沙或按住 Enter;空格暂停填充/下落;Cmd/Ctrl+Z 撤销;Cmd/Ctrl+Shift+Z 重做;Cmd/Ctrl+C 闭合笔画;Cmd/Ctrl+B/R 切换笔刷形状;Alt+数字或 Cmd/Ctrl+数字换色;ESC 打开/关闭菜单。
意外发现的洪泛填充元胞自动机
受马里奥绘图(Mario Paint)启发,Lotvonen 实现了实时缓慢填充效果(而非瞬间完成)。在马里奥绘图中,填充从光标位置开始,逐行向上和向下扩展;在 Mr. Baby Paint 中,洪泛填充同时向左和向右扩展。他要求过程中不阻塞绘图——可同时进行多次填充和绘制。
在一次测试中,他在已有填充的边缘内侧启动新填充。由于所有填充共享“生长预算”(每帧最多增长1000像素),新填充因体积小增长更快,与仍在扩张的旧填充边缘碰撞。随后他放置了与第一个填充同色的第三个填充,三者开始相互合并,形成有机的波纹和移动图案。该状态半稳定:可持续数千代,最终进入稳定振荡模式,或某一填充“获胜”吞噬其他。他将此视为有趣“故障”保留下来。
技术实现细节
所有计算在单线程 CPU 上执行(顺序计算是元胞自动机工作的必要条件)。尝试过 GPU 计算着色器版本,虽快且无延迟,但效果“更无聊”。CPU 计算的固有慢速是刻意设计选择,同时尽力维持合理帧率。此外,他为位图字体开发了像素加粗算法,确保在任意缩放下字体清晰。
关键要点
- 极简设计原则:全屏无菜单,所有操作不中断绘图流程,幼儿无法“出错”。
- 边缘交互创新:利用非精确的鼠标移动到屏幕边缘切换设置,适配幼儿控制能力。
- 协作快捷键体系:家长通过键盘掌握复杂功能(保存、清空、切换工具等),幼儿仅需鼠标。
- Catmull-Rom 样条补间:解决高速鼠标移动导致线条方块化的常见问题。
- 实时洪泛填充:非阻塞、可见的慢速填充,带来视觉愉悦感,并意外催生新型元胞自动机。
- CPU单线程计算:刻意保留延迟以维持“有机”视觉效果,而非追求高性能 GPU 加速。
- 元胞自动机偶然发现:通过在同一区域多次填充、共享生长预算,产生类生命般的自组织图案。
- 像素加粗算法:为位图字体开发的渲染优化,保证可读性。
意义与影响
Mr. Baby Paint 展示了为特殊用户群体(幼儿)设计软件的深度思考:将“不精确”和“随机性”转化为特征而非缺陷。边缘交互和协作模式为儿童友好型工具提供了可复用的设计模式。更重要的是,它从一个实用的亲子绘图需求出发,意外发现了新的计算现象——基于洪泛填充的元胞自动机。这种“偶然发现”在开源和独立开发社区中并不罕见,但 Lotvonen 选择将其保留并公开,为后续研究者或爱好者提供了探索起点。该项目提醒人们,即使是简单的创意工具,在精心设计下也能孕育复杂的 emergent behavior。目前该应用已发布在 itch.io 平台,免费供其他有类似需求的家庭使用。
