edu-analytic-geometry
把一道解析几何题解成一个自包含的交互教学网页:左栏题面 + 动态控制台(一个 可变参数滑块驱动实时重算的几何量 + 理论范围/定值指示),中栏 KaTeX 分步解析,右栏 2D…
Use when asked to make an explainer / walkthrough video (讲解视频、解题视频、例题精讲、微课) for a physics problem (物理题: mechanics/力学 受力分析 牛顿定律 斜面 传送带 板块 平抛 圆周 能量 动量, optics/光学 折射, electromagnetism/电磁 带电粒子), from a problem screenshot or text, with Chinese voice-over (GLM-TTS / 智谱 TTS), bilingual
$ npx -y skills add wy51ai/edulab --skill edu-physics-video --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/edu-physics-videoContext preview
The summary Claude sees to decide when to auto-load this skill.
Use when asked to make an explainer / walkthrough video (讲解视频、解题视频、例题精讲、微课) for a physics problem (物理题: mechanics/力学 受力分析 牛顿定律 斜面 传送带 板块 平抛 圆周 能量 动量, optics/光学 折射, electromagnetism/电磁 带电粒子), from a problem screenshot or text, with Chinese voice-over (GLM-TTS / 智谱 TTS), bilingual
name: edu-physics-video description: Use when asked to make an explainer / walkthrough video (讲解视频、解题视频、例题精讲、微课) for a physics problem (物理题: mechanics/力学 受力分析 牛顿定律 斜面 传送带 板块 平抛 圆周 能量 动量, optics/光学 折射, electromagnetism/电磁 带电粒子), from a problem screenshot or text, with Chinese voice-over (GLM-TTS / 智谱 TTS), bilingual zh+en subtitles and blueprint-style canvas animation where the motion follows the real solution, rendered to MP4.
把一道物理题做成 16:9、1920×1080、带中文配音 + 中英双语字幕 + 蓝图风格动画的 MP4。流水线与 edu-math-video 相同,区别在**解题方法**和**画面**:先按物理解题流程(建模 → 分段 → 受力 → 选规律 → 求解 → 验算)解对,再让画面把物理过程真实地演出来——力箭头按比例从作用点长出、物体按解析解运动、v-t 图同步生长、摩擦力随运动反向而转向。
script.json ──build_audio.py──► build/timeline.json + build/mix.wav + ../<name>.srt
(旁白) (GLM-TTS + 合成音乐) │
anim.js + phys.js + engine.js ◄───────────────┘ (按旁白时间点驱动动画)
└──node render.mjs video──► ../<name>.mp4**核心原则:画面跟着旁白走,物理过程在图上真的发生。** 每句旁白都有一个动作把这句物理演出来;每个动画用"第 k 句旁白开始的时刻"`S.at(k, f)` 定时,绝不写死秒数;物体的位置只来自解析解 `x(t)`,用 `simT()` 线性映射时间(可以慢放,不能缓动)。
**本技能自带全部代码**,不要从别的项目复制文件:
下文 `SKILL` = 本文件所在目录,`WS` = **用户当前所在的目录(你的工作目录,`$PWD`)**:视频文件夹建在这里,mp4/srt 也输出到这里。**不要因为别的目录(包括本技能所在的项目)已经有 `.env`、`node_modules`、`pron.json` 就把 WS 换过去**,缺什么由 `new_video.sh` 和第 2 步补齐。`PROJ` = 本视频文件夹,`PY` = `setup_check.sh` 报告的 python(macOS 上一般是 `/usr/bin/python3`)。
**退出码不是 0 就是没完成。** `--check` 退出码 1(哪怕只剩一个 ⚠ 多音字)、`motion` 退出码 1、截图里有问题,都不能写"只是警告、不影响"然后继续。修好再往下走。
1. **严格按下面 11 步顺序做,每步的"通过标准"满足了才能进入下一步。** 2. **先按物理方法解对题。** 第 1 步必须写出解题卡(研究对象、过程分段、每段受力、所用规律、答案、验算),见 [reference/physics-solving.md](reference/physics-solving.md)。多段过程、符号答案用 sympy 验算。 3. **先讲清楚题目。** 第一幕展示原题图片,旁白逐条读条件,每读一条就在图上框出那一条。 4. **`tts` 字段只能是能念出来的中文。** 不能有阿拉伯数字、`= + − × ÷ / ^ √ ° ( )` 等符号,**单位要读出来**:`v₀ = 10 m/s` 写成 `v零等于十米每秒`,`2 m/s²` 写成 `二米每二次方秒`;sin/cos 写成 正弦/余弦;希腊字母按 pronunciation.md 的表写(θ 西塔、φ 菲)。字幕 `zh` 保留正常物理写法(`v_0`、`d_A`、`m/s^2`)。 5. **读音必须固定。** 调 TTS 之前 `--check` 必须显示 `未固定读音的生僻字/多音字: 0` 且 `script errors: 0`。多音字的标注写在该字**后面**:`长[cháng]`、`调[tiáo]节`。 6. **API Key 只能由用户提供。** 缺 `GLM_API_KEY` 时先问用户:配置 key(音质最好,推荐),还是用兜底引擎(edge-tts / macOS `say`,见 [reference/glm-tts-setup.md](reference/glm-tts-setup.md#没有-glm-key-时兜底引擎))。不要编造 key、模型名或接口地址,不要把 key 打印出来或写进项目文件夹。 7. **物理画面必须正确。** 力的方向(摩擦力与相对运动相反、弹力垂直接触面)、力箭头按同一比例 `FS`、物体位置来自解析解、特殊角用课本近似值(sin37° = 0.6)与答案一致;小角度放大画时注明 `notToScale()`。 8. **所有画面内容在 y ≤ 860 以内**(y≈914~1044 是字幕框)。图形放左半边 x 60~900,推导写在右边 `board()` 上,用 `bm()`(支持 `v_0^2` 上下标)。 9. **先写分镜,再写动画。** `storyboard.md` 顶部写解题卡 + 图形清单,再给每句旁白规划"指/动/留",按 [reference/visual-design.md](reference/visual-design.md) 的物理动作表选动作;`node render.mjs motion` 必须通过。 10. **先预览再花钱**(`--preview` + `stills auto`),**看图验证**(每次都打开 `build/sheet*.png`,汇报你实际看到了什么)。 11. **不要修改 `engine.js`**;通用物理道具加在 `phys.js`,只属于这道题的图形写在 `anim.js`。不要把 `node_modules`、`package*.json` 复制进视频文件夹。
读 [reference/physics-solving.md](reference/physics-solving.md)。拿到题目(有截图先读图),写下:
bash SKILL/scripts/new_video.sh "$PWD" <ascii_folder_name> # WS 就是当前目录 bash SKILL/scripts/setup_check.sh WS/<ascii_folder_name>
cd PROJ && PY build_audio.py --say "你好,我们来看一道物理题。"
二选一(细节见 [reference/animation.md](reference/animation.md#题目图片与高亮框)):
按 [reference/script-writing.md](reference/script-writing.md) 写(含物理式子、单位、希腊字母的口语对照表)。
**先读 [reference/visual-design.md](reference/visual-design.md)**,按 `template/storyboard.md` 的格式:顶部写**解题卡**和**图形清单**(所有物体、接触面、力、已知量、所求量、图像),再每句一行 `| 幕id 句号 | 旁白要点 | 指 | 动 | 留 | 板书 |`。
cd PROJ && PY build_audio.py --check ; cat build/pron_report.txt
A collection of education skills that turn academic problems into interactive lesson web pages and narrated explainer videos.
Repo: wy51ai/edulab
把一道解析几何题解成一个自包含的交互教学网页:左栏题面 + 动态控制台(一个 可变参数滑块驱动实时重算的几何量 + 理论范围/定值指示),中栏 KaTeX 分步解析,右栏 2D…
把一个化学反应做成自包含的微观 3D 交互演示网页:左/上为 Three.js 可交互分子动画 (拖滑块看断键·成键·原子重组,分步高亮),右为 KaTeX 反应方程 + 分步讲解 +…
Use when asked to make an explainer / walkthrough video (讲解视频、解题视频、例题精讲、微课) for a chemistry…
Use when asked to make an explainer / walkthrough video (讲解视频、解题视频、例题精讲、微课) for a math…
把一道立体几何题解成一个自包含的交互教学网页:左侧 MathJax 分步解析, 右侧 Three.js 可交互 3D 模型(分步高亮 + 镜头切换)。支持三种入口——给定文字题目、…