Teardown 模擬器
一台機器,一個離線 HTML 頁面:以真實單位程式碼建立的模型、一個純函數求解器(只有一個輸入)、即時面板、每個子系統的按鈕、自動導覽、評論流程、一部 60 fps 的錄影(附有配樂),以及選擇性的發布步驟。
規則
- 先參考。 在開始建立之前,先詢問或找到剖面圖、照片或影片片段。沒有參考資料,就不建立。
- 絕不憑空捏造數字。 每個數字都必須有來源,或是標記為估計值,並說明出處。
- 先確認範圍。 大型建置會消耗大量 Claude Code 使用量:需先同意機器、節拍、是否錄影。
- 每次發布都需要明確的同意。
- 在主機上:僅限使用者層級,不使用 sudo,不要干擾叢集服務,長時間渲染請在 tmux 中進行並記錄日誌。
挑選一台好機器
一個移動輸入(曲柄角度、衝程 0..1、風力、時間)和真實的公開數據。好的起點:自行車變速器、手錶擒縱機構(4 Hz)、汽車差速器、縫紉機鎖式線跡、挖土機臂。避免使用具有多個獨立輸入或未知尺寸的機器。
模擬器結構
- 機器 — 以程式碼和真實單位建立。 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 檔案。
工作流程(替換 [括號] 中的內容)
- 簡報:填寫 templates/brief.md(參考資料、單一輸入、真實數字、零件)並確認範圍。
1. 建立
/teardown Build [Cessna 337 主起落架] 成為一個互動式 3D 模擬器。附上參考資料:[起落架的剖面圖]。以真實單位的程式碼建立它:[零件]。在繪製任何東西之前,先將模型寫成一個輸入的純函數:[從 0 到 1 的衝程]。使用真實數字:[齒條行程 201 毫米,小齒輪 32 齒,模數 4 毫米,支臂旋轉精確 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 中以 60 fps、1920×1080 繪製每一幀,並將其傳遞給 ffmpeg 編碼為包含 faststart 的 H.264 yuv420p。給我每個節點的聯絡表。
7. 配樂
在同一個時間軸上以程式碼為它配樂:[Am9 和弦,92 bpm,每個動力衝程一個重擊聲,每次按鈕按下一個點擊聲,油門拖曳時上升的背景音]。母帶處理到 -14 LUFS,真實峰值低於 -1 dB,並將其混入影片中。
8. 發布
將 HTML 壓縮到 1 MB 以下(大型模型放在同級檔案中)。從最佳幀製作一張 1200×630 的預覽卡片,使用絕對圖片網址。只有在獲得我同意後才部署到 [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),「如何將任何機器變成可拆解的 3D 模擬器」(X,2026-10-30)。執行 Elvar 的 teardown 技能,github.com/elvarofficial/teardown(MIT),建基於 whaleyxbt/claude-motion(MIT)。