Examples

Three end-to-end walkthroughs — brief in, rendered sequence out. Each traces the full pipeline: brief authoring, scene generation, sequence planning, and evaluation scoring.


Product Launch (30s)

A SaaS analytics dashboard launch using the product-launch template. Confident energy, prestige style, 30-second target.

Brief

{
  "brief_id": "brief_launch_v1",
  "template": "product-launch",
  "project": {
    "title": "Meridian Analytics",
    "description": "30-second product launch for our real-time analytics dashboard. Hero the UI, show key features, close with brand.",
    "duration_target_s": 30
  },
  "tone": {
    "mood": "confident",
    "energy": "medium",
    "audience": "product managers and data teams"
  },
  "content": {
    "headline": "See Everything. Miss Nothing.",
    "sections": [
      {
        "label": "Hero",
        "text": "Introducing Meridian Analytics",
        "assets": ["hero-dash"],
        "emphasis": "strong"
      },
      {
        "label": "Features",
        "text": "Real-time dashboards. Custom funnels. Team alerts.",
        "assets": ["ui-funnels", "ui-alerts"]
      },
      {
        "label": "Social Proof",
        "text": "Trusted by 2,400+ teams worldwide",
        "emphasis": "normal"
      },
      {
        "label": "CTA",
        "text": "Start your free trial",
        "assets": ["logo-meridian"]
      }
    ]
  },
  "assets": [
    { "id": "hero-dash", "path": "assets/hero-dashboard.png", "type": "image", "hint": "product UI hero shot", "role": "hero" },
    { "id": "ui-funnels", "path": "assets/screen-funnels.png", "type": "image" },
    { "id": "ui-alerts", "path": "assets/screen-alerts.png", "type": "image" },
    { "id": "logo-meridian", "path": "assets/logo-meridian.svg", "type": "svg", "hint": "company logo" }
  ],
  "constraints": {
    "must_include": ["hero-dash", "logo-meridian"]
  }
}

Style resolution

No explicit style set. The pipeline resolves it:

  1. No project.style field — skip
  2. Template product-launch default — prestige
  3. Confirmed: tone.energy: "medium" aligns with prestige

Style pack: prestige (editorial personality). Longer holds, selective crossfades, push_in/drift camera.

Generated scenes

generate_scenes runs the 8-stage pipeline and produces 5 scenes:

[
  {
    "scene_id": "sc_opening_001",
    "metadata": {
      "content_type": "typography",
      "intent_tags": ["opening"],
      "visual_weight": "heavy",
      "motion_energy": "subtle"
    },
    "layers": [
      { "id": "bg", "type": "html", "content": { "background": "#0a0a0a" } },
      { "id": "fg", "type": "text", "content": { "text": "See Everything. Miss Nothing.", "animation": "word-reveal" } }
    ]
  },
  {
    "scene_id": "sc_hero_002",
    "metadata": {
      "content_type": "product_shot",
      "intent_tags": ["hero"],
      "visual_weight": "heavy",
      "motion_energy": "moderate"
    },
    "layers": [
      { "id": "bg", "type": "html" },
      { "id": "device", "type": "image", "asset_ref": "hero-dash" },
      { "id": "content", "type": "text", "content": { "text": "Introducing Meridian Analytics" } }
    ]
  },
  {
    "scene_id": "sc_features_003",
    "metadata": {
      "content_type": "ui_screenshot",
      "intent_tags": ["detail"],
      "visual_weight": "medium",
      "motion_energy": "moderate"
    },
    "layers": [
      { "id": "bg", "type": "html" },
      { "id": "device", "type": "image", "asset_ref": "ui-funnels" },
      { "id": "content", "type": "text", "content": { "text": "Real-time dashboards. Custom funnels. Team alerts." } }
    ]
  },
  {
    "scene_id": "sc_proof_004",
    "metadata": {
      "content_type": "typography",
      "intent_tags": ["emotional"],
      "visual_weight": "light",
      "motion_energy": "static"
    },
    "layers": [
      { "id": "bg", "type": "html" },
      { "id": "fg", "type": "text", "content": { "text": "Trusted by 2,400+ teams worldwide", "animation": "scale-cascade" } }
    ]
  },
  {
    "scene_id": "sc_cta_005",
    "metadata": {
      "content_type": "brand_mark",
      "intent_tags": ["closing"],
      "visual_weight": "medium",
      "motion_energy": "subtle"
    },
    "layers": [
      { "id": "bg", "type": "html" },
      { "id": "center", "type": "image", "asset_ref": "logo-meridian" },
      { "id": "text", "type": "text", "content": { "text": "Start your free trial" } }
    ]
  }
]

What the pipeline did:

  • Stage 2: Classified hero-dash as product_shot (hint: "product UI hero shot"), ui-funnels and ui-alerts as ui_screenshot (filename convention), logo-meridian as brand_mark (hint: "company logo")
  • Stage 3: Loaded the product-launch template — Hero + Features + optional Social Proof + CTA
  • Stage 5: Allocated durations weighted by emphasis — the strong Hero section gets 1.5x weight
  • Stage 6: "Social Proof" label mapped to emotional intent. must_include assets force-placed into matching scenes

Sequence manifest

plan_sequence with style prestige produces:

#SceneDurationTransitionCamera
1sc_opening_0013.0snonestatic
2sc_hero_0023.0scrossfade 400mspush_in 0.2
3sc_features_0033.0shard cutdrift 0.2
4sc_proof_0043.5scrossfade 400msstatic
5sc_cta_0053.0shard cutstatic

Total: 15.5s (within the prestige range for 5 scenes at this energy level).

Planner decisions:

  • Opening and hero placed first by intent bucketing
  • sc_proof_004 (emotional intent) triggers crossfade 400ms per prestige's on_intent rule
  • sc_features_003 gets drift 0.2 because prestige maps ui_screenshot to drift camera
  • sc_hero_002 gets push_in 0.2 because prestige maps product_shot to push_in
  • sc_proof_004 and sc_cta_005 are typography/brand_mark — no camera rule matches, stays static

Evaluation

{
  "score": 86,
  "dimensions": {
    "pacing":    { "score": 90, "findings": [] },
    "variety":   { "score": 78, "findings": [
      { "severity": "info", "message": "2 consecutive 'heavy' visual weight scenes (opening, hero)" }
    ]},
    "flow":      { "score": 88, "findings": [] },
    "adherence": { "score": 88, "findings": [] }
  }
}

Variety takes a minor hit from the opening-to-hero weight run. Everything else scores well — pacing matches prestige hold durations, flow has correct intent progression (opening first, closing last), and all transitions/camera overrides match the style pack rules.


Tutorial Walkthrough (20s)

An onboarding tutorial using the tutorial template. Clean, educational, no visual embellishment.

Brief

{
  "brief_id": "brief_tutorial_v1",
  "template": "tutorial",
  "project": {
    "title": "Getting Started with Canvas",
    "description": "20-second onboarding walkthrough showing the 3-step setup flow.",
    "duration_target_s": 20,
    "style": "minimal"
  },
  "tone": {
    "mood": "clear",
    "energy": "low",
    "audience": "new users"
  },
  "content": {
    "headline": "Set up in 3 steps",
    "sections": [
      {
        "label": "Intro",
        "text": "Getting Started with Canvas"
      },
      {
        "label": "Step 1",
        "text": "Create your workspace",
        "assets": ["ui-step1"]
      },
      {
        "label": "Step 2",
        "text": "Import your design tokens",
        "assets": ["ui-step2"],
        "emphasis": "strong"
      },
      {
        "label": "Step 3",
        "text": "Invite your team",
        "assets": ["ui-step3"]
      },
      {
        "label": "CTA",
        "text": "You're all set"
      }
    ]
  },
  "assets": [
    { "id": "ui-step1", "path": "assets/screen-workspace.png", "type": "image" },
    { "id": "ui-step2", "path": "assets/screen-tokens.png", "type": "image" },
    { "id": "ui-step3", "path": "assets/screen-invite.png", "type": "image" }
  ]
}

Style resolution

Explicit: project.style: "minimal". No inference needed.

Style pack: minimal (neutral-light personality). Uniform holds, hard cuts only, all cameras static.

Generated scenes

[
  {
    "scene_id": "sc_intro_001",
    "metadata": {
      "content_type": "typography",
      "intent_tags": ["opening"],
      "visual_weight": "medium",
      "motion_energy": "static"
    },
    "layers": [
      { "id": "bg", "type": "html" },
      { "id": "fg", "type": "text", "content": { "text": "Set up in 3 steps", "animation": "word-reveal" } }
    ]
  },
  {
    "scene_id": "sc_step1_002",
    "metadata": {
      "content_type": "ui_screenshot",
      "intent_tags": ["detail", "informational"],
      "visual_weight": "medium",
      "motion_energy": "static"
    },
    "layers": [
      { "id": "bg", "type": "html" },
      { "id": "device", "type": "image", "asset_ref": "ui-step1" },
      { "id": "content", "type": "text", "content": { "text": "Create your workspace" } }
    ]
  },
  {
    "scene_id": "sc_step2_003",
    "metadata": {
      "content_type": "ui_screenshot",
      "intent_tags": ["detail", "informational"],
      "visual_weight": "heavy",
      "motion_energy": "static"
    },
    "layers": [
      { "id": "bg", "type": "html" },
      { "id": "device", "type": "image", "asset_ref": "ui-step2" },
      { "id": "content", "type": "text", "content": { "text": "Import your design tokens" } }
    ]
  },
  {
    "scene_id": "sc_step3_004",
    "metadata": {
      "content_type": "ui_screenshot",
      "intent_tags": ["detail", "informational"],
      "visual_weight": "medium",
      "motion_energy": "static"
    },
    "layers": [
      { "id": "bg", "type": "html" },
      { "id": "device", "type": "image", "asset_ref": "ui-step3" },
      { "id": "content", "type": "text", "content": { "text": "Invite your team" } }
    ]
  },
  {
    "scene_id": "sc_closing_005",
    "metadata": {
      "content_type": "typography",
      "intent_tags": ["closing"],
      "visual_weight": "light",
      "motion_energy": "static"
    },
    "layers": [
      { "id": "bg", "type": "html" },
      { "id": "fg", "type": "text", "content": { "text": "You're all set", "animation": "scale-cascade" } }
    ]
  }
]

What the pipeline did:

  • All three step screenshots classified as ui_screenshot by filename convention (screen-*)
  • Step 2 gets visual_weight: "heavy" because emphasis: "strong" was set — the generator promotes weight for emphasized sections
  • "Step 1/2/3" labels mapped to detail + informational intents
  • No hero assets, no emotional sections — the tutorial template keeps things flat and sequential
  • All motion_energy is static — neutral-light personality uses spotlight and cursor attention primitives instead of kinetic movement

Sequence manifest

plan_sequence with style minimal:

#SceneDurationTransitionCamera
1sc_intro_0014.0snonestatic
2sc_step1_0024.0shard cutstatic
3sc_step2_0034.0shard cutstatic
4sc_step3_0044.0shard cutstatic
5sc_closing_0054.0shard cutstatic

Total: 20.0s — matches the duration target exactly.

Planner decisions:

  • Minimal style uses uniform durations: hold_durations.static = 4.0s
  • Hard cuts only — minimal has no crossfade or whip-wipe rules
  • All cameras forced static by force_static camera rule
  • Variety post-processing: opening/closing stay at edges; the three middle ui_screenshot scenes are consecutive (same content type), but the variety rule cannot swap because all three are the same type — this is expected for tutorials

Evaluation

{
  "score": 82,
  "dimensions": {
    "pacing":    { "score": 95, "findings": [] },
    "variety":   { "score": 58, "findings": [
      { "severity": "warning", "message": "3 consecutive 'ui_screenshot' content type scenes" },
      { "severity": "info", "message": "All scenes have 'static' motion energy" }
    ]},
    "flow":      { "score": 85, "findings": [] },
    "adherence": { "score": 92, "findings": [] }
  }
}

Variety scores lower — three consecutive ui_screenshot scenes and uniform static energy. This is inherent to tutorials and not a problem. Pacing and adherence score high because the minimal style pack is being followed precisely.


Brand Story (45s)

A brand narrative using the brand-story template. Emotional, cinematic, slow build.

Brief

{
  "brief_id": "brief_brand_v1",
  "template": "brand-story",
  "project": {
    "title": "The Story of Atelier",
    "description": "45-second brand narrative. Slow emotional build from origin story through craft to vision.",
    "duration_target_s": 45,
    "style": "intimate"
  },
  "tone": {
    "mood": "warm",
    "energy": "low",
    "audience": "design-conscious consumers"
  },
  "content": {
    "headline": "Made by Hand. Meant to Last.",
    "sections": [
      {
        "label": "Opening",
        "text": "Every piece begins with a question",
        "emphasis": "strong"
      },
      {
        "label": "Origin",
        "text": "Founded in a Brooklyn studio, 2019",
        "assets": ["photo-studio"]
      },
      {
        "label": "Craft",
        "text": "Slow-made leather goods for everyday carry",
        "assets": ["photo-hands", "photo-detail"]
      },
      {
        "label": "Testimonial",
        "text": "\"The only bag I'll ever need.\" — Sarah K.",
        "emphasis": "strong"
      },
      {
        "label": "Team",
        "text": "A team of 12 makers in Gowanus",
        "assets": ["photo-team"]
      },
      {
        "label": "Vision",
        "text": "Objects that outlive trends",
        "assets": ["photo-product"],
        "emphasis": "strong"
      },
      {
        "label": "CTA",
        "text": "Explore the collection",
        "assets": ["logo-atelier"]
      }
    ]
  },
  "assets": [
    { "id": "photo-studio", "path": "assets/studio-wide.jpg", "type": "image", "hint": "wide shot of the studio space" },
    { "id": "photo-hands", "path": "assets/hands-stitching.jpg", "type": "image", "hint": "close-up of hands stitching leather" },
    { "id": "photo-detail", "path": "assets/detail-buckle.jpg", "type": "image", "hint": "detail shot of brass buckle" },
    { "id": "photo-team", "path": "assets/team-portrait.jpg", "type": "image", "hint": "team group portrait" },
    { "id": "photo-product", "path": "assets/product-bag.jpg", "type": "image", "hint": "hero product shot" },
    { "id": "logo-atelier", "path": "assets/logo-atelier.svg", "type": "svg", "hint": "brand wordmark" }
  ],
  "constraints": {
    "must_include": ["photo-studio", "photo-product", "logo-atelier"],
    "brand_colors": ["#2C2418", "#D4C5A9", "#8B7355"]
  }
}

Style resolution

Explicit: project.style: "intimate".

Style pack: intimate (cinematic-dark personality). Longer holds (3.0-4.0s), crossfade 500ms default, 800ms crossfade for emotional scenes, push_in for portraits and product shots, drift for detail.

Generated scenes

[
  {
    "scene_id": "sc_opening_001",
    "metadata": {
      "content_type": "typography",
      "intent_tags": ["opening", "hero"],
      "visual_weight": "heavy",
      "motion_energy": "subtle"
    },
    "layers": [
      { "id": "bg", "type": "html", "content": { "background": "#2C2418" } },
      { "id": "fg", "type": "text", "content": { "text": "Made by Hand. Meant to Last.", "animation": "word-reveal" } }
    ]
  },
  {
    "scene_id": "sc_origin_002",
    "metadata": {
      "content_type": "product_shot",
      "intent_tags": ["detail"],
      "visual_weight": "medium",
      "motion_energy": "static"
    },
    "layers": [
      { "id": "bg", "type": "html" },
      { "id": "device", "type": "image", "asset_ref": "photo-studio" },
      { "id": "content", "type": "text", "content": { "text": "Founded in a Brooklyn studio, 2019" } }
    ]
  },
  {
    "scene_id": "sc_craft_003",
    "metadata": {
      "content_type": "collage",
      "intent_tags": ["detail"],
      "visual_weight": "medium",
      "motion_energy": "subtle"
    },
    "layers": [
      { "id": "cell-1", "type": "image", "asset_ref": "photo-hands" },
      { "id": "cell-2", "type": "image", "asset_ref": "photo-detail" },
      { "id": "content", "type": "text", "content": { "text": "Slow-made leather goods for everyday carry" } }
    ]
  },
  {
    "scene_id": "sc_testimonial_004",
    "metadata": {
      "content_type": "typography",
      "intent_tags": ["emotional"],
      "visual_weight": "heavy",
      "motion_energy": "static"
    },
    "layers": [
      { "id": "bg", "type": "html" },
      { "id": "fg", "type": "text", "content": { "text": "\"The only bag I'll ever need.\" — Sarah K.", "animation": "scale-cascade" } }
    ]
  },
  {
    "scene_id": "sc_team_005",
    "metadata": {
      "content_type": "portrait",
      "intent_tags": ["detail"],
      "visual_weight": "medium",
      "motion_energy": "static"
    },
    "layers": [
      { "id": "bg", "type": "html" },
      { "id": "left", "type": "image", "asset_ref": "photo-team" },
      { "id": "right", "type": "text", "content": { "text": "A team of 12 makers in Gowanus" } }
    ]
  },
  {
    "scene_id": "sc_vision_006",
    "metadata": {
      "content_type": "product_shot",
      "intent_tags": ["emotional", "hero"],
      "visual_weight": "heavy",
      "motion_energy": "moderate"
    },
    "layers": [
      { "id": "bg", "type": "html" },
      { "id": "device", "type": "image", "asset_ref": "photo-product" },
      { "id": "content", "type": "text", "content": { "text": "Objects that outlive trends" } }
    ]
  },
  {
    "scene_id": "sc_cta_007",
    "metadata": {
      "content_type": "brand_mark",
      "intent_tags": ["closing"],
      "visual_weight": "light",
      "motion_energy": "subtle"
    },
    "layers": [
      { "id": "bg", "type": "html" },
      { "id": "center", "type": "image", "asset_ref": "logo-atelier" },
      { "id": "text", "type": "text", "content": { "text": "Explore the collection" } }
    ]
  }
]

What the pipeline did:

  • Stage 2: photo-studio classified as product_shot (hint: "wide shot"), photo-hands and photo-detail grouped into a collage for the craft section (2 images, same section), photo-team as portrait (hint: "team group portrait"), photo-product as product_shot (hint: "hero product shot")
  • Stage 6: "Testimonial" label mapped to emotional intent. "Vision" section gets both emotional and hero because of strong emphasis on a late-stage section with a hero-hinted asset
  • Stage 6: Emotional scenes (testimonial, vision) distributed to positions 4 and 6 — even intervals through the sequence, avoiding clustering
  • Stage 6: brand_colors from constraints used for the opening scene background (#2C2418)

Sequence manifest

plan_sequence with style intimate:

#SceneDurationTransitionCamera
1sc_opening_0013.5snonestatic
2sc_origin_0024.0scrossfade 500mspush_in 0.15
3sc_craft_0033.5scrossfade 500msdrift 0.15
4sc_testimonial_0044.0scrossfade 800msstatic
5sc_team_0054.0scrossfade 500mspush_in 0.15
6sc_vision_0063.0scrossfade 800mspush_in 0.15
7sc_cta_0073.5scrossfade 500msstatic

Total: 25.5s (intimate holds are longer; the planner distributes the budget across 7 scenes).

Planner decisions:

  • Crossfade 500ms is the intimate default — used between most scenes
  • sc_testimonial_004 and sc_vision_006 get crossfade 800ms because of emotional intent (intimate's on_intent rule)
  • sc_origin_002 and sc_vision_006 get push_in 0.15 — intimate maps product_shot to push_in
  • sc_team_005 gets push_in 0.15 — intimate maps portrait to push_in
  • sc_craft_003 gets drift 0.15 — intimate maps detail intent to drift camera
  • Typography and brand_mark scenes stay static — no camera rule matches
  • Emotional scenes land at positions 4 and 6 (57% and 86% through the sequence), creating the slow build the brand-story template intends

Evaluation

{
  "score": 91,
  "dimensions": {
    "pacing":    { "score": 88, "findings": [] },
    "variety":   { "score": 90, "findings": [] },
    "flow":      { "score": 95, "findings": [
      { "severity": "info", "message": "Emotional scenes distributed at 57% and 86% — strong narrative arc" }
    ]},
    "adherence": { "score": 92, "findings": [] }
  }
}

High scores across all dimensions. The brand-story template naturally produces content type variety (typography, product_shot, collage, portrait, brand_mark), the emotional scenes create a strong narrative arc, and all intimate style rules are followed precisely.


Try it yourself

Copy any of these briefs and ask your AI to run them through the full pipeline:

Generate scenes from this brief, then plan the sequence with the prestige style, and evaluate the result. Show me the full output at each stage.
Take the tutorial example but switch it to the energy style. How does the sequence change?
Generate a brand-story brief for my company. I have 4 product photos and a logo. Target 30 seconds with the dramatic style.

Was this page helpful?