将自然界中的数学几何转化为实体装置并不罕见,但极少有人能用同一套坐标逻辑贯通生成算法、机械建模与底层驱动。创客 Jagi Natarajan 近期公开的 Phyllotaxis 项目便完成了一次罕见的软硬跨界闭环:他利用植物学中常见的黄金分割双螺旋叶序与 Voronoi 镶嵌几何,设计出一款拥有蜂窝状腔体的可寻址声光雕塑,并在迭代中将其推进为一个搭载微型 WebAssembly 运行时的异形创意计算微平台。

常规嵌入式声光小品大多停留在矩形点阵,或者直接套用成熟的开源固件来省去造轮子的折磨。Phyllotaxis 的特殊之处在于彻底抛弃了传统的直角笛卡尔坐标系,从源头的算法生成、三维布尔切割,到片元着色器编写乃至后期的沙箱 SDK,全部建立在同一套归一化极坐标数学模型之上。这是一次极客式的工程美学探索,但从单件艺术品走向可复刻硬件的过程中,它也撞上了手工装配复杂与小众开源生态的双重高墙。

Phyllotaxis 全链路极坐标同构管线 1. Processing 黄金分割角点阵 Voronoi 胞元生成 2. CadQuery Python 参数化建模 负偏移与布尔切削 3. STM32 / DSP INMP441 数字音频 CMSIS 频域能量分析 4. ESP32 + Wasm Rust 固件驱动 沙箱动态下发 Shader

从向日葵数学模型到参数化实体

向日葵花盘中种子紧密排布的结构,源于自然界沿径向以黄金分割角持续旋转的生长逻辑。Jagi 首先在 Processing 中将这个简单的几何规律转化为点阵分布,并利用 Voronoi 算法划分出类似多肉植物细胞边界的多边形。但要让算法走出屏幕进入物理世界,常规手工绘图软件很难应对这种非线性细胞结构。

四分之一切分的蜂窝格栅显露出双螺旋算法生成的空腔与装配螺孔
四分之一切分的蜂窝格栅显露出双螺旋算法生成的空腔与装配螺孔

作者将这些细胞边缘顶点数据导入基于 Python 的 CadQuery 库进行参数化编程。脚本在每个细胞轮廓内做 2D 负偏移缩放以形成壁厚,再通过三维布尔减法从整体实体中抠出蜂窝腔体与 LED 穿孔。为了迎合家用 3D 打印机的成型尺寸,整个圆形被切分为四个对称象限,最后在 FreeCAD 中追加结构固定螺孔与面板夹层。

光效扩散介质的选择体现了装置对有机质感的追求。不同于工业亚克力面板的均质反光,作者选用带有天然植物纤维的桑皮纸,粘贴在薄型面板下方并用螺钉锁附在 3D 打印格栅上。配合打磨成圆形的竹制菜板作为结构底座,冰冷的算法点阵最终被包裹进带有自然温润触感的物理载体中。

硬件演进的代价与 5 联 PCB 破局

算法跑通与三维打印只是序曲,物理装配的真实工程代价迅速在电路部分爆发。初代原型内置了 89 颗可寻址 RGB LED,全部依靠手工飞线焊接。由于紧凑型贴片 LED 的焊盘隐藏在元件底部,电烙铁极易烫坏塑料封装,作者经历了漫长的焊接折磨。

五块弧形黑色沉金电路板拼接成环形底板以替换手工飞线
五块弧形黑色沉金电路板拼接成环形底板以替换手工飞线

更棘手的是电气系统的稳定性。初代系统由一块闲置的 STM32 Blackpill 开发板与 INMP441 I2S 数字麦克风驱动,CMSIS-DSP 库虽能顺畅完成频域分析与自动增益控制,但搭在洞洞板上的电路极易引入干扰,机壳微小的物理晃动都会导致电平跳变进而引发 LED 剧烈频闪。为了根治电气问题,作者不得不现学 PCB 设计,加入逻辑电平转换芯片以确保 5V 控制信号的干净传输。

原型两代硬件方案演进对比 初代原型:手工散装与洞洞板 像素规格:89 颗手工散焊 LED 主控与电气:STM32F4 + 洞洞板飞线 装配隐患:无电平转换芯片,易晃动闪烁 二代展陈:模块化对称与热风焊 像素规格:90 像素(五等分对称) 主控与电气:ESP32 + 专用 PCB 底板 装配工艺:热风回流焊接,集成逻辑电平转换

在筹备第二代硬件时,为了避免单次定制大面积异形板的高昂打样成本,作者巧妙借助 PCB 打样厂家通常以 5 块起订的商业惯例,微调了整个几何构型,改用五重旋转对称设计。5 块完全相同的弧形专用 PCB 拼接成环,直接取代了脆弱的 3D 打印底板。在装配工艺上,作者在 Recurse Center 驻留期间求助硬件同侪,改用热风回流焊设备,才算彻底摆脱了手工烙铁的焊盘噩梦。

  • 风险.虽然 PCB 底板大幅提升了结构刚性,但表层的桑皮纸依然缺乏透明亚克力等硬质保护层,日常灰尘清扫或指尖误触都可能导致纸面破损且极难局部更换维护。

为 90 颗像素打造微型 Wasm 平台

在控制逻辑上,作者最初为这块雕塑编写了类似着色器(Fragment Shader)风格的固件。固件通过查找表预存每颗像素在单位圆上的浮点极坐标位置,开发者只需利用正弦波调制半径与夹角,即可计算出向外扩散的脉冲光晕,再配合 CMSIS 提取的低频信号,让装置在播放电子乐时如生物呼吸般律动。

九十颗蜂窝发光孔透过桑皮纸,投射出向外扩散的正弦波光晕
九十颗蜂窝发光孔透过桑皮纸,投射出向外扩散的正弦波光晕

然而当装置被长期陈列在 Recurse Center 时,单向烧录的固件限制了交互可能。作者做出了一个极为激进的软件重构:将主控换成带有 Wi-Fi 的 ESP32,固件全部使用 Rust 语言重写,并在微控制器内部塞进了一个微型 WebAssembly 执行引擎。硬件的像素规格也在二代拼板及 SDK 规范中统一收敛至 90 像素。

软硬件彻底同构的模型,能让物理异形显示器像屏幕像素一样接受标准着色器绘制。

配套开源的 SDK(phyllotaxis-sketch-sdk)采用 MIT 协议,允许访客直接在浏览器中编写 Rust、C 或 AssemblyScript 代码,生成体积小于 32 KB 的动效微程序,通过本地 Web 界面以 60 FPS 的帧率热下发到雕塑上运行。此时的 Phyllotaxis 已经不再是一盏单纯的声光夜灯,而是一台长着植物外表的微型异形显示计算机。

创意计算微平台关键规格指标 90 像素规模 (LEDs) 5 联对称环形拼板 32KB Wasm 镜像上限 支持热重载下发 60FPS 光效刷新速率 极坐标 LUT 瞬时映射 1★ 开源社区关注 23 次提交,亟待扩散

极客工程的孤岛困境与现实裂隙

从技术栈架构来看,为一个只有 90 个发光点的装置引入 Rust 与 WebAssembly 虚拟机,极易被外界打上过度设计的标签。但在公共展陈与教学场景下,这层沙箱机制成功剥离了底层硬件驱动与上层艺术表达,其他创客无需配置交叉编译链,只需关注数学着色逻辑即可向实体硬件投放作品。

缺乏尺寸公差与物料指引的散落元件让开源复刻陷入停滞(示意图)
缺乏尺寸公差与物料指引的散落元件让开源复刻陷入停滞(示意图)

然而反常的是,这样一个打通算法、参数化 CAD、嵌入式 DSP 与 Wasm 虚拟机的硬核项目,在开源社区中并未泛起太大的涟漪。固件仓库仅有 23 次代码提交与寥寥 1 颗星,在 Hacker News 等极客论坛上也几乎零讨论。项目虽开源了 SDK,但缺失完整的物料清单(BOM)、装配公差说明以及焊接指引,普通开发者即使拿到代码也几乎不可能低成本复刻一套完全相同的硬件。

  • 结论.创客作品要想跨越“个人手作”走向“通用平台”,软件工程的优雅只占一半,结构模块化与降低装配门槛往往才是决定其能否沉淀为公共工具的关键瓶颈。

Jagi Natarajan 在项目日志末尾提到,他正在考虑改用更易手工焊接的 LED 元件、尝试全自动 PCB 代工组装(PCBA),并利用磁吸与透明亚克力来解决桑皮纸面板的固定维护难题。当这些制造端的妥协与补全落地时,这朵诞生于自然算法的电子向日葵,才真正具备从展馆孤品走向大众创客桌面的可能。