{
  "version": "1.6.0",
  "builtAt": "2026-10-18T20:25:17.823Z",
  "workbenches": [
    {
      "id": "bell",
      "title": "电铃真空罩",
      "url": "/physics/lab/?lab=bell"
    },
    {
      "id": "circuit",
      "title": "自由搭电路",
      "url": "/physics/lab/?lab=circuit"
    },
    {
      "id": "optics",
      "title": "自由光学台",
      "url": "/physics/lab/optics/"
    }
  ],
  "models": [
    {
      "id": "motion-reference",
      "title": "直线运动与参考系",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "01 · 运动描述",
      "description": "观察匀变速、刹车与反向运动；切换到移动观察者，并比较位移和路程。",
      "formula": "x=x₀+v₀t+½at²；v=v₀+at；x′=x−ut",
      "assumptions": "匀加速度一维运动；刹车模式在速度降到零时停止，不反向加速。",
      "presets": [
        "匀速",
        "匀加速",
        "刹车",
        "竖直上抛的坐标图",
        "自由落体的坐标图",
        "移动参考系"
      ]
    },
    {
      "id": "vertical-throw",
      "title": "自由落体与竖直上抛",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "02 · 直线运动",
      "description": "沿真实竖直方向显示落体与上抛，最高点速度为零但重力加速度始终不为零。",
      "formula": "y=h+v₀t−½gt²；v=v₀−gt；h最大=h+v₀²/(2g)",
      "assumptions": "竖直质点、无空气阻力；首次落地后画面停在接触点，速度读数表示碰地前瞬时速度，不模拟碰撞。",
      "presets": [
        "自由落体",
        "地面竖直上抛",
        "楼上向上抛",
        "竖直下抛"
      ]
    },
    {
      "id": "piecewise-motion",
      "title": "分阶段运动与图像拼接",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "02 · 直线运动",
      "description": "先加速、后匀速、再刹车；每阶段的位置和速度连续，刹车后保持静止。",
      "formula": "每段分别用 x=x初+v初Δt+½aΔt²；段末状态传给下一段",
      "assumptions": "三个连续阶段；第二阶段匀速，第三阶段制动不反向。时间轴最多 20 s。",
      "presets": [
        "加速—匀速—刹车",
        "缓慢刹车",
        "非零初速"
      ]
    },
    {
      "id": "chase-meeting",
      "title": "追及与相遇",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "02 · 直线运动",
      "description": "两条运动轨迹与间距图同时呈现，支持延迟出发、反向运动和二次相遇。",
      "formula": "Δx=xB−xA；相遇条件 Δx=0",
      "assumptions": "两物体在平行轨道上运动，相遇时不发生碰撞。",
      "presets": [
        "同向追及",
        "相向相遇",
        "延迟出发",
        "两次相遇"
      ]
    },
    {
      "id": "force-vectors",
      "title": "力的合成、分解与正交投影",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "03 · 力与平衡",
      "description": "两力的平行四边形与合力同步变化；可将同一向量投影到旋转后的坐标轴。",
      "formula": "Rx=F₁cosα+F₂cosβ；Ry=F₁sinα+F₂sinβ；R=√(Rx²+Ry²)",
      "assumptions": "向量运算模型；力箭头按共同比例绘制，坐标和箭头数值单位为 N，不表示物体位移。",
      "presets": [
        "垂直两力",
        "同向合力",
        "反向抵消",
        "沿斜面分解重力"
      ]
    },
    {
      "id": "force-equilibrium",
      "title": "绳结平衡与力的合成",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "03 · 力与平衡",
      "description": "两根斜绳共同悬挂重物；改变绳角，观察张力和闭合的力三角形。",
      "formula": "T₁ cosα=T₂ cosβ；T₁ sinα+T₂ sinβ=mg",
      "assumptions": "轻绳、质点、静力平衡；两个角均相对水平线，不能退化为平行水平绳。",
      "presets": [
        "对称悬挂",
        "不对称平衡",
        "绳接近水平"
      ]
    },
    {
      "id": "incline-friction",
      "title": "斜面、摩擦与牛顿定律",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "04 · 牛顿定律",
      "description": "统一处理静摩擦、滑动、停止、反向以及沿斜面的外力。静摩擦不会始终等于 μN。",
      "formula": "F−mg sinθ+f=ma；N=mg cosθ；|f静|≤μsN",
      "assumptions": "刚性固定斜面；外力沿斜面，向上为正。动摩擦系数超过静摩擦系数时按静摩擦上限截取。",
      "presets": [
        "静止的斜面物块",
        "从斜面滑下",
        "水平面拉力",
        "上滑后反向",
        "水平滑动后停止"
      ]
    },
    {
      "id": "elevator-weight",
      "title": "升降机：超重与失重",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "04 · 牛顿定律",
      "description": "电梯加速方向决定示数，速度方向本身不决定超重或失重。",
      "formula": "N=m(g+a)；a=−g 时 N=0",
      "assumptions": "a 向上为正；a 小于 −g 时人会离开底板，此模型只允许 a≥−g。",
      "presets": [
        "超重",
        "失重",
        "完全失重",
        "匀速下降"
      ]
    },
    {
      "id": "cut-rope-spring",
      "title": "剪绳瞬间与弹簧力突变",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "04 · 牛顿定律",
      "description": "原来静止的两个物体由弹簧连接，剪断上方悬绳后：绳力立即消失，弹簧形变量不会瞬间改变。",
      "formula": "剪绳瞬间 a上=(m上+m下)g/m上；a下=0",
      "assumptions": "理想轻弹簧允许压缩；上方绳在 t=2 s 剪断；不考虑碰地。x₁、x₂ 是各自相对初位置的向下位移。",
      "presets": [
        "相同质量",
        "上重下轻"
      ]
    },
    {
      "id": "pulley-connection",
      "title": "轻绳滑轮与连接体",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "05 · 连接体",
      "description": "从水平桌面到斜面，再到阿特伍德机，同一条绳两端位移相等。",
      "formula": "a=(m₂g−m₁g sinθ−f)/(m₁+m₂)；T=m₂(g−a)",
      "assumptions": "轻绳不可伸长、滑轮无质量无摩擦；静动摩擦用同一系数，有限展示窗中不考虑碰到滑轮或地面。",
      "presets": [
        "桌面连接悬重",
        "斜面连接体",
        "阿特伍德机",
        "静摩擦阻止运动"
      ]
    },
    {
      "id": "contact-blocks",
      "title": "接触连接体与整体法",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "05 · 连接体",
      "description": "交换施力的一侧，整体加速度不变，但接触力改变。",
      "formula": "a=F/(m₁+m₂)；接触力等于被推动物体的 ma",
      "assumptions": "水平光滑面；两个刚体始终接触；外力只能推，不能用接触传递拉力。",
      "presets": [
        "向右推",
        "向左推"
      ]
    },
    {
      "id": "movable-pulley",
      "title": "动滑轮：力与位移关系",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "05 · 连接体",
      "description": "理想动滑轮由两段绳共同支持。给定绳端拉力，计算悬挂负载加速度和绳端位移。",
      "formula": "2T−mg=ma；Δx绳端=2Δx负载（方向相反）",
      "assumptions": "滑轮及轻绳无质量无摩擦；负载与动滑轮合计质量 m；上端位置固定，不考虑行程终点碰撞。",
      "presets": [
        "匀速/静止平衡",
        "负载向上加速",
        "负载向下加速"
      ]
    },
    {
      "id": "velocity-composition",
      "title": "小船渡河与运动合成",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "06 · 运动合成",
      "description": "调节船头方向，区分最短时间、零漂移和最短位移。也可用作风中飞行的二维速度合成。",
      "formula": "v地=v相对介质+v介质；t=河宽/v垂直",
      "assumptions": "水流匀速、船相对水速恒定；不考虑转向过程。角度从河流正方向逆时针计。",
      "presets": [
        "最短时间",
        "无漂移渡河",
        "最短位移（流速大于船速）",
        "无侧风飞行"
      ]
    },
    {
      "id": "relative-velocity",
      "title": "雨滴、风与相对速度",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "06 · 运动合成",
      "description": "地面看到的雨滴速度，减去行人的速度，得到行人看到的雨滴方向；同样适用于飞机与风。",
      "formula": "v相对=v目标−v观察者",
      "assumptions": "二维匀速运动；雨滴速度为给定终端速度，不模拟空气阻力导致的加速过程。",
      "presets": [
        "行走中看竖直落雨",
        "有风的斜雨",
        "飞机相对空气"
      ]
    },
    {
      "id": "rope-related-speed",
      "title": "绳拉小船：关联速度",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "06 · 运动合成",
      "description": "绳端匀速收绳，小船速度却随角度改变。靠近岸边时理想模型出现几何奇异，自动停在岸前。",
      "formula": "ℓ²=x²+h²；v船=v绳/cosθ",
      "assumptions": "不可伸长的轻绳；固定高处滑轮；忽略船的惯性与收绳力，属于速度约束模型，靠岸前 1 cm 停止。",
      "presets": [
        "标准收绳",
        "高处滑轮"
      ]
    },
    {
      "id": "rod-related-speed",
      "title": "刚杆两端：关联速度",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "06 · 运动合成",
      "description": "刚杆两端沿互相垂直的导轨滑动；一端匀速，并不意味着另一端匀速。",
      "formula": "x²+y²=L²；x vx+y vy=0",
      "assumptions": "刚杆长度固定，两端始终贴导轨；到几何奇异点前停止。纯运动学约束，不求所需外力。",
      "presets": [
        "底端向外滑",
        "底端向内收"
      ]
    },
    {
      "id": "projectile",
      "title": "平抛、斜抛与斜面落点",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "07 · 抛体运动",
      "description": "同时呈现水平与竖直分运动；调整发射角、初速、发射高度与落地斜面。",
      "formula": "x=v₀cosθ·t；y=h+v₀sinθ·t−½gt²；落地 y=x tanβ",
      "assumptions": "不计空气阻力；斜面无限延伸，落地后停止，坡度不能大于初始可飞离条件时仍按首次接触处理。",
      "presets": [
        "平抛",
        "斜抛",
        "抛到斜面",
        "斜面向下落点"
      ]
    },
    {
      "id": "projectile-target",
      "title": "抛体命中移动目标",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "07 · 抛体运动",
      "description": "移动目标与抛体同时运行；可切换静止靶、匀速移动靶和自由下落目标。",
      "formula": "x弹=v₀cosθ·t；x靶=x₀+ut；命中需要同一时刻 x、y 都相等",
      "assumptions": "抛体无空气阻力；下落目标与发射同时开始自由落体；地面只限制抛体，目标可看作理想质点。",
      "presets": [
        "瞄准同时下落的目标",
        "静止目标",
        "匀速移动目标"
      ]
    },
    {
      "id": "conveyor",
      "title": "水平与倾斜传送带",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "08 · 传送带",
      "description": "带速可正可负，物块可能加速、减速、共速或返回。分别累计相对位移产生的热量。",
      "formula": "f=μmg cosθ；a=(f−mg sinθ)/m；Q=μN·相对路程",
      "assumptions": "恒速传送带；静动摩擦系数相同；共速后自动判断能否保持。物块到达端点即停止演示。",
      "presets": [
        "同向加速",
        "物块快于传送带",
        "反向传送带",
        "斜带上行",
        "陡坡无法保持共速",
        "往返返回"
      ]
    },
    {
      "id": "board-block",
      "title": "长木板与滑块",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "09 · 板块模型",
      "description": "外力可作用在滑块或木板上；追踪相对位移、共速和滑离。",
      "formula": "m a=F上+f；M A=F板−f+f地；滑离由相对位移决定",
      "assumptions": "一维刚体，滑块最初位于板中央；静摩擦与滑动摩擦分开；到滑离事件停止。数值步长 0.005 s，滑离时刻精度同量级。",
      "presets": [
        "滑块带动木板",
        "上拉滑块",
        "下拉木板",
        "粗糙地面",
        "两者初速不同",
        "短板滑离"
      ]
    },
    {
      "id": "spring-energy",
      "title": "水平与竖直弹簧",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "10 · 弹簧模型",
      "description": "将伸长量与相对平衡位置的位移分清，观察弹力、重力和机械能的转换。",
      "formula": "ω=√(k/m)；x=x平衡+A cosωt+B sinωt；E=½mv²+½kx²−mgx",
      "assumptions": "理想轻弹簧、无阻尼；竖直时向下为正，x 为相对原长的伸长量；允许压缩。",
      "presets": [
        "水平压缩后释放",
        "竖直从原长释放",
        "经过平衡位置抛出"
      ]
    },
    {
      "id": "horizontal-circle",
      "title": "圆周运动、转盘与圆锥摆",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "11 · 水平圆周运动",
      "description": "在转盘上观察摩擦是否足以提供向心力；在圆锥摆模式中观察绳张力和夹角。",
      "formula": "F向=mv²/r=mω²r；转盘 vmax=√(μgr)；圆锥摆 tanθ=v²/(rg)",
      "assumptions": "转盘静摩擦系数 μ；超临界时只显示临界告警与释放切线，不伪装为仍可匀速圆周运动。圆锥摆由指定半径和速率求所需绳长。",
      "presets": [
        "转盘不滑动",
        "转盘临界以上",
        "圆锥摆",
        "弯道设计角"
      ]
    },
    {
      "id": "circular-transmission",
      "title": "皮带、齿轮与同轴传动",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "11 · 水平圆周运动",
      "description": "切换接触关系：不打滑皮带等线速，同轴等角速度，外啮合齿轮反向。",
      "formula": "皮带/齿轮 |ω₁r₁|=|ω₂r₂|；同轴 ω₁=ω₂",
      "assumptions": "理想刚性传动、无打滑；外啮合齿轮仅展示节圆关系，不模拟齿形接触。",
      "presets": [
        "皮带同向",
        "齿轮反向",
        "同轴等角速度"
      ]
    },
    {
      "id": "conical-funnel",
      "title": "圆锥漏斗与倾斜弯道",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "11 · 水平圆周运动",
      "description": "在光滑圆锥内表面保持等高圆周，支持力的竖直分量平衡重力，水平分量提供向心力。",
      "formula": "N cosθ=mg；N sinθ=mv²/r；v=√(rg tanθ)",
      "assumptions": "θ 为表面相对水平面的倾角；光滑接触，模型直接计算维持等高圆周所需速率，不模拟任意速度偏离等高面的过程。",
      "presets": [
        "圆锥漏斗",
        "倾角更大",
        "倾斜弯道截面"
      ]
    },
    {
      "id": "vertical-circle",
      "title": "竖直圆周：绳、杆与轨道",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "12 · 竖直圆周运动",
      "description": "绳和内轨道不能向外推，杆与管道可以；外轨道支持力为零后，自动转为抛体。",
      "formula": "内侧 N=m(v²/R+g cosθ)；外侧 N=m(g cosθ−v²/R)；机械能守恒",
      "assumptions": "质点无摩擦；绳可松弛、轨道可脱离。脱离后模拟自由落体；绳再次绷紧或首次重新碰轨时停止，不外推未建模的冲量；落地也停止。杆与管道保持双向约束。",
      "presets": [
        "绳刚好绕一圈",
        "绳松弛后抛体",
        "轻杆能过最高点",
        "内轨道脱离",
        "管道允许负支持力",
        "外轨道滑离"
      ]
    },
    {
      "id": "bridge-normal-force",
      "title": "拱桥与凹桥的支持力",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "12 · 竖直圆周运动",
      "description": "对比同样速率经过拱桥顶点和凹桥底点；桥面不能向下拉车，支持力降至零就会脱离。",
      "formula": "拱桥 N=mg−mv²/R；凹桥 N=mg+mv²/R",
      "assumptions": "只研究顶点或底点瞬间；轨迹为局部曲率圆的示意，不是跨越整座桥的完整动力学。",
      "presets": [
        "拱桥减重",
        "凹桥增重",
        "拱桥脱离"
      ]
    },
    {
      "id": "pendulum-nail",
      "title": "摆线碰钉与变半径运动",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "12 · 竖直圆周运动",
      "description": "摆球经过最低点时绳子碰到钉，半径变小，速率连续但向心力需求增加；张力不足可松弛。",
      "formula": "最低点 v²=2gL(1−cosθ₀)；碰钉后 R=L−d；T=m(v²/R+g cosθ)",
      "assumptions": "轻绳与点状钉，无摩擦。最低点切换按能量解析匹配；不考虑球与钉实体碰撞。绳松弛后按抛体处理，首次再次绷紧时停止，不外推未建模的冲量。",
      "presets": [
        "碰钉后摆动",
        "碰钉后绕圈",
        "张力不足松弛"
      ]
    },
    {
      "id": "energy-track",
      "title": "滑轨、功与机械能",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "13 · 功与能",
      "description": "由高处滑下接水平粗糙轨道，能量条与位移同步；耗散热量不会误算成机械能。",
      "formula": "½mv²+mgh+Q=初始机械能；Q=μNs",
      "assumptions": "固定斜面与水平轨道平滑衔接，转折不损失能量；静动摩擦用同一系数；从静止释放。",
      "presets": [
        "机械能守恒",
        "滑下后摩擦停止",
        "全程摩擦耗能",
        "静摩擦阻止下滑"
      ]
    },
    {
      "id": "variable-force-work",
      "title": "变力做功与动能定理",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "13 · 功与能",
      "description": "力随位置线性变化；同时比较 F-x 面积、累积功与动能增量。",
      "formula": "F(x)=F₀+kx；W=F₀x+½kx²=ΔEk",
      "assumptions": "水平无摩擦；力在全部位置满足给定线性关系。负梯度是恢复力，正梯度会加速发散，演示限制在 3 s。",
      "presets": [
        "恒力做功",
        "弹簧恢复力",
        "逐渐增大的推力"
      ]
    },
    {
      "id": "engine-power",
      "title": "机车启动：恒力与恒功率",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "13 · 功与能",
      "description": "恒功率启动受最大牵引力限制；速度增大后牵引力减小，最终趋于阻力平衡。",
      "formula": "P=Fv；a=(F−f)/m；恒功率极限 v=P/f",
      "assumptions": "质量用吨，功率用 kW；阻力恒定；真实启动阶段用最大牵引力限制消除 v=0 时 P/v 奇异。",
      "presets": [
        "恒功率启动",
        "恒力启动",
        "阻力太大无法启动"
      ]
    },
    {
      "id": "launcher-ramp",
      "title": "传送带、弹簧与斜轨组合",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "13 · 功与能",
      "description": "选择恒速传送带或压缩弹簧作为发射器，接入光滑或粗糙斜轨，观察减速、停留和返回。",
      "formula": "弹簧出口 v=x₀√(k/m)；上坡 a=−g(sinθ+μcosθ)；下坡 a=−g(sinθ−μcosθ)",
      "assumptions": "两段平滑衔接、转向不损失能量；传送带静动摩擦系数相同；返回接口即停，不外推二次进入发射器。",
      "presets": [
        "传送带接光滑斜轨",
        "传送带接粗糙斜轨",
        "弹簧发射上坡",
        "摩擦使物体留在斜面"
      ]
    },
    {
      "id": "collision",
      "title": "一维碰撞与动量守恒",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "14 · 动量与碰撞",
      "description": "改变质量比、碰前速度与恢复系数，比较弹性、非弹性和完全非弹性碰撞。",
      "formula": "m₁u₁+m₂u₂=m₁v₁+m₂v₂；v₂−v₁=e(u₁−u₂)",
      "assumptions": "一维瞬时碰撞、无外冲量；仅在左物体追上右物体时发生碰撞；恢复系数 0≤e≤1。",
      "presets": [
        "等质量弹性碰撞",
        "不等质量弹性",
        "完全非弹性",
        "部分非弹性",
        "迎面相撞",
        "无法追上"
      ]
    },
    {
      "id": "explosion-recoil",
      "title": "爆炸、反冲与内能释放",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "14 · 动量与碰撞",
      "description": "运动中的系统分裂为两块；内能增加动能，但质心速度保持。",
      "formula": "ΔEk=释放能量；m₁v₁+m₂v₂=(m₁+m₂)v₀",
      "assumptions": "水平无外力；能量瞬间完全转为相对运动动能，爆炸时刻 t=2 s。",
      "presets": [
        "静止爆炸",
        "运动中爆炸",
        "大质量反冲"
      ]
    },
    {
      "id": "bullet-pendulum-spring",
      "title": "子弹木块：摆与弹簧",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "14 · 动量与碰撞",
      "description": "先做子弹嵌入的动量计算，再做摆升高或弹簧压缩的机械能计算。",
      "formula": "碰撞 mv=(m+M)V；随后 ½(m+M)V²=(m+M)gh 或 ½kx²",
      "assumptions": "子弹完全嵌入；碰撞瞬间不守恒机械能。摆模式只演示最大高度，摆角过大时显示完整圆周可能性；不把摆幅公式外推。",
      "presets": [
        "子弹嵌入后压簧",
        "弹道摆测速度"
      ]
    },
    {
      "id": "collision-spring",
      "title": "碰撞后压缩弹簧",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "14 · 动量与碰撞",
      "description": "先依据碰撞条件求共同速度或第二物体速度，再研究弹簧振动；分清动量阶段和机械能阶段。",
      "formula": "碰撞瞬间动量守恒；碰后 ½MV²=½kA²",
      "assumptions": "碰撞发生在 t=2 s；弹簧初始为原长，瞬时碰撞期间弹簧冲量忽略。弹性模式在第一次压缩到最大处停止，避免未建模的再次碰撞。",
      "presets": [
        "粘合后振动",
        "弹性传递后压簧"
      ]
    },
    {
      "id": "person-boat",
      "title": "人船模型与质心守恒",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "14 · 动量与碰撞",
      "description": "人在船上走动时，船反向移动；可区分人对船距离与人对岸距离。",
      "formula": "m x人+M x船=常量；Δx船=−mL/(m+M)",
      "assumptions": "水平方向无外力，船不受水阻；人按给定相对船速度行走，到达目标后停止。",
      "presets": [
        "常规人船",
        "轻船反冲更大"
      ]
    },
    {
      "id": "satellite-orbits",
      "title": "卫星轨道、宇宙速度与开普勒定律",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "15 · 万有引力",
      "description": "从同一点改变切向发射速度，轨道可成为圆、椭圆、逃逸轨道，也可能撞上地球。",
      "formula": "a引=−GM r/r³；v圆=√(GM/r)；v逃=√2v圆；T²∝a³",
      "assumptions": "地球视为球形；无大气、无地球自转、卫星质量忽略；数值求解二体运动。碰到地表后停止。示意坐标为米，刻度可用科学计数法。",
      "presets": [
        "近地圆轨道",
        "升高远地点",
        "降低近地点",
        "逃逸速度",
        "地球同步圆轨道",
        "初速不足落地"
      ]
    },
    {
      "id": "hohmann-transfer",
      "title": "卫星变轨与交会相位",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "15 · 万有引力",
      "description": "两次切向点火连接同一平面内的圆轨道；同时显示转移时间和所需目标相位。",
      "formula": "v²=GM(2/r−1/a)；Δv₁=v转移始−v圆始；Δv₂=v圆末−v转移末",
      "assumptions": "理想霍曼转移：瞬时点火、同平面、圆轨道；未模拟真实发动机有限推力与轨道面变化。",
      "presets": [
        "低轨到高轨",
        "转移到同步轨道",
        "高轨返回低轨",
        "同轨无变轨"
      ]
    },
    {
      "id": "binary-stars",
      "title": "双星绕质心运动",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "15 · 万有引力",
      "description": "两颗恒星以相同角速度绕公共质心转动，质量更大的恒星轨道更小。",
      "formula": "r₁/r₂=m₂/m₁；ω²=G(m₁+m₂)/d³",
      "assumptions": "圆轨道二体系统；质量以太阳质量为单位，距离以天文单位计；显示时间轴映射一个周期。",
      "presets": [
        "等质量双星",
        "二比一质量",
        "悬殊质量"
      ]
    },
    {
      "id": "satellite-meeting",
      "title": "卫星追及与周期比较",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "15 · 万有引力",
      "description": "比较不同圆轨道上的角速度；“追上”指连心线重新同向，不等于不同轨道发生碰撞。",
      "formula": "ω=√(GM/r³)；会合周期=2π/|ω₁−ω₂|",
      "assumptions": "两颗卫星共面、同向、圆轨道；位置同方向称会合，半径不同不能直接对接。",
      "presets": [
        "低轨追高轨",
        "相同高度不同相位"
      ]
    },
    {
      "id": "rigid-rotation",
      "title": "力矩、转动惯量与定轴转动",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "拓展 · 刚体转动",
      "description": "相同力矩作用在不同质量分布上，角加速度不同；对照平动中的 F=ma。",
      "formula": "τ=Iα；I=βmR²；W=τθ=Δ(½Iω²)",
      "assumptions": "理想刚体绕固定轴旋转，外力矩恒定；β 由质量分布决定，转轴无阻力。",
      "presets": [
        "实心圆盘",
        "薄圆环",
        "反向力矩制动"
      ]
    },
    {
      "id": "rolling-incline",
      "title": "斜面滚动与滑动",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "拓展 · 刚体转动",
      "description": "实心球、圆盘、圆环从同一斜面释放；摩擦足够时纯滚动，否则边滑边滚。",
      "formula": "纯滚动 a=g sinθ/(1+β)；v=ωR；不足时 f=μmg cosθ",
      "assumptions": "固定斜面、无滚动阻力；静动摩擦系数共用 μ；从静止释放。刚体转动惯量 I=βmR²。",
      "presets": [
        "实心球滚动",
        "圆环滚动",
        "摩擦不足边滑边滚",
        "完全光滑：只滑不转"
      ]
    },
    {
      "id": "angular-momentum",
      "title": "收臂转动与角动量守恒",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "拓展 · 刚体转动",
      "description": "两块重物对称靠近转轴，总角动量不变，转动动能由内力做功改变。",
      "formula": "L=Iω=常量；I=I核心+2mr²；ΔEk=内力做功",
      "assumptions": "无外力矩；径向移动由内部机构主动控制。只比较转动动能，不把它误认为整个机械能必然守恒。",
      "presets": [
        "收臂加速",
        "伸臂减速"
      ]
    },
    {
      "id": "gyroscope",
      "title": "陀螺：稳态进动近似",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "拓展 · 刚体转动",
      "description": "高速自旋的转子受到重力矩，角动量方向缓慢改变；展示自旋与进动的区别。",
      "formula": "Ω≈mgℓ/(Iω)；L=Iω",
      "assumptions": "仅采用快速自旋、倾角稳定、忽略章动的稳态慢进动近似。Ω/ω 大于 0.1 时近似不可靠，页面会明确提醒。",
      "presets": [
        "稳定高速陀螺",
        "转慢后近似失效"
      ]
    },
    {
      "id": "buoyancy",
      "title": "浮力、漂浮与沉没",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "拓展 · 流体",
      "description": "物体浸入液体越深，排液体积越大；密度决定最终漂浮或沉底，阻尼只影响振动衰减。",
      "formula": "F浮=ρ液gV排；ma=F浮−mg−阻力",
      "assumptions": "竖直柱形物体、不可压液体；线性水阻仅为阻尼模型。液面无限大保持不变；沉底后由底部支持。",
      "presets": [
        "木块漂浮",
        "悬浮",
        "密度较大沉底",
        "无阻尼浮沉振动"
      ]
    },
    {
      "id": "communicating-vessels",
      "title": "连通器与液柱压强",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "拓展 · 流体",
      "description": "两支管截面积可不同；施加额外气压后，液面高度差由压强平衡决定。",
      "formula": "p左+ρgh左=p右+ρgh右；A₁h₁+A₂h₂=常量",
      "assumptions": "同一种静止液体、忽略毛细现象；右侧为大气压基准，左侧给出相对大气的附加压强。",
      "presets": [
        "同压液面等高",
        "左侧加压",
        "左侧减压",
        "粗细管比较"
      ]
    },
    {
      "id": "bernoulli",
      "title": "连续性方程与伯努利",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "拓展 · 流体",
      "description": "流量保持时细管流速更大；比较速度、静压与高度三项，而非把“流速大压强小”无条件套用。",
      "formula": "Av=Q；p+½ρv²+ρgz=常量",
      "assumptions": "理想不可压、无黏性、沿同一流线的稳态流动；低绝对压强可能发生空化，此时理想模型不适用。管内截面积沿长度线性变化。",
      "presets": [
        "水平变细管",
        "细管变粗",
        "有高度差"
      ]
    },
    {
      "id": "three-body",
      "title": "三体相互引力与敏感性",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "拓展 · 天体运动",
      "description": "三颗天体都参与引力计算。八字轨道需要特殊初值，改变质量便可能显著改变后续轨迹。",
      "formula": "aᵢ=Σ Gmⱼ(rⱼ−rᵢ)/|rⱼ−rᵢ|³",
      "assumptions": "牛顿三体、平面运动、辛积分；质量以太阳质量为单位。预测天体距离小于 0.04 AU 或总能量误差超过 0.05% 时，在最后一个可信状态停止；不把固定步长未解析的近碰撞当作可信结果。",
      "presets": [
        "等质量八字轨道",
        "微小质量扰动",
        "三角共轨初值"
      ]
    },
    {
      "id": "lagrange-points",
      "title": "拉格朗日点与旋转参考系",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "拓展 · 天体运动",
      "description": "在随双星旋转的坐标系中，五个平衡点相对静止；给小天体一个微小位置扰动，比较后续轨迹。",
      "formula": "ẍ−2ẏ=∂Ω/∂x；ÿ+2ẋ=∂Ω/∂y；C=2Ω−v²",
      "assumptions": "圆型限制性三体问题；两主星总质量、间距和角速度都归一化为 1，小天体不影响主星。接近主星或离开观察域时停止。",
      "presets": [
        "月地质量比例 L₄",
        "L₁ 微扰不稳定",
        "L₂ 微扰不稳定",
        "大质量比 L₄ 失稳",
        "恰在平衡点"
      ]
    },
    {
      "id": "em-electrostatic-field",
      "title": "点电荷 · 场强与电势",
      "category": "电磁学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "21–22 静电场",
      "description": "移动探测点，比较单电荷、同号、异号和三电荷叠加的电场与电势。箭头只表达方向，长度采用压缩显示。",
      "formula": "E⃗ = Σ kqᵢr⃗ᵢ/rᵢ³；φ = Σ kqᵢ/rᵢ；F⃗ = q₀E⃗",
      "assumptions": "真空点电荷，电势零点在无穷远；不在电荷中心取样，场强箭头长度经过压缩。",
      "presets": [
        "电偶极子中垂线",
        "同号电荷中点",
        "单电荷"
      ]
    },
    {
      "id": "em-potential-work",
      "title": "电势差 · 电场力做功",
      "category": "电磁学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "22 电势与能量",
      "description": "让试探电荷沿直线或弯曲路线从 A 到 B，验证静电场做功只与端点有关。",
      "formula": "WAB=q(φA−φB)；Ep=qφ；均匀场 φ=−Ex",
      "assumptions": "恒定均匀电场沿 +x；准静态沿规定路径移动，轨迹由外力约束。电势以 x=0 为零。",
      "presets": [
        "正电荷",
        "负电荷"
      ]
    },
    {
      "id": "em-electrostatic-shield",
      "title": "静电感应 · 球壳屏蔽",
      "category": "电磁学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "21 静电感应",
      "description": "在外电场中放入理想导体球壳，观察表面感应电荷、外部场线弯曲和空腔内的零场。",
      "formula": "球外 φ=−E₀(r−R³/r²)cosθ；σ=3ε₀E₀cosθ；空腔 E=0",
      "assumptions": "中性理想导体球壳、空腔内无自由电荷、静电平衡。图为球体赤道截面；不是对任意交变电磁场的屏蔽结论。",
      "presets": []
    },
    {
      "id": "em-capacitor",
      "title": "平行板电容器 · 接通与断开",
      "category": "电磁学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "23 电容器",
      "description": "改变极板间距、面积和介电常数，比较接电源时电压不变与断电后电荷不变。",
      "formula": "C=ε₀εrS/d；Q=CU；E=U/d；W=½CU²",
      "assumptions": "忽略边缘效应及漏电；断电模式在空气、间距 5 mm、当前面积下充到所设电压后断开，再改变 d、εr；改变面积等价于更换初始器件。",
      "presets": [
        "接电源增大间距",
        "断电后增大间距",
        "断电插电介质"
      ]
    },
    {
      "id": "em-rc",
      "title": "电容器充放电",
      "category": "电磁学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "23 RC 暂态",
      "description": "观察电容电压、电流和储能随时间变化，比较充电与放电。",
      "formula": "充电 Uc=U₀(1−e⁻ᵗ/ᴿᶜ)；放电 Uc=U₀e⁻ᵗ/ᴿᶜ；τ=RC",
      "assumptions": "理想恒压源与线性电阻电容；充电初始电容无电，放电初始电压为 U₀。",
      "presets": []
    },
    {
      "id": "em-electric-particle",
      "title": "带电微粒 · 电场加速与偏转",
      "category": "电磁学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "24 电场中的运动",
      "description": "比较加速、反向减速、类平抛、斜入电场及正弦变化电场；示波管预设展示出场后的直线运动。",
      "formula": "a=qE/m；均匀场内 y=vᵧ₀t+½at²；离开偏转板后匀速直线",
      "assumptions": "理想质点，忽略重力和辐射；有限偏转场横向长 6 m，粒子碰板即停，未碰板则出场后 E=0；周期模式为无限均匀正弦场。",
      "presets": [
        "示波管：出场后直线",
        "斜入电场",
        "减速后反向",
        "周期变化场"
      ]
    },
    {
      "id": "em-dc-circuit",
      "title": "直流电路 · 串并联与动态负载",
      "category": "电磁学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "25 恒定电流",
      "description": "改变电阻和电源内阻，观察电流、电压和输出功率；非线性灯泡使用明确的教学伏安模型。",
      "formula": "I=ε/(R外+r)；U端=ε−Ir；P外=UI；灯泡模型 U灯=aI²",
      "assumptions": "理想导线；线性串并联均含电源内阻。非线性灯泡模型仅表示正向工作区，不用于真实灯丝温升定量预测；R1 在灯泡模式表示系数 a（V/A²）。",
      "presets": [
        "串联动态电路",
        "并联动态电路",
        "灯泡伏安特性"
      ]
    },
    {
      "id": "em-resistivity",
      "title": "电阻定律 · 温度与功率",
      "category": "电磁学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "25 电阻与电功率",
      "description": "改变导线长度、截面积、材料电阻率及温度，查看电阻、电流与焦耳热。",
      "formula": "R=ρL/S；ρ(T)=ρ₀[1+α(T−20℃)]；P=I²R；Q=Pt",
      "assumptions": "均匀金属导线，温度均匀且由外界固定；线性电阻率温度模型适用于不远离参考温度的范围。",
      "presets": [
        "铜导线",
        "电阻合金近似"
      ]
    },
    {
      "id": "em-dc-motor",
      "title": "电动机 · 反电动势与能量",
      "category": "电磁学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "25 非纯电阻电路",
      "description": "观察电机启动、反电动势上升及电流下降，区分输入功率、铜耗与机械输出。",
      "formula": "I=(U−kω)/R；J dω/dt=kI−τ负载；UI=I²R+kωI",
      "assumptions": "电枢电感忽略、kₑ=kₜ=k；恒定负载转矩，启动净转矩必须为正。不模拟换向纹波和磁饱和。",
      "presets": []
    },
    {
      "id": "em-meter-connection",
      "title": "伏安法 · 内外接与系统误差",
      "category": "电磁学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "26 电学测量",
      "description": "电表具有真实内阻，切换电流表内接和外接，直接比较测量电阻与真实电阻。",
      "formula": "内接：R测=Rx+RA；外接：R测=RxRV/(Rx+RV)",
      "assumptions": "电表只具有线性内阻，无读数随机误差。电源理想，外接时电流表测得电阻和电压表的总电流。",
      "presets": [
        "小电阻宜外接",
        "大电阻宜内接"
      ]
    },
    {
      "id": "em-divider",
      "title": "滑动变阻器 · 分压与限流",
      "category": "电磁学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "26 实验电路",
      "description": "移动滑片，比较分压接法的零起调和限流接法的调节范围；包含负载效应。",
      "formula": "分压：U负载=ε(R下∥RL)/(R上+R下∥RL)；限流：I=ε/(RL+R串)",
      "assumptions": "理想电源、均匀电阻丝，滑片接触电阻忽略；输出始终连接有限负载，不采用空载分压近似。",
      "presets": []
    },
    {
      "id": "em-meter-range",
      "title": "表头改装 · 电流表与电压表",
      "category": "电磁学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "26 电表改装",
      "description": "根据表头满偏电流和内阻，计算分流电阻或串联电阻，并观察指针响应。",
      "formula": "电流表 R分=IgRg/(I量程−Ig)；电压表 R串=U量程/Ig−Rg",
      "assumptions": "理想线性磁电表头，指针偏转正比于表头电流；不考虑保护电路和温漂。",
      "presets": []
    },
    {
      "id": "em-resistance-methods",
      "title": "测阻方法 · 替代、半偏与电桥",
      "category": "电磁学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "26 电阻测量",
      "description": "用同读数替代、分流半偏或电桥调零测量未知电阻；可观察半偏法有限限流电阻导致的误差。",
      "formula": "替代法同电流 ⇒ R替=Rx；半偏法 R分=RgRs/(Rg+Rs)；电桥平衡 R1/R2=R3/Rx",
      "assumptions": "电桥检流计在测量时视为理想零电流检测器；半偏法包含有限串联电阻 Rs，电源内阻并入 Rs。",
      "presets": [
        "电桥平衡",
        "半偏近似条件好",
        "替代法等读数"
      ]
    },
    {
      "id": "em-magnetic-field",
      "title": "磁场来源 · 直导线、线圈与磁铁",
      "category": "电磁学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "27 磁场",
      "description": "切换通电直导线、双导线叠加、环形电流、有限螺线管和磁偶极子，比较磁场分布。",
      "formula": "直导线 B=μ₀I/(2πr)；圆线圈轴上 B=μ₀IR²/[2(R²+x²)³ᐟ²]；有限螺线管按两端视角计算",
      "assumptions": "导线无限细，直导线无限长；线圈和螺线管只显示轴上定量场。条形磁铁用外部偶极场近似，不代表磁铁内部。图中磁场箭头定长，仅表示方向。",
      "presets": [
        "两导线中间抵消",
        "环形电流",
        "长螺线管",
        "条形磁铁远场"
      ]
    },
    {
      "id": "em-ampere-force",
      "title": "安培力 · 电流方向与夹角",
      "category": "电磁学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "27 磁场对电流的作用",
      "description": "调节导线与磁场夹角，观察安培力大小和方向，并查看线圈转矩。",
      "formula": "F=BILsinθ；τ=N B I S sinθ（线圈法线与 B 的夹角）",
      "assumptions": "均匀磁场；导线在屏幕内、磁场沿 +x，安培力垂直屏幕。线圈模式 θ 指法线与磁场的夹角。",
      "presets": []
    },
    {
      "id": "em-magnetic-particle",
      "title": "带电粒子 · 有界磁场与螺旋",
      "category": "电磁学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "28 磁场中的运动",
      "description": "切换无界、单边界、条形、矩形或圆形磁场，改变入射角与位置，观察相切、出入和多次进入的轨迹。",
      "formula": "r=mv⊥/|q|B；T=2πm/(|q|B)；螺距 h=v∥T",
      "assumptions": "理想质点、忽略重力和辐射；边界突变磁场数值定位，步内磁旋转为精确解。螺旋模式显示均匀 B 沿 z 轴时的斜投影，竖直初始偏置 y₀不改变速度。",
      "presets": [
        "圆周运动",
        "单边界半周出场",
        "条形穿越",
        "圆形斜入",
        "螺旋"
      ]
    },
    {
      "id": "em-crossed-fields",
      "title": "复合场 · 速度选择器与重力",
      "category": "电磁学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "29 电磁复合场",
      "description": "叠加竖直电场、垂直屏幕的磁场及可选重力，调到直线通过或观察偏离。",
      "formula": "F⃗=q(E⃗+v⃗×B⃗)+mg⃗；无重力直线条件 v=E/B",
      "assumptions": "无限均匀电磁场；初速度沿 +x，B 沿出屏幕方向，E 沿 +y。重力模式下质量以 mg、电荷以 μC 转换，9.8 m/s²。",
      "presets": [
        "速度选择：v=E/B",
        "粒子过快",
        "重力参与"
      ]
    },
    {
      "id": "em-spectrometer",
      "title": "组合场 · 质谱仪",
      "category": "电磁学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "29 电场加速后进入磁场",
      "description": "离子先经电压 U 加速，再进入垂直磁场沿半圆到达探测器；改变质量或电荷数比较落点。",
      "formula": "v=√(2qU/m)；r=√(2mU/q)/B；同位素落点间距=2Δr",
      "assumptions": "正离子从静止开始加速，忽略碰撞，磁场均匀；图按当前回旋半径自动缩放，读数为真实 SI 数值。动画按单次半周归一化，不等同真实秒数。",
      "presets": []
    },
    {
      "id": "em-cyclotron",
      "title": "回旋加速器 · 共振与能量增加",
      "category": "电磁学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "29 加速装置",
      "description": "每次穿过理想加速缝增加 qU 动能，在 D 形盒内做半圆运动，观察半径逐级增大。",
      "formula": "f=qB/(2πm)；每次过缝 ΔEk=qU；r=√(2mEk)/(qB)",
      "assumptions": "非相对论、缝宽忽略；从首次过缝获得 qU 开始。时间条按所设半周次数映射实际磁场内运动时间，忽略过缝用时；不模拟高能失谐和边缘场。",
      "presets": []
    },
    {
      "id": "em-hall-flow",
      "title": "霍尔效应 · 电磁流量与发电",
      "category": "电磁学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "29 电磁测量与应用",
      "description": "观察横向电荷分离形成的平衡电压；霍尔模式按载流子密度计算，流量与发电模式按 vBL 计算。",
      "formula": "霍尔 UH=IB/(nqd)；流量 U=BLv，Q=vA；理想磁流体开路电压 ε=BLv",
      "assumptions": "均匀 B，稳态横向力平衡；霍尔材料仅一种载流子。流体导电、无极化和边缘效应；发电模式接纯电阻负载并用给定内阻。",
      "presets": []
    },
    {
      "id": "em-induction-flux",
      "title": "磁通量 · 法拉第与楞次定律",
      "category": "电磁学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "30 电磁感应",
      "description": "分别改变磁场、线圈面积或线圈角度，观察磁通量、感应电动势与电流方向的对应。",
      "formula": "Φ=BS cosθ；ε=−N dΦ/dt；I=ε/R",
      "assumptions": "均匀场、线圈自感忽略，θ 是线圈法线与 B 的夹角。正电流方向按法线右手定则约定；面积变化由外力驱动。",
      "presets": [
        "磁场增强，阻碍增加",
        "磁场减弱",
        "旋转线圈",
        "面积变化"
      ]
    },
    {
      "id": "em-magnet-induction",
      "title": "磁铁穿线圈 · 感应方向反转",
      "category": "电磁学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "30 感应电流",
      "description": "匀速推动磁铁穿过线圈，比较靠近、穿过中心和远离时感应电压的符号。",
      "formula": "近轴近似 Φ=μ₀mS/[2π(z²+a²)³ᐟ²]；ε=−N dΦ/dt",
      "assumptions": "教学近轴平滑磁偶极模型，a 表示磁体有效尺寸；线圈面积小，场近似均匀；磁铁由外力保持匀速，自感忽略。",
      "presets": []
    },
    {
      "id": "em-self-induction",
      "title": "自感 · RL 通断电",
      "category": "电磁学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "30 自感",
      "description": "闭合开关时电流逐渐建立；断电后通过续流电阻衰减，观察自感电动势与磁场储能。",
      "formula": "接通 I=(U/R)(1−e⁻ᴿᵗ/ᴸ)；续流 I=I₀e⁻ᴿᵗ/ᴸ；εL=−L dI/dt；W=½LI²",
      "assumptions": "线性理想电感，忽略磁饱和；断电模式保留 R 构成闭合续流回路，不能解读为直接剪断理想电感后无穷大电压。",
      "presets": []
    },
    {
      "id": "em-eddy-current",
      "title": "涡流 · 电磁阻尼与驱动",
      "category": "电磁学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "30 涡流应用",
      "description": "对比导体圆盘在静止磁场中的减速和旋转磁场驱动下的加速，显示能量去向。",
      "formula": "线性低速近似 τ电磁=k(Ω场−ω)；J dω/dt=τ电磁；P热=k(Ω场−ω)²",
      "assumptions": "低速线性涡流阻尼等效模型，k 综合导电率、磁场和几何；不求解真实圆盘内三维电流分布。Ω场=0 为制动，Ω场>0 为驱动。",
      "presets": []
    },
    {
      "id": "em-induction-rod",
      "title": "单导体棒 · 导轨上的电磁动力学",
      "category": "电磁学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "31 导体棒模型",
      "description": "切换无外力、恒力、恒功率、恒流供电和斜导轨，比较速度极限与能量转化。",
      "formula": "ε=BLv；I=ε/R；阻力 F磁=B²L²v/R；m dv/dt=F外−F磁",
      "assumptions": "光滑导轨、均匀磁场垂直轨道平面、回路电阻恒定、自感忽略；恒流模式由理想电源维持给定电流。恒功率在 v₀>0 下启动。",
      "presets": [
        "自由减速",
        "恒力达到极限速度",
        "恒功率",
        "通电加速",
        "斜导轨"
      ]
    },
    {
      "id": "em-two-rods",
      "title": "双导体棒 · 动量与电磁耦合",
      "category": "电磁学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "31 双棒模型",
      "description": "两棒通过同一回路电磁耦合，观察相对速度衰减、共速与动能转化；可只对第一根棒施加恒力。",
      "formula": "I=BL(v₁−v₂)/R；m₁a₁=F−BLI；m₂a₂=BLI",
      "assumptions": "两棒质量可不同，光滑导轨、总电阻恒定、自感忽略；初始间距可调，发生接触即停，未模拟之后的机械碰撞。",
      "presets": [
        "动量守恒趋于共速",
        "恒力驱动双棒"
      ]
    },
    {
      "id": "em-rod-capacitor",
      "title": "导体棒接电容 · 电磁惯性",
      "category": "电磁学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "31 导轨与电容器",
      "description": "理想无电阻导轨接电容器，在恒力作用下导体棒匀加速，电容储能随速度增大。",
      "formula": "Uc=BLv；I=CBLa；F=(m+CB²L²)a；W电=½CB²L²v²",
      "assumptions": "理想导线、零电阻，忽略自感；初始电容已满足 U₀=BLv₀，避免不相容的瞬态冲击。该极限模型不同于含电阻 RC 导轨。",
      "presets": []
    },
    {
      "id": "em-loop-boundary",
      "title": "闭合线框 · 进入与离开磁场",
      "category": "电磁学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "31 线框切割",
      "description": "线框匀速穿过有限宽磁场，显示进入、完全在内、离开时的磁通量与感应电流。",
      "formula": "Φ=B·重叠面积；ε=−dΦ/dt；外力功率=I²R（匀速）",
      "assumptions": "外力维持匀速，矩形线框、磁场边界锐利、自感忽略。边界瞬间导数有跳变，图像显示左右过程而非过渡尖峰。",
      "presets": [
        "宽磁场完整进入",
        "窄磁场，线框两边同时在外"
      ]
    },
    {
      "id": "em-ac-generator",
      "title": "交流发电机 · 峰值与有效值",
      "category": "电磁学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "32 交变电流",
      "description": "转动线圈产生正弦交流，观察磁通量与电动势相差四分之一周期，并比较峰值和有效值。",
      "formula": "Φ=BS cosωt；e=NBSω sinωt；E有效=Em/√2",
      "assumptions": "匀强磁场、理想匀速旋转线圈；负载纯电阻、线圈自感和电阻忽略。",
      "presets": []
    },
    {
      "id": "em-transformer",
      "title": "变压器 · 多副线圈与负载",
      "category": "电磁学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "32 理想变压器",
      "description": "改变匝数和副边负载，验证电压比、输入电流与功率关系；第二副线圈可独立启用。",
      "formula": "U₂/U₁=N₂/N₁；理想输入功率=Σ副边功率；I₁=ΣU₂I₂/U₁",
      "assumptions": "正弦稳态有效值，理想变压器无漏磁、磁滞及励磁电流；纯电阻负载，副边不得短路。",
      "presets": [
        "降压 10:1",
        "双副线圈"
      ]
    },
    {
      "id": "em-transmission",
      "title": "远距离输电 · 电压与线路损耗",
      "category": "电磁学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "32 输电",
      "description": "在给定发电功率下调高输电电压，比较输电电流、压降、损耗及到达用户的功率。",
      "formula": "I=P送/U送；ΔP=I²R线；U收=U送−IR线；η=1−ΔP/P送",
      "assumptions": "理想升降压变压器、功率因数 1，送端保持给定功率与电压；仅计算线路电阻损耗。若线路压降超过送端电压，提示所设工作点不可实现。",
      "presets": []
    },
    {
      "id": "em-lc-oscillation",
      "title": "LC 振荡 · 电场能与磁场能",
      "category": "电磁学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "33 电磁振荡",
      "description": "观察电容电荷与电感电流的相位关系，以及两类场能在守恒总能量中交替转化。",
      "formula": "ω=1/√LC；q=CU₀ cosωt；i=−U₀√(C/L)sinωt；W总=½CU₀²",
      "assumptions": "理想 LC 无电阻，初始电容电压 U₀、电流为零；显示时间 1 s 对应实际 1 ms，慢动作便于观察。",
      "presets": []
    },
    {
      "id": "em-electromagnetic-wave",
      "title": "电磁波 · 场、传播与频谱",
      "category": "电磁学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "33 电磁波",
      "description": "显示互相垂直、同相的电场与磁场和传播方向；切换无线电、微波、可见光和 X 射线尺度。",
      "formula": "c=λf；B₀=E₀/c；平均强度 S=½ε₀cE₀²",
      "assumptions": "真空中单色平面波；画面按波长与周期归一化，磁场视觉幅度与电场相同但单位不同；不是电场在空间绕成曲线。",
      "presets": []
    },
    {
      "id": "em-sensors",
      "title": "传感器 · 温控、光控与报警",
      "category": "电磁学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "34 传感器与控制",
      "description": "改变温度、照度、压力或磁场，查看电阻/电压响应和比较器继电器状态，可调触发阈值。",
      "formula": "NTC：R=R₀exp[β(1/T−1/T₀)]；分压 U=Vcc·R固定/(R传感+R固定)；霍尔/力传感器线性标定",
      "assumptions": "NTC 与光敏响应为典型教学参数；霍尔、压力传感器按线性标定，不代表具体厂商器件。比较器为理想单阈值，不包含继电器机械延迟与回差。",
      "presets": []
    },
    {
      "id": "em-circuit-fault",
      "title": "电路故障 · 断路与短路诊断",
      "category": "电磁学",
      "dimension": "2D",
      "levels": [
        "初中",
        "高中"
      ],
      "chapter": "25–26 电路诊断",
      "description": "给串联电路设置不同故障，用电流表和跨 R₁ 的电压表读数判断故障位置。",
      "formula": "正常 I=U/(R₁+R₂)，V₁=IR₁；断路 I=0；短路被旁路元件两端电压为零",
      "assumptions": "理想电压表内阻无穷大、理想电流表内阻为零；R₁、R₂ 串联，电压表接在 R₁ 两端。电压表引线断开时设为不显示读数，不能据此判定实际电压为零。",
      "presets": [
        "电流零，电压非零",
        "电流电压均零",
        "电流增大，电压零"
      ]
    },
    {
      "id": "em-radio-signal",
      "title": "电磁信号 · 调幅、传输与检波",
      "category": "电磁学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "33 电磁波发射与接收",
      "description": "把低频信息加载到高频载波上，再观察接收端理想包络检波；调制度过大时会出现失真。",
      "formula": "s(t)=Ac[1+μcos(2πfmt)]cos(2πfct)；理想检波包络=|1+μcos(2πfmt)|",
      "assumptions": "信号链示意，频率已缩小至课堂可视范围；不模拟天线辐射阻抗、传播衰减和真实滤波器。理想包络检波在 μ≤1 时恢复原信号，μ>1 出现过调制失真。",
      "presets": [
        "正常调幅",
        "过调制导致失真"
      ]
    },
    {
      "id": "spring-oscillator",
      "title": "弹簧振子",
      "category": "振动与波",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "18 · 机械振动",
      "description": "水平与竖直弹簧的位移、速度、回复力和能量同步变化。",
      "formula": "ω=√(k/m)，x=A cos(ωt+φ)，E=½kA²",
      "assumptions": "理想轻弹簧，无摩擦；竖直模型以平衡位置为位移原点，重力只改变平衡位置。",
      "presets": [
        "水平简谐振动",
        "竖直振子",
        "质量加倍"
      ]
    },
    {
      "id": "pendulum",
      "title": "单摆：小角度与真实摆角",
      "category": "振动与波",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "18 · 机械振动",
      "description": "比较小角度近似与非线性单摆；显示能量。",
      "formula": "θ″=−(g/L)sinθ；小角度 T≈2π√(L/g)",
      "assumptions": "点质量、无质量不可伸长绳，无阻力；释放角不超过90°以保持绳约束有效；真实运动用四阶 Runge–Kutta 积分，虚线参考周期为小角度近似。",
      "presets": [
        "小角度",
        "大角度比较",
        "月面"
      ]
    },
    {
      "id": "circular-projection",
      "title": "圆周运动与简谐投影",
      "category": "振动与波",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "18 · 机械振动",
      "description": "圆周点在坐标轴上的投影形成简谐运动。",
      "formula": "x=A cosωt，y=A sinωt",
      "assumptions": "匀速圆周运动的几何投影；投影点并非沿圆周运动。",
      "presets": [
        "标准投影",
        "加快频率"
      ]
    },
    {
      "id": "damped-oscillator",
      "title": "阻尼振动与临界阻尼",
      "category": "振动与波",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "18 · 机械振动",
      "description": "欠阻尼、临界阻尼和过阻尼在同一个方程下连续切换。",
      "formula": "x″+2γx′+ω₀²x=0，γ=b/(2m)",
      "assumptions": "线性黏性阻力；初始位移 A、初速度零，使用解析解。",
      "presets": [
        "欠阻尼",
        "临界阻尼",
        "过阻尼",
        "无阻尼"
      ]
    },
    {
      "id": "forced-resonance",
      "title": "受迫振动与共振曲线",
      "category": "振动与波",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "18 · 机械振动",
      "description": "扫动驱动频率，查看稳态振幅和相位滞后。",
      "formula": "A=(F₀/m)/√[(ω₀²−ω²)²+(2γω)²]",
      "assumptions": "显示已衰减掉初始瞬态后的稳态振动；线性阻尼 γ>0，无限幅共振不在模型内。",
      "presets": [
        "接近共振",
        "强阻尼",
        "慢速驱动"
      ]
    },
    {
      "id": "traveling-wave",
      "title": "横波、纵波与质点振动",
      "category": "振动与波",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "19 · 机械波",
      "description": "传播的是振动状态，介质质点只在平衡位置附近往复。",
      "formula": "y(x,t)=A sin[2π(ft−x/λ)]，v=fλ",
      "assumptions": "一维无色散正弦行波；纵波用横向位移显示疏密，质点不随波整体前进。",
      "presets": [
        "横波",
        "纵波",
        "向左传播"
      ]
    },
    {
      "id": "wave-pulses",
      "title": "波包相遇与叠加",
      "category": "振动与波",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "20 · 波的叠加",
      "description": "两列波包相遇时叠加，通过后保持原形。",
      "formula": "y=y₁+y₂；yᵢ=Aᵢ exp[−(x−xᵢ)²/σ²]",
      "assumptions": "线性无色散介质中的高斯脉冲；无限长介质，不考虑边界反射。",
      "presets": [
        "同向位移增强",
        "反向位移抵消",
        "不同振幅"
      ]
    },
    {
      "id": "wave-interference",
      "title": "双波源干涉",
      "category": "振动与波",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "20 · 波的叠加",
      "description": "改变两波源间距、波长和相位，观察增强与减弱区域。",
      "formula": "Δφ=2π(r₂−r₁)/λ+φ；同相增强，反相减弱",
      "assumptions": "二维理想相干点波源；画面显示稳态归一化合振幅，不计几何衰减，瞬时相位另由探针给出。",
      "presets": [
        "同相双波源",
        "反相双波源",
        "较短波长"
      ]
    },
    {
      "id": "wave-reflection",
      "title": "固定端与自由端反射",
      "category": "振动与波",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "20 · 反射",
      "description": "波包到达端点，比较反射后的位移方向。",
      "formula": "固定端 yᵣ=−yᵢ（边界处）；自由端 yᵣ=+yᵢ",
      "assumptions": "无损一维线性介质；以镜像波法满足右端 x=3 的边界条件。",
      "presets": [
        "固定端反相",
        "自由端同相"
      ]
    },
    {
      "id": "wave-interface",
      "title": "介质边界的反射与透射",
      "category": "振动与波",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "20 · 介质变化",
      "description": "同一张力、不同线密度的两段弦；频率相同，波速和波长改变。",
      "formula": "v=√(T/μ)，r=(v₂−v₁)/(v₂+v₁)，τ=2v₂/(v₂+v₁)",
      "assumptions": "两无限长弦在 x=0 连接；张力相同；显示稳态波，能量通量比满足 R+T=1。",
      "presets": [
        "轻弦到重弦",
        "重弦到轻弦",
        "匹配无反射"
      ]
    },
    {
      "id": "doppler",
      "title": "多普勒效应",
      "category": "振动与波",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "20 · 多普勒效应",
      "description": "移动声源发出的波前在前方变密、后方变疏。",
      "formula": "前方 f′=f(c+vₒ)/(c−vₛ)，后方 f′=f(c+vₒ)/(c+vₛ)",
      "assumptions": "声源沿 +x 匀速亚声速运动；观察者速度正号定义为向声源运动；图示采用缩放单位，声速不变。",
      "presets": [
        "静止声源",
        "移动声源",
        "观察者靠近"
      ]
    },
    {
      "id": "standing-wave",
      "title": "驻波、波节与波腹",
      "category": "振动与波",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "20 · 驻波（补充）",
      "description": "两端固定弦的本征频率和振型。",
      "formula": "y=2A sin(nπx/L)cosωt，fₙ=nv/(2L)",
      "assumptions": "张力均匀、无损弦；只显示单一本征模态。",
      "presets": [
        "基频",
        "二次谐波",
        "四次谐波"
      ]
    },
    {
      "id": "gas-microscopic",
      "title": "理想气体：温度、速率与压强",
      "category": "热学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "35 · 分子动理论",
      "description": "温度改变分子速度分布；宏观读数遵循理想气体状态方程。",
      "formula": "pV=nRT，vᵣₘₛ=√(3RT/M)，平均平动动能=3kT/2",
      "assumptions": "稀薄经典理想气体。有限颗粒为示意样本、采用 Maxwell 分布分量与弹性壁反射；画面时间缩慢，压强使用宏观统计公式而非少量粒子的瞬时碰撞。",
      "presets": [
        "室温氮气",
        "升温",
        "轻气体",
        "压缩"
      ]
    },
    {
      "id": "diffusion",
      "title": "分子扩散与浓度均匀化",
      "category": "热学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "35 · 分子动理论",
      "description": "初始分居两侧的粒子通过随机运动混合。",
      "formula": "扩散方程 ∂c/∂t=D∇²c；二维均方位移=4Dt",
      "assumptions": "二维无相互作用随机游走；反射边界；固定随机种子，时间步 0.05 s。粒子是统计样本，不模拟真实分子碰撞细节。",
      "presets": [
        "缓慢扩散",
        "较快扩散"
      ]
    },
    {
      "id": "brownian-motion",
      "title": "布朗运动：悬浮微粒",
      "category": "热学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "35 · 分子动理论",
      "description": "改变温度、黏度和微粒半径，观察随机轨迹与统计位移。",
      "formula": "D=kT/(6πηr)，二维 ⟨r²⟩=4Dt",
      "assumptions": "水中球形微粒的过阻尼布朗运动，Stokes–Einstein 关系；随机轨迹并非分子自身轨迹。空间按微米、时间按秒；单条轨迹不等于统计平均。",
      "presets": [
        "水中小颗粒",
        "较大颗粒",
        "黏度增大"
      ]
    },
    {
      "id": "molecular-potential",
      "title": "分子力与分子势能",
      "category": "热学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "35 · 分子动理论",
      "description": "拖动两分子间距，比较短程排斥与较远吸引。",
      "formula": "U=4ε[(σ/r)¹²−(σ/r)⁶]，F=−dU/dr",
      "assumptions": "Lennard–Jones 势为简单分子的教学近似；r、U、F 分别按 σ、ε、ε/σ 归一化，不代表所有真实材料。",
      "presets": [
        "排斥区域",
        "平衡间距",
        "吸引区域"
      ]
    },
    {
      "id": "ideal-gas-process",
      "title": "气体定律与状态图像",
      "category": "热学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "36 · 气体实验定律",
      "description": "等温、等压、等容和绝热过程的 p-V、p-T、V-T 联动。",
      "formula": "pV=nRT；等温 pV=常量；等压 V/T=常量；等容 p/T=常量",
      "assumptions": "准静态理想单原子气体；动画按过程进度展示，不把播放速度解释成传热速率。比值在等容时是 T₂/T₁，其余为 V₂/V₁。",
      "presets": [
        "等温膨胀",
        "等压膨胀",
        "等容升温",
        "绝热压缩"
      ]
    },
    {
      "id": "gas-piston",
      "title": "活塞、加砝码与限位",
      "category": "热学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "37 · 封闭气体模型",
      "description": "温度或负载改变，活塞在平衡位置与上下限位之间移动。",
      "formula": "未限位：p=p₀+mg/S；受限位：p=nRT/V",
      "assumptions": "竖直无摩擦活塞、准静态平衡；负载包括活塞质量，限位可施加额外支持力；不模拟快速撞击瞬态。",
      "presets": [
        "自由活塞",
        "升温到上限",
        "增加砝码"
      ]
    },
    {
      "id": "liquid-sealed-gas",
      "title": "液柱封闭气体与倾斜管",
      "category": "热学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "37 · 封闭气体模型",
      "description": "开口管内的水银柱封住下方气体；转动管或加热改变气体长度。",
      "formula": "p=p₀+ρgh cosθ；pL/T=常量",
      "assumptions": "均匀截面直管，水银柱长度固定，可自由滑动；准静态；忽略毛细效应。倾角从竖直向上方向计量。",
      "presets": [
        "竖直管",
        "水平管",
        "倒置管",
        "加热"
      ]
    },
    {
      "id": "connected-gas-vessels",
      "title": "连通容器与气体守恒",
      "category": "热学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "37 · 封闭气体模型",
      "description": "打开阀门后，两容器达到同一温度下的共同压强。",
      "formula": "p最终=(p₁V₁+p₂V₂)/(V₁+V₂)",
      "assumptions": "理想气体、两刚性容器、同温且恒温；只计算开阀前与最终平衡，未模拟阀口湍流及达到平衡所需时间。",
      "presets": [
        "高压向低压",
        "真空容器",
        "开阀后平衡"
      ]
    },
    {
      "id": "first-law",
      "title": "热力学第一定律与能量账本",
      "category": "热学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "38 · 热力学",
      "description": "在不同气体过程中核对吸热、做功和内能变化。",
      "formula": "ΔU=Q−W气体对外；单原子理想气体 U=3nRT/2",
      "assumptions": "沿用准静态理想单原子气体；W 取气体对外做功为正，与“外界对气体做功”写法符号相反但结论一致。",
      "presets": [
        "等温吸热做功",
        "等容吸热",
        "绝热膨胀",
        "等压冷却"
      ]
    },
    {
      "id": "heat-engine",
      "title": "热机效率与过程方向",
      "category": "热学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "38 · 热力学第二定律",
      "description": "热机吸热、放热和做功；比较实际设定效率与卡诺上限。",
      "formula": "η=W/Q热=1−Q冷/Q热；可逆上限 η≤1−T冷/T热",
      "assumptions": "循环热机的能量账本；温度为开尔文。效率比例指定相对卡诺上限，不模拟某一真实发动机。",
      "presets": [
        "可逆极限",
        "实际低效率",
        "提高热源温度"
      ]
    },
    {
      "id": "phase-change",
      "title": "熔化、汽化与加热曲线",
      "category": "热学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "38 · 物态变化",
      "description": "同一质量的冰持续吸热，经历升温、熔化和沸腾。",
      "formula": "升温 Q=mcΔT；相变 Q=mL",
      "assumptions": "1 标准大气压下纯水；比热容与潜热取常数；无散热，初温 −20°C。相变平台不代表停止吸热。",
      "presets": [
        "完整加热曲线",
        "较小质量",
        "慢火"
      ]
    },
    {
      "id": "solid-structure",
      "title": "晶体、非晶体与热运动",
      "category": "热学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "38 · 物态与微观结构",
      "description": "比较规则晶格与无长程有序结构；温度增大时原子振动更明显。",
      "formula": "经典谐振近似：均方振幅与 T 成正比",
      "assumptions": "二维结构示意；晶体用规则格点、非晶体用固定无序格点；振动幅度按 √T 缩放，不模拟真实熔化、相变或材料电子结构。",
      "presets": [
        "晶体",
        "非晶体",
        "低温"
      ]
    },
    {
      "id": "capillary",
      "title": "表面张力、浸润与毛细现象",
      "category": "热学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "38 · 表面现象",
      "description": "接触角与管径共同决定液面上升或下降。",
      "formula": "h=2γcosθ/(ρgr)，附加压强 Δp=2γ/r球面",
      "assumptions": "圆形细管，静态平衡；忽略液面曲率造成的小体积修正，管足够长。接触角通过液体内部测量。",
      "presets": [
        "浸润上升",
        "不升不降",
        "不浸润下降",
        "更细的管"
      ]
    },
    {
      "id": "reflection-mirror",
      "title": "反射定律与平面镜成像",
      "category": "光学",
      "dimension": "2D",
      "levels": [
        "初中",
        "高中"
      ],
      "chapter": "39 · 几何光学",
      "description": "改变物体位置，观察反射光线及其反向延长线。",
      "formula": "反射角=入射角；平面镜像与物体关于镜面对称",
      "assumptions": "理想平面镜，不计吸收；镜后虚像由反射光线的反向延长线定位。",
      "presets": [
        "标准成像",
        "物体靠近镜面"
      ]
    },
    {
      "id": "refraction-tir",
      "title": "折射、全反射与临界角",
      "category": "光学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "39 · 几何光学",
      "description": "改变折射率和入射角，观察折射光线消失的临界条件。",
      "formula": "n₁sin i=n₂sin r；n₁>n₂ 时 sin C=n₂/n₁",
      "assumptions": "均匀透明介质平界面；反射率采用非偏振光的 Fresnel 公式；不显示倏逝场。",
      "presets": [
        "空气入玻璃",
        "玻璃入空气",
        "全反射",
        "垂直入射"
      ]
    },
    {
      "id": "glass-slab",
      "title": "平行玻璃砖与侧移",
      "category": "光学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "39 · 几何光学",
      "description": "光线经过平行界面后方向恢复，位置发生侧向偏移。",
      "formula": "δ=d sin(i−r)/cos r，sin r=sin i/n",
      "assumptions": "两侧都是空气，砖面严格平行、横向足够大；不考虑多次内部反射。",
      "presets": [
        "标准侧移",
        "垂直入射",
        "厚玻璃砖"
      ]
    },
    {
      "id": "prism-dispersion",
      "title": "三棱镜偏折与色散",
      "category": "光学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "39 · 几何光学",
      "description": "顶角改变真实三角形形状，逐色追迹入射、内部折射和出射段。",
      "formula": "r₁+r₂=A，δ=i+e−A；n(λ)=a+b/λ²（Cauchy 近似）",
      "assumptions": "等腰棱镜、两侧为空气；射线与真实棱面求交，按 Snell 定律折射。Cauchy 系数是教学近似。若第二面全反射，展示下一段内反射到第三次遇面即止，不假称光已出射。",
      "presets": [
        "白光色散",
        "无色散",
        "较小顶角",
        "第二面全反射"
      ]
    },
    {
      "id": "optical-fiber",
      "title": "光导纤维与全反射",
      "category": "光学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "39 · 几何光学",
      "description": "调节芯层与包层折射率和轴向倾角，观察导光条件。",
      "formula": "界面入射角=90°−轴向角；sin C=n包层/n芯层",
      "assumptions": "二维直纤维的几何光学模型；包层折射率可能大于芯层，此时不能全反射导光；不模拟模式色散、弯曲损耗。",
      "presets": [
        "全反射导光",
        "倾角过大漏光",
        "无折射率优势"
      ]
    },
    {
      "id": "thin-lens",
      "title": "薄透镜成像与物距",
      "category": "光学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "39 · 几何光学（衔接）",
      "description": "凸透镜、凹透镜的实像与虚像，拖动物体连续跨越焦点。",
      "formula": "1/f=1/u+1/v；放大率 m=−v/u",
      "assumptions": "近轴薄透镜；u>0，凸透镜 f>0、凹透镜 f<0。焦点位置的像在无穷远，程序明确处理此极限。",
      "presets": [
        "等大倒立实像",
        "放大实像",
        "焦点上",
        "正立放大虚像",
        "凹透镜"
      ]
    },
    {
      "id": "spherical-mirror",
      "title": "凹面镜与凸面镜成像",
      "category": "光学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "39 · 几何光学（衔接）",
      "description": "球面反射镜的近轴成像与焦距符号。",
      "formula": "f=R/2，1/u+1/v=1/f，m=−v/u",
      "assumptions": "近轴球面镜，忽略球差；正像距表示镜前实像，负像距表示镜后虚像。图中镜在右，物体在左。",
      "presets": [
        "凹镜实像",
        "凹镜虚像",
        "凸镜虚像"
      ]
    },
    {
      "id": "double-slit",
      "title": "双缝干涉与衍射包络",
      "category": "光学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "40 · 波动光学",
      "description": "改变波长、缝距、缝宽与屏距，观察条纹间距和包络。",
      "formula": "I/I₀=cos²(πd sinθ/λ)[sinβ/β]²，β=πa sinθ/λ",
      "assumptions": "单色相干光、远场衍射；有限缝宽产生包络，中心 β=0 使用极限值 1。双缝宽度应小于缝距；若不满足会提示。",
      "presets": [
        "绿光",
        "红光",
        "减小缝宽",
        "增大屏距"
      ]
    },
    {
      "id": "single-slit",
      "title": "单缝衍射",
      "category": "光学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "40 · 波动光学",
      "description": "缝越窄，中央亮纹越宽；计算夫琅禾费衍射强度。",
      "formula": "I/I₀=[sinβ/β]²，β=πa sinθ/λ",
      "assumptions": "单色相干光、远场衍射；有限缝宽产生包络，中心 β=0 使用极限值 1。双缝宽度应小于缝距；若不满足会提示。",
      "presets": [
        "绿光",
        "红光",
        "减小缝宽",
        "增大屏距"
      ]
    },
    {
      "id": "thin-film",
      "title": "薄膜干涉与半波损失",
      "category": "光学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "40 · 波动光学",
      "description": "空气—薄膜—空气，两束反射光的相位差随厚度变化。",
      "formula": "Δφ=4πnd cos r/λ+π；反射强度归一化=(1+cosΔφ)/2",
      "assumptions": "单色光、平行薄膜；上下介质均为空气，第一界面反射发生 π 相变。两束反射光按等振幅教学近似，不含多次反射。",
      "presets": [
        "零厚度暗纹",
        "四分之一波光学厚度",
        "斜入射"
      ]
    },
    {
      "id": "polarization",
      "title": "偏振与马吕斯定律",
      "category": "光学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "40 · 波动光学",
      "description": "起偏器和检偏器的夹角改变透射光强；可插入中间偏振片。",
      "formula": "I=I₀cos²θ；自然光经过理想第一片后强度减半",
      "assumptions": "理想线偏振片，无吸收散射损失；三片模式分别应用相邻透振轴的马吕斯定律。",
      "presets": [
        "正交两片",
        "三片透光",
        "平行透振轴"
      ]
    },
    {
      "id": "photoelectric",
      "title": "光电效应与遏止电压",
      "category": "近代物理",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "41 · 量子现象",
      "description": "频率决定最大初动能，光强主要改变逸出电子数。",
      "formula": "K最大=hν−W₀；eU遏止=K最大；ν截止=W₀/h",
      "assumptions": "单光子光电效应；量子效率视为常数。电流曲线用初动能在 0 至 K最大间均匀分布的教学近似，不用于拟合真实材料；低于阈值时严格无光电子。",
      "presets": [
        "高于阈值",
        "低频再亮也不逸出",
        "增加光强",
        "施加反向电压"
      ]
    },
    {
      "id": "matter-wave",
      "title": "德布罗意波与电子衍射",
      "category": "近代物理",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "41 · 波粒二象性",
      "description": "加速电压越高，电子波长越短；晶格衍射角随之改变。",
      "formula": "λ=h/p；pc=√[K(K+2mc²)]；2d sinθ=nλ",
      "assumptions": "电子由静止经电压 U 加速；使用相对论动量避免高电压误差。衍射示意只显示一级 Bragg 条件，不计算真实晶体结构因子。",
      "presets": [
        "1 kV 电子",
        "低电压",
        "高电压"
      ]
    },
    {
      "id": "rutherford",
      "title": "α 粒子散射与原子核",
      "category": "近代物理",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "41 · 原子结构",
      "description": "入射能量与瞄准距离决定散射角；展示精确库仑双曲线。",
      "formula": "tan(θ/2)=Z×1.439964/(E·b)，最近距离=a+√(a²+b²)",
      "assumptions": "固定重核的经典单次库仑散射，α 粒子电荷 +2e；忽略核反冲和核力。轨迹点按曲线参数扫描，动画不表示匀速或真实飞行时间。",
      "presets": [
        "金箔 α 散射",
        "近乎正碰",
        "大瞄准距离",
        "更高能量"
      ]
    },
    {
      "id": "hydrogen-levels",
      "title": "氢原子能级与光谱",
      "category": "近代物理",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "41 · 原子能级",
      "description": "选择初末能级，计算吸收或发射的光子能量与波长。",
      "formula": "Eₙ=−13.6/n² eV；hν=|E末−E初|",
      "assumptions": "氢原子非相对论能级，忽略精细结构；水平线表示量子能态，不绘制电子沿经典轨道爬升。同一能级间没有跃迁光子。",
      "presets": [
        "Hα 红线",
        "Lyman α 紫外",
        "吸收激发",
        "同能级无跃迁"
      ]
    },
    {
      "id": "radioactive-decay",
      "title": "放射性衰变与半衰期",
      "category": "近代物理",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "42 · 原子核",
      "description": "单个核的随机寿命与大量核的指数规律在同一画面比较。",
      "formula": "N期望=N₀·2^(−t/T½)，A=λN，λ=ln2/T½",
      "assumptions": "独立核的单步衰变；每个核预先抽取指数分布寿命，回放时不重新抽样；只显示母核是否衰变，未考虑子核继续衰变。",
      "presets": [
        "100 个母核",
        "小样本波动",
        "不同随机实验"
      ]
    },
    {
      "id": "nuclear-radiation",
      "title": "α、β、γ 衰变与守恒",
      "category": "近代物理",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "42 · 原子核",
      "description": "选择衰变类型，检查质量数与电荷数变化。",
      "formula": "α：(A,Z)→(A−4,Z−2)；β⁻：(A,Z)→(A,Z+1)；γ：A、Z 不变",
      "assumptions": "核反应记账模型；只判断计数可否成立，不声称任意 A、Z 的核都会自发发生所选衰变。β 衰变同时含（反）中微子。",
      "presets": [
        "铀 238 的 α 衰变",
        "碳 14 的 β⁻ 衰变",
        "γ 退激发"
      ]
    },
    {
      "id": "nuclear-energy",
      "title": "质量亏损、结合能与核能",
      "category": "近代物理",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "42 · 核能",
      "description": "计算给定原子质量的反应能，区分单次反应与宏观物质量。",
      "formula": "Q=(m反应前−m反应后)c²；1 u·c²≈931.494 MeV",
      "assumptions": "使用给定原子质量，反应前后总电子数相等可相消。裂变只取一个示例通道，真实裂变产物有分布；不将所有通道能量都标成固定 200 MeV。",
      "presets": [
        "氘氚聚变",
        "铀裂变通道",
        "吸能反应"
      ]
    },
    {
      "id": "binding-energy",
      "title": "比结合能与稳定性趋势",
      "category": "近代物理",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "42 · 核能",
      "description": "半经验质量公式展示不同核素的结合能趋势。",
      "formula": "B=aᵥA−aₛA^(2/3)−a꜀Z(Z−1)/A^(1/3)−aₐ(A−2Z)²/A+δ",
      "assumptions": "拓展性半经验液滴模型；轻核、壳层闭合处误差较大，不代替实测核质量。A、Z 必须满足 0<Z≤A。",
      "presets": [
        "铁 56",
        "铀 238",
        "氦 4（模型误差明显）"
      ]
    },
    {
      "id": "chain-reaction",
      "title": "链式反应与临界条件",
      "category": "近代物理",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "42 · 核能",
      "description": "有效增殖系数控制每代中子的增长或衰减。",
      "formula": "N下一代=k有效·N本代；k<1 亚临界，k=1 临界，k>1 超临界",
      "assumptions": "代际平均数量模型，只研究增殖系数；不模拟反应堆几何、控制系统、热反馈或工程设计。分数中子表示统计期望值。",
      "presets": [
        "亚临界",
        "临界",
        "超临界"
      ]
    },
    {
      "id": "wave-diffraction",
      "title": "机械波衍射与孔宽",
      "category": "振动与波",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "20 · 衍射",
      "description": "比较孔宽相对波长的大小，观察远场波的传播角分布。",
      "formula": "I(θ)/I(0)=[sinβ/β]²，β=πa sinθ/λ",
      "assumptions": "线性标量波的单缝远场近似；用角向强度比较衍射程度，不作为孔附近流体运动或近场解。",
      "presets": [
        "孔宽远大于波长",
        "孔宽接近波长",
        "孔宽小于波长"
      ]
    },
    {
      "id": "beats",
      "title": "拍：两个相近频率的叠加",
      "category": "拓展",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "拓展 · 复杂振动",
      "description": "频率接近的振动叠加，形成缓慢变化的振幅包络。",
      "formula": "cosω₁t+cosω₂t=2cos[(ω₁−ω₂)t/2]cos[(ω₁+ω₂)t/2]；f拍=|f₁−f₂|",
      "assumptions": "两个等振幅、同方向的线性振动；图中机械位移等比例，不播放音频。",
      "presets": [
        "慢拍",
        "完全同频",
        "较快拍"
      ]
    },
    {
      "id": "coupled-oscillators",
      "title": "耦合振子与能量交换",
      "category": "拓展",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "拓展 · 复杂振动",
      "description": "两个相同振子由中间弹簧连接，展示同相与反相简正模叠加。",
      "formula": "ω同=√(k/m)，ω反=√[(k+2κ)/m]；x₁=A(cosω同t+cosω反t)/2",
      "assumptions": "两端固定、两块质量相同、外侧弹簧相同、中间耦合弹簧线性；忽略摩擦。初始只拉开左块，右块在平衡处。",
      "presets": [
        "弱耦合能量交换",
        "无耦合",
        "强耦合"
      ]
    },
    {
      "id": "double-pendulum",
      "title": "双摆与初值敏感性",
      "category": "拓展",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "拓展 · 复杂振动",
      "description": "对非线性双摆运动方程积分，同时比较极微小初始角差。",
      "formula": "耦合非线性摆方程，由拉格朗日方程求得；机械能守恒",
      "assumptions": "两根无质量刚杆、点质量、无摩擦；固定最大步长 0.002 s 的 RK4。两条轨迹的差别是初始角差，并非加入随机扰动；数值误差可由能量漂移监视。",
      "presets": [
        "大角度双摆",
        "小角度近线性",
        "完全相同初值"
      ]
    },
    {
      "id": "diffraction-grating",
      "title": "光栅衍射",
      "category": "拓展",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "拓展 · 进阶光学",
      "description": "改变缝数和缝距，观察主极大变窄及衍射级次。",
      "formula": "d sinθ=mλ；I/I最大=[sin(Nα)/(N sinα)]²[sinβ/β]²",
      "assumptions": "N 条等宽等间距狭缝的相干远场叠加；a<d，sinα=0 使用解析极限。",
      "presets": [
        "八缝光栅",
        "双缝极限",
        "更多狭缝"
      ]
    },
    {
      "id": "newton-rings",
      "title": "牛顿环",
      "category": "拓展",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "拓展 · 进阶光学",
      "description": "平凸透镜与平板之间的空气膜形成同心干涉环。",
      "formula": "反射暗环 rₘ²=mλR；空气膜厚度 t≈r²/(2R)",
      "assumptions": "正入射、空气薄膜、R 远大于环半径；一处反射产生半波损失，理想接触中心是暗点。",
      "presets": [
        "理想接触",
        "中心有间隙",
        "曲率更平缓"
      ]
    },
    {
      "id": "michelson",
      "title": "迈克尔逊干涉仪",
      "category": "拓展",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "拓展 · 进阶光学",
      "description": "移动一面镜子，往返光程改变两倍镜面位移。",
      "formula": "光程差 Δ=2(L₂−L₁)，移动 Δx 经过条纹数=2Δx/λ",
      "assumptions": "理想分束器、两束等强、同偏振；只显示中心点光强，不模拟面倾斜形成的完整空间条纹。",
      "presets": [
        "零光程差",
        "移动四分之一波长",
        "移动半波长"
      ]
    },
    {
      "id": "light-clock",
      "title": "光钟与时间膨胀",
      "category": "拓展",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "拓展 · 狭义相对论",
      "description": "同一个往返事件，在光钟静止系与实验室系经历不同时间。",
      "formula": "γ=1/√(1−β²)，Δt=γΔτ；光速在两惯性系中都是 c",
      "assumptions": "光钟横向匀速运动；时间以镜间光行时为单位，长度以镜间距离为单位；两系画面是同一事件的坐标表达，不是两个独立绝对时钟。",
      "presets": [
        "静止光钟",
        "0.6 c",
        "接近光速"
      ]
    },
    {
      "id": "quantum-tunneling",
      "title": "方势垒与量子隧穿",
      "category": "拓展",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "拓展 · 量子物理",
      "description": "电子能量低于势垒，也有非零透射概率；厚度改变极其敏感。",
      "formula": "E<V 时 T=[1+V²sinh²(κa)/(4E(V−E))]⁻¹，κ=√[2m(V−E)]/ℏ",
      "assumptions": "一维定态矩形势垒、左右自由区势能为零；给出精确透射率，含 E=V 极限与 E>V 情况。画面只画能量势垒，不把波函数误画成粒子轨迹。",
      "presets": [
        "低于势垒",
        "更薄势垒",
        "能量等于势垒",
        "能量高于势垒",
        "零宽度极限"
      ]
    },
    {
      "id": "telescope",
      "title": "望远镜：物镜与目镜",
      "category": "拓展",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "拓展 · 进阶光学",
      "description": "开普勒式与伽利略式望远镜的双透镜光路与角放大率。",
      "formula": "镜间距=f物+f目；角放大率 M=−f物/f目",
      "assumptions": "近轴薄透镜、正常调焦、远物与最终像均在无穷远；伽利略目镜取负焦距。高度和长度使用同一比例，图示不模拟像差和孔径衍射。",
      "presets": [
        "开普勒式",
        "伽利略式",
        "高倍率"
      ]
    },
    {
      "id": "microscope",
      "title": "显微镜：两次成像",
      "category": "拓展",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "拓展 · 进阶光学",
      "description": "物镜先形成倒立实像，目镜把中间像放大成虚像。",
      "formula": "v物=f物u/(u−f物)，M≈(−v物/u)(1+D/f目)",
      "assumptions": "近轴薄透镜组合；明视距离 D=25 cm，目镜位置自动调整使最终虚像距目镜 25 cm。物高自动缩放使两条近轴光线保持在画面内，不模拟像差。",
      "presets": [
        "典型显微镜",
        "物体靠近焦点",
        "短焦目镜"
      ]
    },
    {
      "id": "surface-tension",
      "title": "液面张力、液滴与肥皂膜",
      "category": "热学",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "38 · 表面现象",
      "description": "比较单个液滴、双表面肥皂泡和可移动膜框的张力。",
      "formula": "液滴 Δp=2γ/r；肥皂泡 Δp=4γ/r；双面液膜 F=2γL",
      "assumptions": "理想球形界面、表面张力恒定；肥皂泡厚度远小于半径，有内外两个液面；不模拟重力导致的液滴变形。",
      "presets": [
        "肥皂泡",
        "同半径液滴",
        "拉动肥皂膜"
      ]
    },
    {
      "id": "quantum-probability",
      "title": "量子态与位置概率分布",
      "category": "拓展",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "拓展 · 量子物理",
      "description": "一维无限深势阱中，波函数与位置概率密度不同；逐次测量积累出分布。",
      "formula": "ψₙ=√(2/L)sin(nπx/L)；ρ=|ψ|²；Eₙ=n²h²/(8mL²)",
      "assumptions": "一维无限深方势阱的电子定态；画面为概率密度，不是电子沿波形运动。测量点按固定随机种子从 |ψ|² 分布抽样，代表重新制备的独立系统。",
      "presets": [
        "基态",
        "第二激发态",
        "更宽势阱"
      ]
    },
    {
      "id": "lab-length",
      "title": "刻度尺、游标卡尺与螺旋测微器",
      "category": "实验与工具",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "器材操作与读数",
      "description": "真实刻线间距与对齐关系，练习主尺、游标、微分筒和零误差修正。",
      "formula": "50分度游标：50格 = 49 mm，最小分度 = 0.02 mm\n测微器：螺距0.5 mm ÷ 50格 = 0.01 mm\n测量值 = 仪器示值 − 零误差",
      "assumptions": "理想平面刻度。主尺和游标均按同一横向比例绘制，局部放大帮助查看对齐刻线。测微器读数按0.01 mm量化，不另加估读。",
      "presets": [
        "游标读数 12.36 mm",
        "测微器正零误差",
        "刻度尺"
      ]
    },
    {
      "id": "lab-meter",
      "title": "电流表、电压表与多用电表",
      "category": "实验与工具",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "器材操作与读数",
      "description": "切换量程、表盘与被测量，比较均匀电流刻度和非均匀电阻刻度。",
      "formula": "电流/电压：指针比例 = 测量值 / 量程\n欧姆挡：I/I满 = R内/(R内 + R外)",
      "assumptions": "模拟指针式仪表。欧姆挡先完成机械和欧姆调零；内部电池与调零电阻用等效内阻表示。超量程只作教学提示。",
      "presets": [
        "3 V 量程",
        "0.6 A 量程",
        "欧姆挡中心刻度",
        "超量程示例"
      ]
    },
    {
      "id": "lab-timing",
      "title": "纸带、光电门与秒表测量",
      "category": "实验与工具",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "运动实验器材",
      "description": "用同一条运动规律生成纸带点迹、光电门读数与计时结果。",
      "formula": "x = v₀t + ½at²；相邻点时间间隔 Δt = 1/f\n光电门近似瞬时速度 v ≈ 遮光片宽度 / 遮光时间",
      "assumptions": "匀变速直线运动，演示时间0至5s。遮光片中心处速度用局部匀速近似计算通光时间；宽度越小近似越好。",
      "presets": [
        "纸带逐差法",
        "光电门窄遮光片",
        "秒表反应误差"
      ]
    },
    {
      "id": "lab-hooke",
      "title": "探究胡克定律与弹簧测力计",
      "category": "实验与工具",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "定量实验工作台",
      "description": "调整实验条件、读取测量数据，记录多组结果并检验规律。",
      "formula": "F = kx；通过 F-x 图像的斜率求劲度系数 k",
      "assumptions": "弹簧处于弹性限度内，不考虑弹簧质量；读数偏差施加于主测量值，为人为设置的相对系统偏差；辅助理论量用于对照，非真实仪器噪声。",
      "presets": []
    },
    {
      "id": "lab-newton",
      "title": "探究加速度与力、质量的关系",
      "category": "实验与工具",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "定量实验工作台",
      "description": "调整实验条件、读取测量数据，记录多组结果并检验规律。",
      "formula": "a = F/m；保持 m 不变测 a-F，保持 F 不变测 a-1/m",
      "assumptions": "力表示小车系统受到的合外力，已扣除摩擦，不把悬挂物重力无条件当张力；读数偏差施加于主测量值，为人为设置的相对系统偏差；辅助理论量用于对照，非真实仪器噪声。",
      "presets": []
    },
    {
      "id": "lab-force-add",
      "title": "探究两个互成角度的力的合成",
      "category": "实验与工具",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "定量实验工作台",
      "description": "调整实验条件、读取测量数据，记录多组结果并检验规律。",
      "formula": "F² = F₁² + F₂² + 2F₁F₂ cosθ",
      "assumptions": "两个力作用于同一质点，采用平行四边形定则；读数偏差施加于主测量值，为人为设置的相对系统偏差；辅助理论量用于对照，非真实仪器噪声。",
      "presets": []
    },
    {
      "id": "lab-energy",
      "title": "验证机械能守恒",
      "category": "实验与工具",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "定量实验工作台",
      "description": "调整实验条件、读取测量数据，记录多组结果并检验规律。",
      "formula": "mgh = ½mv²；v² = 2gh",
      "assumptions": "从静止下落；耗散比例为0时机械能守恒，非零时用于分析能量损失；读数偏差施加于主测量值，为人为设置的相对系统偏差；辅助理论量用于对照，非真实仪器噪声。",
      "presets": []
    },
    {
      "id": "lab-momentum",
      "title": "验证碰撞中的动量守恒",
      "category": "实验与工具",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "定量实验工作台",
      "description": "调整实验条件、读取测量数据，记录多组结果并检验规律。",
      "formula": "m₁u₁+m₂u₂ = m₁v₁+m₂v₂；v₁=v₂（完全非弹性）",
      "assumptions": "水平系统无外界冲量，碰撞后两车粘连；读数偏差施加于主测量值，为人为设置的相对系统偏差；辅助理论量用于对照，非真实仪器噪声。",
      "presets": []
    },
    {
      "id": "lab-pendulum",
      "title": "用单摆测量重力加速度",
      "category": "实验与工具",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "定量实验工作台",
      "description": "调整实验条件、读取测量数据，记录多组结果并检验规律。",
      "formula": "T = 2π√(L/g)；g = 4π²L/T²",
      "assumptions": "小角度近似、细线不可伸长、阻力忽略，摆长为悬点到球心距离；读数偏差施加于主测量值，为人为设置的相对系统偏差；辅助理论量用于对照，非真实仪器噪声。",
      "presets": []
    },
    {
      "id": "lab-resistivity",
      "title": "测量金属丝电阻率",
      "category": "实验与工具",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "定量实验工作台",
      "description": "调整实验条件、读取测量数据，记录多组结果并检验规律。",
      "formula": "R = ρL/S；S = πd²/4；ρ = Uπd²/(4IL)",
      "assumptions": "温度固定、电阻率恒定，忽略接触电阻与电表分流；读数偏差施加于主测量值，为人为设置的相对系统偏差；辅助理论量用于对照，非真实仪器噪声。",
      "presets": []
    },
    {
      "id": "lab-emf",
      "title": "测量电源电动势和内阻",
      "category": "实验与工具",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "定量实验工作台",
      "description": "调整实验条件、读取测量数据，记录多组结果并检验规律。",
      "formula": "U = E − Ir；U-I 图像纵截距为 E，斜率为 −r",
      "assumptions": "电源线性内阻模型，电表理想；保持电源温度不变；读数偏差施加于主测量值，为人为设置的相对系统偏差；辅助理论量用于对照，非真实仪器噪声。",
      "presets": []
    },
    {
      "id": "lab-va",
      "title": "伏安法内外接与测量误差",
      "category": "实验与工具",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "定量实验工作台",
      "description": "调整实验条件、读取测量数据，记录多组结果并检验规律。",
      "formula": "内接：R测=R+Rₐ；外接：R测=RRᵥ/(R+Rᵥ)",
      "assumptions": "考虑电表内阻，其余导线与电源理想；接线图为原理示意；读数偏差施加于主测量值，为人为设置的相对系统偏差；辅助理论量用于对照，非真实仪器噪声。",
      "presets": []
    },
    {
      "id": "lab-bulb",
      "title": "描绘小灯泡的伏安特性",
      "category": "实验与工具",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "定量实验工作台",
      "description": "调整实验条件、读取测量数据，记录多组结果并检验规律。",
      "formula": "教学热平衡模型：R=R₀(1+αΔT)，ΔT=kUI",
      "assumptions": "简化稳态热模型，用于说明灯丝升温导致非线性；不代表某个真实灯泡的标定曲线；读数偏差施加于主测量值，为人为设置的相对系统偏差；辅助理论量用于对照，非真实仪器噪声。",
      "presets": []
    },
    {
      "id": "lab-oil",
      "title": "油膜法估测分子大小",
      "category": "实验与工具",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "定量实验工作台",
      "description": "调整实验条件、读取测量数据，记录多组结果并检验规律。",
      "formula": "d = V油 / S；V油 = V溶液 × 体积分数",
      "assumptions": "油膜为单分子层，分子按简单几何排列估算；溶剂完全挥发，体积换算明确；读数偏差施加于主测量值，为人为设置的相对系统偏差；辅助理论量用于对照，非真实仪器噪声。",
      "presets": []
    },
    {
      "id": "lab-boyles",
      "title": "探究气体等温变化规律",
      "category": "实验与工具",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "定量实验工作台",
      "description": "调整实验条件、读取测量数据，记录多组结果并检验规律。",
      "formula": "pV = 常量；p 与 1/V 成正比",
      "assumptions": "定量理想气体、恒温过程；压强为绝对压强而非表压；读数偏差施加于主测量值，为人为设置的相对系统偏差；辅助理论量用于对照，非真实仪器噪声。",
      "presets": []
    },
    {
      "id": "lab-refractive",
      "title": "测量玻璃折射率",
      "category": "实验与工具",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "定量实验工作台",
      "description": "调整实验条件、读取测量数据，记录多组结果并检验规律。",
      "formula": "n = sin i / sin r（空气折射率取1）",
      "assumptions": "单色光从空气射入均匀玻璃；角度均相对法线；读数偏差施加于主测量值，为人为设置的相对系统偏差；辅助理论量用于对照，非真实仪器噪声。",
      "presets": []
    },
    {
      "id": "lab-wavelength",
      "title": "双缝干涉测量光的波长",
      "category": "实验与工具",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "定量实验工作台",
      "description": "调整实验条件、读取测量数据，记录多组结果并检验规律。",
      "formula": "Δx = λL/d；λ = dΔx/L",
      "assumptions": "双缝间距远小于屏距、近轴近似；示意条纹位置未按屏上实际毫米比例显示；读数偏差施加于主测量值，为人为设置的相对系统偏差；辅助理论量用于对照，非真实仪器噪声。",
      "presets": []
    },
    {
      "id": "lab-transformer",
      "title": "探究变压器电压与匝数关系",
      "category": "实验与工具",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "定量实验工作台",
      "description": "调整实验条件、读取测量数据，记录多组结果并检验规律。",
      "formula": "U₂/U₁ = N₂/N₁",
      "assumptions": "理想变压器、交流有效值、无漏磁和损耗；禁止把直流稳态套入该关系；读数偏差施加于主测量值，为人为设置的相对系统偏差；辅助理论量用于对照，非真实仪器噪声。",
      "presets": []
    },
    {
      "id": "lab-centripetal",
      "title": "探究向心力的影响因素",
      "category": "实验与工具",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "定量实验工作台",
      "description": "调整实验条件、读取测量数据，记录多组结果并检验规律。",
      "formula": "F = mω²r",
      "assumptions": "匀速圆周运动，改变某一变量时保持其他变量不变；读数偏差施加于主测量值，为人为设置的相对系统偏差；辅助理论量用于对照，非真实仪器噪声。",
      "presets": []
    },
    {
      "id": "lab-projectile",
      "title": "实验探究平抛运动特点",
      "category": "实验与工具",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "定量实验工作台",
      "description": "调整实验条件、读取测量数据，记录多组结果并检验规律。",
      "formula": "x = v₀t，y = ½gt²；竖直分运动与自由落体相同",
      "assumptions": "初速度水平、忽略空气阻力；坐标原点选抛出点；读数偏差施加于主测量值，为人为设置的相对系统偏差；辅助理论量用于对照，非真实仪器噪声。",
      "presets": []
    },
    {
      "id": "lab-data",
      "title": "数据拟合、逐差法与有效数字",
      "category": "实验与工具",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "数据处理",
      "description": "生成带有可控偏差的实验数据，比较拟合参数与真实规律。合成误差序列固定，可重复观察。",
      "formula": "线性：y = ax+b\n匀变速纸带：Δs相邻差 = aΔt²；逐差法用多组差值减小偶然误差",
      "assumptions": "数据为教学合成，误差分量确定可重放；本工具用于理解方法，不替代真实实验数据分析。",
      "presets": [
        "理想线性数据",
        "含合成读数误差",
        "纸带位移"
      ]
    },
    {
      "id": "lab-significant",
      "title": "有效数字、科学记数法与运算",
      "category": "实验与工具",
      "dimension": "2D",
      "levels": [
        "高中"
      ],
      "chapter": "数据处理",
      "description": "比较原始结果和按测量精度表达的结果，区分加减法小数位规则与乘除法有效数字规则。",
      "formula": "加减：结果保留到最不精确的数位\n乘除：结果有效数字位数取较少者\n正式不确定度计算应采用误差传播公式",
      "assumptions": "采用常用高中近似记录规则。输入数据先按所设位数舍入后再运算；精确的定义常数不受测量有效位数限制。边界中点遵循浏览器数值舍入，避免用二进制浮点精确判定十进制中点。",
      "presets": [
        "乘法取较少有效位",
        "加法按最粗数位",
        "前导零不计有效位"
      ]
    },
    {
      "id": "junior-sound-pitch",
      "title": "声音：音调与响度",
      "category": "声学",
      "dimension": "2D",
      "levels": [
        "初中"
      ],
      "chapter": "初中 · 声现象",
      "description": "把波形变密与变高分开观察，理解频率和振幅的不同作用。",
      "formula": "频率越大，音调通常越高；其他条件相同时，振幅越大，响度通常越大",
      "assumptions": "单频声波，不播放实际声音；振幅用相对值表示，不能当作真实分贝或听感测量。动画时间放慢1000倍，图横轴为毫秒。",
      "presets": [
        "低音",
        "高音",
        "振幅加倍"
      ]
    },
    {
      "id": "junior-echo",
      "title": "回声测距",
      "category": "声学",
      "dimension": "2D",
      "levels": [
        "初中"
      ],
      "chapter": "初中 · 声现象",
      "description": "声音走到墙壁再返回，路程是人与墙距离的两倍。",
      "formula": "距离 s=声音速度 v×往返时间 t÷2",
      "assumptions": "均匀空气、单面墙反射，忽略风与传播损耗；声速近似 v=331.3+0.606T。动画以过程进度播放，读数给出真实传播时间。",
      "presets": [
        "50米外的墙",
        "墙更远",
        "寒冷空气"
      ]
    },
    {
      "id": "junior-sound-medium",
      "title": "声音传播需要介质",
      "category": "声学",
      "dimension": "2D",
      "levels": [
        "初中"
      ],
      "chapter": "初中 · 声现象",
      "description": "在共同的实际时间尺度下比较空气、水、钢中的传播，真空不传声。",
      "formula": "传播路程 s=vt；传播时间 t=s/v；真空中没有机械声波传播",
      "assumptions": "声速取常温下典型近似值，不代表所有温度和材料；钢中取纵波速度。同一距离下四种环境使用同一时钟：5个演示时间单位对应声音在空气中的单程时间，切换介质不会重新缩放时间。小点仅表示介质存在，绿色箭头是声脉冲波前，不是介质粒子运动轨迹。",
      "presets": [
        "空气",
        "水下传声",
        "钢轨传声",
        "真空铃实验"
      ]
    },
    {
      "id": "junior-thermometer",
      "title": "温度计与摄氏温度",
      "category": "热学",
      "dimension": "2D",
      "levels": [
        "初中"
      ],
      "chapter": "初中 · 温度与物态",
      "description": "读取液柱高度；看清零点、分度值和温度单位。",
      "formula": "液柱高度与温度近似成线性关系；1大格=10°C",
      "assumptions": "理想线性液体温度计，适用范围 −20至100°C；这里只演示读数，真实使用还需等待热平衡。",
      "presets": [
        "室温",
        "冰水混合物",
        "标准大气压沸水",
        "零下温度"
      ]
    },
    {
      "id": "junior-melting",
      "title": "冰熔化：吸热不一定升温",
      "category": "热学",
      "dimension": "2D",
      "levels": [
        "初中"
      ],
      "chapter": "初中 · 温度与物态",
      "description": "0°C的冰继续吸热，先熔化成水，再开始升温。",
      "formula": "冰熔化时吸热但温度不变；水升温时 Q=cmΔT",
      "assumptions": "标准大气压纯水，初始为0°C冰；后台用熔化潜热334kJ/kg计算平台时长（不作初中公式要求），水比热4.2kJ/(kg·°C)。超过100°C所需热量时进入沸腾平台，未计算蒸干后的过热蒸汽。",
      "presets": [
        "观察熔化",
        "熔化尚未结束",
        "继续加热水"
      ]
    },
    {
      "id": "junior-heat-mixing",
      "title": "冷热水混合与热量守恒",
      "category": "热学",
      "dimension": "2D",
      "levels": [
        "初中"
      ],
      "chapter": "初中 · 内能与热量",
      "description": "比较两杯水的质量与温度，预测混合后的温度。",
      "formula": "热水放热=冷水吸热；T末=(m热T热+m冷T冷)/(m热+m冷)",
      "assumptions": "都是液态水，比热相同；容器不吸热、无散热、无相变，只计算混合后的平衡温度。",
      "presets": [
        "等质量混合",
        "冷水更多",
        "热水更多"
      ]
    },
    {
      "id": "junior-density",
      "title": "量筒测体积与密度",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "初中"
      ],
      "chapter": "初中 · 质量与密度",
      "description": "把物体放入量筒，用液面上升量求体积，再结合质量求密度。",
      "formula": "V物=V放入后−V放入前；ρ=m/V",
      "assumptions": "物体完全浸没且不吸水、不溶于水，无气泡；量筒装有足够液体。图示水位按读数缩放，不直接测图长。",
      "presets": [
        "铝块示例",
        "较轻材料",
        "先读初始液面"
      ]
    },
    {
      "id": "junior-speed",
      "title": "路程、时间与参照物",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "初中"
      ],
      "chapter": "初中 · 机械运动",
      "description": "同一辆车，相对地面和移动观察者的运动可能不同。",
      "formula": "速度 v=s/t；相对速度=车速−观察者速度",
      "assumptions": "一维匀速运动；观察者与车起初同处一个原点。运动方向用正负号表示，速率用绝对值。",
      "presets": [
        "地面看车",
        "同速同行",
        "相向运动"
      ]
    },
    {
      "id": "junior-gravity",
      "title": "质量与重力",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "初中"
      ],
      "chapter": "初中 · 力与运动",
      "description": "物体质量不随地点改变，重力随当地重力加速度改变。",
      "formula": "重力 G=mg；质量单位kg，力单位N",
      "assumptions": "把物体作为质点；忽略自转等影响，地点的g取常见近似值。",
      "presets": [
        "地球上",
        "带到月球",
        "质量加倍"
      ]
    },
    {
      "id": "junior-spring-scale",
      "title": "弹簧测力计与弹性限度",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "初中"
      ],
      "chapter": "初中 · 力与运动",
      "description": "在弹性范围内，拉力越大弹簧伸长越多；超出量程不能继续按比例测量。",
      "formula": "在弹性范围内，伸长量与拉力成正比；读数必须不超过量程",
      "assumptions": "理想弹簧的有效测量区；超过8N时仅报超量程，不预测塑性变形或继续给出可信伸长量。",
      "presets": [
        "正常测量",
        "减小拉力",
        "超出量程"
      ]
    },
    {
      "id": "junior-balanced-forces",
      "title": "二力平衡与运动状态",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "初中"
      ],
      "chapter": "初中 · 力与运动",
      "description": "相反方向的两力大小相等时，物体可以静止，也可以匀速运动。",
      "formula": "F合=F右−F左；二力平衡不等于速度为零",
      "assumptions": "水平光滑面，同一直线的两力作用在同一物体；后台按牛顿定律计算运动，前台重点比较是否平衡以及运动状态的变化。",
      "presets": [
        "静止时平衡",
        "匀速时也平衡",
        "不平衡"
      ]
    },
    {
      "id": "junior-friction",
      "title": "静摩擦与滑动摩擦",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "初中"
      ],
      "chapter": "初中 · 力与运动",
      "description": "缓慢增大水平拉力，观察静摩擦先跟随拉力，达到上限后才滑动。",
      "formula": "静止时摩擦力平衡拉力（不超过上限）；滑动摩擦力与压力和接触面粗糙程度有关",
      "assumptions": "从静止开始，水平面；静摩擦上限系数固定为0.5，动摩擦系数固定为0.3。只研究恒定向右拉力，不模拟往返运动。",
      "presets": [
        "静止",
        "开始滑动",
        "加重物体"
      ]
    },
    {
      "id": "junior-pressure",
      "title": "压力、受力面积与压强",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "初中"
      ],
      "chapter": "初中 · 压强",
      "description": "同样的压力，接触面积越小，压强越大。",
      "formula": "p=F/S；1cm²=10⁻⁴m²",
      "assumptions": "压力均匀分布；软垫下陷仅表示压强相对大小，不作为真实材料变形模型。",
      "presets": [
        "正常放置",
        "面积变小",
        "压力增加"
      ]
    },
    {
      "id": "junior-liquid-pressure",
      "title": "液体压强与深度",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "初中"
      ],
      "chapter": "初中 · 压强",
      "description": "探头越深，液体压强越大；同一深度的各方向压强相同。",
      "formula": "p=ρgh（液体产生的压强，不含大气压）",
      "assumptions": "液体静止且密度不变，容器开口与大气相通；数值为表压。深度从液面向下量，不是到容器底的距离。",
      "presets": [
        "水中1米",
        "加深探头",
        "换成油"
      ]
    },
    {
      "id": "junior-atmosphere",
      "title": "大气压与吸盘",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "初中"
      ],
      "chapter": "初中 · 压强",
      "description": "吸盘内外压强不同，外侧大气产生把吸盘压向墙面的合力。",
      "formula": "合力=(外部压强−内部压强)×面积",
      "assumptions": "理想密封吸盘，面积有效且固定；只算垂直于墙面的压紧力，不据此保证能承受相同大小的竖直重物。",
      "presets": [
        "吸盘压紧墙面",
        "漏气后内外相等",
        "面积更大"
      ]
    },
    {
      "id": "junior-buoyancy",
      "title": "浮力：漂浮、悬浮与沉底",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "初中"
      ],
      "chapter": "初中 · 浮力",
      "description": "改变物体与液体密度，观察最终排液体积和受力关系。",
      "formula": "F浮=ρ液gV排；漂浮时 F浮=G",
      "assumptions": "均匀柱形不吸水物体；显示最终平衡，不模拟入水过程。沉底时还有底部支持力，不能把浮力自动写成重力。",
      "presets": [
        "漂浮",
        "悬浮",
        "沉底",
        "盐水中更易漂浮"
      ]
    },
    {
      "id": "junior-lever",
      "title": "杠杆：力臂与平衡",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "初中"
      ],
      "chapter": "初中 · 简单机械",
      "description": "改变支点两侧的力与力臂，找出杠杆平衡条件。",
      "formula": "F动力×l动力=F阻力×l阻力",
      "assumptions": "杠杆质量忽略，力垂直于杆；画面比较力矩，不将不平衡时的杆画成假想静止平衡。箭头提示转动趋势，未积分刚体运动。",
      "presets": [
        "省力杠杆平衡",
        "左侧更容易下沉",
        "两侧力臂相同"
      ]
    },
    {
      "id": "junior-pulley",
      "title": "滑轮与机械效率",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "初中"
      ],
      "chapter": "初中 · 简单机械",
      "description": "承重绳段越多越省力，但拉绳距离更长；机械效率影响实际拉力。",
      "formula": "理想 F=G/n；s=nh；η=有用功/总功",
      "assumptions": "匀速提升，绳不伸长；n是承重绳段数。效率由给定值综合表示额外损耗；图为绳段受力示意，不是任意n的实际绕绳接线图。",
      "presets": [
        "动滑轮",
        "理想定滑轮",
        "理想动滑轮",
        "滑轮组"
      ]
    },
    {
      "id": "junior-work-power",
      "title": "做功与功率：提水比较",
      "category": "力学",
      "dimension": "2D",
      "levels": [
        "初中"
      ],
      "chapter": "初中 · 功与机械能",
      "description": "把同一桶水提到同样高度，时间不同会改变功率，不改变有用功。",
      "formula": "W=Gh=mgh；P=W/t",
      "assumptions": "匀速竖直提升，不计桶质量和摩擦。动画表示整段提升进度；控制项时间是实际完成时间。",
      "presets": [
        "匀速提水",
        "更快完成",
        "提升更高"
      ]
    },
    {
      "id": "junior-ohm-circuit",
      "title": "闭合电路与欧姆定律",
      "category": "电磁学",
      "dimension": "2D",
      "levels": [
        "初中"
      ],
      "chapter": "初中 · 电路与电流",
      "description": "闭合开关形成通路；在电阻一定时，电压越高，电流越大。",
      "formula": "I=U/R；开路时 I=0",
      "assumptions": "理想直流电源、定值电阻、导线电阻忽略；小亮点表示约定电流方向，不代表电子真实漂移速度。",
      "presets": [
        "闭合电路",
        "断开开关",
        "电压加倍",
        "电阻加倍"
      ]
    },
    {
      "id": "junior-series-parallel",
      "title": "串联与并联的电流电压",
      "category": "电磁学",
      "dimension": "2D",
      "levels": [
        "初中"
      ],
      "chapter": "初中 · 电路与电流",
      "description": "同样两个电阻，改变连接方式，比较电流与分压。",
      "formula": "串联：R总=R₁+R₂；并联：1/R总=1/R₁+1/R₂",
      "assumptions": "理想直流电源与两个定值电阻；忽略导线和电表的影响。",
      "presets": [
        "串联",
        "并联",
        "相同电阻"
      ]
    },
    {
      "id": "junior-electric-energy",
      "title": "电功率与用电量",
      "category": "电磁学",
      "dimension": "2D",
      "levels": [
        "初中"
      ],
      "chapter": "初中 · 电功与电热",
      "description": "看懂电器功率和电表上的千瓦时，区分功率与电能。",
      "formula": "W=Pt；1kWh=3.6×10⁶J；1度电=1kWh",
      "assumptions": "电器按额定功率持续工作；不考虑温控启停与待机变化。只计算能量，不推测实际电费。",
      "presets": [
        "1千瓦用1小时",
        "电灯",
        "电热水壶示例"
      ]
    },
    {
      "id": "junior-home-safety",
      "title": "家庭用电：过载与漏电保护",
      "category": "电磁学",
      "dimension": "2D",
      "levels": [
        "初中"
      ],
      "chapter": "初中 · 安全用电",
      "description": "识别过载、短路与漏电的不同原因，区分过电流保护与漏电保护。",
      "formula": "正常负载 I=P/U；漏电保护比较流出与返回电流之差",
      "assumptions": "仅为安全概念示意，不是接线图或操作教程，禁止按图做市电实验。演示设定220V、过流16A、漏电30mA；真实保护有动作曲线、安装条件和检测要求，不能据此判定触电安全。",
      "presets": [
        "正常使用",
        "过载跳闸",
        "短路危险",
        "漏电保护"
      ]
    },
    {
      "id": "junior-electromagnet",
      "title": "电磁铁的基础：通电线圈",
      "category": "电磁学",
      "dimension": "2D",
      "levels": [
        "初中"
      ],
      "chapter": "初中 · 电与磁",
      "description": "电流和线圈匝数改变磁场，反接电源会交换两端磁极。",
      "formula": "同一线圈：电流越大磁性越强；同电流下匝数越多磁性越强；反接电源磁极交换",
      "assumptions": "显示空气长螺线管的轴向磁场，后台按B=μ₀NI/L计算；前台仅比较相对强度。默认200匝、1A、20cm为基准1。不模拟铁芯饱和、漏磁或实际吸引力。",
      "presets": [
        "正常接线",
        "反接电源",
        "增加匝数",
        "断开电流"
      ]
    },
    {
      "id": "junior-motor",
      "title": "电动机的基础：通电导线受力",
      "category": "电磁学",
      "dimension": "2D",
      "levels": [
        "初中"
      ],
      "chapter": "初中 · 电与磁",
      "description": "改变电流方向或磁场方向，导线所受磁场力也会改变方向。",
      "formula": "通电导线在磁场中可能受到力；电流和磁场方向共同决定受力方向",
      "assumptions": "以电动机线圈的一条直导线演示安培力，导线垂直磁场。后台F=BIL；基准磁场0.2T、电流1A、长度20cm的受力记为1。×/·表示电流垂直屏幕，不声称这是完整电动机装配。",
      "presets": [
        "通电后受力",
        "只反接电流",
        "只反转磁场",
        "都反转"
      ]
    },
    {
      "id": "junior-generator",
      "title": "发电机：转动产生电压",
      "category": "电磁学",
      "dimension": "2D",
      "levels": [
        "初中"
      ],
      "chapter": "初中 · 电与磁",
      "description": "外力转动线圈，把机械能转化为电能；转得越快，电压峰值越大。",
      "formula": "发电机利用电磁感应；机械能转化为电能，转动快慢会影响感应电压",
      "assumptions": "理想线圈由外部恒速驱动，均匀磁场。后台E=NBAωsin(ωt)，面积0.01m²，磁场基准0.2T；前台不要求掌握此公式。图为沿转轴观察的线圈侧视示意，忽略内阻与负载反作用。",
      "presets": [
        "正常发电",
        "转得更快",
        "增加线圈匝数"
      ]
    },
    {
      "id": "junior-pinhole",
      "title": "光的直线传播与小孔成像",
      "category": "光学",
      "dimension": "2D",
      "levels": [
        "初中"
      ],
      "chapter": "初中 · 光现象",
      "description": "追踪物体上下两点的光线，小孔后出现倒立的实像。",
      "formula": "同种均匀介质中，光沿直线传播；像高/物高=像距/物距",
      "assumptions": "小孔足够小，忽略衍射与有限孔径模糊；几何光线交于小孔。",
      "presets": [
        "倒立成像",
        "光屏后移像变大",
        "物体靠近像变大"
      ]
    },
    {
      "id": "junior-reflection",
      "title": "光的反射与法线",
      "category": "光学",
      "dimension": "2D",
      "levels": [
        "初中"
      ],
      "chapter": "初中 · 光现象",
      "description": "入射角与反射角都要从法线量起，而不是从镜面量起。",
      "formula": "反射角等于入射角；入射光线、反射光线和法线在同一平面",
      "assumptions": "理想平面镜，均匀空气；不考虑反射损失。示意光线方向以箭头表示。",
      "presets": [
        "斜入射",
        "垂直入射",
        "更大入射角"
      ]
    },
    {
      "id": "junior-refraction",
      "title": "空气与水之间的折射",
      "category": "光学",
      "dimension": "2D",
      "levels": [
        "初中"
      ],
      "chapter": "初中 · 光现象",
      "description": "光穿过两种介质的界面时改变方向；垂直入射时方向不变。",
      "formula": "空气斜射入水或玻璃时，折射角小于入射角；水斜射入空气时相反",
      "assumptions": "平界面、透明均匀介质。后台按Snell定律保证光路准确；初中重点比较角度，不要求掌握折射率公式。入射角限定0至45°，不涉及本模型外的全反射。",
      "presets": [
        "空气入水",
        "水入空气",
        "垂直入射",
        "空气入玻璃"
      ]
    },
    {
      "id": "junior-convex-lens",
      "title": "凸透镜：照相机、投影仪与放大镜",
      "category": "光学",
      "dimension": "2D",
      "levels": [
        "初中"
      ],
      "chapter": "初中 · 凸透镜成像",
      "description": "拖动物体，观察物距经过2倍焦距和焦距时，像的大小与性质怎样改变。",
      "formula": "物距>2f：缩小实像；f<物距<2f：放大实像；物距<f：放大虚像",
      "assumptions": "近轴薄凸透镜，光线按薄透镜公式计算；焦点处像在无穷远，画面不会伪造有限的像。像很远时只给位置读数。",
      "presets": [
        "照相机",
        "投影仪",
        "放大镜",
        "等大实像",
        "物体在焦点"
      ]
    },
    {
      "id": "3d-projectile",
      "title": "空间抛体 · 发射方向与轨迹平面",
      "category": "力学",
      "dimension": "3D",
      "levels": [
        "高中"
      ],
      "chapter": "空间运动",
      "description": "旋转视角观察有方位角的抛体，比较轨迹、水平投影和速度分解。",
      "formula": "r(t)=(vₓt, h+vᵧt−gt²/2, v𝓏t)；轨迹位于初速度与重力张成的平面",
      "assumptions": "无空气阻力、平坦地面，落地后停在接触前状态；质点球体放大显示，箭头按速度乘0.2s绘制。",
      "presets": [
        "侧向抛出",
        "平抛",
        "近竖直上抛"
      ]
    },
    {
      "id": "3d-conical-pendulum",
      "title": "圆锥摆 · 三维受力与向心加速度",
      "category": "力学",
      "dimension": "3D",
      "levels": [
        "高中"
      ],
      "chapter": "圆周运动",
      "description": "摆球绕竖直轴做水平圆周运动，绳子扫出圆锥面，张力竖直分量平衡重力。",
      "formula": "T cosθ=mg；T sinθ=mv²/r；ω²=g/(L cosθ)",
      "assumptions": "不可伸长轻绳、无阻力，球已处于稳定圆锥摆状态；不把 θ 与 ω 设成互不相关参数。力箭头按共同缩放比例显示。",
      "presets": [
        "小圆锥角",
        "大圆锥角"
      ]
    },
    {
      "id": "3d-orbit",
      "title": "倾斜行星轨道 · 开普勒运动",
      "category": "力学",
      "dimension": "3D",
      "levels": [
        "高中"
      ],
      "chapter": "地球与宇宙",
      "description": "在立体空间中观察椭圆轨道的倾角，比较近日点、远日点及沿轨道不断变化的速度。",
      "formula": "E−e sinE=M；r=a(1−e cosE)；T²=a³/M星（年、AU、太阳质量制）",
      "assumptions": "中心恒星固定、行星质量可忽略，牛顿引力二体近似；显示1s对应0.1年。恒星和行星大小放大，不代表天体真实半径。",
      "presets": [
        "近圆轨道",
        "倾斜椭圆"
      ]
    },
    {
      "id": "3d-mechanical-wave",
      "title": "横波与纵波 · 质点只在原位振动",
      "category": "振动与波",
      "dimension": "3D",
      "levels": [
        "高中"
      ],
      "chapter": "机械波的空间结构",
      "description": "旋转视角区分传播方向和质点振动方向，追踪橙色质点，避免误把波传播当成介质整体前进。",
      "formula": "横波 y=A sin(kx−ωt)；纵波 x=x₀+A sin(kx₀−ωt)；v=fλ",
      "assumptions": "理想一维介质，无衰减；纵波使用小位移 A≤0.15λ，避免质点穿越。每个质点的平衡位置固定。",
      "presets": [
        "横波",
        "纵波疏密"
      ]
    },
    {
      "id": "3d-gas-molecules",
      "title": "容器中的分子 · 温度与碰壁",
      "category": "热学",
      "dimension": "3D",
      "levels": [
        "高中"
      ],
      "chapter": "分子运动与气体压强",
      "description": "观察三维容器内分子的弹性反射，调温度比较分子速度，调容器大小比较理想气体压强。",
      "formula": "v方均根=√(3kT/m)；p=NkT/V；平均平动动能=3kT/2",
      "assumptions": "理想无相互作用分子、立方容器、弹性碰壁。确定性高斯速度样本按目标方均根归一；显示1s=实际1ps，坐标单位nm；球半径放大。",
      "presets": [
        "低温",
        "升温",
        "压缩容器"
      ]
    },
    {
      "id": "3d-buoyancy",
      "title": "浮力与排水 · 从各个角度看浸入体积",
      "category": "力学",
      "dimension": "3D",
      "levels": [
        "初中",
        "高中"
      ],
      "chapter": "浮力",
      "description": "观察物体浸入液体的三维体积，比较浮力与重力；切换自主调深度和漂浮/沉底平衡。",
      "formula": "F浮=ρ液gV排；漂浮时 F浮=mg；沉底还需底部支持力",
      "assumptions": "大容器液面固定，忽略表面张力、黏滞和水面升高；平衡模式直接给稳态位置，不模拟下沉过程；底部为可透水支架，保证物体底面受到液体作用。右侧小柱仅用来对照排开体积。",
      "presets": [
        "木块漂浮",
        "中性悬浮",
        "重物沉底",
        "完全浸没"
      ]
    },
    {
      "id": "3d-hydrostatic-pressure",
      "title": "液体压强 · 同一深度各个方向",
      "category": "力学",
      "dimension": "3D",
      "levels": [
        "初中",
        "高中"
      ],
      "chapter": "液体压强",
      "description": "把探测点放进液体，立体观察同一深度水平面和各方向压力，区分液体附加压强与绝对压强。",
      "formula": "p液=ρgh；p绝对=p大气+ρgh；同点各方向压强相等",
      "assumptions": "静止均匀不可压缩液体，液面敞开，g=9.8m/s²；箭头表示作用于微小探测体各表面的压力方向，长度按液体附加压强成正比缩放，同一深度各方向长度相同。",
      "presets": [
        "浅处",
        "深处"
      ]
    },
    {
      "id": "3d-lever",
      "title": "立体杠杆 · 力臂与平衡",
      "category": "力学",
      "dimension": "3D",
      "levels": [
        "初中",
        "高中"
      ],
      "chapter": "杠杆与简单机械",
      "description": "绕支点观察倾斜杠杆，区分杆长与到作用线的垂直力臂，比较两侧力矩。",
      "formula": "力臂是支点到力作用线的垂直距离；杠杆平衡条件 F₁l₁=F₂l₂",
      "assumptions": "轻质刚性杠杆，支点无摩擦；两力均竖直向下。角度由外部约束固定；不平衡时只报告转动趋势，不假装处于自由运动。",
      "presets": [
        "平衡",
        "左侧力矩更大",
        "倾斜观察力臂"
      ]
    },
    {
      "id": "3d-lens-rays",
      "title": "透镜三维光束 · 实像与虚像",
      "category": "光学",
      "dimension": "3D",
      "levels": [
        "高中"
      ],
      "chapter": "透镜成像",
      "description": "从多个方向观察通过同一物点的立体光束，比较会聚实像、发散虚像和焦点处的平行出射。",
      "formula": "1/f=1/u+1/v；放大率 m=−v/u；薄透镜使光线斜率改变 −h/f",
      "assumptions": "理想薄透镜、近轴光线，物点在 x=−u，光沿+x传播；虚像由反向延长线定位。透镜用透明圆盘标记位置，不模拟厚透镜和像差。",
      "presets": [
        "倒立实像",
        "正立虚像",
        "物点在焦平面",
        "凹透镜虚像"
      ]
    },
    {
      "id": "3d-point-charge",
      "title": "点电荷空间电场 · 等势球面",
      "category": "电磁学",
      "dimension": "3D",
      "levels": [
        "高中"
      ],
      "chapter": "电场与电势",
      "description": "转动观察径向电场和同心等势球面，在三维空间移动探测点，验证电场与等势面垂直。",
      "formula": "E⃗=kQr⃗/r³；φ=kQ/r；等势面为同心球面",
      "assumptions": "真空理想点电荷，电势零点在无穷远；箭头定长只表示方向。球面只是等势几何，不是实体外壳；电荷中心明确标为无定义。",
      "presets": [
        "正电荷场",
        "负电荷场",
        "电荷中心"
      ]
    },
    {
      "id": "3d-straight-wire-field",
      "title": "直导线磁场 · 右手螺旋定则",
      "category": "电磁学",
      "dimension": "3D",
      "levels": [
        "高中"
      ],
      "chapter": "电流的磁场",
      "description": "围绕通电直导线转动视角，看到磁场圆环始终位于垂直导线的平面内。",
      "formula": "B=μ₀I/(2πr)；方向由右手螺旋定则确定",
      "assumptions": "无限长直导线沿+y，正电流向上；圆环大小是真实空间半径，箭头长度不代表场强，导线半径放大。",
      "presets": [
        "向上电流",
        "反向电流"
      ]
    },
    {
      "id": "3d-solenoid",
      "title": "螺线管空间磁场 · 内部与回流",
      "category": "电磁学",
      "dimension": "3D",
      "levels": [
        "高中"
      ],
      "chapter": "磁场叠加",
      "description": "观察多匝同轴线圈的叠加磁场，旋转到轴向或侧面，比较内部场与外侧返回的方向。",
      "formula": "轴上 B=Σ μ₀IR²/[2(R²+(x−xᵢ)²)³ᐟ²]；空间箭头用毕奥—萨伐尔积分",
      "assumptions": "N 匝同轴理想圆线圈组成，连接线忽略；空间箭头按每匝32段积分，接近导线的位置不采样。箭头长度归一，轴上数值使用圆线圈解析叠加。",
      "presets": [
        "较密绕组",
        "反向电流"
      ]
    },
    {
      "id": "3d-lorentz-helix",
      "title": "带电粒子螺旋 · 平行与垂直分速度",
      "category": "电磁学",
      "dimension": "3D",
      "levels": [
        "高中"
      ],
      "chapter": "洛伦兹力",
      "description": "沿磁场方向的运动保持匀速，垂直分运动形成圆周；真正旋转视角观察螺距与旋转方向。",
      "formula": "ω=qB/m；r=mv⊥/(|q|B)；螺距=v∥·2πm/(|q|B)",
      "assumptions": "均匀磁场沿+y、无重力与电场，忽略辐射。质量单位mg、电荷单位μC；坐标m、时间s，采用理想带电微粒的课堂尺度。",
      "presets": [
        "螺旋",
        "纯圆周",
        "负电荷反转",
        "不带电直线"
      ]
    },
    {
      "id": "3d-electromagnetic-wave",
      "title": "电磁波 · 电场与磁场真正正交",
      "category": "电磁学",
      "dimension": "3D",
      "levels": [
        "高中"
      ],
      "chapter": "电磁波空间结构",
      "description": "旋转观察沿x传播的电磁波：电场沿y、磁场沿z，两个场同相，能流沿 E×B 指向前方。",
      "formula": "E⊥B⊥传播方向；B₀=E₀/c；f=c/λ；S⃗∥E⃗×B⃗",
      "assumptions": "真空单色平面波；为了观看，显示频率固定0.35Hz，对应真实时间在读数中列出。电场和磁场用各自振幅归一化绘制，两者显示相等不代表物理量相等。",
      "presets": []
    },
    {
      "id": "3d-ac-generator",
      "title": "旋转线圈发电 · 法线与磁通量",
      "category": "电磁学",
      "dimension": "3D",
      "levels": [
        "高中"
      ],
      "chapter": "交流发电机",
      "description": "线圈绕竖直轴旋转，观察线圈平面、法线和磁场的真实空间夹角，联动磁通量与感应电动势。",
      "formula": "Φ=BS cosωt；ε=NBSω sinωt；ε有效=ε峰/√2",
      "assumptions": "均匀磁场沿+x，理想匀速旋转，忽略线圈电阻与自感；只展示发电线圈和磁场，不模拟电刷、滑环和负载反力。",
      "presets": [
        "慢转看夹角",
        "提高频率"
      ]
    },
    {
      "id": "3d-refraction",
      "title": "反射与折射 · 三线共面",
      "category": "光学",
      "dimension": "3D",
      "levels": [
        "高中"
      ],
      "chapter": "光的传播",
      "description": "改变入射方位角后，入射光、反射光、折射光和法线组成的平面一起旋转，观察全反射条件。",
      "formula": "n₁sin i=n₂sin r；反射角=入射角；全反射临界角 sinC=n₂/n₁（n₁>n₂）",
      "assumptions": "均匀介质、平面界面、单色光；光线只表示几何路径，不以线条亮度代表菲涅耳能量比例。",
      "presets": [
        "空气入玻璃",
        "玻璃全反射"
      ]
    },
    {
      "id": "3d-force-components",
      "title": "空间合力 · 三个正交分量",
      "category": "力学",
      "dimension": "3D",
      "levels": [
        "高中"
      ],
      "chapter": "力的合成与分解",
      "description": "旋转视角观察三个互相垂直的分力、长方体对角线和空间合力，避免把投影长度误认成真实大小。",
      "formula": "F⃗=(Fₓ,Fᵧ,F𝓏)；|F⃗|=√(Fₓ²+Fᵧ²+F𝓏²)；cosα=Fₓ/|F|",
      "assumptions": "三个力作用于同一质点，坐标正交；以1个世界长度单位表示1N，不模拟质点随后运动。",
      "presets": [
        "三维合力",
        "平面内合力",
        "合力为零"
      ]
    },
    {
      "id": "3d-spherical-sound",
      "title": "声音的传播 · 同心波面与距离",
      "category": "振动与波",
      "dimension": "3D",
      "levels": [
        "高中"
      ],
      "chapter": "声音",
      "description": "从立体方向观察声源发出的球面波，不把二维画面中的圆圈误认为声音只沿一个平面传播。",
      "formula": "λ=v/f；相位 φ=kr−ωt；理想远场声强 I∝1/r²",
      "assumptions": "各向同性点声源、均匀空气，声速取340m/s；圆环组是球形等相位面的截线，不是运动的空气薄壳。显示频率0.3Hz，实际时间另列；距离反平方适用于远离有限声源的区域。",
      "presets": [
        "较低频率",
        "较高频率"
      ]
    },
    {
      "id": "3d-junior-sound",
      "title": "声音向四周传播 · 球形波面",
      "category": "振动与波",
      "dimension": "3D",
      "levels": [
        "初中"
      ],
      "chapter": "声现象",
      "description": "转动声源，看声音同时向前后、左右、上下传播；改变频率，对比波面的疏密。",
      "formula": "声音可以向各个方向传播；空气中的声速约为340m/s；频率越高，音调越高。",
      "assumptions": "理想均匀空气与小声源，圆环是球形波面的截线，不是运动的空气薄壳。为便于观察，波面运动已经大幅放慢；本图不播放声音。",
      "presets": [
        "低频声音",
        "高频声音"
      ]
    },
    {
      "id": "3d-junior-refraction",
      "title": "空气中的光进入水和玻璃",
      "category": "光学",
      "dimension": "3D",
      "levels": [
        "初中"
      ],
      "chapter": "光的折射",
      "description": "观察光从空气斜射入水或玻璃时向法线偏折；旋转整个入射平面，验证入射光、折射光和法线共面。",
      "formula": "空气中的光斜射入水或玻璃，折射角小于入射角；垂直入射时传播方向不变。",
      "assumptions": "平面分界面、均匀透明介质，光线仅表示传播路径；上方固定为空气。透明绿色平面帮助观察三线共面。",
      "presets": [
        "空气进入水",
        "空气进入玻璃",
        "垂直入射"
      ]
    },
    {
      "id": "3d-junior-lens",
      "title": "凸透镜成像 · 物像位置与大小",
      "category": "光学",
      "dimension": "3D",
      "levels": [
        "初中"
      ],
      "chapter": "凸透镜成像规律",
      "description": "把物点移近或移远，观察倒立实像、正立虚像以及大小变化；从立体空间看一束光线如何会聚。",
      "formula": "物距大于2倍焦距：倒立缩小实像；位于1倍与2倍焦距之间：倒立放大实像；小于1倍焦距：正立放大虚像。",
      "assumptions": "理想薄凸透镜，忽略像差，细光线表示一束通过同一物点的光。蓝色虚线是反向延长线，虚像处并没有实际光线会聚。",
      "presets": [
        "照相机：缩小实像",
        "投影仪：放大实像",
        "放大镜：正立虚像",
        "焦平面上"
      ]
    }
  ]
}