初中物理交互式工作台

SKILL开发
开发 未标注权限 许可证不明确
安装这个技能

构建 PhET 风格的单文件 HTML 交互式仿真学习工作台的完整工作流。核心是「高自由度自由搭建」范式(画布任意位置放元件、拖动、连线、增删实体、参数逐项可调、自动重算求解)与「Node DOM 桩」无浏览器自动化验证方法论(语法/外链/id一致性/初始化/动画活性/端到端点击)。含可直接内联的电路编辑器引擎(并查集合并节点+高斯消元节点电压法)、公共运行时(多 Tab + rAF 只驱动当前页 + localStorage + 导入导出)、验证脚本模板,以及 10 条真实踩坑铁律。当用户要"做一个物理/化学/数学交互式仿真""参考 PhET 做仿真页面""可视化实验台/学习工作台""电路仿真能自由加电线加电阻""模型条件可以随便搭建""给每个模型加自定义选项能自己扩展""教学动画演示页面""单文件 HTML 仿真且要能离线用",或需要验证一个大型单文件 HTML 页面里所有交互是否真的可用时,使用本技能。

一句话选型结论

按资料字段整理

初中物理交互式工作台是开发类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类开发 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_f8d8a3c9/physics-lab
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

开发
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_f8d8a3c9仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791726514
正文体量7.6 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
写代码与改 bug

按需求补代码、定位并修掉报错。

读仓库与生成改动

让模型读懂项目结构,再给出可落地的改动。

跑测试与排查故障

按现象排查问题,补测试用例并复跑。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在开发场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
初中物理交互式工作台当前 未标注权限 未标注 未标注 未标注 有
技能审查员 浏览器控制 ClawHub 市场 877.9 万 OpenClaw 有
Vercel React 最佳实践 浏览器控制 GitHub 仓库 849.1 万 Codex、Claude、Cursor 有
GitHub 代码协作 联网访问 ClawHub 市场 763.3 万 OpenClaw 有
网页设计指南 联网访问 GitHub 仓库 668.6 万 Codex、Claude、Cursor 有
本体论 只读 ClawHub 市场 663.7 万 OpenClaw 有

SKILL.md 全文

7.6 KB
模型实际读到的说明书原文,来自技能仓库

交互式仿真学习工作台

用单文件 HTML(零依赖、可离线、手机电脑通用)构建 PhET 风格的学科仿真台。区别于"静态演示动画",本技能的核心主张是:让使用者能自己搭建模型,而不是只能拖两个滑块看预设动画。

何时使用

  • 用户要做物理/化学/数学/生物的交互式仿真、可视化实验台、教学演示页
  • 明确提到 PhET 风格,或"模型条件可以随便搭建""能自己扩展加入"
  • 要求电路能自由加元件、连电线、力学能自由加滑轮/物体、光学能自由放物体
  • 需要给一个已存在的大型单文件 HTML 做全量交互验证(哪些按钮是坏的、哪些动画没动)

交付物标准(不可协商)

  1. 单文件 HTML,CSS/JS/图标全部内联,零外部框架/CDN/字体/图表库
  2. 图表与图形一律手写内联 SVG;图标用内联 SVG path,不用 emoji
  3. 数据存 localStorage(统一前缀 wb_<标识>_),首屏提供导出 JSON / 导入恢复,清空二次确认
  4. 移动端适配:窄屏单列、按钮 ≥44px、输入框字号 ≥16px、type="number" 唤起数字键盘
  5. 首次打开必须有预置示例数据,严禁空白页
  6. 每个仿真模块必须能被验证脚本驱动(注册进全局 sims 数组)

工作流

阶段 1 · 骨架

复制 assets/core-runtime.js 整段内联,改掉 PREFIX。它提供:
$/$all/el/clamp/toast/arrow 工具 → 全局 sims 注册表 + rAF 循环(只驱动当前 tab)→ Tab 切换 → localStorage 存取 → 导出/导入。

阶段 2 · 逐模块实现

每个仿真写成一个 IIFE,末尾 sims.push({tab:"kin", step:step}) 注册。模块模板与命名规范见 references/architecture.md。

阶段 3 · 高自由度改造(本技能的核心价值)

把"滑块调参"升级为"自己搭模型"。两种范式,按模块性质选:

A. 画布编辑器型(电路、力学装配这类有拓扑关系的)
直接用 assets/circuit-editor.js(makeEditor(cfg),已修全部已知 bug)。要点是「六件套」:

# 要件 说明
1 单一状态 st {comps:[], wires:[], tool, pending, drag, sel} 全部状态收拢到一个对象
2 工具栏 setTool() select / wire / del / add:<type> 模式切换
3 画布指针事件 pointerdown/move/up,坐标用 getScreenCTM().inverse() 映射
4 sync() 单一闭环 任何结构变更都只调 sync():solve→draw→renderList→onUpdate
5 DIY 列表 每个元件一行,参数可改、可删
6 预设 + 清空 示例电路一键搭好,另给清空

B. 实体数组型(滑轮组、平面镜成像这类无拓扑、靠几何重算的)
不需要完整编辑器,只需:可增删的实体数组 + 每个实体参数独立可调 + 几何自动重算重绘。
例:滑轮组 movs:[{g:10},...] 支持 +/- 动滑轮(上限 3),自动生成绕绳路径并重算 F=(G+ΣG动+f)/n;平面镜 objs:[{d,h},...] 支持任意加/拖/删蜡烛,自动做镜像对称与反射光路。

阶段 4 · 验证(不要靠"我觉得没问题")

node assets/validate-harness.js 你的页面.html

六道关:语法解析 → 外链扫描 → id 一致性 → 初始化(数 sims) → 逐仿真驱动 6 帧 → 动画活性递归快照。
按钮触发型模块另写 E2E 点击测试。完整方法论与排障流程见 references/verification.md。

踩坑铁律(全部来自真实事故,违反必出问题)

  1. 跨结构引用一律存 id 字符串,绝不存对象引用。
    真实事故:addWire() 把元件对象存进 wire.a.c,而 solve()/draw() 期望的是 id 字符串(c.id===w.a.c)→ 点击连出的线永远接不上节点,电路恒报"未闭合或含浮空节点"。预设电路因为直接写 {c:B.id} 反而正常,导致 bug 长期被掩盖。
    推论:只要出现"预设能用、手动搭建不能用",第一个就查 id/对象混用。

  2. 结构变更必须走 sync() 单一闭环。
    真实事故:addComp/removeComp/addWire 只调了 draw(); renderList();,漏了 solve()+onUpdate → 加完元件读数不刷新,用户以为没生效。

  3. 编辑器初始化若自带预设,二次搭建前必须先 clear()。
    真实事故:makeEditor 末尾自动 presetSeries(),测试里再 addComp 3 次 → 变成 6 个元件、7 根线,拓扑全乱,误判为"重复添加 bug"。

  4. rAF 只驱动当前 tab 的仿真。 十几个仿真同时跑必卡;用 sims[i].tab===currentTab 过滤,并判 document.hidden。

  5. SVG 画布坐标必须用 createSVGPoint()+getScreenCTM().inverse(),不要用 offsetX/clientX 直接当画布坐标——viewBox 缩放下必然错位。

  6. 自由放置必须钳制边界,且动态量要按当前布局算上限。
    真实事故:平面镜物距不限,像跑出画布。解法:dmax() 按镜面位置实时算 clamp(min(mx-25, W-mx)/SCALE, 20, 200),改镜面位置时反向钳制已有物体。

  7. 动画活性检测必须递归进 <g>。 只比较顶层 children 会把"其实在动"的画布误判为静止(元素都嵌在分组里)。

  8. 测试里的按钮 id / 滑块默认值要从 HTML 正则实测解析,不要凭记忆猜。
    真实事故:测试写 ge('cvAuto'),实际是 cvDemo,白排查半天。

  9. DOM 桩的元素级 querySelector 绝不能返回 null。
    动态列表行普遍写 row.querySelector('.v').oninput = fn,返回 null 会崩掉整个初始化,且报错点极具误导性。

  10. 本机删临时文件:rm / PowerShell Remove-Item / cmd del 都会被 safe-delete 拦截。
    可靠做法是在沙箱内跑 Node:
    bash node -e 'const fs=require("fs");["_a.js","_b.js"].forEach(f=>{try{fs.unlinkSync("绝对路径/"+f)}catch(e){}})'

资产

文件 用途
assets/core-runtime.js 公共运行时:工具函数 / rAF 循环 / Tab / 存储 / 导入导出 / 电路工具栏绑定
assets/circuit-editor.js 自由搭建电路编辑器引擎 makeEditor(),含节点电压法求解器,已修全部已知 bug
assets/validate-harness.js Node 零依赖验证桩,node validate-harness.js 页面.html
references/architecture.md 单文件多仿真架构、模块模板、命名规范、高自由度改造清单
references/verification.md 验证方法论、E2E 写法、典型故障→根因对照表

常见问题

5 问
答案由本站依据条目字段整理
初中物理交互式工作台怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_f8d8a3c9/physics-lab。安装方式为未标注。装完刷新技能列表或重开客户端。

初中物理交互式工作台支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

初中物理交互式工作台权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

初中物理交互式工作台收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

初中物理交互式工作台用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。