/slow-zoom
Cinematic slow push-in zoom toward a hero detail on the product. Creates a reveal effect.
Claude Code
$ npx -y skills add cafe3310/public-agent-skills --skill slow-zoom --agent claude-code
Codex
$ npx skills add cafe3310/public-agent-skills --skill slow-zoom -a codex -y
Cursor
$ npx skills add cafe3310/public-agent-skills --skill slow-zoom -a cursor -y
Gemini CLI
$ npx skills add cafe3310/public-agent-skills --skill slow-zoom -a gemini-cli -y
GitHub Copilot
$ npx skills add cafe3310/public-agent-skills --skill slow-zoom -a github-copilot -y
OpenCode
$ npx skills add cafe3310/public-agent-skills --skill slow-zoom -a opencode -y
Windsurf
$ npx skills add cafe3310/public-agent-skills --skill slow-zoom -a windsurf -y
SKILL.md
slow-zoom.SKILL.mdname: slow-zoom
description: >
Cinematic slow push-in zoom toward a hero detail on the product. Creates a reveal effect.
license: MIT
author: https://github.com/kevinbadi/blender-skills
depends_on_skill:
- blender-skills
depends_on_binary:
- blender
- ffmpeg
Slow Zoom Camera Animation
Camera slowly pushes in from a wide establishing shot to a tight close-up on a hero detail (logo, texture, feature). Includes subtle dolly zoom (focal length shift) for cinematic compression.
When to Use
- User wants a "reveal" or "hero shot"
- User says "zoom in", "push in", "close-up on the logo", "cinematic reveal"
- Highlighting a specific detail or feature on the product
Prerequisites
- **Blender MCP**: Connected
- **3D model**: Already imported in the Blender scene
- **Output folder**: `~/Desktop/Blender Videos/`
- **ffmpeg**: Installed
Parameters
| Parameter | Default | Description | |-----------|---------|-------------| | `duration` | `5` | Video length in seconds | | `fps` | `24` | Frames per second | | `start_distance` | `4.0` | Starting camera distance | | `end_distance` | `1.8` | Ending camera distance (close-up) | | `start_height` | `3.0` | Starting camera height | | `end_height` | `1.2` | Ending camera height | | `start_lens` | `35` | Starting focal length (wide) | | `end_lens` | `65` | Ending focal length (tight) | | `focus_point` | `(0,0,0.1)` | Point to zoom toward (e.g. logo center) | | `transparent_bg` | `true` | Transparent background |
Flow
Step 1: Identify Focus Point
Ask user what detail to zoom into, or default to object center. Use `AskUserQuestion` if unclear.
Step 2: Set Up Camera
import bpy, math
# Focus target
bpy.ops.object.empty_add(type='PLAIN_AXES', location=FOCUS_POINT)
tgt = bpy.context.active_object
tgt.name = 'ZoomTarget'
# Camera
bpy.ops.object.camera_add(location=(START_X, -START_DISTANCE, START_HEIGHT))
cam = bpy.context.active_object
cam.name = 'SlowZoomCam'
cam.data.lens = START_LENS
track = cam.constraints.new(type='TRACK_TO')
track.target = tgt
track.track_axis = 'TRACK_NEGATIVE_Z'
track.up_axis = 'UP_Y'
bpy.context.scene.camera = cam
Step 3: Animate Push-In
import bpy
TOTAL_FRAMES = DURATION * FPS
scene = bpy.context.scene
scene.frame_start = 1
scene.frame_end = TOTAL_FRAMES
scene.render.fps = FPS
# Start wide
cam.location = (1.5, -START_DISTANCE, START_HEIGHT)
cam.keyframe_insert(data_path='location', frame=1)
cam.data.lens = START_LENS
cam.data.keyframe_insert(data_path='lens', frame=1)
# End tight
cam.location = (0.3, -END_DISTANCE, END_HEIGHT)
cam.keyframe_insert(data_path='location', frame=TOTAL_FRAMES)
cam.data.lens = END_LENS
cam.data.keyframe_insert(data_path='lens', frame=TOTAL_FRAMES)
# Keep default BEZIER interpolation for smooth ease in/out
Step 4: Lighting + Render
Use the same golden hour lighting setup as turntable skill. Render as PNG sequence with Cycles, encode with ffmpeg to ProRes 4444.
ffmpeg -y -framerate 24 \
-i "~/Desktop/Blender Videos/slowzoom_frames/%04d.png" \
-c:v prores_ks -profile:v 4444 -pix_fmt yuva444p10le \
"~/Desktop/Blender Videos/slow_zoom.mov"
Tips
- The focal length shift (35mm to 65mm) creates a subtle dolly zoom / Hitchcock effect
- BEZIER interpolation gives smooth ease-in/out — don't use LINEAR for this animation
- Offset the start position slightly on X (e.g. 1.5) for a more cinematic diagonal approach
Read more
name: slow-zoom description: > Cinematic slow push-in zoom toward a hero detail on the product. Creates a reveal effect. license: MIT author: https://github.com/kevinbadi/blender-skills depends_on_skill: - blender-skills depends_on_binary: - blender - ffmpeg
Slow Zoom Camera Animation
Camera slowly pushes in from a wide establishing shot to a tight close-up on a hero detail (logo, texture, feature). Includes subtle dolly zoom (focal length shift) for cinematic compression.
When to Use
- User wants a "reveal" or "hero shot"
- User says "zoom in", "push in", "close-up on the logo", "cinematic reveal"
- Highlighting a specific detail or feature on the product
Prerequisites
- **Blender MCP**: Connected
- **3D model**: Already imported in the Blender scene
- **Output folder**: `~/Desktop/Blender Videos/`
- **ffmpeg**: Installed
Parameters
| Parameter | Default | Description | |-----------|---------|-------------| | `duration` | `5` | Video length in seconds | | `fps` | `24` | Frames per second | | `start_distance` | `4.0` | Starting camera distance | | `end_distance` | `1.8` | Ending camera distance (close-up) | | `start_height` | `3.0` | Starting camera height | | `end_height` | `1.2` | Ending camera height | | `start_lens` | `35` | Starting focal length (wide) | | `end_lens` | `65` | Ending focal length (tight) | | `focus_point` | `(0,0,0.1)` | Point to zoom toward (e.g. logo center) | | `transparent_bg` | `true` | Transparent background |
Flow
Step 1: Identify Focus Point
Ask user what detail to zoom into, or default to object center. Use `AskUserQuestion` if unclear.
Step 2: Set Up Camera
import bpy, math # Focus target bpy.ops.object.empty_add(type='PLAIN_AXES', location=FOCUS_POINT) tgt = bpy.context.active_object tgt.name = 'ZoomTarget' # Camera bpy.ops.object.camera_add(location=(START_X, -START_DISTANCE, START_HEIGHT)) cam = bpy.context.active_object cam.name = 'SlowZoomCam' cam.data.lens = START_LENS track = cam.constraints.new(type='TRACK_TO') track.target = tgt track.track_axis = 'TRACK_NEGATIVE_Z' track.up_axis = 'UP_Y' bpy.context.scene.camera = cam
Step 3: Animate Push-In
import bpy TOTAL_FRAMES = DURATION * FPS scene = bpy.context.scene scene.frame_start = 1 scene.frame_end = TOTAL_FRAMES scene.render.fps = FPS # Start wide cam.location = (1.5, -START_DISTANCE, START_HEIGHT) cam.keyframe_insert(data_path='location', frame=1) cam.data.lens = START_LENS cam.data.keyframe_insert(data_path='lens', frame=1) # End tight cam.location = (0.3, -END_DISTANCE, END_HEIGHT) cam.keyframe_insert(data_path='location', frame=TOTAL_FRAMES) cam.data.lens = END_LENS cam.data.keyframe_insert(data_path='lens', frame=TOTAL_FRAMES) # Keep default BEZIER interpolation for smooth ease in/out
Step 4: Lighting + Render
Use the same golden hour lighting setup as turntable skill. Render as PNG sequence with Cycles, encode with ffmpeg to ProRes 4444.
ffmpeg -y -framerate 24 \ -i "~/Desktop/Blender Videos/slowzoom_frames/%04d.png" \ -c:v prores_ks -profile:v 4444 -pix_fmt yuva444p10le \ "~/Desktop/Blender Videos/slow_zoom.mov"
Tips
- The focal length shift (35mm to 65mm) creates a subtle dolly zoom / Hitchcock effect
- BEZIER interpolation gives smooth ease-in/out — don't use LINEAR for this animation
- Offset the start position slightly on X (e.g. 1.5) for a more cinematic diagonal approach
Other skills on public-agent-skills.
aop-product-planner
面向切面 (AOP) 的智能产品策划与需求拆解范式。用于从目标叙事、AOP 切面分层、乱序 Idea 收集、功能边界界定到需求依赖拓扑与优先级的全流程产品工程规划。
blender-skills
Mandatory entry point for 3D product modeling, rendering, scene composition, and camera animations in Blender. Acts as the…
blender-toolkit
Automate Blender tasks like creating 3D shapes, managing materials, and retargeting Mixamo animations with real-time control.
crane-shot
Camera starts low and rises up to reveal the full product. Great for dramatic product reveals on a pedestal.
dolly-rotate
Camera moves forward while rotating around the product. More dynamic than a straight zoom.
More skills from other plugins.
i-have-adhd
Shape output for a reader with ADHD: lead with the next action, number multi-step work, restate state across turns, suppress…
distilly
Set up the owner profile so a personal agent knows who it works for (first-run setup, \"get to know me\"), or distill colleague,…
Questions about slow-zoom.
- Which coding agents can use slow-zoom?
- slow-zoom installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.

