Blender Guru — Beginner Donut Tutorial Part 1 (2026)
Why this is in the vault
Filed because the blender-character skill (Ray-the-mascot pipeline) needs the execute_blender_code operator surface area memorized — Andrew Price’s hotkey-first vocabulary maps directly to the bpy ops we generate via MCP. Specifically: the modifier-stack non-destructive philosophy (solidify + subsurf, “start chunky and let the stack smooth”) is the exact pattern the Ray-mascot blockout phase needs, and the inset-to-fix-engons rule is the kind of thing the LLM will silently get wrong without a baked-in heuristic. Pairs with 2026-04-29-polygon-runway-2026-blender5-beginner (alternate teacher, same primitives) to give the skill two reference vocabularies.
TL;DR
Andrew Price’s fifth iteration of the gold-standard Blender intro, rebuilt for Blender 5.0. Part 1 covers: viewport navigation (orbit/pan/zoom), the add-mesh primitive workflow, the non-destructive modifier stack (solidify + subsurf), edit-mode geometry (vertices/edges/faces, loop cuts, insets), and the keyboard-shortcut-first philosophy that defines competent Blender work. The donut + coffee mug exercise is the on-ramp; the deeper lesson is “modifiers are non-destructive — start chunky and let the stack smooth it.”
Bias / sponsor flags
- Promotes his own paid post-donut beginner course at start
- Promotes his Blender Guru Beginners Academy in description
- No third-party sponsor in the body of the transcript reviewed
Mapping against Ray Data Co — what I learned that helps me model Ray in Blender
The load-bearing extraction. Concrete techniques + hotkeys + patterns usable in MCP-driven Blender code generation:
Hotkeys (commit these to muscle memory for execute_blender_code calls):
Ggrab/move,Rrotate,Sscale — moment-of-key activation; cursor anywhere on screen, you’re already in the transform state- After
G/R/S: tapX/Y/Zto constrain to that axis. HoldShiftwhile dragging for fine increments Shift+Aadd menu — primitives live under MeshXdelete (faster than the Delete key — finger-near-home)Tabtoggle Object ↔ Edit mode (the most-used hotkey in Blender)1/2/3in edit mode → vertex/edge/face selectCtrl+Radd loop cut (single click sets the cut, drag to position, click to confirm)Iinset face (adds an inner loop on a single face — required when loop cuts can’t go on engons)Numpad .focus on selected object (or~then “view selected” if no numpad)F9reopens the “last operator” panel (the bottom-left options box) momentarilyShift+Ctrl+Ssave as;+/-on numpad auto-increments the trailing number on filename (versioning trick)
Modifier-stack philosophy — non-destructive workflow:
- Solidify modifier adds thickness to thin meshes (the coffee-mug walls). The base mesh stays paper-thin; the modifier renders thickness on top.
- Subdivision Surface (subsurf) modifier doubles geometry per level and smooths corners. Start chunky (low-vert primitives) and let subsurf smooth — if you start high-res, subsurf compounds and becomes computationally heavy.
- To control subsurf smoothing distance: add loop cuts (
Ctrl+R) near the corner you want to keep sharp. Subsurf averages between vertices; closer vertices = tighter edge. - “Engons” (faces with >4 verts) are the dirty word — subsurf can’t predict their behavior. Fix by adding an inset (
I) to convert the n-gon into quads at the boundary.
Mesh starting strategy:
- Pick the primitive that “most resembles” the target shape. Donut → torus. Mug → cylinder. Mailbox → cube. Lamp post → cylinder. This is the first instinct: never start with a cube and try to model a sphere.
- Adjust primitive parameters in the bottom-left “last operator” panel before clicking off — easier than rescaling later.
- Default cube is 2m. Default torus radius is 1m (way too big for a donut — set to 0.1m).
Shading:
- Right-click → “Shade Smooth” — fakery that smooths the appearance without adding geometry. Default is flat. Apply this to almost everything except where you want hard edges.
MCP-relevant Blender Python patterns implied:
bpy.ops.mesh.primitive_torus_add(major_radius=0.1, minor_radius=0.057, major_segments=48, minor_segments=18)— the donut starting pointbpy.ops.object.modifier_add(type='SOLIDIFY')then setthicknesson the modifierbpy.ops.object.modifier_add(type='SUBSURF')withlevelsfor viewport,render_levelsfor finalbpy.ops.object.shade_smooth()for the smoothing passbpy.ops.mesh.loopcut_sliderequires Edit mode + an active edge — for MCP scripts, preferbmesh.ops.subdivide_edgesfor predictable loop placement
Related
- 2026-04-29-polygon-runway-2026-blender5-beginner — alternate beginner teacher, same primitives
- 2026-04-29-grant-abbitt-ps1-low-poly-character — the chibi/low-poly aesthetic the Ray mascot leans into
- 2026-04-29-p2design-monkey-rigging-livestream — non-humanoid rigging, the next pipeline step after modeling
- Part 2+ of the donut series (UV, texturing, sculpting, lighting, rendering) — not yet ingested
- Closest sibling skill:
~/.claude/skills/blender-character/SKILL.md - Related transcript:
~/rdco-vault/06-reference/transcripts/2026-04-29-blender-guru-donut-tutorial-part-1-transcript.md