code-built-3d
Installation
SKILL.md
代码搭 3D 场景
这个 skill 做两件事:从零件把一个东西搭出来,再把它拆开。两件事用同一套零件数据。
| 环节 | 怎么做 | 在哪 |
|---|---|---|
| 零件 | 每个物件是一个函数,往 Assembly 里加 box / cyl / cone / ball / line。每个零件带名字、角色(shell 是能降下去的外壳)、尺寸,可选爆炸方向 |
assets/kit.js 的 Assembly |
| 画法 | 面的明暗按朝向分三档(顶面最亮,朝镜头的两面依次暗一档),每条边描细黑线;离焦点越远(竖向距离或深度)越融进白色 | createLook(),一个着色器 |
| 镜头 | 正交相机。镜头 = 目标点、缩放、方位角、仰角,换镜头时用 smootherstep 连续过渡,缩放按对数插值。不硬切 | Director |
| 去壳 | 外壳按 y 方向缩到 0,像墙沉进地板。看房间时,上面的楼层整体抬起 | setShell(),demo 里的 LIFT |
| 拆开 | 把选中的部分改成逐零件建模,零件分层往上升,水平方向不超出给定范围;manifest() 给出零件清单(名字、尺寸、位置) |
exploder()、Assembly.manifest() |
| 交互 | 悬停显示包围框和标签,点击切到对应镜头;DOM 气泡钉在 3D 点上,被雾吞掉时自动隐藏 | picker()、outline()、labels() |
| 无限 | 以一个移动的坐标为中心,只保留前后若干块,出范围的块回收;同一个种子永远生成同一座城 | streamer()、rng(seed) |