lego-build
SkillMediaAn animation where an object is assembled from LEGO bricks step by step, in the style of the official building instructions. Everything is drawn with code on Canvas 2D, no images or 3D engine; rendered to mp4 in vertical 1080x1920 or horizontal 1920x1080. The model is defined by a list of steps usin
Available today. Use it from your connected AI after setup.
No other account needed.
Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
Then ask your AI: use the lego-build skill
What this skill tells your AI
The instructions your AI receives, as published by siliconbag/lego-build in SKILL.md and read by ahel’s review.
Движок рисует детали LEGO на Canvas 2D в стиле бумажной инструкции. Светлые верхние грани, тонкие темные контуры, новые детали в желтой обводке, детали прошлых шагов бледнее. Модель описывается списком шагов, а готовый сценарий превращает ее в ролик со списком деталей, номером шага, падающими деталями и поворотом в финале.
Главное правило скилла. Модель собирается только из настоящих деталей в цветах, которые реально выпускались, без выдуманной печати.
Что лежит в папке
src/lego.jsдвижок, библиотека из 47 деталей и 16 цветов.src/booklet.jsсценарий ролика, вертикальный и горизонтальный.src/models/cat.jsпример модели, рыжий кот из 106 деталей.src/models/microduck.jsвторой пример, мини-робот.src/parts-sheet.jsстраница-каталог всех деталей.index.htmlплеер. Пробел или клик ставят на паузу, стрелки листают кадры. Параметры?model=cat,?format=horizontal,?t=12,?view=parts.src/mosaic.jsфото в мозаику,src/mosaic-film.jsотрисовка мозаики и ролик ее сборки,mosaic.htmlто же в браузере,tools/mosaic.cjsиз командной строки.tools/check-model.cjsпроверка модели,tools/snap.cjsотдельные кадры в PNG,tools/render.cjsвидео в mp4,tools/parts-md.cjsсправочник деталей.reference/modeling.mdкак проектировать модель. Читай перед первой своей моделью.reference/parts.mdтаблица деталей и цветов.
Подготовка
Скопируй папку скилла в рабочую папку проекта и работай в копии. Нужны Node.js 20 или новее и ffmpeg в PATH, либо путь к нему в переменной FFMPEG.
npm install
npx playwright install chromium
node tools/check-model.cjs cat
node tools/render.cjs --model cat
Готово, когда проверка кота зеленая, а exports/cat.mp4 открывается и в нем кот собирается по шагам. Посмотреть без рендера можно, открыв index.html в браузере.
Как сделать ролик про новый объект
- Бриф. Спроси, что собираем и в какой ориентации нужен ролик. Остальное придумай сам и скажи, что придумал. Готово, когда объект описан одной фразой.
- Набросок. Нарисуй модель на клетке в двух видах, спереди и сверху. Выбери размер, палитру из
reference/parts.mdи детали, которые передадут форму. Готово, когда понятно, из каких слоев модель и где у нее лицо или главный признак. - Проверка деталей. Для каждой пары деталь плюс цвет открой
https://www.bricklink.com/catalogColors.asp?itemType=P&itemNo=<номер>и убедись, что цвет есть в списке. Если нет, поменяй цвет или деталь. Готово, когда каждая пара подтверждена, а дата проверки записана в шапку модели. - Модель. Скопируй
src/models/cat.jsвsrc/models/<имя>.js, замени в последней строкеroot.MODELS.catнаroot.MODELS.<имя>и опиши шаги снизу вверх по правилам изreference/modeling.md. Добавь файл строкой вindex.html. Готово, когдаnode tools/check-model.cjs <имя>пишет, что пересечений нет и все держится. - Кадры. Сними кадры командой
node tools/snap.cjs 3 6 9 12 <финал> --model <имя>и посмотри на них. Финал идет за полсекунды до конца ролика. Проверь, что модель узнается, детали не залезают друг в друга, список деталей помещается на странице. Исправляй и снимай заново. Готово, когда модель узнается с первого взгляда в финальном кадре. - Рендер. Запусти
node tools/render.cjs --model <имя>, для горизонтали добавь--format horizontal. Готово, когда mp4 лежит вexports/и просмотрен от начала до конца.
Портрет из фото
Фото сжимается в сетку, где один шип равен одному пикселю. Каждой клетке достается настоящая плитка LEGO: круглая 98138 или квадратная 3070 в цвете, в котором она выпускается. Цвета сравниваются так, как их видит глаз (CIELAB, CIEDE2000). Палитра подбирается под конкретное фото, дизеринг смешивает соседние плитки в промежуточные тона, одиночные точки убираются. Круглая плитка оставляет вокруг себя видимую черную пластину, и это учитывается.
- Фото. Лучше всего работает портрет анфас на ровном фоне с ровным светом. Готово, когда фото лежит локально и лицо в кадре.
- Мозаика. Запусти
node tools/mosaic.cjs <фото> --name <имя>. По умолчанию размер 64×64, круглые и квадратные плитки вперемешку, портретная палитра до 12 цветов. Черно-белое фото определяется само и собирается из четырех серых. В папкеexports/скилла (или в папке из--out) появятся<имя>-compare.png(фото, сетка, LEGO),<имя>-lego.png,<имя>-map.png(карта сборки) и<имя>-parts.md(детали с номерами BrickLink). HEIC с айфона сначала пересохрани в JPEG, остальные частые форматы открываются. - Сходство. Открой compare и сравни глазами. Если лицо не узнается, крути параметры.
--size 80или96дают больше деталей. Если лицо мелкое в кадре, поставь--zoom 1.3и сдвиги--dx,--dy. Если на коже лишние точки, уменьши--dither 0.3. Для плоского фото подними--contrast 0.7, для мелких черт подними--sharpen 0.7. Готово, когда очки, усы, прическа и прочие приметы читаются в LEGO-версии. - Ролик. Сначала сними несколько кадров ключом
--frames 3,9,15и посмотри на них. Потом добавь--video, для вертикали еще--format vertical. Получится<имя>-build.mp4, для вертикали<имя>-build-vertical.mp4. Сначала падают пластины, потом камера ныряет к плите и летит вдоль фронта сборки, где сыплются плитки. В конце она поднимается над готовым портретом, и рядом появляется фото. Готово, когда ролик просмотрен.
Страница mosaic.html делает то же в браузере. Перетащил фото, покрутил настройки, скачал картинку, карту или видео. Видео там пишется в реальном времени, для ровного ролика есть консольная команда.
Правила
- Никакой выдуманной печати. Глаза, носы и узоры собирай из простых деталей. Примеры есть в
reference/modeling.md. - Детали лица крепи на шипы сбоку (87087 и похожие), а не просто прикладывай к модели.
- Проверка модели должна быть зеленой перед каждым рендером.
- Не называй модель проверенной в живую, если ее никто не собирал руками.
- В коде отрисовки нельзя использовать
Math.randomиDate, кадр должен зависеть только от времени. - Название LEGO принадлежит LEGO Group. Не подавай ролик как официальный и не рисуй логотип LEGO.
Если нужной детали нет
Добавь ее в src/lego.js одним из помощников box, slope, ridge, curve, round, с номером по BrickLink. Затем пересобери справочник командой node tools/parts-md.cjs и посмотри деталь на index.html?view=parts. Подробности в reference/modeling.md.
Signals
- GitHub stars
- 28
- Forks
- 4
- Last commit
- Sep 2026
ahel review
K1binfo
installs-packages
Automated review, not a security audit. Ruleset v1+k2.
Advanced
- Item type
- skill
- Key
lego-build- Source
- github.com/siliconbag/lego-build