Install
openclaw skills install @erich1566/visual-interactive-courseware可视化交互课件制作技能。当用户需要为课堂教学制作可视化、可交互的课件(HTML 单文件)时使用。触发场景:把教材知识点(如血液循环、四羊方尊、晨昏线、二分二至等)做成 SVG 演示 + 可交互的网页课件、知识卡和教师说明。适用学科:生物、历史、地理、物理、化学、数学等一切含结构、流程、现象的知识点。
openclaw skills install @erich1566/visual-interactive-courseware将教材知识点转化为专业软件级的可视化交互课件——对标三张品质标杆:医学解剖软件级应用外壳与图层化结构(Visible Body 类)、电影感 3D 地形叙事(历史地理动画)、暗色科技风爆炸图+步骤标注流(原理拆解视频)。产出物:
课件.html — 单文件 HTML:应用级四区外壳(左导航/顶栏模式切换/右知识大纲树/底部控制条)+ 深空主题 + SVG 渐变辉光质感 + 步骤序列器01-知识整合.md — 权威检索来源 + 配图需求分析教师说明.md — 教学目标、分幕操作指引、课堂建议references/3d-blender-pipeline.md。模型与视频体积宽松(总体几十 MB 内均可),但必须落实大体积离线体验保障(加载遮罩/懒挂载/按需渲染)。核心理念:应用级外壳(不是网页幻灯片)、电影感质感(渐变+辉光+运镜,拒绝平面色块卡通风)、结构类解剖(真实形态轮廓,拒绝爱心形)、过程有序列器(①-⑥步骤聚光标注流)。
主题路线:生物/人体/解剖类用浅色医学插图主题(淡青底 + 白胶囊标注 + 引线 + 分段时间轴,对标"生命寻动");物理/天文/科技类用深色电影感主题。两套主题的应用外壳结构一致。
⚠️ 写实度红线——人体/复杂结构必须 AI 底图 + 交互叠加: 手写 SVG 路径画人体/复杂器官存在天花板,产出必然"示意图感"。正确工作流:
<image>mix-blend-mode:multiply + radial-gradient mask 边缘羽化消除矩形色差)→ 血流/流程叠加层(半透明 dash 光带,drop-shadow 辉光)→ 透明热点(ellipse/path 覆盖器官,hover 描边)flows[] + flowOp(透明度)+ focus(聚焦目标);聚焦模式底图调暗(0.55-0.68)让光带当主角 + tweenViewBox easeInOutQuad 镜头推近transform="translate(dx,dy) scale(s)" 对齐底图血管位置
参照成品:D:\vibe coding\课件-血液循环示例\课件.html(写实底图版)。⚠️ 品质基准文件:D:\vibe coding\课件-血液循环示例\课件.html(已实测达标杆水准的完整样板,写实底图 + 交互叠加架构)。制作任何新课件前,先读此文件对齐质感与结构;达不到它的水准不得交付。
用户提出以下任一请求时使用本 skill:
必做:从用户请求中判断(或直接询问)目标学段(小学/初中/高中/中高职/高校)与学科,然后读取 references/audience-matrix.md 按矩阵微调五要素:知识深度、视觉写实度、交互复杂度、语言风格、容量时长。质量红线全学段一致。
知识整合完成后、动手写课件前,必须向用户提示 3D 增强选项(用 AskUserQuestion 或等价提问):
本课件是否需要 3D 增强通道(方案 A:Blender 建模 + three.js 内嵌)?
- A. three.js 交互 3D 幕:Blender 从零建模/素材库拉模型 → 导 GLB → base64 内嵌 → 单文件内 OrbitControls 旋转/缩放/点选,与 SVG 幕共用外壳。适合:解剖结构、机械装置、分子构型、地形地貌等"需要绕看"的知识。
- B. 仿真视频/渲染静帧:Blender 动画 → PNG 序列 → ffmpeg 合成 mp4 → base64 内嵌,或高质量渲染静帧内嵌。适合:动态过程(电流流动、天体运动、流体)作为实景素材。
- A+B 组合:既有可交互 3D 模型幕,又有仿真视频/静帧点缀。
- D. 纯 SVG:默认路线,无需 Blender。
前置安装(三项,用户想用增强 3D 时主动给出以下指引)——增强 3D 依赖这套环境,三项配合效果最佳:
~/.workbuddy/skills/blender-studio/),内含建模/动画/渲染/导出全流程知识模块,与 visual-interactive-courseware 搭配使用。环境探测(决策依据,向用户如实报告):
D:\Program Files\Blender Foundation\Blender <ver>\blender.exe 等,--version 探测)~/.workbuddy/mcp.json 含 "blender" 键 → 已连接,可交互式建模)~/.workbuddy/skills/blender-studio/ 存在 → 全流程建模知识库可加载)判定规则:用户选 A/B/A+B 且三项就绪 → 按 references/3d-blender-pipeline.md 执行(无头 CLI 为主,MCP 交互调优为辅,建模知识查 blender-studio);环境不全 → 列出缺失项与上面的安装指引,回落纯 SVG(D)或等用户装好再继续。用户未明确选择时默认 D,不擅自启动 Blender。
体积基调:3D 模型(GLB)与仿真视频不必苛刻压缩——总体积几十 MB 以内均可接受;但必须坚持单文件零外链,并落实大体积 HTML 的离线打开体验保障(loading 遮罩、视频 faststart、GLB 贴图适压、canvas 占位防白屏),具体清单见管线文档第六节。
从零建模铁律(用户指令,优先级最高):当需要完整从零创建模型时,必须"先设计 →(必要时搜图/AI 生成参考图)→ 高质量 .py 脚本(零件逐个建函数 → 组装)→ 交给 Blender 执行 → 渲染验证",逐环节确保质量,严禁跳过设计直接堆代码。详见管线文档第二节。
课件完成后运行:
python scripts/audit_courseware.py <课件.html> --report 审核报告.md
references/design-guide.md)详细执行规范见
references/workflow.md,视觉与交互规范见references/design-guide.md, 学段×学科适配见references/audience-matrix.md, 各学科拆解模式见references/subject-examples.md,HTML 骨架见assets/template.html。
在当前工作区创建项目文件夹,命名格式 课件-<知识点名称>/:
课件-血液循环/
├── 01-知识整合.md ← 第一步产物
├── 参考图/ ← SVG/参考素材存放处
│ ├── 血液循环总览.svg
│ ├── 肺循环.svg
│ └── 体循环.svg
├── 课件.html ← 第二步产物(核心交付)
└── 教师说明.md ← 第二步产物
01-知识整合.md,结构固定为:
参考图/。SVG 必须是自包含的、可独立打开验证的文件。references/workflow.md 的模块拆解表。references/3d-blender-pipeline.md 在恰当模块插入 three.js 交互 3D 幕 / 内嵌仿真视频 / 渲染静帧——3D 幕与 SVG 幕共用四区外壳、幕切换引擎、知识大纲联动与底部控制条,做到"无缝一体"。assets/template.html 为骨架,填充模块内容。单文件自包含(无外部依赖),可在教室浏览器直接打开。课件.html 验证:每个交互控件都可用、SVG 无错位、无控制台报错<svg> 自带 <defs>,渐变/滤镜 ID 全文档唯一(加幕号后缀)。Chromium/Edge 下跨 SVG 引用 display:none 内的 url(#id) 会渲染失败、路径凭空消失;重复 ID 只认第一个同样会炸——已实测踩坑,验收时必须跨幕切换检查drawAnnoLines())workflow.md — 两步工作流详细执行规范、模块拆解表、SVG 类型决策树design-guide.md — 配色、字号、布局、交互控件规范audience-matrix.md — 学段×学科适配矩阵(小学→高校)与 AI 提示词模板subject-examples.md — 生物/历史/地理/物理等学科的拆解模式库3d-blender-pipeline.md — 3D 增强通道(方案 A)完整管线:Blender 无头建模/动画/渲染 → GLB/mp4/JPEG base64 内嵌 → three.js 静态打包单文件方案(v1.2.2 起废弃 Blob URL 动态 import);含从零建模铁律、Blender 5.2 兼容坑、质量红线与回归清单audit_courseware.py — 自动审核脚本(10 项检查,P0 一票否决,≥90 分可交付)bundle_3d.py — three.js 静态打包脚本:把 three.module.min.js + OrbitControls + BufferGeometryUtils + GLTFLoader 打成单 IIFE(window.ThreeBundle),运行时零 fetch——沙箱 iframe/file:// 会拦截 Blob URL 动态 import(报 Failed to fetch),3D 幕一律用本脚本构建期内联。用法 python bundle_3d.py [工作目录],详见 references/3d-blender-pipeline.md §3.2template.html — 单文件交互课件 HTML 骨架(含导航、SVG 容器、知识卡面板)