Style Packs

Ten JSON presets — from documentary's 5-second holds to kinetic's 1-second cuts — that control hold durations, transition rules, and camera overrides without changing code.

What are style packs?

A style pack controls three things about how your sequence is assembled:

  1. Hold durations — how long each scene is held, keyed by its motion energy level
  2. Transition rules — what kind of cuts or crossfades happen between scenes, and when
  3. Camera overrides — what camera moves are applied based on content type or intent

Style packs are data, not code. The sequence planner reads them from catalog/style-packs.json and interprets them through generic rule engines. No code changes are needed to add a new pack.

Available packs

Ten style packs ship with Animatic:

prestige

Personality: editorial. Content-forward editorial style. Longer holds let content breathe. Selective crossfades on weight changes and emotional moments. Push_in and drift camera for visual content. Best for product showcases and portfolio pieces.

energy

Personality: montage. Rapid sizzle-reel style. Short holds with a hard 4-second cap. Hard cuts dominate (70%) with whip-wipes cycling every 3rd transition (30%). All cameras forced static — montage personality forbids camera movement. Best for sizzle reels and hype videos.

dramatic

Personality: cinematic-dark. Cinematic drama with variable holds — high-energy scenes actually get longer holds (3.5s) to let tension build. Crossfade by default, hard cut when consecutive scenes share the same visual weight. Push_in for emotional/hero moments, drift for detail. Best for marketing films and dramatic reveals.

minimal

Personality: neutral-light. Clean tutorial style. Uniform long holds, hard cuts only, all cameras static. Zero visual embellishment. Content speaks for itself. Best for tutorials, documentation videos, and educational content.

intimate

Personality: cinematic-dark. Slow-burn brand narrative. Longer holds with crossfade-heavy transitions — 800ms for emotional content, 500ms default. Subtle push_in (0.15 intensity) for portraits and products, gentle drift elsewhere. Best for brand narratives and emotional storytelling.

corporate

Personality: editorial. Polished enterprise demo. Uniform pacing with crossfade on weight changes (300ms), hard cut default. Selective push_in for products, drift for UI screenshots. Professional without being sterile. Best for enterprise demos and investor materials.

kinetic

Personality: montage. Maximum pace for launches and sizzle. Very short holds (1.0–1.5s) with a hard 3-second cap. Every 2nd transition is a whip-wipe cycling left/right (200ms), rest are hard cuts. All cameras static. Best for keynote openers and product launches.

fade

Personality: editorial. Soft gallery style. Medium holds with all transitions as 500ms crossfades — every scene blends smoothly into the next. Minimal camera — push_in at low intensity (0.1) for portraits and products only. Best for photo essays and visual portfolios.

analog

Personality: editorial. VHS-inspired retro aesthetic. Warm, nostalgic pacing with longer holds. Crossfade on weight changes (600ms), crossfade default (400ms). Subtle push_in for portraits, gentle drift for products. Includes a visual treatment flag for analog post-processing. Best for retro brand storytelling.

documentary

Personality: editorial. Observational filmmaking pacing. Very long holds (3.5–5.0s) that let scenes breathe. Almost exclusively crossfade transitions. Static or slow drift camera — no push_in at all. Inspired by the "keep it human" filmmaking trend. Best for observational content and long-form storytelling.

Pack schema

Each style pack follows this structure:

{
  "name": "prestige",
  "personality": "editorial",
  "description": "Content-forward editorial style...",
  "hold_durations": {
    "static": 3.5,
    "subtle": 3.0,
    "moderate": 3.0,
    "high": 2.5
  },
  "max_hold_duration": null,
  "transitions": { ... },
  "camera_overrides": { ... }
}
FieldDescription
namePack identifier used in plan_sequence and brief schema
personalityMaps to an animation personality from the catalog
hold_durationsDuration in seconds per motion_energy level
max_hold_durationHard cap on scene duration. null = no cap
transitionsTransition rule object (see below)
camera_overridesCamera rule object (see below)

Hold durations

Each pack defines four duration values keyed by the scene's motion_energy:

motion_energyprestigeenergydramaticminimalintimatecorporatekineticfadeanalogdocumentary
static3.52.03.04.04.03.01.53.04.05.0
subtle3.02.02.53.53.52.751.52.53.54.5
moderate3.01.53.03.03.02.51.02.03.04.0
high2.51.53.53.03.02.51.02.02.53.5

Hard caps: energy = 4.0s, kinetic = 3.0s. All others uncapped.

Transition rules

Transition rules are evaluated in strict priority order — the first matching rule wins:

PriorityRule typeDescription
1patternPositional — fires every N transitions (e.g., whip-wipe cycle)
2on_same_weightFires when consecutive scenes share visual_weight
3on_weight_changeFires when visual_weight differs
4on_intentMatches incoming scene's intent_tags (e.g., emotional, hero)
5defaultFallback when nothing else matches

Pattern rules

Used by energy and kinetic for cyclic whip-wipe transitions:

{
  "pattern": {
    "every_n": 3,
    "cycle": ["whip_left", "whip_right", "whip_up", "whip_down"],
    "duration_ms": 250
  },
  "default": { "type": "hard_cut" }
}

Intent rules

Used by prestige, dramatic, and intimate for emotional/hero treatment:

{
  "on_intent": {
    "tags": ["emotional", "hero"],
    "transition": { "type": "crossfade", "duration_ms": 400 }
  },
  "default": { "type": "hard_cut" }
}

Camera rules

Three camera rule types, evaluated in order:

TypeBehaviorPacks
force_staticAll scenes get { move: 'static' }energy, minimal, kinetic
by_content_typeMaps content type to camera moveprestige, intimate, corporate, fade, analog, documentary
by_intentMaps intent tag to camera movedramatic, intimate

Camera overrides are validated against the personality's allowed_movements. Invalid moves are silently downgraded to null. drift and static always pass validation.

{
  "camera_overrides": {
    "by_content_type": {
      "portrait":      { "move": "push_in", "intensity": 0.2 },
      "product_shot":  { "move": "push_in", "intensity": 0.2 },
      "ui_screenshot": { "move": "drift",   "intensity": 0.2 }
    }
  }
}

Comparison

How the same 4 scenes produce different results across three styles:

Metricprestigeenergydramatic
Average duration~3.0s~1.7s~3.0s
Total duration~11s~6s~10s
Dominant transitionhard_cut + crossfadehard_cut + whipscrossfade
Camera behaviorselective push_in/driftall staticselective push_in/drift
Whip-wipe rate0%~30%0%
Personalityeditorialmontagecinematic-dark

Pace spectrum

From slowest to fastest average hold:

documentary (4.25s) > minimal (3.38s) > intimate (3.38s) > analog (3.25s)
  > prestige (3.0s) > dramatic (3.0s) > corporate (2.69s) > fade (2.38s)
  > energy (1.75s) > kinetic (1.25s)

Adding new packs

To add a new style pack:

  1. Add a new entry to catalog/style-packs.json with the required fields
  2. Set personality to a valid slug from catalog/personalities.json
  3. Define hold_durations, transitions, and camera_overrides using the rule types above
  4. The planner picks it up automatically — no code changes needed

Try it

Try asking your AI:

Show me the prestige style pack — full definition with transition rules and camera overrides.
Compare the energy and kinetic style packs. How do they differ?
Which style pack would work best for a 45-second brand narrative with portraits and product shots?
What style packs use crossfade transitions by default?

Was this page helpful?