Marble Fountain
大理石喷泉:程序生成硬件驱动艺术作品
本文讲述了作者利用程序生成技术和3D打印制造“大理石喷泉”艺术作品的过程,并分享了其设计和实现中的挑战与思考。
项目背景与目标:
作者在Formlabs工作后,拥有了更高级别的3D打印机,并希望挑战大型算法结构项目。目标是创造一个复杂程度尽可能高的艺术作品,充分利用3D打印的几何设计自由度。
核心系统:轨道 (Tracks)
- 初始设计: 最初的轨道系统通过在顶部和底部随机放置点,然后通过这些点绘制带有恒定斜率的样条曲线来实现。这种方法通过从实体支撑结构中减去管子来构建,但功能有限。
- 路径求解器: 为了最大化运动量,作者开发了一个路径求解器,旨在将运动尽可能地填充到打印机的体积内。
- 路径生成: 求解器通过生成一系列连接顶部和底部的线段作为初始猜测。不同的起始条件会显著影响最终结构形状。
- 点位更新: 路径上的点会根据以下规则进行更新,以优化路径:
- 保持在边界框内。
- 均匀分布。
- 拉向固定高度,以维持恒定斜率。
- 强制最小和最大转弯半径。
- 相互排斥,以及排斥自身轨道上的远端部分。
- 平滑斜率变化,避免突变。
- 防止斜率过度增加。
- 速度控制: 速度控制是关键挑战。由于轨道角度变化会改变旋转轴,并可能导致旋转惯量耗散,因此简单地将大理石视为质点是不现实的。作者通过设置最小转弯半径和过度倾斜来解决这个问题,以持续消耗速度。
- 升降机设计: 升降机巧妙地设计成类似于球螺纹,通过大理石的约束,使其无需顶部轴承即可运行。然而,这种设计也存在潜在的故障模式:如果螺纹仅在一侧受到大理石的约束,则会导致严重的摇晃,最终导致大理石从轨道上脱落。
支撑结构 (Supports)
- 粒子系统: 支撑结构生成采用自上而下的迭代方法,将支撑柱视为粒子系统,实现简单且稳健。
- 支撑规则: 每个支撑遵循以下规则:
- 拉向其他支撑,权重取决于距离和相似性。
- 相互排斥。
- 保持在边界框内。
- 拉向结构中心的固定半径。
- 惯性: 支撑结构具有惯性,导致支撑柱呈现弧形。
技术细节与未来展望:
- 模型导出: 完成的模型导出时间约为5-20分钟。
- OpenSCAD局限性: 当前模型过于复杂,无法完全在OpenSCAD中优化。
- 未来方向: 作者计划使用更适合有机几何的工具进行重写,例如SDF库。
- 改进方向: 未来改进包括:
- 实现更精确的速度估计,可能通过摄像头测量速度。
- 建立更完善的加速度模型。
- 探索表面滑动曲线,以确定最佳工作点。
项目回顾:
- 项目时间: 该项目从2024年2月开始,持续到2024年9月,是作者投入最多的一次业余项目。
- 展览: 作品被选入New Alliance Gallery展览,在展出前进行大量的调试和优化。
- 问题与限制: 运行过程中,喷泉每小时会丢失2-3个大理石,且电机容易过热,限制了运行时间。
- 致谢: 特别感谢朋友Alex的持续支持和帮助。