К основному содержанию
скилл Claude Code CX Codex Cursor GitHub Copilot

cuboid-carousel — скилл для Claude: 3D-карусель карточек

Скилл собирает 3D-карусель из скруглённых параллелепипедов с контентом: они влетают справа, едут волной и уходят влево. Пригодится для промо-роликов и титров.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add heygen-com/hyperframes --skill cuboid-carousel -a claude-code
Открыть на GitHub

Что делает cuboid-carousel

cuboid-carousel — это HyperFrames-блок: готовая композиция cuboid-carousel.html на 1920×1080, 6.666666666666667 секунды при 30 fps. Цепочка скруглённых параллелепипедов с фаской летит справа единой группой, каждый кубоид вращается со своей задержкой, группа замедляется на герой-кадре и уходит влево. Расстояние между кубоидами считается из их размеров и максимального достижимого полуразмера по X, поэтому они не пересекаются.

Внутри — Three.js, GSAP 3.14.2, assets/cuboid-motion.js и аддоны окружения. Сорок переменных повторяют схему DialKit: геометрия, материалы, свет, тени, фон, камера и длительности с изингами по сегментам. Карточки берутся из встроенного списка или из JSON-переменной cardsJson. Таймлайн один, на паузе, зарегистрирован как window.__timelines["cuboid-carousel"], и пересчитывается по событию hf-seek — каждый кадр это чистая функция времени.

Учтите бюджет памяти: около 350 МБ на живой экземпляр, поэтому запускать стоит по одному. Рендер идёт через WebGL и Canvas 2D с картами теней и PMREM. Ставьте, если нужен готовый 3D-переход для карточек и вы готовы крутить сорок параметров. Если в проекте нет Three.js и GSAP, проще взять статичную анимацию на CSS.

Какие задачи решает

  • собрать 3D-карусель карточек без ручной настройки сцены
  • показать список контента волной с вращением каждого элемента
  • вывести герой-карточку крупнее остальных на паузе
  • подставить свои карточки через JSON-переменную
  • настроить свет, тени и камеру под фирменный стиль

Примеры запросов агенту

  • поставь скилл cuboid-carousel и покажи, какие переменные отвечают за камеру
  • замени карточки в cuboid-carousel на мой JSON через cardsJson
  • сделай герой-карточкой третью и уменьши gap до 0.05

Как установить cuboid-carousel

1Через Skills CLI (Vercel)

npx skills add heygen-com/hyperframes --skill cuboid-carousel -a claude-code

2Вручную: положить файлы

~/.claude/skills/cuboid-carousel/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/cuboid-carousel/

Из того же набора14

Весь набор →
hyperframes heygen-com Скилл задаёт агенту правила рендера HTML-кода в видео через HyperFrames. Помогает собирать проморолики, эксплейнеры и титры прямо в коде проекта. Claude Code CX Codex Cursor +1 1 200 000установок hyperframes-cli heygen-com Управляет проектами HyperFrames через терминал: собирает таймлайн, проверяет контраст кадров, запускает предпросмотр и рендерит видео локально или в облаке. Claude Code CX Codex Cursor +1 1 200 000установок media-use heygen-com Находит и генерирует ассеты для видео в HyperFrames — музыку, дикторский голос, аватары и эффекты. Сохраняет всё локально в assets. Claude Code CX Codex Cursor +1 1 100 000установок hyperframes-registry heygen-com Находит и добавляет в проект около 450 готовых визуальных блоков HyperFrames — от титров до шейдеров. Пригодится, когда видеоэффект проще взять из базы, чем верстать с нуля. Claude Code CX Codex Cursor +1 1 000 000установок remotion-to-hyperframes heygen-com Конвертирует код Remotion или видеофутажи в HyperFrames с покадровой проверкой оригинала через SSIM. Claude Code CX Codex Cursor +1 504 900установок slideshow heygen-com Собирает интерактивные презентации HyperFrames со слайдами, фрагментами, переходами и заметками докладчика. Подходит для живого показа, а не рендера в видео. Claude Code CX Codex Cursor +1 415 500установок figma heygen-com Импортирует ассеты, токены бренда и компоненты из Figma в проект HyperFrames и собирает из кадров анимацию. Пригодится, когда нужно оживить макет, а не вставлять статичные картинки. Claude Code CX Codex Cursor +1 329 500установок frost-sequence-camera-orbit heygen-com Скилл собирает 22.5-секундную сцену: камера облетает ледяной логотип, он рассыпается, собирается в два текста и растворяется. Claude Code CX Codex Cursor +1 9 800установок

Похожие

baoyu-compress-image JimLiu Сжимает изображения в WebP или PNG через системные утилиты вроде sips и cwebp. Пригодится для быстрой оптимизации картинок прямо в репозитории проекта. Claude Code CX Codex Cursor +1 28 200установок tailwind-design-system Seth Hobson Помогает строить дизайн-системы на Tailwind CSS v4. Пригодится для библиотеки компонентов или унификации интерфейса в проекте. Claude Code CX Codex Cursor 70 180установок react-doctor millionco Проверяет кодовую базу на React: находит проблемы архитектуры, доступности и рендеринга. Рассчитывает общую оценку здоровья проекта от 0 до 100. Claude Code CX Codex Cursor +1 19 000установок accessibility web-quality-skills Скилл проводит аудит доступности веб-страницы и подсказывает, что исправить в исходниках. Пригодится, когда сайт нужно довести до WCAG 2.2 или проверить работу с клавиатурой и скринридером. Claude Code CX Codex Cursor +1 63 900установок chrome-devtools ChromeDevTools Скилл подключает Chrome DevTools через MCP для отладки страниц, браузерной автоматизации, анализа производительности и сетевых запросов. Claude Code CX Codex Cursor +1 8 600установок nuxt-ui nuxt Помогает агенту собирать интерфейсы на базе @nuxt/ui v4, настраивать темы Tailwind CSS и правильно выбирать компоненты библиотеки. Claude Code CX Codex Cursor +1 19 700установок frontend-design официальный anthropics Скилл задаёт осмысленное визуальное направление для новых интерфейсов и редизайна. Подойдёт, когда стандартный шаблонный UI не устраивает. Claude Code Claude.ai 1 025 790установок design-taste-frontend Leonxlnx Скилл задаёт арт-дирекцию для публичных страниц и рабочих экранов, а затем проверяет результат в браузере по скриншотам. Нужен, когда интерфейс выглядит шаблонным или недоработанным. Claude Code CX Codex Cursor +1 673 100установок

Вопросы о cuboid-carousel

Как установить cuboid-carousel в Claude?

Выполните npx skills add heygen-com/hyperframes --skill cuboid-carousel -a claude-code. Файлы скилла окажутся в ~/.claude/skills/cuboid-carousel/SKILL.md.

Что делает cuboid-carousel?

Рендерит HyperFrames-блок с цепочкой скруглённых параллелепипедов, которые едут волной как карусель контента: вход справа, замедление на герой-карточке, выход влево.

Что нужно для работы скилла?

Композиция тянет Three.js и GSAP из ./assets/, шрифт Inter подгружается с Google Fonts. На один живой экземпляр уходит около 350 МБ, так что запускайте по одному.

Исходный текст

SKILL.md · Apache-2.0
---
name: cuboid-carousel
description: A chain of bevelled cuboids rides a travelling wave as a content carousel. HyperFrames block, 1920×1080, 6.666666666666667s, 40 variables.
---

# Cuboid Carousel

Rounded, bevelled cuboids carrying card content fly in from the right as one rigid group, cruise with a per-cuboid rotation stagger, decelerate to a hero hold, then exit left. Spacing is derived from the cuboid dimensions and the largest reachable X half-extent, so cuboids can never overlap. Forty variables carry the original DialKit schema: geometry, materials, lights, shadows, backdrop, camera and every segment duration and easing. Cards come from the built-in list or a JSON variable.

Composition id: `cuboid-carousel`. Duration 6.666666666666667 s at 30 fps, 1920×1080.

## Files

- `cuboid-carousel.html` (38 KB)
- `assets/Three-LICENSE.txt` (1 KB)
- `assets/addons/environments/RoomEnvironment.js` (5 KB)
- `assets/addons/utils/BufferGeometryUtils.js` (36 KB)
- `assets/cuboid-motion.js` (593 KB)
- `assets/gsap-3.14.2.min.js` (128 KB)
- `assets/GSAP-NOTICE.txt` (1 KB)
- `assets/three.core.min.js` (554 KB)
- `assets/three.module.min.js` (468 KB)

## Install

Install with `npx hyperframes add cuboid-carousel`; by default the files above land under `compositions/cuboid-carousel/`. Then mount the block from the host `index.html`:

```html
<div
  data-composition-id="cuboid-carousel"
  data-composition-src="compositions/cuboid-carousel/cuboid-carousel.html"
  data-start="0"
  data-duration="6.666666666666667"
  data-track-index="1"
  data-width="1920"
  data-height="1080"
></div>
```

Render with custom values by targeting the composition file directly:

```sh
npx --yes [email protected] render 'compositions/cuboid-carousel/cuboid-carousel.html' --variables '{"cardsJson":"","heroCard":4}'
```

## Variables

Read at runtime via `window.__hyperframes.getVariables()`; declared on the composition root as `data-composition-variables` (single-quoted attribute, plain JSON).

| id                  | type   | default     | label / range                                        |
| ------------------- | ------ | ----------- | ---------------------------------------------------- |
| `cardsJson`         | string | `""`        | Content · Cards JSON (optional, see CARDS in source) |
| `heroCard`          | number | `4`         | Content · Hero card (1-based) 1–12 step 1            |
| `count`             | number | `8`         | Content · Repeating card count 1–12 step 1           |
| `gap`               | number | `0.01`      | Layout · Extra gap between cuboids 0–1.5 step 0.005  |
| `cuboidWidth`       | number | `1.7`       | Cuboid · Width 0.3–5 step 0.01                       |
| `cuboidHeight`      | number | `2.4`       | Cuboid · Height 0.3–6 step 0.01                      |
| `cuboidDepth`       | number | `0.14`      | Cuboid · Thickness (depth) 0.02–2 step 0.01          |
| `cornerRadius`      | number | `0.105`     | Cuboid · Corner radius 0–0.6 step 0.005              |
| `bevelSize`         | number | `0.03`      | Cuboid · Bevel size (edge chamfer) 0–0.3 step 0.001  |
| `bevelThickness`    | number | `0.04`      | Cuboid · Bevel thickness 0–0.3 step 0.001            |
| `smoothness`        | number | `32`        | Cuboid · Smoothness (segments) 1–32 step 1           |
| `bodyColor`         | color  | `"#242424"` | Cuboid · Body colour                                 |
| `roughness`         | number | `0.6`       | Cuboid · Roughness 0–1 step 0.01                     |
| `metalness`         | number | `0.4`       | Cuboid · Metalness 0–1 step 0.01                     |
| `heroScale`         | number | `1`         | Hero · Isolated scale 1–1.6 step 0.01                |
| `heroFillIntensity` | number | `0.55`      | Hero · Face light intensity 0–2 step 0.05            |
| `heroExitX`         | number | `288`       | Hero · Exit X rotation degrees -720–720 step 1       |
| `heroExitY`         | number | `-234`      | Hero · Exit Y rotation degrees -720–720 step 1       |
| `heroExitZ`         | number | `198`       | Hero · Exit Z rotation degrees -720–720 step 1       |
| `ambientIntensity`  | number | `0.35`      | Lights · Ambient intensity 0–4 step 0.01             |
| `ambientColor`      | color  | `"#ffffff"` | Lights · Ambient colour                              |
| `topIntensity`      | number | `3.1`       | Lights · Top rig intensity 0–12 step 0.05            |
| `topColor`          | color  | `"#ffffff"` | Lights · Top rig colour                              |
| `bottomIntensity`   | number | `2.15`      | Lights · Bottom rig intensity 0–12 step 0.05         |
| `bottomColor`       | color  | `"#ffcaad"` | Lights · Bottom rig colour                           |
| `keyIntensity`      | number | `5`         | Lights · Key rig intensity 0–12 step 0.05            |
| `keyColor`          | color  | `"#ffe9d6"` | Lights · Key rig colour                              |
| `shadowRadius`      | number | `44.5`      | Shadows · Softness at map size 2048 0–50 step 0.5    |
| `shadowMapSize`     | number | `2048`      | Shadows · Map size 512–4096 step 256                 |
| `backdrop`          | color  | `"#0b0d13"` | Background · Colour                                  |
| `cameraFov`         | number | `11`        | Camera · Initial Field of view 10–90 step 0.5        |
| `cameraX`           | number | `-1.65`     | Camera · Initial X -20–20 step 0.05                  |
| `cameraY`           | number | `8.5`       | Camera · Initial Y -20–20 step 0.05                  |
| `cameraZ`           | number | `-8.508708` | Camera · Initial Z (distance) -20–50 step 0.1        |
| `cameraSettleFrame` | number | `70`        | Camera · Settle frame (30 fps) 20–90 step 1          |
| `handheldStrength`  | number | `1`         | Camera · Handheld hold strength 0–1 step 0.05        |
| `cameraTargetFov`   | number | `34`        | Camera target · Field of view 10–90 step 0.5         |
| `cameraTargetX`     | number | `-7.25`     | Camera target · X -20–20 step 0.05                   |
| `cameraTargetY`     | number | `1.15`      | Camera target · Y -20–20 step 0.05                   |
| `cameraTargetZ`     | number | `6.2`       | Camera target · Z 2–50 step 0.1                      |

## Runtime contract

- One paused GSAP timeline registered as `window.__timelines["cuboid-carousel"]`.
- Re-syncs on the `hf-seek` CustomEvent; every frame is a closed-form function of time (seeded PRNG only, no rAF loops, no Date.now).
- Renderer: WebGL, GSAP, Canvas 2D, PMREM, Shadow maps. Budget roughly 350 MB per live instance; run one at a time.
- External runtime dependencies: `./assets/three.module.min.js`, `./assets/addons/`.
- Web fonts from Google Fonts: Inter.

## Editing rules (from the source project)

1. Keep `data-composition-variables` a single-quoted attribute with plain `"` JSON. Never save it through Studio's Design panel.
2. Do not put `<canvas>` in static markup; create it at runtime.
3. Keep every visual state a function of t; seek-safety is what makes the block renderable.

© heygen-com · Apache-2.0 · heygen-com/hyperframes

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой