iso-figure — скилл
Скилл Claude, который по названию предмета рисует изометрический чертеж в одном HTML-файле с рабочими кнопками
- 319 ★ репозитория
- Последний коммит
- MIT
Минимальный доступ
Почему такой уровень
- Скилл только пишет инструкции для генерации одного HTML-файла и сам ничего не запускает
- Сгенерированный HTML содержит скрипт, перед публикацией его стоит просмотреть
Установка
- Работает в
В терминале, через SkillFoxx CLI
npx skillfoxx add skills/iso-figureОпределит агенты на машине, покажет уровень доступа и зафиксирует версию.
Другие способы установки
Доступ и проверки
Как мы проверяемМинимальный доступИнструмент ничего не запускает и не ходит в сеть.
- Скилл только пишет инструкции для генерации одного HTML-файла и сам ничего не запускает
- Сгенерированный HTML содержит скрипт, перед публикацией его стоит просмотреть
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
iso-figure рисует интерактивные изометрические фигуры. Вы называете предмет, например кухонный таймер с кнопками минут и дисплеем обратного отсчета, и получаете один самодостаточный HTML-файл. Внутри тонкий контурный рисунок на пронумерованной табличке в духе учебника, а нажатие на части предмета дает результат: набранный текст, число или ноту. Графика строится на чистом SVG без библиотек. Около 15 строк кода проекции превращают каждую грань параллелепипеда в матрицу SVG. Поэтому обычные элементы `rect`, `text` и `path`, нарисованные плоско, ложатся на нужную изометрическую плоскость вместе с текстом и скругленными углами. Глубину задает порядок отрисовки, за взаимодействие отвечают один объект состояния и одна функция `render()`, а движение делает CSS. Перед рисованием скилл просит Claude решить, что произведет нажатие. В SKILL.md собраны ядро проекции, порядок работы и правила внешнего вида. В репозитории два готовых примера: настольный синтезатор и карманный калькулятор.
Для кого. Для дизайнеров, разработчиков и авторов, которым нужна яркая интерактивная иллюстрация для главной страницы, статьи или презентации.
Подходит, если
- Нужна интерактивная иллюстрация предмета с нажимаемыми деталями для героя лендинга
- Нужен единый HTML-файл без зависимостей, который можно вставить на страницу или открыть локально
- Нужен рисунок в стиле технического чертежа с подписью Fig N и живой строкой состояния
- Нужно показать устройство вроде синтезатора, калькулятора или таймера, чтобы читатель мог его потрогать
Не подходит, если
- Нужна статичная иллюстрация или анимация без результата нажатия: скилл требует, чтобы предмет делал что-то реальное
- Нужна фотореалистичная трехмерная модель или экспорт в GLB: скилл рисует плоский SVG
- Нужна сложная сцена из многих предметов: скилл строит одну фигуру из параллелепипедов и плоских деталей
- Нужна интеграция в готовый фреймворк: результат одиночный HTML-файл
Пример запроса к агенту
Изометрическая фигура кухонного таймера с кнопками минут и дисплеем, который отсчитывает время назадОграничения
Скилл рисует одну фигуру из параллелепипедов и плоских деталей, глубину в ней задает порядок отрисовки. Трехмерной модели за рисунком нет, поэтому экспорт в GLB или другие 3D-форматы невозможен. Результат всегда один HTML-файл со встроенным скриптом: чтобы вставить фигуру в компонент React или Vue, код придется переносить вручную. Документация сводится к короткому README на английском и самому SKILL.md. Лицензия MIT.
Как отключить. Удалите плагин командой /plugin или папку ~/.claude/skills/iso-figure. Готовые HTML-файлы лежат отдельно и от скилла не зависят.
Частые вопросы
Как поставить iso-figure в Claude Code?
Выполните `/plugin marketplace add MrBongoC/ai-iso-skill` и `/plugin install iso-figure@ai-iso-skill`. Вручную: склонируйте репозиторий и выполните `cp -r ai-iso-skill/skills/iso-figure ~/.claude/skills/`.
Как поставить скилл в Claude.ai?
Скачайте файл iso-figure.skill из последнего релиза репозитория и загрузите его в настройках скиллов.
Какие запросы подходят для iso-figure?
Предмет с деталями, которые можно нажимать: например, кухонный таймер с кнопками минут или настенный выключатель, который включает лампу.
Почему скилл отказывается рисовать некоторые предметы?
По его правилам у предмета должно быть что нажимать. Если нечего, скилл выбирает другой предмет, потому что фигура без результата нажатия остается просто декорацией.
Нужны ли библиотеки, чтобы открыть готовый файл?
Нет. Файл открывается в браузере без сборки и сервера, внешних библиотек он не подключает.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
СкиллыСкилл рисует макеты интерфейсов и лендингов и переносит их в HTML, в проект на React или в мини-приложение WeChat
Скиллы креативного кода для Claude Code: движение, микровзаимодействия и визуальные системы для веба, Android и Apple
Скилл для сборки премиальных скролл-сайтов с реальным дизайн-стандартом: типографика, ритм, глубина, движение и проверка в браузере
Скилл для Claude Code и Codex: делает из AI-видео и кадров веб-анимацию, которая следует за прокруткой, курсором, касанием или наклоном устройства
Маркетплейс плагинов и скиллов Claude Code для 3D, анимации и современного веба: Three.js, GSAP, React Three Fiber, Babylon.js
Скилл превращает референсы интерфейсов в структурированный профиль дизайна в JSON и генерирует по нему новый интерфейс под ваш контент
Сравнение с похожими
Записи с тем же главным запросом: чем они отличаются.
| Запись | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| iso-figure (эта запись) | нет | 319 | ||
| Anatomy | нет | 22 773 | рисует интерактивные изометрические иллюстрации в SVG для анатомии и объяснений | |
| MCP Mermaid | нет | не нужна | 646 | строит диаграммы и графики по описанию, без изометрии и нажимаемых деталей |
Коротко о README
README начинается с двух анимированных примеров, которые можно открыть и потрогать. Дальше коротко объяснены проекция на SVG и правило выбора предмета, затем идут установка и примеры запросов.
Бейдж для README
Исходный 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');
```