Skip to content
Back to skills

Render Multiworld

ASecurity

Assemble a silent, music-led 3-world product-tour ad — trim and hard-cut-concat the per-world WIDE-arrival + top-down-macro clips, composite the HTML/Playwright brand end card (approved headline + handwritten product labels + arrows) over an AI flat-lay background, and mux one music bed into a 720x1280 web master. FREE, deterministic assembly (Playwright + PIL/HTML + FFmpeg); the recipe supplies the config and gates the paid clip/background/music calls. Use for the multiworld-product-tour for...

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

Works with

  • cli
  • mcp

Security analysis

A100/100

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

Scanned September 29, 2026

npx -y skills add gooseworks-ai/goose-skills --skill render-multiworld --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Render Multiworld?

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

Security grade badge for Render Multiworld
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/gooseworks-ai-render-multiworld/badge)](https://www.skillsdirectory.com/skills/gooseworks-ai-render-multiworld)

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-multiworld
description: Assemble a silent, music-led 3-world product-tour ad — trim and hard-cut-concat the per-world WIDE-arrival + top-down-macro clips, composite the HTML/Playwright brand end card (approved headline + handwritten product labels + arrows) over an AI flat-lay background, and mux one music bed into a 720x1280 web master. FREE, deterministic assembly (Playwright + PIL/HTML + FFmpeg); the recipe supplies the config and gates the paid clip/background/music calls. Use for the multiworld-product-tour format.
status: active
---

# render-multiworld

Assemble a silent, music-led "multi-world product tour" ad (≈27s, 9:16) — a tour of three
distinct "third-place" worlds (chosen per video), one per product/variant, that lands on a Pinterest-style brand
end card. Each world is a **two-shot pair**: a ~4.5s WIDE kinetic-calm ARRIVAL (the
environment dominates, the product stays small) hard-cutting to a ~3.5s top-down MACRO
product MOMENT (the sealed product nested with its companion prop). Variant identity is
carried by the **world + companion prop**, not by product color. No VO, no captions in
the scenes — one music bed carries the whole thing.

This capability is the **FREE, deterministic assembler**. The paid steps — the six
per-world clips, the AI flat-lay end-card background, the ElevenLabs music bed — are
separate capabilities (see the gap below for the clips); the recipe orchestrates and gates
them.

## Choices

The calling recipe asks the user these before any paid step; this capability only assembles
what they produced. The worked example (Primally Pure) values are examples, never defaults.

- **worlds** — the three places toured → `config.worlds`, `config.scene_grid` (demo: pilates
  studio / spa anteroom / farmers market).
- **visual_style** — the worlds' look → `config.visual_style`, `worlds[*].palette`,
  `end_card.nb2_prompt` (demo: sunlit-natural / handmade).
- **music** — the bed's genre/mood → `config.music.prompt` (demo: warm acoustic-pop).

Nothing in the assembly keys on world slugs or names: clips are ordered by
`scene_grid[].scene`, and the end-card copy is whatever `end_card.overlay` holds.

## Run
1. **Trim clips (FFmpeg, FREE)** — trim each per-world clip to its `scene_grid[].duration_sec`
   (arrival 4.5 / macro 3.5), re-encode to the master spec (720×1280, 24fps, yuv420p,
   scale+pad, audio stripped). Trimming the macro so the top-down portion dominates also
   hides any label misrender at the clip's upright tilt extreme.
2. **End card (Playwright/HTML, FREE)** — screenshot `end_card.html` over the AI flat-lay
   BACKGROUND, then FFmpeg-encode to a `dwell_sec` (3.0s) static clip. Headline
   (`overlay.headline`, approved brand copy — the demo's was "FIND YOUR DAILY."; Inter 900),
   one handwritten Caveat product label + hand-drawn SVG arrow per product, Playfair
   wordmark + URL. **End-card text is HTML, NEVER AI-rendered** —
   the AI step produces the background only.
3. **Hard-cut concat (FFmpeg, FREE)** — concat the six trimmed clips in scene order
   (S01 arrival → S02 macro → … → S06 macro) + the end-card clip. Hard cuts (no dissolves),
   normalized to one fps/codec first so concat-copy is safe.
4. **Music mux + web encode (FFmpeg, FREE)** — mux the single instrumental bed onto the
   silent concat with `afade` in/out + `loudnorm I=-16:TP=-1.5:LRA=11`, AAC 192k, clamped to
   27.0s, explicit single-audio map so no silent scene-track leaks in → the H.264 (+ AAC)
   720×1280 master.

## Contract
- Deterministic + FREE (Playwright + PIL/HTML + FFmpeg); no paid calls, no AI-rendered
  end-card text. Iterate the cut for free by re-running the assembly.
- **Silent, music-led** — no VO, no captions during the scenes; on-screen text appears
  ONLY on the end card, HTML-composited.
- Per world = WIDE arrival (bottle small, environment dominant) → top-down macro (product +
  botanical, no hands). Hard cuts between scenes; end card is a static hold with legible
  HTML text; music starts at t=0 and fades the tail.
- **Sealed-bottle rule** is enforced at QC — trim/concat can't fix an open-cap or spraying
  clip; that's a re-roll (paid), not an assembly fix. Identity via world + botanical, never
  bottle color.
- The template recipe (DB) supplies the per-video config (worlds, palettes, companion props
  and music mood from the user's choices; prompts; end-card copy from the brand kit); this
  capability is the generic assembler.

## Gaps / routing notes
- **Update:** the current recipe makes the six clips with `create-image-fal` (nano_banana_2
  keyframe edit grounded on the real `product_image`) → `create-video-fal` (Kling 3.0 i2v),
  so the gap below only applies to reproducing the demo's Higgsfield build exactly.
- **The demo's clips used a Higgsfield-proxy capability that does not exist.** The
  source molecule fires them through **Higgsfield Marketing Studio**
  (`marketing_studio_video/product_showcase`) grounded on imported product UUIDs, with the
  sealed-bottle safety block front-loaded on every prompt. `create-video-fal` is a FAL i2v
  proxy — a different provider and job shape — so it cannot serve this step. Wiring the clip
  step to templates-as-data requires a **`create-video-higgsfield`** proxy (Marketing Studio
  `product_showcase`, imported-product grounding, per-prompt safety block) that **does not
  exist yet**. Until it lands, the clips are generated via the Higgsfield Marketing Studio
  path directly (CLI/MCP) and that step is **not a fetchable capability**.
- **The end-card background** is an AI flat-lay render (text-free, all three sealed bottles +
  botanicals) that in prod routes through **create-image-fal** (NB2); only the HTML text
  overlay + encode run locally as FREE assembly.
- **The music** is a paid ElevenLabs call that in prod routes through
  **create-music-elevenlabs**; only the loudnorm + fade + mux run locally as FREE assembly.

See `scripts/PIPELINE.md` for the full config-field → source-step map and `scripts/README.md`
for the FREE-assembly detail.

Files in this skill

  • SKILL.md4.9 KB
  • scripts/PIPELINE.md6.1 KB
  • scripts/README.md5.3 KB
  • scripts/config.example.json11.7 KB
  • skill.meta.json311 B
  • tests/smoke-test.md1.2 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…