DSH Plugins Marketplace

DSH Plugins

Plugins

/

Just for Fun

/

dsh-physics-lab

d

dsh-physics-lab

Identified

Interactive physics lab in the DSH sidebar — 24 parameter-driven animations (mechanics, electromagnetism, optics, thermodynamics) grouped by grade, each with a knowledge-point lesson whose steps follo

高中物理动态仿真实验室 · dsh-physics-lab

npm license

DeepSeek Harness 的纯客户端物理仿真插件:侧栏入口「物理实验室」,24 个可调参数的互动模型, 按高一 / 高二 / 高三分组,每个模型都有知识点讲解、跟随动画的分步解说、出题判分, 其中 4 个电磁学模型还带可拖动的 3D 视角。所有物理量用解析解在本地计算,不调模型、不耗 token、不联网。

物理实验室面板

安装

dsh plugin --profile web add dsh-physics-lab

桌面端:设置 → 插件 → 添加,搜索 dsh-physics-lab。 装完刷新页面(客户端插件改动需要重启应用)。

亮点

  • 24 个模型,参数实时可调,画布与读数、图表同步变化
  • 讲解卡片在右栏最上方:知识点 + 95 条跟随动画进度的分步解说
  • 练习:随机出题 / 样例题两种模式,难度与参数范围匹配,答完给解析;得分与参数本机记忆
  • 3D 视角:安培力、磁场圆周(螺旋线)、电磁感应、速度选择器,拖动画面即可旋转
  • 零依赖:只用 React + Canvas 2D,没有 three.js,包体 ~300 KB

模型(按学期分组)

标签栏按人教版进度分成三组,和学校教学顺序一致。

高一(必修一、必修二)

模型可调参数实时展示
匀变速直线运动(追及)后车 v₁ / a、前车 v₂、初始间距 s₀追及时间、追上时速度、两车间距与 v–t/间距曲线;v₁ ≤ v₂ 且 a = 0 判定「追不上」
力的合成F₁、F₂(夹角 0°→180° 自动扫描)平行四边形与三角形法则实时作图、合力 R 与方向、合力范围
斜面滑块倾角 θ、动摩擦因数 μ、质量 ma/v/s、N、f、mg,含「μ ≥ tanθ 则静止」判定
连接体(滑轮)左质量 m₁、右质量 m₂a、绳张力 T、位移/速度、m₁g/m₂g,m₁ = m₂ 判定平衡
抛体运动初速度 v₀、抛射角 θ、抛出高度 h飞行时间、射程、最大高度、vx/vy/合速度、轨迹
匀速圆周运动半径 r、线速度 v、质量 mω、T、转速、向心加速度、向心力、已转角度/圈数
万有引力与卫星中心天体质量 M、半长轴 a、偏心率 e、卫星质量 m椭圆轨道(焦点在中心天体)、周期 T、近/远地点速度与距离、当前 v
机械能守恒高度 h、倾角 θ、质量 m、动摩擦因数 μ势能/动能/摩擦生热三段能量条,Ek+Ep+Q 守恒,末速度

高二(必修三 + 选择性必修一)

模型可调参数实时展示
电场中的类平抛场强 E、电荷量 q、质量 m、入射速度 v₀、场区宽度 La、在场时间、侧移 y、v_y、出射速度、偏转角,抛物线轨迹与电场线
闭合电路欧姆定律电动势 ε、内阻 r、外阻区间I、路端电压 U、输出功率、效率,U–I 特性线与工作点随外阻移动
动量守恒m₁、m₂、v₁、碰撞类型(完全弹性 / 完全非弹性)碰前/碰后动量、v₁′、v₂′、碰前动能、动能损失
弹簧振子劲度系数 k、质量 m、振幅 AT、ω、x/v/a、回复力 F、动能/势能能量条
机械波振幅 A、波长 λ、波速 vT、f、波速、考察点位移与振动速度,λ/A 标注与传播方向
波的干涉波长 λ、波源间距 d、波速 v、单源振幅 A双源叠加的实时干涉图样、f、加强点个数、加强/减弱处合振幅
单摆(阻尼振动)摆长 L、初始摆角 θ₀、阻尼系数 bT、ω、θ/θ̇、当前振幅、摆球速度,θ–t 图
光的折射与全反射折射率 n、入射角 i、入射方向折射角、临界角、是否全反射、介质中光速;三条光线 + 流动光脉冲

高三(选择性必修二、三)

模型可调参数实时展示
磁场中的圆周运动磁感应强度 B、电荷量 q、质量 m、速度 v半径 r、周期 T、角速度、洛伦兹力、向心加速度,B 场符号与轨迹圆
复合场(速度选择器)E、B、入射速度 v、电荷量 q、质量 m电场力 qE、洛伦兹力 qvB、合力与偏转轨迹;v = E/B 时直线通过
电磁感应磁感应强度 B、导轨间距 L、棒速 v、电阻 Rε = BLv、I、安培力 F、电功率;安培力方向恒与 v 相反
安培力B、电流 I、棒长 L、质量 mF = BIL、加速度、导轨上导体棒的加速运动
交变电流与变压器峰值 U_m、频率 f、原副线圈匝数正弦瞬时值、有效值、匝数比与 U₂,变压器线圈示意
驻波(弦的谐波)弦长 L、谐波次数 n、振幅 A、波速 v驻波波形与包络、波节/波腹、λ = 2L/n、频率分立
气体等温过程物质的量 n、温度 T、初末体积 V₁/V₂气缸活塞+分子示意、压强计、p₁/p₂、pV 恒定、做功与吸热
原子能级与跃迁起始 / 末能级(n = 1…5)能级图、电子跃迁动画、光子能量 hν = ΔE 与波长 λ

每个模型都带:

  • canvas 动画(播放/暂停、0.25×–2× 变速、重置)
  • 矢量开关:受力(mg / N / f / T / qE / 洛伦兹力)与速度矢量
  • v–t 图(部分模型为 θ–t、ε–t、p–t 等):整段运动的解析采样曲线 + 当前时刻游标
  • 实时读数与规律公式 + 教学提示

3D 视角(4 个模型)

安培力、磁场中的圆周运动、电磁感应、复合场(速度选择器) 支持 3D:控制条上的「3D 视角」开关打开后,拖动画面旋转。 3D 用自写的正交投影(旋转矩阵 + 深度排序)直接画在 2D canvas 上,不引入 three.js,包体不变。

  • 安培力:导轨在水平面、B 竖直向下、电流沿棒、安培力沿导轨,三个垂直方向同屏可见。
  • 磁场圆周:新增「速度与 B 的夹角 α」参数;α<90° 时 v⊥ 圆周 + v∥ 匀速 = 螺旋线, 界面同时给出 v⊥、v∥ 与螺距 p = v∥T。
  • 电磁感应:导轨平面 + 竖直磁场,3D 里画出感应电流的回路方向与阻碍运动的安培力。
  • 速度选择器:上下极板 + 指向纸内的 B,实时画出 qE 与 qvB 两个方向相反的力。

闭合电路的动画

circuit 模型是"会动"的:滑片按三角波在变阻器上来回滑动,外阻 0→1→0 往返变化 (duration = 2、loop: true),回路上 10 个电荷点沿导线流动且速度随电流增大, 右上两块条表分别是 I(满量程 ε/r)与 U(满量程 ε)。图表画的是电源的 U–I 特性线 (从 (0, ε) 到 (ε/r, 0),斜率 −r),工作点随外阻沿线滑动。

本机记忆

用 localStorage(键 physics-lab/v1)记住:上次看的模型、每个模型上次的参数、练习得分。 重新打开面板或重启应用都不会清零;隐私模式下写入失败会被静默忽略。

关于布局

画布用 position: absolute 撑满 canvasWrap,canvasWrap 用 lex: 1 1 0% 吃剩余高度: 画布不参与父容器高度计算,所以窗口放大/缩小时画布跟着弹性伸缩,下面的图像卡片不会被挤出可视区。 窗口过矮时画布最小 220 px,其余内容由右侧栏滚动。

关于动画时长

每个模型都定义了 playback(一次完整过程占多少秒观看时间,默认 8 s),播放时按 sim 时间 / playback 换算。这样万有引力(真实周期约 1.3×10⁴ s)不会看起来静止不动, 电场偏转(0.03 s)也不会一闪而过;万有引力、折射、干涉还额外 loop,会一直循环演示。

讲解(跟随动画)

每个模型的右侧底部有「讲解」卡片:

  • 分步解说:每步带一个 at(0–1 的动画进度),播放时自动切换; 卡片上显示 第 n/N 步、当前这句解说,以及一条进度条。 暂停、改参数、切模型都会立刻重算到对应那一步。
  • 知识点:一句到几句话讲清"是什么—为什么—易错点", 例如斜面给临界条件 tanθ ≤ μ,磁场圆周说明周期与速度无关。

共 24 段知识点 + 95 条分步解说,'_smoke.mjs' 会检查每段文案的中英文完整性、 at 是否有序且落在 [0,1] 内。

练习(出题 + 判对错)

每个模型右上方的「练习」卡片:

  1. 点 出一题:按该模型的滑块范围随机生成一组参数,并把面板参数同步过去(动画就是这个题的情景);
  2. 填数值 → 点 判对错(或直接回车):按「相对误差 2%、绝对误差 0.02」判定;
  3. 答对记 1 分(「已答 n · 答对 m」),答错可以 再试一次;
  4. 随时点 看解析:显示标准答案与代入过程。

题库为每个模型 3–4 类问法,例如:斜面问 a / 末速 / 时间 / 摩擦力;抛体问飞行时间 / 射程 / 最大高度;弹簧问 T / v_max / a_max / 能量;圆周问向心加速度 / 周期 / 向心力 / 角速度;滑轮问 a / T / 下落时间;电场问 a / 时间 / 侧移 / 偏转角;磁场问 r / T / F / ω;机械波问 T / f / 某点位移 / 某点振动速度(含符号);动量问碰后速度 / 系统动量 / 动能损失。

出题答案与模型解析解使用两套独立代码计算,_smoke.mjs 会把 24 个模型各抽 300 道题,逐题核对「题目参数齐全、答案能被模型解析解复算、判分自洽」。

随机题 / 真题

「练习」卡片顶部有两个模式:

  • 随机:按模型参数范围随机生成,可无限出题(上面说的就是这种)。
  • 真题:取自内置题库 EXAM_BANK,题目带出处标签与考点标签,参数会同步到动画。

⚠️ 目前题库里的 12 道是按高考与四川一诊/二诊/三诊的题型、考点和难度编写的样例题, 明确标注「改编」,不是逐字原文。我不凭记忆复述原题,避免把编的题标成某年某卷。 每道样例题的答案都用模型解析解复算过(_smoke.mjs 的「样例题库」断言),数字自洽。

真题导入(原题)

要把真正的原题放进题库,把试卷文件给我即可:

  1. 把 PDF / Word 放到 C:\Users\zd198\Desktop\pentai\physics-lab\exam\(没有就新建);
  2. 告诉我「导入」;
  3. 我用 Office 解析能力(office-docx / PDF 渲染 + OCR)把每道题拆成 { 年份, 地区/卷别, 题号, 题干, 选项, 答案, 解析, 对应模型, 参数 },逐题核对答案后写进 EXAM_BANK,并在界面上显示真实出处(例如「2024 成都一诊 · 第 24 题」)。

导入时只收录能对应到现有 24 个模型的题(数值计算题);选择题、实验题会标注为「题型不支持」 单独列一个清单,方便你手工处理。

目录

package.json        插件清单(dsh.bundle + dsh.client)
cordis.patch.yml    把宿主插件插进 profile 的 patch
index.js            宿主一半(空实现:本插件不需要后端逻辑)
client.js           全部界面、物理引擎与题库(单文件,无需构建)
icon.svg            侧栏图标
_smoke.mjs          离线自测:24 个模型的解析解/单位/边界参数 + 每个模型 300 道出题核对
_ssr.mjs            渲染自测:用 react-dom/server 渲染面板抓渲染期异常
_preview.mjs        生成 preview.html,把 24 个模型画到静态页,便于截图核对
_layout.mjs         生成 layout.html,用不同窗口尺寸检查布局(放大窗口时是否裁切)

自测

node _smoke.mjs     # 物理数值:全部 PASS 才算通过
node _ssr.mjs       # 面板能否渲染(需要同版本的 react / react-dom)
node _preview.mjs   # 生成 preview.html,浏览器打开看 5 张图

安装(desktop profile)

$node = "C:\Users\zd198\AppData\Local\Programs\DeepSeek Harness\resources\runtime\primary-runtime\dependencies\node\bin\node.exe"
$pnpm = "C:\Users\zd198\AppData\Local\Programs\DeepSeek Harness\resources\runtime\primary-runtime\dependencies\pnpm\dist\pnpm.mjs"
& $node $pnpm add "link:C:/Users/zd198/Desktop/pentai/physics-lab" --dir "$env:USERPROFILE\.dsh\profiles\desktop" --prefer-offline

然后把 @local/physics-lab 加进 profile package.json 的 dsh.profile.bundles,刷新页面即可。 (不要用 PATH 上的 dsh plugin add:那个转发的是 pnpm 10,和 desktop profile 的 pnpm 11 store 不兼容。)

改动说明

  • 物理量全部用解析解(不用数值积分),所以暂停/拖动参数/变速都不会漂移。
  • 画布坐标统一「世界米 → 像素」,每个模型自己声明世界包围盒,窗口缩放自适应。
  • 颜色优先读 DSH 的 --dsw-alias-* 变量,跟随深/浅色主题。
  • 调试钩子:window.__physicsLab 暴露 MODELS / seriesOf / createView / readPalette / setChip。

仓库

https://github.com/novick1212/dsh-physics-lab

License

MIT © novick1212

Comments

Loading…

Similar plugins

dsh-tianjige

by MengXingXiaoMing

Algorithm field guide for graphics, animation, physics and AI work — 219 entries with tradeoffs and links to existing implementations, exposed as 10 agent tools and a sidebar page. AI-assisted tools r

Tools & CapabilitiesManifest valid

★ 0

MIT

JavaScript

Oct 19, 2026

dsh plugin --profile web add dsh-tianjige

by StarsHarryZhu

Interactive cards in replies, built from a fixed catalog of 27 components (sliders, inputs, tables, charts, function plots, typeset formulas, quiz buttons, an animation player): controls recompute in

UI & ExperienceManifest valid

★ 0

MIT

JavaScript

Oct 27, 2026

dsh plugin --profile web add dsh-intelligent-ui

Skill bundle for tiered multi-agent science campaigns in math, physics, astronomy, engineering, and biomedical evidence: a shared blackboard, independent verifier and red team, wolf-pack and flanking

Workflow & AutomationManifest valid

★ 0

dsh plugin --profile web add dsh-science-legion

by poplarity

A reproducible science workbench plugin for the DeepSeek Harness: agent-driven cells, inline figures with feedback/rerun, manifest provenance, and environment snapshots. 9 bio_* tools + workbench UI +

Tools & CapabilitiesManifest valid

★ 11

↓ 543/wk

MIT

JavaScript

Oct 30, 2026

dsh plugin --profile web add dsh-science-workbench

by xuanfu-web

Divination panel and agent tool: BaZi with 42 shensha plus pattern, useful-god and luck scoring; Zi Wei Dou Shu with star brightness, 34 patterns, decade and annual/monthly/daily/hourly mutagen; LiuYa

UI & ExperienceManifest valid

★ 4

↓ 3.7k/wk

MIT

JavaScript

Nov 4, 2026

dsh plugin --profile web add dsh-metaphysics

dsh-sciwork 把「科研模式」装进 DeepSeek Harness:一个落在自己硬盘上的科研库、一套技能与一块面板。课题、图、草稿、文献、数据表、期刊档案、投稿台账各有其位,写入都经库脚本落盘并登记,面板只读为主、自己不出图。技能把「怎么画、怎么写、怎么引」固化成纪律:出图交给 Origin 链路,写作、引用、投稿格式各有专门技能,外加 12 份期刊档案兜底。零 npm 依赖,路径运行时解析,换台机器照样跑。

Tools & CapabilitiesTerminal & ClientsManifest valid

★ 0

MIT

JavaScript

dsh plugin --profile web add dsh-sciwork