Individual skill
anatomy
Build crafted, highly detailed, interactive isometric SVG figures that explain a technical idea as a real physical object (a test rig, a dial gauge, a cabinet of drawers, a plotter, a lock), with many small precise solid parts, four-tone shading, correct painter's order, a framed card with title, hint and live readout, and calm eased motion. Use this whenever someone wants an isometric illustration, an explanatory diagram or figure for docs, a blog post, a landing page or an article, a "Linear-style" or "premium" technical drawing, an interactive explainer, or an SVG that shows how a system, algorithm or component works, even if they never say "isometric". Works framework-free (TypeScript/JS that writes SVG and HTML) and in React/Next.js, and can add realistic WebGL shaders (fire, exhaust, water, caustics, lamp light) that live inside the drawing in the same isometric perspective. Also prints a figure as an A4 PDF (poster, drawing or handout) and publishes it to the Anatomy community gallery when asked.
SKILL.md
Source commit 1482e8469b0a9e0d8cc18ea2740a01423d29ae80
What was checked
- Matches the observed repository HEAD
- Yes
- Scanner rules are current
- No
- Repository scan complete
- No
- Skill scan complete
- No
- Observed behavior
- Not checked yet
- Last checked
- Nov 2, 2026
These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.
Install this skill
Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.
An install command is unavailable: current rules, complete repository and skill scans, an eligible behavior level and a permitted license are required.
Repository context
- Repository stars (not skill ratings)
- 25,862
- Repository last updated
- Oct 18, 2026
- License
- MIT
Observed agent integration: No specific integration evidence. Standard SKILL.md installation does not imply verified compatibility.
- agent-skill Repository topic
- open-source Repository topic
- svg Repository topic
- vizualization Repository topic
- testing Derived category
- docs Derived category
- engineering Derived category
- engineering-web Derived category
Declared tags are partial or unavailable.
Files and excerpt
File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.
Browse files
.gitattributesasset · 89 bytes.github/ISSUE_TEMPLATE/bug_report.ymlasset · 2,808 bytes.github/ISSUE_TEMPLATE/config.ymlasset · 213 bytes.github/ISSUE_TEMPLATE/figure_request.ymlasset · 1,917 bytes.github/PULL_REQUEST_TEMPLATE.mddoc · 1,005 bytes.github/assets/dial-indicator.webpasset · 17,360 bytes.github/assets/raptor-engine-apart.webpasset · 35,144 bytes.github/assets/raptor-engine-firing.webpasset · 37,752 bytes.github/assets/ripple-tank.webpasset · 34,680 bytes.github/assets/turning-dial.webpasset · 29,958 bytes.github/workflows/ci.ymlasset · 2,070 bytes.gitignoreasset · 216 bytesCHANGELOG.mddoc · 14,983 bytesCODE_OF_CONDUCT.mddoc · 5,673 bytesCONTRIBUTING.mddoc · 8,949 bytesLICENSEasset · 1,061 bytesREADME.mddoc · 26,199 bytesSECURITY.mddoc · 1,240 bytesSKILL.mdcore · 33,589 bytesSKILL.mdcore · 33,589 bytesSKILL.mdcore · 33,589 bytesSKILL.mdcore · 33,589 bytesSKILL.mdcore · 33,589 bytesSKILL.mdcore · 33,589 bytesagents/openai.yamlasset · 120 bytesevals/evals.jsonasset · 8,226 bytesexamples/arcade-cabinet/arcade-cabinet-detailed-a4.pdfasset · 2,355,870 bytesexamples/arcade-cabinet/arcade-cabinet-drawing-a4.pdfasset · 1,849,170 bytesexamples/arcade-cabinet/arcade-cabinet-light.htmlasset · 1,008,995 bytesexamples/arcade-cabinet/arcade-cabinet-poster-a4.pdfasset · 726,591 bytesexamples/arcade-cabinet/arcade-cabinet.cssasset · 3,221 bytesexamples/arcade-cabinet/arcade-cabinet.htmlasset · 1,008,994 bytesexamples/arcade-cabinet/build.mjsruns · 51,665 bytesexamples/arcade-cabinet/live.jsruns · 21,286 bytesexamples/arcade-cabinet/parts.mjsruns · 4,296 bytesexamples/arcade-cabinet/screen.mjsruns · 6,701 bytesexamples/arcade-cabinet/sheet.mjsruns · 5,525 bytesexamples/desk-computer/build.mjsruns · 23,023 bytesexamples/desk-computer/desk-computer-light.htmlasset · 237,394 bytesexamples/desk-computer/desk-computer.htmlasset · 237,393 bytesexamples/dial-indicator/build.mjsruns · 14,973 bytesexamples/dial-indicator/dial-indicator-light.htmlasset · 136,489 bytesexamples/dial-indicator/dial-indicator.htmlasset · 136,488 bytesexamples/push-button/build.mjsruns · 16,283 bytesexamples/push-button/push-button-detailed-a4.pdfasset · 956,064 bytesexamples/push-button/push-button-drawing-a4.pdfasset · 696,985 bytesexamples/push-button/push-button-light.htmlasset · 127,449 bytesexamples/push-button/push-button-poster-a4.pdfasset · 463,972 bytesexamples/push-button/push-button.htmlasset · 127,448 bytesexamples/push-button/sheet.mjsruns · 4,050 bytesexamples/raptor-engine/build.mjsruns · 70,875 bytesexamples/raptor-engine/live.jsruns · 30,752 bytesexamples/raptor-engine/raptor-engine-detailed-a4.pdfasset · 4,350,759 bytesexamples/raptor-engine/raptor-engine-drawing-a4.pdfasset · 2,965,335 bytesexamples/raptor-engine/raptor-engine-light.htmlasset · 1,611,624 bytesexamples/raptor-engine/raptor-engine-poster-a4.pdfasset · 613,368 bytesexamples/raptor-engine/raptor-engine.htmlasset · 1,611,623 bytesexamples/raptor-engine/raptor.cssasset · 6,792 bytesexamples/raptor-engine/sheet.mjsruns · 6,324 bytesexamples/ripple-tank/build.mjsruns · 32,062 bytesexamples/ripple-tank/live.jsruns · 21,741 bytesexamples/ripple-tank/model.mjsruns · 5,004 bytesexamples/ripple-tank/ripple-tank-light.htmlasset · 505,499 bytesexamples/ripple-tank/ripple-tank.htmlasset · 505,498 bytesexamples/ripple-tank/ripple.cssasset · 1,675 bytesexamples/spot-plate/art.tsxruns · 4,491 bytesexamples/spot-plate/drops.tsruns · 19,131 bytesexamples/spot-plate/fan.tsruns · 2,715 bytesexamples/spot-plate/figure.tsxruns · 1,078 bytesexamples/spot-plate/geometry.tsruns · 10,962 bytesexamples/spot-plate/live.tsxruns · 11,718 bytesexamples/spot-plate/rig.tsruns · 8,160 bytesexamples/spot-plate/spot-plate.cssasset · 1,518 bytesexamples/test-rig/art.tsxruns · 7,372 bytesexamples/test-rig/figure.tsxruns · 850 bytesexamples/test-rig/geometry.tsruns · 13,085 bytesexamples/test-rig/live.tsxruns · 17,463 bytesexamples/test-rig/pose.tsruns · 3,894 bytesexamples/test-rig/rig.tsruns · 5,604 bytesexamples/test-rig/stretch.cssasset · 1,210 bytesexamples/test-rig/view.tsruns · 3,116 bytesexamples/turning-dial/build.mjsruns · 32,098 bytesexamples/turning-dial/dial.cssasset · 509 bytesexamples/turning-dial/live.jsruns · 12,523 bytesexamples/turning-dial/stress.mjsruns · 19,414 bytesexamples/turning-dial/turning-dial-light.htmlasset · 673,894 bytesexamples/turning-dial/turning-dial-verify-light.htmlasset · 701,752 bytesexamples/turning-dial/turning-dial.htmlasset · 673,893 bytesexamples/turning-dial/turning-stress-light.htmlasset · 1,228,774 byteskit/audit.mjsruns · 92,618 byteskit/canvas-painter.mjsruns · 27,535 byteskit/gl-shared.mjsruns · 8,863 byteskit/gl.mjsruns · 8,763 byteskit/iso-kit.mjsruns · 35,175 byteskit/iso-kit.tsruns · 38,631 byteskit/iso.cssasset · 7,698 byteskit/lathe.mjsruns · 48,028 byteskit/pdf-button.mjsruns · 1,314 byteskit/react/draw.tsxruns · 6,602 byteskit/react/live.tsxruns · 4,359 byteskit/tube.mjsruns · 14,230 byteskit/turn-audit.mjsruns · 57,356 byteskit/turn-build.mjsruns · 65,975 byteskit/turn-fixed.mjsruns · 147,055 byteskit/turn.mjsruns · 139,815 bytesreferences/3d.mddoc · 44,644 bytesreferences/craft.mddoc · 50,299 bytesreferences/kit.mddoc · 67,873 bytesreferences/motion.mddoc · 22,611 bytesreferences/print.mddoc · 7,043 bytesreferences/publish.mddoc · 4,113 bytesreferences/react.mddoc · 3,614 bytesreferences/verify.mddoc · 43,574 bytesreferences/walkthrough.mddoc · 5,276 bytesreferences/webgl.mddoc · 61,104 bytesscripts/audit-affine-bounds.test.mjsruns · 4,175 bytesscripts/audit-cache.test.mjsruns · 1,603 bytesscripts/audit-clearance-envelope.test.mjsruns · 2,407 bytesscripts/audit-empty-clipping.test.mjsruns · 3,936 bytesscripts/audit-order-convergence.test.mjsruns · 2,875 bytesscripts/audit-path-origin.test.mjsruns · 1,594 bytesscripts/audit-profile.test.mjsruns · 2,171 bytesscripts/audit-projection.test.mjsruns · 1,934 bytesscripts/audit-slide-clearance.test.mjsruns · 2,875 bytesscripts/audit-svg-attributes.test.mjsruns · 3,484 bytesscripts/audit-taper.test.mjsruns · 1,267 bytesscripts/audit-tube-support.test.mjsruns · 2,636 bytesscripts/capture-current-geometry.test.mjsruns · 5,109 bytesscripts/capture-selector.test.mjsruns · 7,665 bytesscripts/capture.mjsruns · 15,024 bytesscripts/capture.test.mjsruns · 3,224 bytesscripts/chrome-port.mjsruns · 1,083 bytesscripts/chrome-startup.test.mjsruns · 1,838 bytesscripts/curve-density.test.mjsruns · 4,196 bytesscripts/drive-actions.test.mjsruns · 3,061 bytesscripts/drive-async-until.test.mjsruns · 2,743 bytesscripts/drive-page-load.test.mjsruns · 1,318 bytesscripts/drive-turn-controller.test.mjsruns · 2,702 bytesscripts/drive.mjsruns · 23,905 bytesscripts/drive.test.mjsruns · 3,690 bytesscripts/enter-key.test.mjsruns · 2,560 bytesscripts/fidelity-cut.test.mjsruns · 4,852 bytesscripts/fidelity-tube-coverage.test.mjsruns · 3,223 bytesscripts/fingerprint.mjsruns · 1,241 bytesscripts/inline-kit.mjsruns · 648 bytesscripts/line-ends.mjsruns · 16,206 bytesscripts/lines-arcs.test.mjsruns · 2,059 bytesscripts/lines-bezier.test.mjsruns · 1,769 bytesscripts/lines-round.test.mjsruns · 2,458 bytesscripts/lines-rounded-rect.test.mjsruns · 2,527 bytesscripts/lines.mjsruns · 1,700 bytesscripts/lines.test.mjsruns · 1,537 bytesscripts/navigation.test.mjsruns · 2,255 bytesscripts/orbit-sampling.test.mjsruns · 2,810 bytesscripts/print-sheet.mjsruns · 29,023 bytesscripts/print-sheet.test.mjsruns · 6,734 bytesscripts/print.mjsruns · 14,801 bytesscripts/publish.mjsruns · 20,276 bytesscripts/publish.test.mjsruns · 7,780 bytesscripts/react-dots-opacity.test.mjsruns · 2,817 bytesscripts/react-readout-first-write.test.mjsruns · 3,846 bytesscripts/react-readout-target.test.mjsruns · 4,657 bytesscripts/react-solid-seamless.test.mjsruns · 2,752 bytesscripts/react-visibility-target.test.mjsruns · 3,844 bytesscripts/session.mjsruns · 4,834 bytesscripts/session.test.mjsruns · 2,663 bytesscripts/turn-audit-samples.test.mjsruns · 1,370 bytesscripts/turn-bench.mjsruns · 3,863 bytesscripts/turn-check.mjsruns · 38,355 bytesscripts/turn-convex-check.test.mjsruns · 1,875 bytesscripts/turn-fidelity.mjsruns · 20,340 bytesscripts/turn-group-reference.test.mjsruns · 2,174 bytesscripts/turn-rounded-polygon.test.mjsruns · 1,533 bytesscripts/turn-split-owner.test.mjsruns · 3,411 bytestests/fixtures/react-dots-dark.pngasset · 4,032 bytestests/fixtures/react-dots-light.pngasset · 3,848 bytestests/fixtures/react-solid-dark.pngasset · 9,416 bytestests/fixtures/react-solid-light.pngasset · 9,847 bytes
Read excerpt
# Anatomy
This skill makes figures like a small instrument on a bench: a heavy base on feet, rails with tick rulers, a carriage on bushings, knurled knobs, coil springs, a dial gauge whose needle moves, screws as tiny dots. The reader understands the idea because they recognise the machine. Every number the figure shows comes from the same model that moves its parts.
Eight complete examples ship with the skill. Open the closest one before you start. Each framework-free example is built with `node examples/<name>/build.mjs`, which writes a standalone HTML page next to the script; add `--light` for the light theme.
- `examples/dial-indicator/` is the smallest: a dial gauge on a stand, about 300 lines in all.
- `examples/desk-computer/` is framework-free SVG: a desk computer with a keyboard you can type on. The typed line appears on a CRT screen drawn in the plane of the case front, and the picture collapses to a line and a dot when you switch it off. It has about 85 solids and 850 paths.
- `examples/arcade-cabinet/` is an upright arcade cabinet with its side panel off, a Hero of about 240 solids and 15 cables. A quarter flies into the slot, rolls down the coin chute at the speed a rolling disc reaches on a 30° slope, trips the coin-switch wire and drops into the cash box; the switch's pulse runs chunk by chunk along its cable to the board, and the CRT warms up, self-tests and runs an attract mode drawn in the plane of the tilted monitor. The stick tilts and closes a microswitch under the panel. It shows how to place a camera so a cutaway's mechanism stays in view, a concave board drawn as a prism along any axis, moving parts rebuilt in the page from the same module the build uses, and live coins and a wire drawn in reserved slots of the settled order. `node build.mjs --audit` proves the geometry.
- `examples/raptor-engine/` is a rocket engine hanging in a test stand. Its round parts come from `kit/lathe.mjs` and its pipes and harness from `kit/tube.mjs`. It comes apart into 11 assemblies with staggered springs and per-frame depth re-sorting. Every part records its true shape, and `node build.mjs --audit` (`kit/audit.mjs`) proves, at rest, apart and in every replayed frame of the explode, that nothing passes through anything, that every end sits on a real mount, that no bend pinches, folds or lands on another line, that no curved profile's slope wobbles, and that every overlap is drawn in depth order. A WebGL plume, shock, splash and steam render between the back and front SVG. It is the reference for dense pipework, smooth shading and fades.
- `examples/ripple-tank/` is a school ripple tank on tall legs over a paper screen, seen from 44° up. Two WebGL layers (lamp light, shadows and caustics on the paper, and the water's reflections and glass) are registered to the isometric planes and driven by a pure dispersion and optics model (`model.mjs`); a frequency change travels out from the dippers through a history texture.
- `examples/test-rig/` is a production figure from a real site (React/Next): a glass button on a spring-mounted carriage, a finger probe on a rail that presses and pulls, and a dial gauge reading the lean. It has 53 solids and about 470 paths.
- `examples/spot-plate/` is a second production figure from the same site: six pairs of glass drops on a spot plate, each pair drawn from one distance field, so a pair closer than `merge` runs together into one piece of glass. A fan of feeler blades sets `merge`, one blade per gap. It is the reference for shapes that morph into each other and for one control driving many parts.
- `examples/turning-dial/` is the optional 3D mode: a combination dial that turns in true 3D with a small robot hand on it. It has about 90 live parts in metal materials, a second turn group, a hinge, a three-hinge finger that lifts and a pod that breaks off as a free body. A WebGL LED, its light pool and sparks follow the moving parts. `stress.mjs` beside it is a dense hand of about 380 parts in a cluttered workshop, used to measure performance.