Skip to content
Back to skills

Render 3d Product Showcase

ASecurity

Assemble a premium 3D product-showcase ad from a config — four beat clips (an orbiting hero rotation, a macro push-in, a physics reveal, a typographic close) normalized to the chosen backdrop colour, hard-concatenated in order, closed on a deterministic Playwright brand end card, and mixed under one instrumental bed at loudnorm I=-16 (music-only, no VO). Ships the runnable build_endcard.py + build_masters.py; the rotation/macro clips are create-video-fal i2v seeded on a create-image-fal style...

  • 1,232 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 4, 2026
ai-agentsgo

Works with

  • cli

Security analysis

A100/100

Pro scans all 9 files and shows the line behind each finding

Scanned September 29, 2026

npx -y skills add gooseworks-ai/goose-skills --skill render-3d-product-showcase --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Render 3d Product Showcase?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Render 3d Product Showcase
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/gooseworks-ai-render-3d-product-showcase/badge)](https://www.skillsdirectory.com/skills/gooseworks-ai-render-3d-product-showcase)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: render-3d-product-showcase
description: Assemble a premium 3D product-showcase ad from a config — four beat clips (an orbiting hero rotation, a macro push-in, a physics reveal, a typographic close) normalized to the chosen backdrop colour, hard-concatenated in order, closed on a deterministic Playwright brand end card, and mixed under one instrumental bed at loudnorm I=-16 (music-only, no VO). Ships the runnable build_endcard.py + build_masters.py; the rotation/macro clips are create-video-fal i2v seeded on a create-image-fal styled hero, the reveal is Veo3 i2v, and the bed is create-music-elevenlabs. Use for the 3d-product-showcase format.
status: active
---

# render-3d-product-showcase

Assemble a premium **3D product-showcase** ad from a config: one real product floats centered
on a clean seamless backdrop (colour and lighting chosen per brand) and sells itself across four beats — an orbiting hero
rotation, a macro push-in on the surface detail, a physics reveal (`exploded_view` /
`particle_disintegration` / `liquid_splash`, or `rotation_only`), then a typographic brand
close. This capability is the **FREE, deterministic assembly** that stitches the delivered
beats into the master; it spends nothing.

`scripts/config.example.json` is the worked example (DIBS Beauty "Desert Island Duo", ~15s
720×1280 9:16); `scripts/build_endcard.py` + `scripts/build_masters.py` are the runnable free
assembly; `scripts/PIPELINE.md` maps every config block to its source step; `scripts/README.md`
documents the assembly.

## Choices

The recipe asks these before any paid step; this capability only assembles their result. The
demo's value is an example, never a default:

- **`backdrop`** → `studio_look.bg` (the pad colour `build_masters.py` uses) + the beat prompts.
  Demo: bubblegum pink `#F8B8C6`.
- **`lighting_mood`** → `studio_look.lighting_preset` / `rim_light` + the beat prompts. Demo:
  `luxe_botanical_warm` (warm rim light upper-right, warm bokeh).
- **`reveal`** → `reveal_variant` + `beats[2]`. Demo: `exploded_view`.
- **`music`** → `music.prompt` (the bed passed to `build_masters.py --music`). Demo: uplifting
  pop-ambient, drop at 7s, 100 BPM.

## Run

This is the **FREE, deterministic** assembly stage — it spends nothing. The paid inputs are
separate capabilities: Beats 1 & 2 (hero rotation + macro push-in) are **`create-video-fal`
image-to-video seeded on a `create-image-fal` styled hero** — a nano-banana restyle of the
brand's REAL product photo onto the seamless studio set, so the product geometry is real and
never AI-invented; Beat 3 (the physics reveal) is a Veo3 image-to-video seeded on Beat 1's last
frame (also `create-video-fal`); the one instrumental bed is `create-music-elevenlabs`. **There
is no Higgsfield / Marketing Studio in this format** — everything paid runs through the
fal-proxy / elevenlabs-proxy so it bills the Ads agent.

Given those beats + the brand wordmark, this capability:

1. `build_endcard.py --bg beat1_last_frame.png --headline "…" --wordmark <wordmark> --out endcard.png`
   — the deterministic Beat-4 hyperframe (Playwright 1080×1920 → ffmpeg-scale to 720×1280).
2. `build_masters.py --config config.json --clips working/clips --endcard endcard.png --music music.mp3 --out master.mp4`
   — trims each beat to its window, normalizes to the brand canvas, hard-concats, mixes the bed.

Re-cuts reuse the existing beats and cost **$0**.

## Contract (the free assembly)

- **Music-only, no VO.** One ElevenLabs instrumental bed carries the film; nobody speaks. Do
  not add a spoken voiceover or a second bed.
- **Beat 1's last frame is the shared anchor.** Extract it (`ffmpeg -sseof -0.1 … -frames:v 1`)
  once — it seeds the Veo3 Beat 3 AND backs the Beat 4 end-card hyperframe, so the product +
  lighting carry across all four beats and the geometry never AI-drifts.
- **End card via Playwright from the real wordmark — never AI-render brand text.** The brand
  close is a deterministic hyperframe (Beat 1 last frame + scrim + serif headline — `--headline-font`, Playfair Display by default — + the real
  wordmark, recolored for contrast). `build_endcard.py` auto-picks a legible headline color from
  the bg luminance and renders 1080×1920 then scales to 720×1280. The headline font is loaded from Google
  Fonts; bundle the .ttf if determinism offline matters. If the resolvable Playwright wants an
  uninstalled browser build, export `PW_CHROME=<installed Chromium binary>` (shoot.js honours it).
- **Normalize each beat to the brand canvas, hard-concat.** Per beat: trim to the window, strip
  the i2v model's auto-audio (`-an`), scale + pad to 720×1280 with the brand `bg` pad color,
  24fps, yuv420p, crf 18 → concat demuxer. No dissolves.
- **FFmpeg mix, deterministic, FREE.** Mix one instrumental bed (`afade` in/out +
  `loudnorm I=-16 TP=-1.5 LRA=11`, apad + atrimmed to master duration) over the concatenated
  beats → a 720×1280 h264+aac master. No paid calls, no keys.

Files in this skill

  • SKILL.md4.2 KB
  • scripts/PIPELINE.md5 KB
  • scripts/README.md3.7 KB
  • scripts/build_endcard.py5.5 KB
  • scripts/build_masters.py4.8 KB
  • scripts/config.example.json10.1 KB
  • scripts/shoot.js1.2 KB
  • skill.meta.json329 B
  • tests/smoke-test.md1.1 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…