Loading...
Loading...
Transform a solid geometry problem into a self-contained interactive teaching web page: step-by-step explanations using MathJax on the left, and an interactive 3D model powered by Three.js on the right (step-by-step highlighting + camera switching). Supports three entry modes—given text problems, random problem generation, and solving problems after uploading and recognizing problem images. Covers problem types such as line-plane angles, dihedral angles, angles between skew lines, distance from a point to a plane, and volume involving cubes/cuboids, pyramids/prisms, cylinders/cones. Uniformly adopts the "Coordinate System + Vector Method", driven by precise sympy calculations (answers, 3D coordinates, and step values are consistent from the same source). Other agents can also call this skill to generate such web pages. Trigger words: solid geometry, line-plane angle, dihedral angle, angle between skew lines, distance from point to plane, regular square pyramid, cube angle calculation, solve this geometry problem, generate a random solid geometry problem, solve the solid geometry problem in this image; solid geometry, line-plane angle, dihedral angle, angle between skew lines, distance to plane, interactive geometry solution page.
npx skill4agent add wy51ai/edulab edu-solid-geometrytemplate/lesson.htmllib/geometry_kernel.pypython3python3 -c "import sympy"python3 -m pip install <library-name>python3references/problem-schema.mdOutput Language Follows Prompt Language: English prompts → English web pages, Chinese prompts → Chinese web pages. Recordin the spec.language
references/conventions.mdlib/geometry_kernel.pykernel.to_three(points, scale)python3 lib/geometry_kernel.py # Built-in sample self-check📍 Output Location (Important): The finished HTML file must be written to the user's current working directory (), unless the user explicitly specifies a path. Never write to the skill's own directory (such asPath.cwd()) — that is the internal development sample directory of the skill. Temporary build scripts should also be placed in the cwd or a temporary directory (such asskills/edu-solid-geometry/output/) and can be deleted after use./tmp
lessonstepsmodelreferences/problem-schema.mdgenerate.render_html(data, out)outfrom pathlib import Path
out = Path.cwd() / "solution-<brief-problem-description>.html" # Saved in user's current directory, not the skill directory
generate.render_html(data, out)steps[*].contentkernel.to_three(...)model.pointslib/bodies.pymodel.spheresedgesquad_pyramidtri_pyramidcuboidcubeprismhighlightcameraPosmeasurelabel2\sqrt{2}highlightlesson.uilesson.language="en"build_data()build_cube_data()build_box_volume_data()scripts/generate.pygenerate.pyscripts/generate.pypython3 <skill-directory>/scripts/generate.py cube ./cube.html
python3 <skill-directory>/scripts/generate.py box ./box.htmlgenerate.py random <seed> [output.html]kernel.is_clean(...)python3 <skill-directory>/scripts/generate.py random 7 ./random.html # Defaults to ./random.html(cwd) if no path is givenanswerValuekernel.to_threegeom-preview.claude/launch.json⚠️ Must Close Any Ports/Services You Opened: Immediately stop the local service after preview and checking, never leave port-occupying processes running.
- If opened with a preview tool: Run
(pass the corresponding serverId) immediately after checking.preview_stop- If using
directly: Kill it after use, or verify release withhttp.server.lsof -nP -iTCP:<port> -sTCP:LISTEN- Confirm the port is released before delivering, then inform the user of the result. Failing to close the service = incomplete self-check.
solution-<brief-problem-description>.htmlgeometry_kernel.pybuild_*generate.pygeometry_kernel.pybodies.pytemplate/lesson.html__LESSON_DATA__lib/geometry_kernel.pylib/bodies.pyscripts/generate.pyreferences/problem-schema.mdreferences/conventions.md