Summary
把一道立体几何题解成一个自包含的交互教学网页:左侧 MathJax 分步解析, 右侧 Three.js 可交互 3D 模型(分步高亮 + 镜头切换)。支持三种入口——给定文字题目、 随机出题、上传题目图片识别后解题。覆盖正方体/长方体、棱锥/棱柱、圆柱/圆锥上的线面角、…
wy51ai/edulab
>- 把一道立体几何题解成一个自? 右侧 Three.js 可交互 3D 模型(分步高亮 + 镜头切换)。支持三种? 随机出题、上传题目图片识别后解题。覆盖正方体/长方体、棱锥/棱柱、圆柱/圆锥上的线面角、 二面角、异面直线夹角、点到平面距离、体积等题型,统一用"建系+向量法",并由 sympy 精确 计算驱动(答案、3D 坐标、步骤数值同源一致)。? 触发词:立体几何, 线面角, 二面角, 异面直线, 点到平面距离, 正四棱锥, 正方体求角, 解这道几何题, 随机出一道立体几何题, 这张图里的立体几何题; solid geometry, line-plane angle, dihedral angle,…
npx skills add wy51ai/edulab --skill edu-solid-geometry
把一道立体几何题解成一个自包含的交互教学网页:左侧 MathJax 分步解析, 右侧 Three.js 可交互 3D 模型(分步高亮 + 镜头切换)。支持三种入口——给定文字题目、 随机出题、上传题目图片识别后解题。覆盖正方体/长方体、棱锥/棱柱、圆柱/圆锥上的线面角、…
Related neighbors and high-traction skills in the same topics — useful to compare before installing.
Three.js geometry creation - built-in shapes, BufferGeometry, custom geometry, instancing. Use …
9.4K installsBuild React Three Fiber geometry, custom buffers, instanced meshes, points, and lines. Use for …
1.3K installsThree.js geometry creation - built-in shapes, BufferGeometry, custom geometry, instancing. Use …
7 installsUse this skill when using Phaser 4 math and geometry utilities. Covers vectors, rectangles, cir…
8 installsPlay Geometry Dash online free unblocked on SERP Games.
316 installsCreate Signal Geometry abstract illustrations and posters from concepts or briefs. Use when the…
144 installsOther skills from wy51ai/edulab.
npx skills add wy51ai/edulab
Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.
master
Parsed from SKILL.md frontmatter.
Files included with this skill beyond the listing page.
SKILL.md
7,502 B
SUMMARY.md
941 B
一个可直接用浏览器打开的单页 HTML:左侧题面/答案/分步解析(公式用 MathJax), 右侧是题目对应的 3D 模型(Three.js,可旋转缩放,分步高亮关键元素并切换镜头)。 形态与 template/lesson.html 一致。
计算核心 lib/geometry_kernel.py 依赖 sympy。运行脚本前先确认有一个能 import sympy 的 python3:跑 python3 -c "import sympy"。
缺库时的处理(重要):若 import 报错(sympy 或后续用到的任何库都同理),先询问用户是否安装, 得到同意后再帮忙安装(python3 -m pip install <库名>),或换一个已装该库的解释器;不要未经询问直接装。 下文命令里的 python3 均指这个能跑通依赖的解释器。
把题目整理成结构化 spec(格式见 references/problem-schema.md):几何体类型与尺寸、 已知构造点/条件、所求类型与对象、语言。
输出语言跟随提示词语言:英文提示 → 英文网页,中文 → 中文。spec 里记下
language。
按 references/conventions.md 的建系约定与解法配方,调用 lib/geometrykernel.py: 得到精确坐标、关键向量、法向量、最终答案,以及各步骤要展示的中间量(均为 LaTeX 字符串)。 顶点的 three.js 坐标用 kernel.tothree(points, scale) 得到。
可先在命令行跑 kernel 验证答案,例如:
python3 lib/geometry_kernel.py # 内置样例自检
📍 输出位置(重要):成品 HTML 一律写到用户当前工作目录(
Path.cwd()),除非用户显式指定路径。
绝不要写进技能自身目录(skills/edu-solid-geometry/output/等)——那是技能内部的开发样例目录。
临时构建脚本也放到 cwd 或临时目录(如/tmp),用完可删。
写一个临时构建脚本,导入 kernel、bodies、generate,拼出 lesson / steps / model 数据 (schema 见 references/problem-schema.md),再调用 generate.render_html(data, out) 注入模板产出 HTML。 out 用 cwd 下的绝对路径:
from pathlib import Path
out = Path.cwd() / "solution-<题目简述>.html" # 落在用户当前目录,而非技能目录
generate.render_html(data, out)
steps[*].content 里的所有数值直接引用 kernel 的计算结果,模型只负责组织讲解文字(按目标语言书写)。model.points 用 kernel.to_three(...) 的结果;model.spheres/edges 用 lib/bodies.py 的拓扑(quadpyramid / tripyramid / cuboid / cube / prism),罕见几何体可手写 edges。
highlight(该步可见元素的绝对集合)与 cameraPos。measure 元素(label 用 LaTeX,如 2\sqrt{2}),并把它放进"建系/列已知条件"那步的 highlight,在 3D 图中点处标出长度(见 problem-schema)。
lesson.ui 英文文案并设 lesson.language="en"。可直接参考的范例:scripts/generate.py 里的 builddata()(正四棱锥·线面角)、 buildcubedata()(正方体·线面角)、buildboxvolumedata()(长方体·体积)都是完整范本,照着改即可。
generate.py 可直接出已注册的题;不传路径时默认写到当前工作目录(cwd),也可显式给 cwd 下的文件名 (用技能目录里的 scripts/generate.py,输出落在 cwd):
python3 <技能目录>/scripts/generate.py cube ./cube.html
python3 <技能目录>/scripts/generate.py box ./box.html
随机出题:generate.py random <seed> [输出.html],内部用 kernel.is_clean(...) 判答案规整、不过重抽:
python3 <技能目录>/scripts/generate.py random 7 ./random.html # 不给路径则默认 ./random.html(cwd)
扩展随机题型时沿用"随机参数 → 求解 → is_clean 不过就重抽"。
answerValue == 末步骤展示的最终值(generate.py 已有断言示例)。kernel.to_three(与解题同源)。(技能仓库内开发时可用 .claude/launch.json 的 geom-preview;在别处运行就对 cwd 起一个临时静态服务。)
⚠️ 必须关闭你开过的端口/服务:预览检查一结束就立即停掉本地服务,绝不留下占用端口的进程。
- 用 preview 工具开的:检查完马上preview_stop(传对应 serverId)。
- 直接起的http.server:用完kill掉,或核对lsof -nP -iTCP:<port> -sTCP:LISTEN确认已释放。
- 交付前确认端口已释放,再告诉用户结果。开了不关 = 未完成自检。
成品写在用户当前工作目录(cwd),命名形如 solution-<题目简述>.html,把(cwd 下的)路径告诉用户,可直接浏览器打开。 交付前确认:(1) 成品在 cwd、不在技能目录;(2) 没有遗留任何由本次预览开启的本地服务/端口。
geometrykernel.py 加求解函数(见 conventions 配方表),在 generate.py 加一个 build*。geometry_kernel.py 加坐标构建函数,在 bodies.py 加棱拓扑。template/lesson.html — 数据驱动模板(通用 3D 渲染器 + 数据岛 __LESSON_DATA__)lib/geometry_kernel.py — sympy 精确计算核心lib/bodies.py — 几何体棱拓扑库scripts/generate.py — 注入模板 + 范例构建函数references/problem-schema.md — 数据格式references/conventions.md — 建系约定、解法配方、自检