typegpu
Создание GPU-рендеринговых композиций HyperFrames с TypeGPU и WebGPU
Композиции HyperFrames, которым нужны эффекты на шейдерах, упираются в ограничения DOM и CSS. Этот навык даёт Claude шаблоны WGSL, шаги инициализации WebGPU и интеграцию с таймлайном, необходимые для детерминированного рендеринга кадров на GPU во всех режимах плеера HyperFrames.
Скачать ZIP навыка
Загрузить в Claude
Перейдите в Settings → Capabilities → Skills → Upload skill
Включите и начните использовать
Протестировать
Использование «typegpu». Как следует упорядочить инициализацию WebGPU относительно регистрации таймлайна GSAP?
Ожидаемый результат:
- Шаг 1: зарегистрируйте все GSAP-твины синхронно перед любым await
- Шаг 2: войдите в асинхронный IIFE, который вызывает navigator.gpu.requestAdapter() и adapter.requestDevice()
- Шаг 3: настройте контекст холста с устройством и предпочтительным форматом
- Шаг 4: добавьте слушатель события hf-seek, который вызывает функцию рендеринга с e.detail.time
- Шаг 5: для видео-рендеров ожидайте device.queue.onSubmittedWorkDone() после каждой отправки
Использование «typegpu». Какой alphaMode использовать для наложения частиц поверх обычного видеоэлемента?
Ожидаемый результат:
- Используйте alphaMode: 'premultiplied' в конфигурации контекста GPU-холста
- GPU-холст остаётся прозрачным там, где alpha равна 0, позволяя видеть нижележащий <video>
- Используйте alphaMode: 'opaque' для случаев, когда GPU-конвейер рисует весь кадр целиком, включая видеоконтент
Аудит безопасности
БезопасноStatic analysis flagged 49 patterns as potentially malicious (32 medium-severity backtick execution, 17 high-severity C2 and crypto keywords), but every flagged location is a markdown code fence, inline code span, WGSL shader snippet, or documentation heading within SKILL.md. The file contains no executable JavaScript, no network calls, no file system access, no environment access, and no command execution. All 49 findings are false positives caused by the static scanner misidentifying markdown backticks as Ruby/shell backtick execution and WGSL/GPU terminology as C2 or crypto indicators.
Проблемы среднего риска (2)
Проблемы низкого риска (1)
Оценка качества
Что вы можете построить
Создание шейдерной композиции-наложения
Дизайнер хочет наложить системы частиц или эффекты искажений поверх HTML-видеоэлемента с помощью прозрачного GPU-холста.
Миграция существующей WebGL-композиции на WebGPU
Инженер имеет рабочий конвейер WebGL и хочет конвертировать шейдеры и циклы рендеринга в современный API WebGPU с WGSL.
Создание эффекта glass-morphism или жидкого стекла
Креативный кодер хочет получить матовое размытие, хроматическую рефракцию и скруглённый прямоугольник SDF, скомпонированные на видео для брендового ролика.
Попробуйте эти промпты
Напишите композицию HyperFrames, которая использует прозрачный WebGPU-холст для рендеринга эффекта дрейфа 5000 частиц поверх фонового видео. Используйте шаблоны из навыка typegpu: регистрируйте GSAP-твины синхронно, инициализируйте WebGPU внутри асинхронного IIFE, слушайте события hf-seek и вызывайте onSubmittedWorkDone для захвата в режиме рендеринга.
Переведите этот фрагментный шейдер WebGL GLSL в WGSL, затем подключите его к WebGPU-холсту HyperFrames, используя полноэкранный треугольный вершинный шейдер из навыка typegpu. Шейдер создаёт эффект матового стекла поверх видеотекстуры.
Используя шаблоны скруглённого прямоугольника SDF и двухпроходного даунсэмпл-размытия из навыка typegpu, создайте композицию HyperFrames, в которой жидкостеклянная капсула с хроматической рефракцией накладывается на видеоэлемент. Анимируйте радиус скругления капсулы от 0 до 32 пикселей за 1,5 секунды.
Композиция HyperFrames с использованием навыка typegpu корректно рендерится в превью, но выдаёт разные кадры при каждом запуске в режиме рендеринга. Проверьте код на наличие Math.random, requestAnimationFrame, performance.now и отсутствующих вызовов onSubmittedWorkDone. Предложите конкретные исправления со ссылкой на раздел о детерминизме в навыке typegpu.
Лучшие практики
- Регистрируйте все таймлайны GSAP и дескрипторы HF-таймлайна синхронно до первого await, чтобы плеер HyperFrames считал их при загрузке страницы.
- Запускайте каждый GPU-рендер из события hf-seek и window.__hfTypegpuTime, никогда из requestAnimationFrame или performance.now, чтобы композиции оставались детерминированными в режимах плеера и рендеринга.
- Для GPU-эффектов на основе видео ожидайте loadedmetadata перед созданием исходной текстуры и используйте нативные размеры видео, чтобы избежать артефактов масштабирования.
Избегать
- Не вызывайте Math.random() внутри кода рендеринга или шейдера; используйте сидированный PRNG, чтобы кадры были воспроизводимыми между запусками.
- Не используйте requestAnimationFrame в качестве цикла рендеринга; рендерите только в ответ на события hf-seek, чтобы соответствовать перемотке таймлайна HyperFrames.
- Не полагайтесь на copyExternalImageToTexture для видеовходов в режиме headless-рендеринга; предварительно извлеките ключевые кадры в формате PNG для продакшн-рендеров.