Communitygithub.com

拆卸模拟器

让任何真实或想象的机器或机制变成一个交互式、离线、单页的3D模拟器,支持剖切、分解图、“它是如何工作的”解说、可驾驶模型或带配乐的视频。

拆卸模拟器 是什么?

该技能通过 Claude Code 将任意机器转化为一个独立的单页 HTML 交互式 3D 模拟器,支持剖切视图、分解展示和实时面板。它基于纯函数求解器构建模型,以真实物理单位驱动动画,并提供自动导览、录制 60fps 视频和配乐功能。支持在 Cursor、Windsurf 和 Claude Code 等 AI 编程工具中运行,要求 Node.js ≥20、ffmpeg、Python3 和 Playwright。工作流程分为构建、控制台布局、外观设计、批评审查、驱动、录制、配乐和发布等步骤,强调数据可追溯性(所有数字必须有来源或标记为估算值)和性能优化(页面<1MB,集成 GPU 降质策略)。最终交付物包括离线 HTML、批评报告、联系表、视频文件和预览卡片。

兼容平台✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/script-repo/3d-studio/tree/HEAD/skills/teardown-simulator

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

拆卸模拟器 是做什么的?

一台机器,一个离线 HTML 页面:用真实单位代码构建的模型,一个仅依赖一个输入的纯函数求解器,实时面板,每个子系统一个按钮,自动导览,批评审查,一段 60fps 的录制视频及配乐,以及可选发布步骤。

规则

  • 先参考。 开始前,先索要或找到剖视图、照片或剪辑。无参考则不构建。
  • 绝不凭空捏造数字。 每个数字必须有来源,或者明确标记为估算值,并注明出处。
  • 先确认范围。 大型构建会消耗大量 Claude Code 额度:需就机器、节拍、是否录制视频达成一致。
  • 每次发布都必须明确获准。
  • 在主机上:仅限用户级操作,不使用 sudo,不干扰集群服务,长时间渲染在 tmux 中运行并记录日志。

挑选一台好机器

一个运动输入(曲柄角度、行程 0..1、风、时间)和真实的公开数据。推荐起步:自行车变速器、手表擒纵机构(4 Hz)、汽车差速器、缝纫机锁式线迹、挖掘机臂。避免具有多个独立输入或隐藏尺寸的机器。

模拟器结构

  1. 机器——用代码以真实单位构建。2. 模型——一个仅依赖一个输入的纯函数求解器。3. 面板——来自同一模型的实时图表。4. 按钮——按子系统隔离/剖切/单独显示、视图、滑块。5. 窗口——地面/舞台显示求解器的输出。6. 导览——自动光标导览;任何输入交还控制权;25 秒无操作自动恢复。

安装和运行(在 上)

npx skills add elvarofficial/teardown -g -a claude-code
cd ~/.claude/skills/teardown && npm install && npx playwright install chromium
# 需要 Node >= 20, ffmpeg, python3
mkdir -p ~/3d-studio/{projects,out,logs,smoke}
cd ~/3d-studio/projects/<machine>
tmux new -s <machine> 'claude 2>&1 | tee ~/3d-studio/logs/<machine>.log'
# 在 Claude Code 内:/teardown ...   (绝不使用 --dangerously-skip-permissions)

冒烟测试:运行 node ~/.claude/skills/teardown/sims/build.mjs cessna-live,然后从 teardown-out/dist/ 打开 HTML。

工作流程(替换 [括号] 内容)

  1. 简报:填写 templates/brief.md(参考、单一输入、真实数字、部件),并确认范围。

1. 构建

/teardown Build [Cessna 337 主起落架] 为一个交互式 3D 模拟器。附件为:[起落架剖视图]。用真实单位的代码构建:[部件]。在绘制任何图形之前,将模型编写为仅依赖一个输入的纯函数:[行程 0 到 1]。使用真实数字:[齿条行程 201mm,32 齿小齿轮模数 4mm,转向臂精确旋转 180°]。手动检查这些数字并向展示核验过程。如果不确定某个数字是否真实,请说明并告知其来源。每个部件、每个面板和每个标签都从这一模型读取数据。没有任何部分是通过手动动画实现的。

2. 控制台

在机器周围以 1600×900 布局一个控制台:左上角是大标题和主要实时数字:[发动机转速 rpm]。随机器移动的实时图表:[气门升程随曲轴旋转 720° 变化图、PV循环图]、一个从同一模型以 2D 方式重绘机构的原理图面板。每个子系统一个按钮:隔离、剖切、单独显示。相机视角作为按钮:[主视角、正面、侧面、顶部、内部]。带细引线的标注。每个面板都根据每帧的状态重绘。屏幕上的每个数字都不是手动输入的。

3. 外观

风格:在浅色背景的演播室中呈现一个干净的研究模型。浅色背景,隐形地板上的柔和阴影,当前工作部分使用一种强调色:[强调色]。机器占据视图的 60–70%。暗色部分有光泽,内衬为玻璃材质,金属粗糙度至少 0.45。近乎白色的部分添加细墨线轮廓或更深的底色。为机构选择摄影机视角:如果正面视角会重叠成网格,则使用 [3/4 视角]。

4. 批评审查

在展示任何内容之前:1. 在导览的每个节拍处渲染静态图像,并检查每张图像:部件穿过另一个部件、部件脱离安装座、标签遮盖其命名的内容、数字与姿势不一致。2. 以 0.2 秒的步长检查每个过渡是否存在跳变。3. 在参数块中通过调整数字修复碰撞,绝不通过相机来隐藏。告诉我你检查了什么以及修复了什么。向我展示静态图像。

5. 驱动

导览自动播放,光标会按下按钮:[导览节拍]。任何点击、拖拽、滚动或键盘操作都会将控制权交给访客;25 秒无操作后自动恢复控制权。拖拽旋转视角,滚轮缩放,[键] 隐藏面板。在渲染第一帧之前预热所有着色器。在集成 GPU 上使用质量分级进行测试:无环境光遮蔽、降低像素比率、减小阴影尺寸、每隔一帧更新面板。

6. 录制

将 render(t) 编写为时间在 [20 秒] 上的纯函数。在无头 Chrome 中以 60fps、1920×1080 绘制每一帧,并将其通过管道输送到 ffmpeg,编码为带有 faststart 标志的 H.264 yuv420p 格式。提供每个节拍的联系表。

7. 配乐

在同一时间线上用代码编写配乐:[92 bpm 的 Am9 和弦,每次动力冲程时重击,每次按钮按下时发咔哒声,油门阻力上升时伴随空气声]。母带处理至 -14 LUFS,真峰值低于 -1 dB,并将其混入视频中。

8. 发布

确保 HTML 小于 1 MB(大型模型放在同级文件中)。从最佳画面制作一张 1200×630 的预览卡片,使用绝对图片 URL。只有在得到我批准后才能部署到 [Vercel / 主机]。

9. 损坏它(加分项)

添加一个 [风速 0–15 m/s] 的滑块,实时运行模型;在相同面板上展示其效果。

经验教训

  • 保持页面小于 1 MB:一个 15.9 MB 的页面导致 X 链接卡片失效;967 KB 解决了问题。
  • 集成 GPU:质量分级(无环境光遮蔽、降低像素比率、减小阴影尺寸、每隔一帧更新面板)将一个构建从 15 fps 提升到 75 fps。
  • 静态图像能捕捉到运动中被掩盖的碰撞。务必运行批评审查。
  • 在参数块中修复碰撞,绝不通过相机来隐藏。

交付物

文件夹包含:<machine>.html(离线,小于 1 MB),批评报告(templates/critic-report.md,含静态图像),联系表,<machine>.mp4(60 fps,-14 LUFS),手核数字及其来源/标记的模型,以及出版时用的预览卡片。

鸣谢

工作流程和提示词来自 Elvar (@elvar_official),“How I Turn Any Machine Into a 3D Simulator You Can Take Apart”(X, 2026-10-30)。运行 Elvar 的拆卸技能,github.com/elvarofficial/teardown (MIT),基于 whaleyxbt/claude-motion (MIT)。

相关技能