待补充
bencbartlett/3D-printed-mirror-array
3/5
🧩 软硬件结合
已发布
项目简介
3D-printable hexagonal mirror array capable of reflecting sunlight into arbitrary patterns
这是一个充满浪漫与工程巧思的开源项目。作者为了向同为极客的伴侣求婚,设计并3D打印了一个六边形镜面阵列,利用落日的光线在地面上拼出“MARRY ME?”字样。项目核心功能是通过算法精确计算每个镜面的倾斜角度,使阳光经反射后汇聚到地面指定位置,形成预设图案。其技术栈以Python为主,依赖numpy、matplotlib、numpy-stl、hexy等库进行几何计算与3D模型生成,并支持在Jupyter环境中交互式调试。项目解决了如何将任意图像通过镜面反射投影到任意焦平面的工程问题,核心算法基于向量反射定律:已知太阳位置、镜面中心坐标和目标像素位置后,通过计算入射光与反射光的角平分线来确定镜面法向量,进而生成每个六边形棱柱的3D打印模型。适用场景非常广泛,除了浪漫求婚,还可用于艺术装置、户外广告、天文观测辅助设备或建筑外立面的动态光影设计。用户只需修改代码中的目标图像和焦距参数,即可生成专属的镜面阵列模型。项目还贴心地列出了所需硬件清单,包括1英寸六边形镜片、PLA耗材和氰基丙烯酸酯胶水,并强调胶水需极薄涂抹以避免影响镜面角度精度。整体而言,这是一个将数学、编程、3D打印与光学巧妙结合的硬核浪漫项目。
标签
项目特点
**浪漫求婚的工程表达**:用算法和3D打印技术,将“MARRY ME?”字样通过落日光线投射到地面,是极客式浪漫的典范。
**精确的向量反射算法**:基于太阳位置、镜面中心坐标和目标像素位置,通过计算入射光与反射光的角平分线确定镜面法线,实现高精度投影。
**支持任意图像投影**:不仅限于文字,可将任意图像或图案通过镜面阵列反射到任意焦平面,具备通用性。
**全流程Python实现**:从几何计算、镜面排布到3D模型生成,全部在Python环境中完成,便于修改和扩展。
**Jupyter交互式调试**:支持在Jupyter Notebook中逐步运行和可视化,降低调试门槛。
**开源可复现**:所有代码、设计文件和计算脚本均开源,用户可自行调整参数并3D打印组装。
技术规格
| 镜面阵列形状 | |
|---|---|
| 镜面数量 | |
| 单个镜面尺寸 | |
| 阵列整体尺寸 | |
| 3D打印材料 | |
| 镜面材料 | |
| 核心算法 | |
| 编程语言 | |
| 主要依赖库 | |
| 开发环境 | |
| 输出文件格式 | |
| 太阳位置输入 |
项目资源
搜索资源
物料清单 (BOM)
| 物料名称 | 数量 | 参考价格 | 备注 |
|---|---|---|---|
| 3D打印镜面底座(六边形阵列) | 1个 | — | PLA材质,需自行打印 |
| 方形镜片(10mm x 10mm) | 约100片 | — | 普通镜面贴片或亚克力镜片 |
| PLA线材 | 约50g | — | 取决于打印尺寸 |
| 胶水(如超强胶) | 1支 | — | 用于固定镜片 |
| 水平仪 | 1个 | — | 用于校准阵列水平 |
3D 模型
能力画像
**记忆与知识检索**:3/5 — 需要理解向量反射定律和太阳位置计算,但算法已封装在代码中,无需记忆复杂公式。
**动手与操作**:4/5 — 需要3D打印、切割镜片、粘贴组装,以及户外实地调试,动手要求较高。
**编程与算法**:4/5 — 核心算法基于Python和numpy,需要理解向量运算和几何计算,但代码已提供,可修改参数。
**设计与建模**:3/5 — 六边形阵列设计已固定,但可调整镜面数量、排列和图案,需要一定3D建模思维。
**实验与调试**:5/5 — 需要根据实际太阳位置、地面距离反复调试镜面角度,实验性很强。
**协作与分享**:2/5 — 项目主要为个人使用,但可分享成果和修改版本。
**学习与研究**:4/5 — 涉及光学反射、几何计算、3D打印等多个领域,学习价值高。
**系统集成**:3/5 — 需要将算法、3D打印、光学元件和户外环境整合,有一定系统集成难度。
项目图库
所需技能
基础Python编程(numpy、matplotlib)
3D打印操作(切片、打印、后处理)
基础光学知识(反射定律)
手工制作能力(切割、粘贴、组装)
户外调试能力(根据太阳位置调整)
基础几何计算(向量、角度)
适用场景
**求婚或特殊纪念日**:用光影文字制造惊喜,如“MARRY ME?”、“I LOVE YOU”等。
**户外艺术装置**:在公园、广场等场所投射图案或文字,作为临时艺术展示。
**科学教育演示**:用于讲解光的反射、向量几何和3D打印技术。
**极客婚礼或派对**:作为互动装饰,投射定制图案或祝福语。
**个人DIY项目**:学习光学、编程和3D打印的综合实践项目。