animated-presentations
Create multi-scene animated presentations with smooth camera transitions using the Excalimate MCP server. Use when asked to create presentations, pitch decks, animated slide shows, demo walkthroughs, keynote-style reveals, or any sequential multi-scene visual narrative — even if the user says "slides" or "deck."
Animated Presentations Skill
Create compelling multi-scene animated presentations using Excalidraw's canvas as your presentation stage. Each "slide" is a region on one large canvas, connected by smooth camera transitions and element animations.
Canvas-as-Presentation Concept
Instead of traditional slides, use one large Excalidraw canvas where each "slide" is a positioned region:
- All content exists on a single canvas
- Each "slide" = a specific rectangular region
- Camera keyframes pan between regions for smooth transitions
- Elements within each scene have reveal animations
- No page breaks or separate files needed
Core Workflow
- Plan scenes: Define your narrative flow and scene count
- Calculate layout: Position scenes on canvas using layout patterns
- Create ALL elements: Use
create_sceneto add all text, shapes, arrows - Set initial camera: Position camera at scene 1 with
set_camera_frame({x,y,width,aspectRatio:"16:9"}) - Animate elements: Add reveal animations per scene (opacity, scale, position)
- Add camera keyframes: Create smooth transitions between scenes
- Set clip range: Define total animation duration
- Save or share: Use
save_checkpointto persist state, orshare_projectfor an E2E encrypted share URL
Scene Layout Strategy
Horizontal Strip Layout (Recommended)
Scene dimensions: 1600×900 (16:9 aspect ratio)
Gap between scenes: 400px
Scene positions:
- Scene 1: x=0, y=0
- Scene 2: x=2000, y=0
- Scene 3: x=4000, y=0
- Scene N: x=N*(1600+400), y=0
Camera Setup
// Position camera at first scene
set_camera_frame({
x: 0,
y: 0,
width: 1600,
aspectRatio: "16:9"
})
Timing Template
Per scene duration: ~5000ms
- Element reveals: 2000ms
- Reading pause: 1500ms
- Camera transition: 1500ms
Total for 5 scenes: ~25000ms
Camera Transition Pattern
Hold camera position during element reveals, then smoothly pan between scenes:
add_camera_keyframes_batch([
// Scene 1: Hold position
{ time: 0, x: 0, y: 0, width: 1600, easing: "linear" },
{ time: 3500, x: 0, y: 0, width: 1600, easing: "easeInOutCubic" },
// Transition to Scene 2
{ time: 5000, x: 2000, y: 0, width: 1600, easing: "easeInOutCubic" },
{ time: 8500, x: 2000, y: 0, width: 1600, easing: "easeInOutCubic" },
// Transition to Scene 3
{ time: 10000, x: 4000, y: 0, width: 1600, easing: "easeInOutCubic" },
{ time: 13500, x: 4000, y: 0, width: 1600, easing: "linear" }
])
Complete Example: 3-Scene Presentation
Scene Layout
- Title Scene: x=0, y=0 (1600×900)
- Architecture Scene: x=2000, y=0 (1600×900)
- Summary Scene: x=4000, y=0 (1600×900)
Implementation
// 1. Create all elements
create_scene([
// Title Scene (x=0)
{ type: "text", text: "Project Phoenix", x: 800, y: 300, fontSize: 48, bold: true },
{ type: "text", text: "Revolutionary AI Platform", x: 800, y: 400, fontSize: 24 },
// Architecture Scene (x=2000)
{ type: "rectangle", x: 2200, y: 200, width: 300, height: 150, label: "Frontend" },
{ type: "rectangle", x: 2200, y: 450, width: 300, height: 150, label: "Backend" },
{ type: "arrow", startX: 2350, startY: 350, endX: 2350, endY: 450 },
// Summary Scene (x=4000)
{ type: "text", text: "Key Benefits", x: 4800, y: 200, fontSize: 36, bold: true },
{ type: "text", text: "• 10x faster processing", x: 4500, y: 350, fontSize: 18 },
{ type: "text", text: "• 90% cost reduction", x: 4500, y: 400, fontSize: 18 }
])
// 2. Set initial camera position
set_camera_frame({ x: 0, y: 0, width: 1600, aspectRatio: "16:9" })
// 3. Add element animations
add_keyframes_batch([
// Title scene reveals
{ elementIds: ["title-text"], property: "opacity", keyframes: [
{ time: 500, value: 0 }, { time: 1500, value: 1 }
]},
{ elementIds: ["subtitle-text"], property: "opacity", keyframes: [
{ time: 1000, value: 0 }, { time: 2000, value: 1 }
]},
// Architecture scene reveals (after camera transition)
{ elementIds: ["frontend-box"], property: "scale", keyframes: [
{ time: 5500, value: 0 }, { time: 6500, value: 1 }
]},
{ elementIds: ["backend-box"], property: "scale", keyframes: [
{ time: 6000, value: 0 }, { time: 7000, value: 1 }
]},
// Summary scene reveals
{ elementIds: ["benefits-title"], property: "opacity", keyframes: [
{ time: 10500, value: 0 }, { time: 11500, value: 1 }
]}
])
// 4. Add camera transitions
add_camera_keyframes_batch([
// Scene 1: Title
{ time: 0, x: 0, y: 0, width: 1600, easing: "linear" },
{ time: 3500, x: 0, y: 0, width: 1600, easing: "easeInOutCubic" },
// Transition to Scene 2: Architecture
{ time: 5000, x: 2000, y: 0, width: 1600, easing: "easeInOutCubic" },
{ time: 8500, x: 2000, y: 0, width: 1600, easing: "easeInOutCubic" },
// Transition to Scene 3: Summary
{ time: 10000, x: 4000, y: 0, width: 1600, easing: "easeInOutCubic" },
{ time: 13500, x: 4000, y: 0, width: 1600, easing: "linear" }
])
// 5. Set total duration and save
set_clip_range({ startTime: 0, endTime: 15000 })
save_checkpoint("phoenix-presentation")
// or: share_project()
Best Practices
Scene Composition
- Title scenes: Large centered text with minimal elements
- Content scenes: Use grids, boxes, and clear hierarchy
- Transition scenes: Bridge concepts with arrows/lines
Timing Guidelines
- Fast pace: 3-4 seconds per scene
- Standard: 5-6 seconds per scene
- Slow/complex: 8-10 seconds per scene
Visual Consistency
- Use consistent fonts, colors, and spacing
- Align elements to invisible grid lines
- Maintain same aspect ratio across scenes
Animation Polish
- Stagger element reveals by 200-500ms
- Use easeInOutCubic for smooth camera moves
- Hold camera steady during content reveals
- End with subtle camera drift or zoom
Advanced Techniques
Scene Transitions
- Cut: Instant camera jump (0ms transition)
- Pan: Smooth horizontal/vertical movement
- Zoom: Change camera width while moving
- Orbit: Circular camera path around central point
Element Choreography
- Cascade: Elements appear in sequence
- Burst: All elements appear simultaneously
- Draw-on: Arrows and lines animate their paths
- Typewriter: Text appears character by character
Narrative Hooks
- Start with intriguing question or statistic
- Use visual metaphors and analogies
- Build suspense before revealing solutions
- End with clear call-to-action
Transform any presentation request into an engaging animated experience that rivals professional keynote software!