diff --git a/.gitignore b/.gitignore index 1c4bebf..cec0799 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,8 @@ coverage/ playground/public/clips/*.fbx playground/public/clips/*.glb playground/public/clips/.DS_Store +# Exception: the jumping-jacks showcase clip is committed so Vercel serves it +# directly (like public/models/character.glb). Prod has no /clips CDN, so an +# ignored clip 404s and silently falls back to procedural. Keep the other large +# Mixamo clips ignored — they're unused on the marketing surfaces. +!playground/public/clips/jumping-jacks.fbx diff --git a/playground/public/clips/jumping-jacks.fbx b/playground/public/clips/jumping-jacks.fbx new file mode 100644 index 0000000..80dd465 Binary files /dev/null and b/playground/public/clips/jumping-jacks.fbx differ diff --git a/playground/src/clips.ts b/playground/src/clips.ts index f216180..64fdea6 100644 --- a/playground/src/clips.ts +++ b/playground/src/clips.ts @@ -5,9 +5,11 @@ * marketing surfaces, while the procedural DSL stays the source of truth for * every un-clipped movement. * - * The FBX binaries live in `public/clips/` (gitignored, served from storage/CDN - * in production). A movement plays its clip only when it declares `clip ""` - * AND the skinned character is active; anything missing falls back to procedural. + * The FBX binaries live in `public/clips/`. The `jumping-jacks` showcase clip is + * committed so Vercel serves it directly (production has no /clips CDN rewrite); + * the other, unused clips stay gitignored. A movement plays its clip only when it + * declares `clip ""` AND the skinned character is active; anything missing + * (e.g. an un-committed clip that 404s in prod) falls back to procedural. */ export const SHOWCASE_CLIPS: Record = { walk: "/clips/walk.fbx",