blender-cameras

blender-cameras is a skill for Claude Code from CheshireJCat/blender. It costs 142 tokens per session (2,779 once invoked), scanned A, a copy of blender-cameras, MIT.

A Blender camera guide for choosing lenses, focus settings, composition, and camera movement. Focal length controls the view and perspective, while depth of field controls what appears sharp.

In plain words
What is it for?
Use it to set up shots, frame portraits or environments, focus on a subject, create cinematic compositions, and animate camera orbits, dollies, push-ins, and tracking.
Why use it?
It helps frame subjects intentionally and create the desired visual feeling instead of relying on trial and error.

Skill for Claude Code

Written for Claude Code: allowed-tools in frontmatter.

Good fit Use it to set up shots, frame portraits or environments, focus on a subject, create cinematic compositions, and animate camera orbits, dollies, push-ins, and tracking.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/cheshirejcat/blender/blender-cameras
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add CheshireJCat/blender --skill blender-cameras
Clone the repo
git clone --depth 1 https://github.com/CheshireJCat/blender

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for blender-cameras

README.md
[![agentmods](https://agentmods.dev/badge/skills/cheshirejcat/blender/blender-cameras/github.svg)](https://agentmods.dev/skills/cheshirejcat/blender/blender-cameras)
Your own site
<a href="https://agentmods.dev/skills/cheshirejcat/blender/blender-cameras"><img src="https://agentmods.dev/badge/skills/cheshirejcat/blender/blender-cameras/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for blender-cameras

Your own site · 80×15
<a href="https://agentmods.dev/skills/cheshirejcat/blender/blender-cameras"><img src="https://agentmods.dev/badge/skills/cheshirejcat/blender/blender-cameras.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 142 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,779 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin 100% copy Near-identical to another mod in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00142 $0.02779
Opus 5 $0.00071 $0.01389
Sonnet 5 $0.00028 $0.00556
Haiku 4.5 $0.00014 $0.00278

Measured 11d ago against content hash 8a0e6df52dee, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-11, from the pricing page.

Security

Grade A, and why

blender-cameras scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

Origin

This is a copy

100% identical to blender-cameras — 2 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.

skills/create-3d-model/references/modules/blender-cameras/SKILL.md · 298 lines

How it starts

The opening of the file, as written. The whole thing — 298 lines — stays where its author put it; the contents beside it link to each section on GitHub.

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)

Use this when you have a specific subject. Computes the subject's bounding box, places camera at a distance that fits the subject in ~80% of the frame vertically, and aims via Track-To.

import bpy, math
from mathutils import Vector

# Choose subject — all meshes named GEO-* by default, or pass a specific list
subject_meshes = [o for o in bpy.data.objects if o.type == 'MESH' and o.name.startswith('GEO-')]
if not subject_meshes:
    raise RuntimeError("No subject meshes found (looking for GEO- prefix)")

# World-space bbox
deps = bpy.context.evaluated_depsgraph_get()
all_verts = []
for o in subject_meshes:
    eo = o.evaluated_get(deps); em = eo.to_mesh()
    for v in em.vertices:
        all_verts.append(o.matrix_world @ v.co)
    eo.to_mesh_clear()
xs = [v.x for v in all_verts]; ys = [v.y for v in all_verts]; zs = [v.z for v in all_verts]
center = Vector(((min(xs)+max(xs))/2, (min(ys)+max(ys))/2, (min(zs)+max(zs))/2))
height = max(zs) - min(zs)
width = max(xs) - min(xs)
biggest = max(height, width)

# Frame fit: at distance D, vertical frame = D × (sensor_h / focal). Solve for D.
focal_mm = 60        # 60mm gives a flattering not-too-wide hero shot
sensor_h_mm = 24     # full-frame
frame_per_meter = sensor_h_mm / focal_mm   # 0.4 m vertical frame per metre of distance
target_fill = 0.80
camera_distance = biggest / (frame_per_meter * target_fill)

# Camera positioned in front (negative Y) with slight X offset for a 3/4 angle
cam_pos = Vector((center.x + camera_distance * 0.3, center.y - camera_distance, center.z))

# Empty for tracking
empty_name = 'Empty-camera_target'
empty = bpy.data.objects.get(empty_name) or bpy.data.objects.new(empty_name, None)
if empty.name not in [o.name for o in bpy.context.collection.objects]:
    bpy.context.collection.objects.link(empty)
empty.location = center

# Camera
cam_data = bpy.data.cameras.new('CAM-hero')
cam_data.lens = focal_mm
cam_data.dof.use_dof = True
cam_data.dof.aperture_fstop = 4.0
cam_data.dof.focus_object = subject_meshes[0]   # focus on first/main subject

cam = bpy.data.objects.new('CAM-hero', cam_data)
bpy.context.collection.objects.link(cam)
cam.location = cam_pos

track = cam.constraints.new('TRACK_TO')
track.target = empty
track.track_axis = 'TRACK_NEGATIVE_Z'
track.up_axis = 'UP_Y'

bpy.context.scene.camera = cam
print(f"camera:bbox_aware center={tuple(round(v,2) for v in center)} dist={camera_distance:.2f}m focal={focal_mm}mm")

Read the full file on GitHub · 298 lines

Files

What ships with it

1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 11d ago First seen · 298 lines · 142 tokens per session scan A 8a0e6df52dee

Subscribe to this mod's changes

blender-cameras is a skill published in the GitHub repository CheshireJCat/blender (26 stars, last pushed 22d ago), licensed MIT. It adds 142 tokens to every session and 2,779 once invoked, about $0.0007 per session on Opus 5. A static security scan graded it A with 0 findings. It is 100% identical to blender-cameras, differing in 2 lines, and is treated as a copy.

Related

Other skills, from other repositories

dsh-web-pet-developer

Create a pet for the dsh-pet plugin and integrate it into the dsh web GUI — author a v2 pet.json manifest plus an 8-column x 9-row atlas per the Codex/hatch-pet contract (live2d pets, voice packs and status decorations included), drop it into the pet-center user directory or contribute it as a built-in asset under…

zhu1090093659/dsh-web · 162 tokens

yao-image

Image expert. ALWAYS invoke this skill when you need to read, analyze, describe, or generate images. Use for screenshots, photos, charts, diagrams, AI-generated images, or any visual content.

YaoApp/yao · 44 tokens

yao-audio

Audio expert. ALWAYS invoke this skill when the user asks to transcribe, recognize, or convert speech/audio to text.

YaoApp/yao · 29 tokens

agent-first-screenshots

Agent-first screenshots — an agent drives the real app via CDP and produces clean, defect-free product screenshots (newsletters, landing pages, social, decks, PR). Dual-channel verification (DOM + pixels + vision) in a capture loop. Use for any "take/redo screenshots of the app" task.

Devin-AXIS/iPolloWork · 69 tokens

voiceover

write the voice-over, demo script first, voiceover instead of PRD, voiceover-first development, align on the demo, script the demo, ship a feature demo-first. The whole demo-driven journey — approve the narration BEFORE any code, then build on a fresh worktree until the demo holds and open the PR with the proof on it.…

Devin-AXIS/iPolloWork · 89 tokens

ipollowork-template-generation

Create or update reusable iPolloWork templates through conversation for Design, Slides/native editable PPT, and HyperFrames Video. Use when planning, generating, repairing, validating, or saving a template package, manifest, reusable variables, cover, slide/PPT markers, video composition, or design-system token…

Devin-AXIS/iPolloWork · 67 tokens