Communitygithub.com

script-repo/teardown-simulator

將任何真實或想像的機器或機構轉變為可互動、離線的單頁3D模擬器,讓使用者可以拆解、查看剖面、爆炸圖,或駕駛模型,並可錄製成附有配樂的影片。此技能執行 teardown Claude Code 技能。

teardown-simulator 是什麼?

這個技能能夠將任何機器或機構轉變為一個完整的、可互動的單頁3D模擬器,完全離線運行。使用者可以拆解模型、查看剖面圖或爆炸圖,了解機器運作原理,甚至駕駛模型。它支援建立一個基於真實尺寸的程式碼模型,包含一個純函數求解器、即時圖表面板、每個子系統的獨立按鈕、自動導覽功能,以及一個60fps錄製且附有配樂的影片。此技能會先要求參考資料(如剖面圖或照片),並強制所有數字都必須有來源或標註為估計值。它支援 Claude Code 平台,並可選用 Vercel 進行發布。整個工作流程包含八個主要步驟:建立、控制台、外觀、評論、駕駛、錄製、配樂和發布,每個步驟都有明確的提示和規則。最終產出物包括一個小於1MB的離線HTML檔案、評論報告、聯絡表、60fps影片以及預覽卡片。

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

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

Teardown 模擬器

一台機器,一個離線 HTML 頁面:以真實單位程式碼建立的模型、一個純函數求解器(只有一個輸入)、即時面板、每個子系統的按鈕、自動導覽、評論流程、一部 60 fps 的錄影(附有配樂),以及選擇性的發布步驟。

規則

  • 先參考。 在開始建立之前,先詢問或找到剖面圖、照片或影片片段。沒有參考資料,就不建立。
  • 絕不憑空捏造數字。 每個數字都必須有來源,或是標記為估計值,並說明出處。
  • 先確認範圍。 大型建置會消耗大量 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 的衝程]。使用真實數字:[齒條行程 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)。

相關技能