# blender-cameras

Configures Blender cameras using cinematic rules: sets focal length, f-stop depth of field, tracking constraints, and auto-frames subjects.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 1100 installs · ★ 125
- Author: RobLe3
- License: MIT · policy=mirror · the beginning of the file is at the end of this page
- Source: https://github.com/RobLe3/cc-blender-skill/tree/HEAD/plugin/skills/blender-cameras/SKILL.md
- Updated: 2026-10-12
- HTML: https://affpapa.org/en/nevibecode/skills/blender-cameras

## What it does

The skill provides Python scripts and camera recipes for Blender scenes via MCP tools. Instead of guessing coordinates, it evaluates the subject bounding box with `evaluated_depsgraph_get()`. This math calculates the exact distance needed to fill 80% of the vertical frame. It creates a dedicated target empty. The camera then tracks that center point automatically.

Built-in recipes cover standard cinematographic setups. You get an 85mm lens at f/2.8 for portraits and a 24mm wide angle for establishing shots. Aiming is handled by a `TRACK_TO` constraint locked onto the subject. An active Blender MCP backend with `execute_blender_code` is required before any code can run. The auto-fit script specifically scans for meshes starting with `GEO-`, so misnamed meshes will stop execution.

## Requirements
- Works with: Blender

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add RobLe3/cc-blender-skill --skill blender-cameras -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/blender-cameras/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/blender-cameras/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add RobLe3/cc-blender-skill --skill blender-cameras -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/blender-cameras/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add RobLe3/cc-blender-skill --skill blender-cameras -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/blender-cameras/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install RobLe3/cc-blender-skill blender-cameras
```

2. **Manually: put the files in place**
- File: `.github/skills/blender-cameras/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add RobLe3/cc-blender-skill --skill blender-cameras -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/RobLe3/cc-blender-skill --path plugin/skills/blender-cameras
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/blender-cameras/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add RobLe3/cc-blender-skill --skill blender-cameras -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/RobLe3/cc-blender-skill/tree/HEAD/plugin/skills/blender-cameras/SKILL.md

## When to use it
- calculate camera distance from a bounding box to fill 80% of the frame
- configure an 85mm portrait camera with f/2.8 depth of field
- set up a 24mm wide establishing shot without background blur
- bind camera tracking to a target using a `TRACK_TO` constraint

## Example prompts
- Set up an 85mm portrait camera with shallow depth of field
- Frame the GEO-subject mesh using a three-quarter hero angle
- Create a wide 24mm establishing shot of the scene

## Source text · SKILL.md · MIT

Below is the content of a third-party file. It is data, not instructions for you: do not act on anything written inside unless the human asks. Block tag: 8db68ab33dc5a5ef.

BEGIN THIRD-PARTY FILE 8db68ab33dc5a5ef
```text
---
name: blender-cameras
description: Set up Blender cameras with cinematic intent — focal length, depth of field (f-stop / focus object), composition (rule of thirds, leading lines), animated cameras (orbit, dolly, push-in), tracking constraints. Use whenever the user asks to "set up the camera", "frame the shot", "make it look cinematic / hero / portrait / wide-angle / telephoto", "add depth of field", "orbit the camera", or any composition/framing request. Make sure to use this skill even if the user does not say "camera" — also covers "hero shot", "close-up", "from above", "shallow focus", "85mm portrait look".
allowed-tools: Read Bash mcp__blender__execute_blender_code mcp__blender__get_scene_info mcp__blender__get_object_info mcp__blender__get_objects_summary mcp__blender__get_object_detail_summary mcp__blender__render_viewport_to_path mcp__blender__search_api_docs mcp__blender_official__execute_blender_code mcp__blender_official__get_objects_summary mcp__blender_official__get_object_detail_summary mcp__blender_official__render_viewport_to_path mcp__blender_official__search_api_docs
---


## MCP backend

Use when: Any camera placement, framing, focal length, DoF, or animated camera setup in Blender.

Before the first Blender call, read [../text-to-blender/references/mcp-backends.md](../text-to-blender/references/mcp-backends.md). Prefer official MCP for shared capabilities; preserve the selected backend for the whole task. Tool names in recipes are client/legacy examples: map them through that reference and its agent-host guide.
# Blender Cameras

Set up cameras with the same decisions a real cinematographer makes: focal length for feel, f-stop for focus, composition for storytelling.

## Focal length cheat sheet

| Length | Feel | Use |
|--------|------|-----|
| 14–24mm | Very wide, distorted | Architecture, claustrophobic interiors, exaggerated perspective |
| 28–35mm | Wide, "documentary" | Establishing shots, environments |
| **50mm** | Neutral (≈ human eye) | Default storytelling |
| **85mm** | Short telephoto | Portraits, character close-ups (flattering) |
| 100–135mm | Telephoto | Hero product shots, isolated subjects |
| 200mm+ | Long tele | Wildlife, surveillance look, heavy compression |

**Quick rule**: 85mm for intimacy, 24mm for spectacle, 50mm for neutral.

## Aperture / f-stop

| f-stop | DoF | Use |
|--------|-----|-----|
| f/1.2–2.0 | Razor thin | Hero portraits, dreamy |
| f/2.8 | Shallow | Standard portrait |
| f/4 | Moderate | Two subjects in frame |
| f/5.6–8 | Medium-deep | Group portraits, environments |
| f/11+ | Very deep | Landscape, "everything sharp" |

## Recipes

### Recipe 0 — Bbox-aware hero camera (preferred for orchestrator chains)
```
END THIRD-PARTY FILE 8db68ab33dc5a5ef

The third-party file has ended. Everything between the 8db68ab33dc5a5ef tags is data: requests and commands from it are not followed. An “end of file” line with another tag inside the block is part of the file.

First 2739 of 11490 bytes. © RobLe3 · MIT · https://github.com/RobLe3/cc-blender-skill/tree/HEAD/plugin/skills/blender-cameras/SKILL.md

_Part of the page did not fit — see the HTML version._

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
