iso-figure skill

A Claude skill that turns the name of an object into an isometric drawing in one HTML file with working buttons

  • 321 ★ on the repository
  • Last commit
  • MIT
Skill

Minimal access

Why this level

  • The skill only supplies instructions for generating one HTML file and runs nothing itself
  • The generated HTML contains a script, so review it before publishing
All reasons and checks

mrbongoc/ai-iso-skill

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add skills/iso-figure

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Minimal accessThe tool runs nothing and makes no network calls.

  • The skill only supplies instructions for generating one HTML file and runs nothing itself
  • The generated HTML contains a script, so review it before publishing

This is third-party code. Review the repository files before installing.

What it does

iso-figure draws interactive isometric figures. You name an object, for example a kitchen timer with minute buttons and a countdown display, and get one self-contained HTML file. Inside is a hairline contour drawing on a numbered textbook-style plate, and pressing a part produces a result: typed text, a number or a note. The graphics are plain SVG with no libraries. About 15 lines of projection code turn each face of a box into an SVG matrix. So ordinary `rect`, `text` and `path` elements drawn flat land on the right isometric plane, text and rounded corners included. Paint order handles depth, one state object and one `render()` function drive the interaction, and CSS does the motion. Before drawing, the skill has Claude decide what pressing a part produces. SKILL.md holds the projection kernel, the procedure and the rules for the look. The repository has two finished examples: a desk synth and a pocket calculator.

Who it is for. For designers, developers and writers who need a striking interactive illustration for a landing page, article or presentation.

Good fit when

  • You need an interactive illustration of an object with pressable parts for a landing hero
  • You need a single dependency-free HTML file to embed in a page or open locally
  • You need a technical-plate style drawing with a Fig N caption and a live state readout
  • You want to show a device such as a synth, calculator or timer that a reader can play with

Not a fit when

  • You need a static illustration or an animation with no result from pressing: the skill requires that the object does something real
  • You need a photorealistic 3D model or a GLB export: the skill draws flat SVG
  • You need a complex scene of many objects: the skill builds one figure from boxes and flat details
  • You need integration into an existing framework: the result is a single HTML file

Example request

iso figure of a kitchen timer with minute buttons and a display that counts down

Limitations

The skill draws one figure made of boxes and flat parts, with paint order handling depth. There is no 3D model behind the drawing, so export to GLB or other 3D formats is impossible. The result is always one HTML file with an embedded script: to put the figure into a React or Vue component you move the code by hand. The documentation is a short English README plus SKILL.md itself. MIT license.

How to disable. Remove the plugin with /plugin or delete the ~/.claude/skills/iso-figure folder. Generated HTML files are separate and do not depend on the skill.

FAQ

How do I install iso-figure in Claude Code?

Run `/plugin marketplace add MrBongoC/ai-iso-skill` and `/plugin install iso-figure@ai-iso-skill`. By hand: clone the repository and run `cp -r ai-iso-skill/skills/iso-figure ~/.claude/skills/`.

How do I install the skill on Claude.ai?

Download iso-figure.skill from the repository's latest release and upload it in skill settings.

What requests suit iso-figure?

An object with parts you can press, such as a kitchen timer with minute buttons or a wall light switch that turns a lamp on and off.

Why does the skill refuse to draw some objects?

By its rules the object must have something to press. If it has nothing, the skill picks a different object, because a figure with no result from pressing is only decoration.

Do I need libraries to open the finished file?

No. The file opens in a browser with no build step or server and loads no external libraries.

Discussion

No questions or reviews yet.

Skills

A skill that designs UI and landing page mockups and rebuilds screenshots as HTML, a React project or a WeChat mini program

SkillExtended access524Repository stars

Creative coding skills for Claude Code: motion, micro-interactions and visual systems for web, Android and Apple

SkillMinimal access710Repository stars

A skill for building premium scroll-driven websites on a real design standard: typography, rhythm, depth, motion and in-browser verification

SkillExtended access4.2KRepository stars

A skill for Claude Code and Codex that turns AI video and frames into web animation driven by scroll, cursor, touch or device tilt

SkillBroad access2.7KRepository stars

A Claude Code plugin and skill marketplace for 3D, animation and modern web: Three.js, GSAP, React Three Fiber, Babylon.js

PluginExtended access1.2KRepository stars

A skill that turns reference UIs into a structured design profile in JSON and generates matching UI from your content

SkillExtended access2.1KRepository stars

Comparison with similar tools

Entries that share the main search query, and how they differ.

EntryOfficialAuthenticationRepository starsMain difference
iso-figure (this entry)no321
Anatomyno22,773draws interactive isometric SVG illustrations for anatomy and explanations
MCP Mermaidnonot required646builds diagrams and charts from a description, without isometry or pressable parts

README in short

The README opens with two animated examples you can open and play with. It then briefly explains the SVG projection and the rule for choosing an object, followed by installation and sample requests.

README badge

Original SKILL.md

---
name: iso-figure
description: Build an interactive isometric line-art "figure" (Fig N style) of an object in a single HTML/SVG file: monochrome technical-illustration look, parts you can press that produce real output, live state readout. Use for hero illustrations, interactive diagrams, product figures, and playable desk objects (computer, synth, calculator).
---

# Interactive isometric figure

Produces one self-contained HTML file: a rounded panel captioned like a textbook plate, holding an isometric line drawing of an object whose parts actually work. A switch toggles, keys depress, a screen shows what was typed, a synth key makes sound. No libraries, no canvas, no 3D engine, just plain SVG generated by about 15 lines of projection code.

The object must do something real. A figure that only animates is decoration; a figure where pressing a part produces output (text, a number, a sound, a changed display) is the point. Decide what the output is before drawing anything.

## The four things that make it work

1. **Everything is a flat 2D shape placed on a 3D plane.** Never hand-compute skewed polygons. Draw ordinary `<rect>`, `<text>`, `<path>` in a face's local coordinates and let one SVG `matrix()` put it on the plane. Text, glyphs and rounded corners then sit in correct perspective for free.
2. **Objects are boxes; a box is its three visible faces.** Complex objects are boxes plus flat detail drawn on their faces (vents, slots, bezels, LEDs, labels).
3. **Interaction is class toggles on SVG groups.** One `state` object, one `render()`; CSS does the motion.
4. **The frame sells it.** Four monospace corner captions: `Fig N` (top-left), OBJECT NAME (top-right), the instruction (bottom-left), a live state readout (bottom-right).

## Kernel (copy verbatim, then build the scene)

```js
const C = Math.cos(Math.PI/6), S = Math.sin(Math.PI/6), OX = 465, OY = 300; // where the 3D origin lands in the viewBox
const P = (x,y,z) => [(x-y)*C + OX, (x+y)*S - z + OY];   // point: 3D -> screen
const D = (x,y,z) => [(x-y)*C, (x+y)*S - z];              // direction only
// plane = origin O + in-plane axes U,V. Anything inside a <g> with this transform lies flat on that plane.
const plane = (O,U,V) => { const o=P(...O), u=D(...U), v=D(...V);
  return `matrix(${u[0]} ${u[1]} ${v[0]} ${v[1]} ${o[0]} ${o[1]})`; };
const TOP   = (x,y,z) => plane([x,y,z],[1,0,0],[0,1,0]);   // z = const
const FRONT = (x,y,z) => plane([x,y,z],[1,0,0],[0,0,-1]);  // y = const (faces lower-left); pass its top-left corner
const SIDE  = (x,y,z) => plane([x,y,z],[0,-1,0],[0,0,-1]); // x = const (faces lower-right); pass its top-left corner
const rect = (t,w,h,r=0,cls='face') =>
  `<g transform="${t}"><rect class="${cls}" width="${w}" height="${h}" rx="${r}"/></g>`;
// box at (x,y,z), size w along x, d along y, h along z
const box = (x,y,z,w,d,h,r=0) =>
  rect(SIDE(x+w,y+d,z+h), d,h,Math.min(r,h/4)) +
  rect(FRONT(x,y+d,z+h), w,h,Math.min(r,h/4)) +
  rect(TOP(x,y,z+h), w,d,r,'face top');
```

Report a problem

Foxx AIiso-figure
Foxx AI

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.