YUV Video Director
hoodini/ai-agents-skills
Turns an idea or script into a branded MP4 by routing each scene to HyperFrames, Lottie, Manim or GSAP, wrapping it in one brand frame file, then checking and rendering.
Membangun motion graphic sinematik di browser (promo video, opener, intro, bumper, kinetic typography, explainer/video penjelasan bergambar 16:9 atau 9:16) memakai HTML + CSS + GSAP (+ Three.js bila…
$ npx skills add bangtutorial/bang-motion --skill bang-motion -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install bangtutorial/bang-motion bang-motion --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
Claude Code skills documentation · loads skills from .claude/skills/
Install the "bang-motion" agent skill from https://github.com/bangtutorial/bang-motion/tree/main into .claude/skills/bang-motion/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bang-motion", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add bangtutorial/bang-motion --skill bang-motion -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install bangtutorial/bang-motion bang-motion --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "bang-motion" agent skill from https://github.com/bangtutorial/bang-motion/tree/main into .agents/skills/bang-motion/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bang-motion", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add bangtutorial/bang-motion --skill bang-motion -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install bangtutorial/bang-motion bang-motion --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "bang-motion" agent skill from https://github.com/bangtutorial/bang-motion/tree/main into .cursor/skills/bang-motion/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bang-motion", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add bangtutorial/bang-motion --skill bang-motion -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install bangtutorial/bang-motion bang-motion --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "bang-motion" agent skill from https://github.com/bangtutorial/bang-motion/tree/main into .gemini/skills/bang-motion/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bang-motion", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install bangtutorial/bang-motion bang-motionInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add bangtutorial/bang-motion --skill bang-motion -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "bang-motion" agent skill from https://github.com/bangtutorial/bang-motion/tree/main into .github/skills/bang-motion/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bang-motion", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add bangtutorial/bang-motion --skill bang-motion -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install bangtutorial/bang-motion bang-motion --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "bang-motion" agent skill from https://github.com/bangtutorial/bang-motion/tree/main into .opencode/skills/bang-motion/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bang-motion", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
bang-motionMembangun motion graphic sinematik di browser (promo video, opener, intro, bumper, kinetic typography, explainer/video penjelasan bergambar 16:9 atau 9:16) memakai HTML + CSS + GSAP (+ Three.js bila…
Bang Motion is an agent skill from bangtutorial/bang-motion. Membangun motion graphic sinematik di browser (promo video, opener, intro, bumper, kinetic typography, explainer/video penjelasan bergambar 16:9 atau 9:16) memakai HTML + CSS + GSAP (+ Three.js bila perlu), dengan hasil yang bergerak seperti video sungguhan — bukan slide presentasi. Gunakan skill ini setiap kali user meminta "video promo", "opener", "intro animasi", "motion graphic", "bumper", "kinetic typography", "animasi teks sinematik", "explainer", "video penjelasan" (jurnalisme visual, kartun edukasi…
Its SKILL.md is about 9.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 52 other files, including scripts, reference files and assets (for example `.claude-plugin/marketplace.json`, `.claude-plugin/plugin.json` and `CHANGELOG.md`).
It sits in Media & Creative, covering Motion graphics and Video production. It works with GSAP, Model Context Protocol, Three.js and FFmpeg. The repository describes itself as: Agent skill for browser motion graphics — openers, promos, bumpers, kinetic typography, and five explainer styles that move like video, not slides. Single index.html output… The licence is MIT.
8 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit c1aa65e. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/, which the agent can run.
Shell commands in SKILL.md call:
npmffmpegwingetbrewFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
youtube.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Bang Motion loads about 9.7k tokens when it runs, and up to ~56k if it reads all its reference files. Until then it costs about 238 tokens; SKILL.md has 4,802 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from bangtutorial/bang-motion at commit c1aa65e, republished under its MIT licence (© bangtutorial). 4,802 words, ~9,747 tokens.
.claude/skills/bang-motion/SKILL.md (or your agent's skills folder). This skill also uses 48 other files; get the full folder from GitHub.v1.19.0 · by Bang Tutorial · MIT. Riwayat perubahan di CHANGELOG.md;
cara pasang di README.md.
Skill ini untuk AI coding agent apa pun (format Agent Skills terbuka). Isinya hukum dan resep untuk motion graphic yang bergerak seperti video, bukan presentasi — patuhi sebelum menulis kode.
Deliverable (index.html) hanya butuh browser modern + internet untuk CDN
(GSAP, font). Python dan Node opsional, dipakai hanya untuk alat kerja:
scripts/serve.py (server no-cache, cuma perlu bila memakai module lokal),
puppeteer (snapshot/verifikasi otomatis, scripts/export-frames.mjs → MP4).
Kalau user tidak punya keduanya: (1) tetap bangun satu-berkas, buka lewat
klik dua kali; (2) verifikasi visual lewat ?debug=1 (panel scrub) dan
screenshot manual per detik kunci; (3) MP4 lewat rekam layar (OBS / rekam
tab browser) — jelaskan bahwa hasil rekam layar bisa drop frame, dan render
frame-by-frame butuh Node. Jangan pernah membuat deliverable yang butuh
npm install untuk DITONTON.
ffmpeg juga opsional. Cek dulu (ffmpeg -version); bila tidak ada:
| Kebutuhan | Dengan ffmpeg | Tanpa ffmpeg |
|---|---|---|
| Sinkron VO (batas kalimat/paragraf) | silencedetect | scripts/vo-pauses.html — buka di browser, pilih audio, salin SEG/PARA; hasilnya sama persis (Web Audio, tanpa instal) |
| Durasi/format audio | ffprobe | angka DUR dari vo-pauses.html; browser memutar wav/mp3/m4a/ogg langsung |
| Export MP4 | gabung PNG dari export-frames.mjs | tidak ada MP4 — tawarkan instal satu perintah (winget install Gyan.FFmpeg / brew install ffmpeg) atau rekam layar |
| Mempelajari video referensi (ekstrak frame) | fps= + tile= | minta user mengirim screenshot di detik kunci, atau buka videonya di browser dan potret pada detik tertentu |
Tanpa ffmpeg alur explainer tetap lengkap sampai sinkron VO; hanya MP4 yang butuh instalasi.
Default deliverable: tanpa panel/player apa pun di layar, langsung
memutar saat dibuka, dan mengulang dari awal saat selesai (onComplete → play(0); bila ada suara, audio ikut diulang). Kontrol tersembunyi: R ulang,
Space jeda. Panel scrub/jam hanya muncul dengan ?debug=1 (alat review),
dan ?clean=1 menahan autoplay untuk export. Ada suara? Coba play()
langsung; bila diblokir browser, tahan di frame 0 dan mulai pada klik
pertama — tanpa teks "ketuk untuk mulai". Ini sudah tertanam di kedua
starter.
Model lain (dan kamu, bila lelah) akan jatuh ke pola ini walau sudah membaca hukum di bawah. Sebelum menyerahkan, cek KODE, bukan perasaan:
grep -c "class=\"scene\"\|<section" index.html — bila ≥ 3 adegan
berupa <section> yang dinyalakan-dimatikan dengan autoAlpha/opacity
→ itu slide deck. Adegan harus berganti karena DUNIA/KAMERA bergerak
(kamera bergerak, whip ke sudut lain, push-through, latar berganti),
bukan karena section di-fade. Pengecualian yang sah: kartun panggung
(references/kartun-panggung.md) memakai cut/geser 96 px antar panggung
— boleh, karena tiap panggung hidup penuh (≥10 benda beraksi), bukan
gambar diam yang di-fade.
Ada benang merah visual yang bertahan: satu subjek (aksi kontinu) ATAU satu dunia kolase/kertas/putih yang disusuri kamera (kartun, foto, katalog, sketsa). Foto full-bleed berganti-ganti tanpa dunia bersama → PPT. Satu gambar + satu kalimat per adegan, berganti tiap adegan → tetap slideshow walau kameranya bergerak: tiap adegan 3–5 elemen yang masuk bertahap per frasa (explainer.md "Satu adegan = 3–5 elemen").
Per adegan hitung node teks: eyebrow/kicker + judul + body/kredit = 3 tingkat → PPT. Maksimum dua: satu angka/kalimat besar + satu label dunia. Dokumen/stempel/blok tanggal berisi ≤ 3 baris pendek dihitung objek, bukan tingkat teks.
Ken Burns (scale 1.0→1.05 pada foto) sebagai satu-satunya gerak → PPT.
Gerak tiap detik harus datang dari BAHASA GERAK LATAR yang dipilih di
style brief dari menu techniques.md §7c (kamera bernapas di latar
bertekstur, gradien berpindah, blob mengambang, grain hidup, sapuan
cahaya per segmen, bentuk besar berputar lambat, partikel naik, grid
bernapas, teks hantu bergeser, Ken Burns + parallax…). Batang/garis/
potongan yang melintas ke samping ("lane", "range", "streak", hujan
partikel horizontal) SUDAH dipakai dua proyek berturut-turut dengan nama
berbeda — itu bukan default; hanya bila tema memang kecepatan/aliran,
dan tidak boleh dua proyek berturut-turut.
Transisi hanya fade + scale bump + light leak di semua cut → template PPT. Whip ke sudut lain, cut ke instrumen (peta/speedometer/profil), push-through.
Explainer dimulai dari starter GAYANYA: starter-explainer-kartun,
-jurnalisme, -katalog, -sketsa (mode kolase: kamera menyusuri aset
diam), starter-explainer (aksi kontinu: dunia mengalir), atau
starter-explainer-panggung (kartun panggung: satu panggung per adegan,
rig sendi, kamera hanya di dalam panggung). Yang kolase satu rig; yang
panggung rignya lain. BUKAN dari assets/starter-opener.html
(opener teks), dan bukan dari nol.
Miniatur adalah slide. Kamera zoom < 1,08 sehingga rumah sebesar ibu
jari dan tanah kosong mengisi separuh layar → PPT walau semua bergerak.
Dunia dipecah jadi panggung seukuran frame, bukan satu peta besar yang
dijelajahi (kartun-panggung.md Hukum 1).
Kerangka template (opener/promo). Cek rundown dan kode: adegan pertama
berupa teks yang diperbesar lalu keluar ke kiri; tiga tile/kartu fitur
sejajar; kotak input/searchbar yang diketik; urutan hook → fitur → fitur →
janji → logo → CTA. Dua atau lebih tanpa tuntutan konsep → template, walau
kulitnya baru. Pilih ulang kerangka dari references/opener-konsep.md.
Gagal satu poin saja → rombak sebelum ditunjukkan ke user.
Skill ini untuk motion graphic web secara UMUM. Explainer hanya salah satu jenis — ia punya dokumen sendiri karena strukturnya beda, bukan karena ia yang utama.
Starter dinamai menurut kategorinya: starter-opener.html untuk opener, promo,
bumper, intro, dan kinetic typography; starter-explainer-*.html untuk explainer,
dengan akhiran mode/gaya (-kartun, -jurnalisme, -katalog, -sketsa = kolase;
tanpa akhiran = aksi kontinu; -panggung = kartun panggung). Kartun panggung adalah
mode explainer (gaya 6), bukan kategori sendiri: tujuannya tetap menjelaskan dengan
VO, yang berbeda hanya cara produksinya.
| Jenis | Durasi lazim | Ciri | Resep |
|---|---|---|---|
| Opener / promo produk | 25–40 dtk | satu konsep dari menu (kerangka lahir dari produk, bukan urutan baku), satu momen istimewa, penutup brand | references/opener-konsep.md + alur kerja di bawah + references/techniques.md |
| Bumper / ident / logo sting | 3–8 dtk | logo build-on, satu gerak tanda tangan, selesai sebelum penonton sadar | techniques.md (logo build-on, light leak) |
| Intro / outro kanal | 5–12 dtk | nama kanal + tanda tangan gerak yang sama tiap episode | alur kerja di bawah |
| Kinetic typography / lirik | 15–60 dtk | teks adalah subjek; split per kata/huruf; ritme mengikuti audio | techniques.md (split + blur berarah, pan 3D per kata) |
| Title / lower third / bumper segmen | 2–6 dtk | elemen kecil di atas footage, masuk-keluar bersih, latar transparan | techniques.md |
| Explainer / video penjelasan | 30–90 dtk | fakta bersumber, entitas tampil, sudut pandang berganti, lima gaya | references/explainer.md + starter per gaya |
Untuk explainer kartun edukasi flat berkarakter (gaya keenam, kartun
panggung), atau revisi yang terasa seperti slideshow/miniatur, baca
references/kartun-panggung.md: satu panggung per adegan, zoom 1,08–1,95,
kontinu di dalam panggung dan cut/geser 96 px di antaranya, rig sendi dengan
transform manual, nol caption, palet flat cerah. Bedakan kalimat, beat visual,
framing, dan pergantian panggung. Untuk membangunnya langsung di After Effects, baca
references/ae-bridge-higgsfield.md. Pedoman khusus explainer ini memperjelas
aturan opener di bawah; contoh font, jumlah scene, dan efek bukan resep universal.
Penyakit paling umum: model menyusun adegan seperti slide — judul + sub-judul
Aturan kerasnya:
references/opener-konsep.md (satu fitur didemokan, kata
berganti, objek bertransformasi, kartu dikocok, grid tile…); dua opener
berturut-turut tidak memakai cara yang sama.techniques.md §3b).Baca references/anti-ppt.md SEBELUM mendesain adegan — berisi daftar
pelanggaran nyata beserta perbaikannya.
Tidak ada satu baris pun yang membaca jam sistem. Semua visual adalah fungsi
murni dari tl.time() (waktu timeline GSAP): spektrum, angka berjalan,
partikel, getar kamera (sinus frekuensi tinggi, bukan Math.random()),
posisi objek yang "mengalir" (tween JARAK, bukan akumulasi kecepatan per
frame). Konsekuensinya: scrub akurat seperti timeline After Effects, dan
render frame-by-frame ke MP4 menghasilkan gambar identik setiap kali.
Kegagalan yang umum: opener untuk produk lain keluar dengan kulit PERSIS opener produk sebelumnya — gelap, aksen biru, glow, nebula, font yang sama — karena model mengambil gayanya dari starter. Animasinya bisa bagus, tetap gagal: opener adalah wajah produk, dan dua produk tidak boleh berwajah sama.
references/opener-konsep.md, satu dipilih dengan alasan dari produk, lalu
konsep · jumlah adegan · objek utama tiap adegan · pembuka · penutup;references/opener-konsep.md);techniques.md §7c — bukan hal yang
sama dengan tanda tangan gerak, dan bukan otomatis "benda melintas";techniques.md §7e (flat, clay,
glossy, kaca, isometrik, realistis, garis neon…);references/opener-konsep.md "Foto dalam
opener");assets/starter-opener.html adalah PLACEHOLDER. Kalau salah
satunya masih terlihat di hasil, gaya belum diturunkan. Latar WebGL
(nebula, debu, grid, bloom) hanya satu bahasa latar dari delapan;
matikan bila arah gayanya lain.references/opener-konsep.md diperlakukan sama: prinsip, bukan
naskah (Hukum kerangka #7).
Menjiplak kulit referensi = pelanggaran, walau user yang menyodorkannya —
sebutkan itu satu kalimat lalu tawarkan versi yang lahir dari tema.references/opener-konsep.md). Warna baru di atas urutan adegan lama
tetap template.
Jangan membuka folder proyek lama untuk "contoh" — yang boleh diwarisi
hanya aturan di skill ini.| Arah | Latar | Tipografi | Gerak khas | Cocok untuk |
|---|---|---|---|---|
| Sinematik gelap | gradasi nyaris hitam, partikel/nebula WebGL, bloom hanya di objek | grotesk tebal bersih | push-through, cahaya di depan lensa | alat kreatif, gaming, teknologi |
| Poster color-block | bidang warna solid besar berganti tiap adegan, tanpa gradasi | display sangat tebal, huruf raksasa terpotong tepi | wipe blok, teks menabrak tepi frame | app konsumen, musik, event |
| Editorial terang | putih/krem, ruang kosong luas, garis tipis | serif display + grotesk kecil | geser halus, garis menggambar, kamera tenang | produktivitas, finansial, SaaS |
| Kertas & cetak | tekstur kertas, potongan kolase, stempel, selotip | tulisan tangan + serif | benda terbang lalu mendarat, sudut miring | edukasi, komunitas, kuliner |
| Retro / analog | warna pudar, grain, garis scan, bingkai VHS | geometris 70–90-an | glitch terkendali, zoom kasar, freeze | nostalgia, musik, hiburan |
| Brutalis mono | hitam-putih, grid keras, kotak bergaris | monospace + kondensasi | cut keras, blok bergeser, kursor berkedip | developer tools, teknis |
| Pastel ceria | pastel bertumpuk, bentuk bulat besar | rounded sans tebal | mantul elastis, bentuk mekar | anak, kesehatan, lifestyle |
| Mewah gelap | hitam + emas/perunggu, bayangan lembut, kilau | serif tinggi berspasi lebar | gerak lambat, sinar menyapu, kedalaman | fashion, otomotif, properti |
| Flat pop berfoto | netral terang bergantian dengan medan warna brand user yang solid; bentuk flat dan stiker turunan geometri logo user + ilustrasi 3D lembut | sans geometris membulat tebal + kata raksasa terpotong tepi | foto orang potongan pop dari bawah, stiker meletup elastis, medan warna menyapu/snap di ketukan | app konsumen, fintech, e-commerce, brand anak muda |
| Grainy gradient | dasar gelap/warna dalam; bentuk bergradien jenuh 2–3 warna yang bercahaya dari dalam; butiran halus di seluruh frame | grotesk bersih kecil, atau display tebal minimal | lapisan bentuk membuka/berputar pelan, kamera menembus lubang bentuk, bola cahaya pemandu | tech, AI, musik, fintech, peluncuran kreatif |
Dua opener berturut-turut memakai baris tabel yang sama = tanda bahaya; pilih baris lain atau padukan dua baris dengan cara yang belum dipakai.
Dua opener dengan rig yang sama bisa berakhir sangat baik atau sangat buruk
hanya karena tipografi dan kontrasnya. Yang buruk: setiap judul KAPITAL
SEMUA bobot 800 di tengah, masuk dengan cara yang sama, di atas ladang cahaya
putih yang lebih terang daripada hurufnya. Yang baik: sentence case bobot
500, penekanan pada kata kunci (mis. pill + bintang — itu tanda tangan
satu proyek, bukan aturan; sorotan kata sendiri opsional), tanda baca
hanya bila perlu, ukuran/arah/
posisi bergantian, latar tenang di bawah teks, latar berganti mengikuti
segmen. Resep lengkap dengan kode: techniques.md
bagian 1 dan 1b. Ringkasnya:
?
untuk pertanyaan sungguhan, titik untuk gaya dua kalimat pendek berturut-turut
yang disengaja, ! sangat jarang. Gaya tanda baca diputuskan sekali di style
brief dan konsisten; bila dipakai, ia elemen terpisah yang muncul terakhir.Kenali jenisnya (tabel "Jenis pekerjaan"). Explainer → buka
references/explainer.md dan ikuti "Langkah nol" di sana: SATU
pertanyaan berisi gaya (lima pilihan + rekomendasi), rasio, durasi,
suara, plus pagar durasi. Jenis lain → lanjut; tanya hanya hal yang
benar-benar tidak bisa diturunkan dari brief (rasio, durasi, ada
musik/VO atau tidak), dalam satu pertanyaan.
0b. Tulis style brief (Hukum #3) dan tunjukkan bersama rundown. Tanpa
style brief yang disetujui, jangan menyentuh kode.
Serap referensi & sumber brand. Minta screenshot/potongan video referensi bila ada; petakan per shot (durasi, gerakan, jenis transisi, urutan atensi) — hanya RITMENYA, bukan kulitnya (Hukum #3). Warna, logo (path vektor ASLI, jangan digambar ulang), font, dan klaim fitur diambil dari sumber resmi PRODUK yang sedang dibuat — bukan dari referensi, bukan dari proyek lain, bukan karangan.
Tulis rundown dari konsep yang dipilih — tabel detik | adegan | kalimat | visual. Jumlah dan jenis adegan mengikuti konsep
(references/opener-konsep.md), bukan pola hook → fitur → fitur → janji →
logo → CTA. Total 25–40 detik. Minta persetujuan user atas rundown ini
sebelum menulis kode; merombak rundown murah, merombak kode mahal.
Scaffold arsitektur. Opener/promo/bumper/typography: salin
assets/starter-opener.html (stage 1920×1080, rig kamera #world, scene
Three.js ber-state, helper timeline) lalu SEGERA ganti token warna, font,
dan bahasa latarnya sesuai style brief — starter sengaja abu-abu. Explainer: salin starter sesuai gaya —
starter-explainer-kartun/-jurnalisme/-katalog/-sketsa.html (mode
kolase: kamera into/settle/look/home di atas cutout/foto, say/unsay per
kata, draw anotasi, push-through antar adegan) atau
starter-explainer.html (aksi kontinu: dunia mengalir, hero, objek
dunia, view peta, whip). Semua sudah autoplay + loop tanpa player. Struktur multi-file dan
penjelasan tiap keputusan ada di references/architecture.md.
Bangun adegan satu per satu dengan resep di
references/techniques.md (split per huruf + motion blur berarah,
pan 3D per kata, menu transisi, mockup UI). Resep adalah perkakas, bukan
daftar belanja: pakai hanya yang dituntut konsep.
Verifikasi VISUAL, bukan cuma "kode jalan". Kamu tidak bisa menonton
video; kamu hanya bisa melihat FRAME. Potret 6–20 detik kunci (awal
tiap adegan, saat teks muncul, transisi) dengan scripts/snap.mjs
(puppeteer, buka file://, tanpa server), susun jadi lembar kontak, dan
nilai seperti sutradara: teks kepotong? tumpang tindih? teks muncul
sebelum kamera selesai? masih terasa slide? Perbaiki, potret lagi.
JANGAN merender semua frame untuk mengecek — itu ribuan gambar dan bukan
verifikasi; render penuh hanya untuk export MP4 (langkah 6) bila user
memintanya. Tanpa Node: buka ?debug=1, scrub manual, screenshot.
Serahkan sebagai SATU index.html yang bisa diklik dua kali. Output
akhir tidak boleh butuh server/Node: CSS dan JS ditulis INLINE di dalam
berkas (module lokal <script type="module" src="…"> diblokir CORS saat
dibuka lewat file://, module inline tidak), library dari CDN, aset
(ikon/gambar) relatif di folder yang sama. Server no-cache
(scripts/serve.py) hanya alat KERJA saat mengedit, bukan syarat
menonton. Tanpa player di layar (lihat "Player"); sebutkan ?debug=1
untuk scrub. Export MP4 hanya bila user memintanya: scripts/ export-frames.mjs merender tiap frame (60 fps) ke PNG lalu ffmpeg
menggabungkannya — cara ini bebas frame drop, tapi mahal, jadi bukan
langkah rutin dan bukan alat pengecekan.
Khusus explainer: naskah VO + ajakan merekam — pesan penutup wajib
memuat naskah VO lengkap dan meminta user merekam/generate lalu mengirim
ulang audionya untuk disinkronkan. Detail bentuk naskah, petunjuk rekam,
dan retime di references/explainer.md → "Penyerahan".
references/opener-konsep.md); tidak menyalin contoh konsep
(pembuka/penutup berbeda dari contohnya, ≤ 1 momen ✦ yang ditransformasi,
palet dan bentuk dari brand user)references/opener-konsep.md bagian animasi UI); bila demo terasa
statis, klik penting diikuti kamera (dekat → klik → mundur/geser),
tidak di setiap klik (techniques.md §8)clip() (tanpa autoplay/loop), dibungkus
elemen yang dianimasikan, sumbernya disepakati user, folder assets/ disebutkan saat
penyerahan, dan detik yang berisi klip sudah dipotret (snap.mjs)?debug=1 untuk scrubDate.now() / Math.random() di jalur render.cmd/.bat)transformOrigin/rotation GSAP pada sendi, tidak ada tween x/y
pada grup ber-translate); tiap panggung ≥10 benda bergerak; nol
caption; kepala raster punya varian kedip + ekspresireferences/ae-bridge-higgsfield.md)vo-script.md tersimpan di folder proyekindex.html terbuka langsung lewat file:// (klik dua kali) tanpa
server — CSS/JS inline, tidak ada src module lokalfont-variant-numeric:tabular-nums + min-width supaya wadahnya
tidak berubah lebarDetail dan perbaikannya di references/techniques.md bagian "Jebakan":
bloom threshold rendah → layar putih; nebula additive → menumpuk lewat bloom;
selector CSS lebih spesifik mengalahkan state awal opacity:0 → elemen
muncul mendahului animasinya; module JS di-cache browser → edit "tidak
ngefek" (pakai server Cache-Control: no-store); objek 3D pipih diputar
penuh di sumbu Y → jadi sebatang garis (goyangkan, jangan putar penuh);
kotak filter SVG default memotong ekor blur (lebarkan x/y/width/height).
Bila After Effects sudah terbuka, MCP bridge ae_* Higgsfield tersambung, dan user
meminta animasi/explainer dibangun di AE, bangun langsung lewat perintah bridge. Baca
references/ae-bridge-higgsfield.md: kerangka comp lewat satu Lottie kecil, null
CAM per panggung (anchor & position di-nol-kan SEBELUM parenting), ilustrasi
dari SVG-kode → PNG 2× (scripts/ae/bridge/aset-svg.py + svg2png.cjs), karakter
sebagai shape asli AE bersendi (scripts/ae/bridge/rig-tokoh.py, ±90 op per tokoh),
keyframe bagian tubuh dalam ruang induk, verifikasi lewat contact sheet (relay
bila r2.dev diblokir). Hukum kartun panggung tetap berlaku penuh. Bridge tidak
bisa menyimpan/merender dan tidak bisa menyusun ulang urutan layer — sebutkan itu
dan buat layer dari belakang ke depan. Build 10 panggung ≈ 1 jam, 0 kredit.
| Berkas | Kapan dibaca |
|---|---|
references/kartun-panggung.md | KARTUN PANGGUNG: satu panggung per adegan, kamera ≥1,08, cut/geser 96 px, rig sendi + transform manual, kepala raster + ekspresi lokal, nol caption, palet flat |
assets/starter-explainer-panggung.html | EXPLAINER kartun panggung: sistem panggung + kamera per panggung, J() sendi, character() (kepala vektor atau raster), whoosh 96 px, contoh dua panggung |
scripts/kepala-ekspresi.py | kepala hasil generate → varian senang/cemas/kaget + kedip, dibuat lokal (deteksi pupil & mulut) |
references/ae-bridge-higgsfield.md | BRIDGE: membangun kartun panggung langsung di AE lewat MCP Higgsfield — batas bridge, jebakan (null 960,540; parent ke CAM berkeyframe; reorder rusak), arsitektur CAM per panggung, rig native, relay contact sheet, penyerahan |
scripts/ae/bridge/aset-svg.py, svg2png.cjs, rig-tokoh.py | BRIDGE: aset ilustrasi dari kode → SVG + manifest → PNG 2× (puppeteer); generator ±90 op ae_batch untuk satu karakter bersendi |
references/anti-ppt.md | sebelum mendesain adegan |
references/opener-konsep.md | OPENER/PROMO sebelum rundown: tiga kandidat konsep, menu 19 konsep (termasuk estafet benda, pamer sistem brand, klaim → cara → hasil, ekosistem UI hidup, pop flat berfoto, menembus bentuk bergradien, dan tur produk berselang klaim, semuanya diturunkan dari layanan/aset/produk brand), panduan layout-warna-ritme, panduan animasi UI untuk app/SaaS, panduan foto dalam opener (input user / generate via MCP), menu fitur, pembuka, penutup, transisi tanpa cut yang dibawa objek, sidik jari struktur — mencegah kerangka template |
references/explainer.md | bila yang diminta explainer/video penjelasan (kartun+VO, jurnalisme visual foto, katalog putih, sketsa vintage, atau aksi kontinu; default 16:9, 9:16 hanya bila diminta) |
references/architecture.md | saat scaffold / butuh alasan di balik struktur |
references/techniques.md | saat membangun adegan & efek (termasuk ukuran shot §3b, grainy gradient §7d, menu gaya render objek §7e, dan video sebagai layer footage §9b) |
references/roadmap.md | saat mengembangkan skill ini lebih lanjut |
assets/starter-opener.html | titik awal OPENER/promo — arsitektur + perkakas (8 pintu teks, transisi opsional); SENGAJA tanpa urutan adegan contoh, kerangka dari opener-konsep.md |
assets/starter-explainer.html | EXPLAINER gaya aksi kontinu (vektor): mode aliran (strip + hero + objek dunia) + view peta + whip + contoh mode kolase |
assets/starter-explainer-kartun.html | EXPLAINER kartun kolase: kertas krem + grain + noda, cutout ilustrasi, Bricolage + Caveat, pill warna |
assets/starter-explainer-jurnalisme.html | EXPLAINER jurnalisme visual: hitam + grain, foto asli + tag sumber, Barlow Condensed + Plex Mono, highlighter kuning/merah, anotasi putus |
assets/starter-explainer-katalog.html | EXPLAINER katalog putih: grid samar, cutout foto, Archivo Black + Caveat + Inter, highlighter kuning |
assets/starter-explainer-sketsa.html | EXPLAINER sketsa vintage: kertas sepia (tekstur CSS), cutout ukiran multiply, Playfair + Garamond + Cinzel, karat & emas |
scripts/serve.py | dev server no-cache (opsional, butuh Python; hanya bila memakai module lokal) |
scripts/snap.mjs | VERIFIKASI: potret detik kunci → lembar kontak (opsional, butuh Node + puppeteer) |
scripts/vo-pauses.html | deteksi jeda VO di browser (pengganti ffmpeg silencedetect, tanpa instal) |
scripts/export-frames.mjs | EXPORT: render semua frame → MP4, hanya bila diminta (opsional, butuh Node + puppeteer + ffmpeg) |
© bangtutorial, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 48 other files (scripts, references, assets) in the repository root of bangtutorial/bang-motion.
Open the folder on GitHubat commit c1aa65e
Bang Motion next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Bang Motion this skillbangtutorial/bang-motion | 568 | — | ~9.7k | Automated safety check: Pass | MIT | |
| YUV Video Directorhoodini/ai-agents-skills | 282 | — | ~2.2k | Automated safety check: Pass | None | |
| HyperFrames Animationheygen-com/hyperframes | 58k | 3 repos | ~2.1k | Automated safety check: Pass | Apache-2.0 | |
| Painted Animationtuzhechen2005/opus-video-skills | 121 | 1 repos | ~1.9k | Automated safety check: Pass | Custom licence | |
| HyperFrames Video Compositionsspinabot/brigade | 11k | — | ~1.6k | Automated safety check: Pass | MIT | |
| Qiaomu Cutjoeseesun/qiaomu-cut-skill | 369 | — | ~6.8k | Automated safety check: Notes | MIT |
hoodini/ai-agents-skills
Turns an idea or script into a branded MP4 by routing each scene to HyperFrames, Lottie, Manim or GSAP, wrapping it in one brand frame file, then checking and rendering.
heygen-com/hyperframes
Collects motion rules, scene blueprints, transitions and runtime adapters for HyperFrames video compositions, with GSAP as the default animation runtime.
tuzhechen2005/opus-video-skills
Make hand-painted watercolour-and-ink cartoon videos (MP4) with code — p5.js + p5.brush rendered frame by frame in headless Chrome, encoded with ffmpeg — starring Clawd or any character.
spinabot/brigade
Writes HTML compositions with a GSAP timeline that the render_video tool turns into deterministic MP4 videos from data, text or layouts.
joeseesun/qiaomu-cut-skill
把一句话需求转成可复现、可验收视频工程的乔木智能剪辑导演。Use when the user asks to create, plan, edit, remix, explain, narrate, subtitle, animate, composite, or render a video—including one-line requests such as “制作一个科普视频:介绍…
FavioVazquez/showtime
A skill your agent uses when the user wants a video made, edited or finished: a launch or promo, product demo, explainer, trailer or teaser, tutorial or walkthrough, a screen recording turned into a…
Works with
Categories
Membangun motion graphic sinematik di browser (promo video, opener, intro, bumper, kinetic typography, explainer/video penjelasan bergambar 16:9 atau 9:16) memakai HTML + CSS + GSAP (+ Three.js bila…. Bang Motion is an agent skill from bangtutorial/bang-motion.js bila perlu), dengan hasil yang bergerak seperti video sungguhan — bukan slide presentasi.
Bang Motion fits situations like: tasks that involve Motion graphics; tasks that involve Video production.
Run `npx skills add bangtutorial/bang-motion --skill bang-motion -a claude-code`. Or copy the skill folder (the bangtutorial/bang-motion repository) into .claude/skills/bang-motion in your project. Claude Code loads it when a task matches its description.
Run `npx skills add bangtutorial/bang-motion --skill bang-motion -a codex`. Or copy the skill folder (the bangtutorial/bang-motion repository) into .agents/skills/bang-motion in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add bangtutorial/bang-motion --skill bang-motion -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/bang-motion, .gemini/skills/bang-motion, .github/skills/bang-motion and .opencode/skills/bang-motion in your project.
Going by SKILL.md and its folder, Bang Motion needs the command-line tools its instructions call (npm, ffmpeg, winget and brew). Our summary lists: Python 3; Node.js.
SKILL.md names 1 domain. As links in the text: youtube.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Bang Motion is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 9.7k tokens (SKILL.md is roughly 39k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 46k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Bang Motion: YUV Video Director (hoodini/ai-agents-skills, 282 stars), HyperFrames Animation (heygen-com/hyperframes, 58k stars), Painted Animation (tuzhechen2005/opus-video-skills, 121 stars) and HyperFrames Video Compositions (spinabot/brigade, 11k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
bangtutorial (a GitHub user) maintains it in bangtutorial/bang-motion, which has 568 GitHub stars. The repository was last updated on September 15, 2026.
Source: bangtutorial/bang-motion on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.