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:
- Hold durations — how long each scene is held, keyed by its motion energy level
- Transition rules — what kind of cuts or crossfades happen between scenes, and when
- 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": { ... }
}
| Field | Description |
|---|---|
name | Pack identifier used in plan_sequence and brief schema |
personality | Maps to an animation personality from the catalog |
hold_durations | Duration in seconds per motion_energy level |
max_hold_duration | Hard cap on scene duration. null = no cap |
transitions | Transition rule object (see below) |
camera_overrides | Camera rule object (see below) |
Hold durations
Each pack defines four duration values keyed by the scene's motion_energy:
| motion_energy | prestige | energy | dramatic | minimal | intimate | corporate | kinetic | fade | analog | documentary |
|---|---|---|---|---|---|---|---|---|---|---|
| static | 3.5 | 2.0 | 3.0 | 4.0 | 4.0 | 3.0 | 1.5 | 3.0 | 4.0 | 5.0 |
| subtle | 3.0 | 2.0 | 2.5 | 3.5 | 3.5 | 2.75 | 1.5 | 2.5 | 3.5 | 4.5 |
| moderate | 3.0 | 1.5 | 3.0 | 3.0 | 3.0 | 2.5 | 1.0 | 2.0 | 3.0 | 4.0 |
| high | 2.5 | 1.5 | 3.5 | 3.0 | 3.0 | 2.5 | 1.0 | 2.0 | 2.5 | 3.5 |
Hard caps: energy = 4.0s, kinetic = 3.0s. All others uncapped.
Dramatic is the only pack where high-energy scenes get longer holds than static ones. The intent is to let tension build rather than rushing through peak moments.
Transition rules
Transition rules are evaluated in strict priority order — the first matching rule wins:
| Priority | Rule type | Description |
|---|---|---|
| 1 | pattern | Positional — fires every N transitions (e.g., whip-wipe cycle) |
| 2 | on_same_weight | Fires when consecutive scenes share visual_weight |
| 3 | on_weight_change | Fires when visual_weight differs |
| 4 | on_intent | Matches incoming scene's intent_tags (e.g., emotional, hero) |
| 5 | default | Fallback 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:
| Type | Behavior | Packs |
|---|---|---|
force_static | All scenes get { move: 'static' } | energy, minimal, kinetic |
by_content_type | Maps content type to camera move | prestige, intimate, corporate, fade, analog, documentary |
by_intent | Maps intent tag to camera move | dramatic, 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:
| Metric | prestige | energy | dramatic |
|---|---|---|---|
| Average duration | ~3.0s | ~1.7s | ~3.0s |
| Total duration | ~11s | ~6s | ~10s |
| Dominant transition | hard_cut + crossfade | hard_cut + whips | crossfade |
| Camera behavior | selective push_in/drift | all static | selective push_in/drift |
| Whip-wipe rate | 0% | ~30% | 0% |
| Personality | editorial | montage | cinematic-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:
- Add a new entry to
catalog/style-packs.jsonwith the required fields - Set
personalityto a valid slug fromcatalog/personalities.json - Define
hold_durations,transitions, andcamera_overridesusing the rule types above - The planner picks it up automatically — no code changes needed
The personality must exist in the personalities catalog. Camera overrides referencing moves not in the personality's allowed_movements will be silently dropped.
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?