Skills, rules, snippets, templates, and runnable examples for Blender Python development
16 skills • 9 rules • 3 templates • 27 snippets • 60 examples • 66 showcase pieces
Examples Gallery • Quick start • Examples • Showcase • Skills • Rules • Templates • Snippets • Roadmap
This repository ships 16 skills, 9 rules, 3 templates, 27 snippets, 60 examples, and 66 showcase pieces for Blender Python development targeting Blender 5.2 LTS (current stable) with Blender 4.5 LTS fallback support. Blender 5.1 is prior stable.
The content is consumed by AI coding agents reading these files directly from a checkout — there is no MCP server in this repository, and none is required. Cursor applies rules/*.mdc automatically wherever their scope globs match and takes skills by name in chat; Claude Code reads skills/ and rules/ from the project workspace, or from this repo kept as a referenced checkout. Any agent that can read files in a workspace can use it the same way. There is no build step for the content — edit the Markdown and Python files directly.
| Layer | Role |
|---|---|
| Skills | Guided workflows: scaffolding, operators, panels, properties, mesh and bmesh, headless batch, slotted actions, geometry nodes, procedural materials, depsgraph queries, drivers and handlers, bl_info migration, video sequencer, imported-mesh cleanup, engine export presets |
| Rules | Guardrails for the most common AI mistakes: ops-in-loops, bmesh leaks, legacy bl_info only, prop assignments, deprecated context-copy override, per-element loops over bulk mesh data, import without scale check, export without evaluated geometry, mixed glTF/FBX axis RNA |
| Templates | A working Extensions Platform add-on starter, a headless batch script starter, and a GLB-in engine-ready asset pipeline |
| Snippets | 27 small standalone Python files demonstrating canonical patterns |
| Examples | Runnable headless scripts under examples/. Each asserts an API contract and exits non-zero on failure. |
| Showcase | Budget-conformance props under showcase/. Not examples. Conventions: showcase/README.md |
git clone https://github.com/TMHSDigital/Blender-Developer-Tools.git- Cursor — point Cursor at the checkout (or symlink
rules/into your project). The.mdcrules apply automatically by glob scope; skills are referenced by name in chat. - Claude Code — copy
skills/andrules/into your project workspace, or keep this repo as a checkout that Claude Code references directly. - Get Blender — download 5.2 LTS (primary target) or 4.5 LTS (supported fallback) from blender.org/download/lts; current stable lives at blender.org/download. The
blendercommand below is that binary — on macOS it is inside the app bundle at/Applications/Blender.app/Contents/MacOS/Blender. - Run an example — every example is a self-checking headless script (exit non-zero on failure, no GPU needed for the check):
blender --background --python examples/bmesh-gear/bmesh_gear.py --| Version | Status |
|---|---|
| Blender 5.2 LTS | Primary target (current stable; all examples assume 5.2 unless a 4.5 path is shown) |
| Blender 5.1 | Prior stable (weekly cron; PR via needs-5.1 or manual dispatch) |
| Blender 4.5 LTS | Fallback supported (skills show both code paths where 4.x and 5.x APIs diverge) |
Every one of the 60 examples carries a falsifier: a flag that changes the input so a real assertion fails. It never disables the assertion, skips the check, or short-circuits to an error — it feeds the script something the contract says must not pass, and the same check that guards the happy path catches it.
# The contract holds: exit 0
blender --background --python examples/bmesh-gear/bmesh_gear.py --
# The falsifier: skip the extrude, so the topology no longer matches the
# closed form. The topology check fires and the script exits 3.
blender --background --python examples/bmesh-gear/bmesh_gear.py -- --no-extrudeThis is what makes a green run mean something. An assertion that has only ever passed witnesses nothing — it could be comparing a constant to itself. Proving each one fails once, on demand, is the difference between a test suite and a set of scripts that print "OK". Shipping an example requires demonstrating the falsifier's non-zero exit and reporting the measured error.
--api, --check-pixels, and --output are not falsifiers; they select a
code path rather than break a contract. Full conventions, including the
per-script exit-code model, are in
CONTRIBUTING.md.
Budget-conformance props. Not examples. Conventions: showcase/README.md.
66 showcase pieces — click to expand the preview grid
shipping-crate — procedural crate through UVs, bake, LOD, collider, and Unity glTF, asserting recomputed budgets. Falsifier --skip-decimate exits 9.
stone-well — procedural round stone well, shingled roof, windlass, rope and bucket through the same pipeline. Falsifier --skip-decimate exits 9.
wooden-barrel — procedural 20-stave wine-cask with boarded, croze-seated heads and chord-lofted hoops through the same pipeline. Falsifiers --round-band exits 18, --one-piece-head exits 17.
campfire — procedural fieldstone ring, logs, and ash through the same pipeline. Falsifiers --skip-decimate exits 9, --uniform-stones exits 20.
market-stall — procedural timber stall with striped awning and counter through the same pipeline. Falsifiers --skip-decimate exits 9, --short-brace exits 17.
street-lantern — procedural hanging lantern with iron post, brass fittings, and amber cage through the same pipeline. Falsifiers --skip-decimate exits 9, --shallow-brace exits 20.
treasure-chest — procedural slatted chest with iron bands, corner brackets, and an open lid through the same pipeline. Falsifier --skip-decimate exits 9.
terrain-scatter — Geometry Nodes hill tile with bevelled masonry scatter through the same pipeline. Falsifier --skip-decimate exits 9.
fence-kit — procedural post-and-rail fence section through the same pipeline. Falsifier --skip-decimate exits 9.
watchtower — procedural timber lookout with X-braces, hatch ladder, platform, and coursed shake roof through the same pipeline. Falsifiers --skip-decimate exits 9, --short-joists exits 17.
cart — procedural two-wheel wooden cart with spoked wheels, slatted bed, and shafts through the same pipeline. Falsifier --skip-decimate exits 9.
park-bench — procedural wrought-iron park bench with scrolled legs and slatted seat through the same pipeline. Falsifier --skip-decimate exits 9.
wheelbarrow — procedural wheelbarrow with board-built tray walls, a spoked wheel, iron straps, legs, and handles through the same pipeline. Falsifiers --skip-decimate exits 9, --wide-seams exits 17.
anvil — procedural London-pattern anvil on a timber stump through the same pipeline. Falsifiers --skip-decimate exits 9, --round-waist exits 19.
water-trough — procedural watertight water trough on a timber stand through the same pipeline. Falsifier --skip-decimate exits 9.
hitching-post — procedural timber hitching post with a cross-arm, wrapped iron bands and iron rings through the same pipeline. Falsifiers --skip-decimate exits 9, --sunk-bands exits 18.
grindstone — procedural grindstone on a timber trestle with iron axle and crank through the same pipeline. Falsifier --skip-decimate exits 9.
hand-pump — procedural cast-iron village hand pump through the same pipeline. Falsifier --skip-decimate exits 9.
signpost — procedural timber fingerboard signpost through the same pipeline. Falsifiers --skip-decimate (9), --stray-vert (15), --yaw-boards (19).
chopping-block — procedural hooped timber stump with an embedded axe through the same pipeline. Falsifier --skip-decimate exits 9.
wooden-bucket — procedural coopered pail with a three-strand rope bail through the ear rings through the same pipeline. Falsifiers --float-handle and --sunk-rope exit 17.
wall-torch — procedural wall-mounted torch sconce with a stone plaque, iron bracket, and flame through the same pipeline. Falsifiers --skip-decimate (9), --stray-vert (15), --float-arm (17).
tavern-stool — procedural tavern stool with turned legs, stretchers, and iron ferrules through the same pipeline. Falsifier --skip-decimate exits 9.
iron-cauldron — procedural round-bellied iron cauldron on a timber tripod through the same pipeline. Falsifiers --skip-decimate exits 9, --pointed-pot exits 19.
wooden-ladder — procedural timber ladder with raked stiles, evenly pitched rungs, and iron shoes through the same pipeline. Falsifiers --skip-decimate exits 9, --drift-rungs exits 19.
hay-bale — procedural bound hay bale with sisal twine through the same pipeline. Falsifier --skip-decimate exits 9.
rope-bridge — procedural rope footbridge whose plank deck is fitted to a parabola recomputed from the plank tops, with lashed hand ropes and staked foot ropes, through the same pipeline. Falsifiers --vee-deck exits 19, --float-suspenders exits 18.
grain-sacks — procedural pile of burlap grain sacks settled onto flat bases and tied with twine, through the same pipeline. Falsifiers --round-bottom exits 19, --slip-tie exits 17.
brazier — procedural iron brazier with ash and glowing charcoal whose tip angle is recomputed from a density-weighted mass centre and the feet on the floor, through the same pipeline. Falsifiers --tuck-legs exits 19, --overfill exits 18.
apothecary-shelf — procedural apothecary shelf stocked with fifteen labelled bottles, flasks and jars, whose headroom under the shelf above is recomputed per vessel, through the same pipeline. Falsifiers --tall-flask exits 20, --short-shelves exits 17.
wooden-yoke — procedural double ox yoke on two bent hickory bows with a hung ring, whose neck openings are measured between the bow legs and up to the saddles, through the same pipeline. Falsifiers --pinch-bows exits 19, --edge-on-ring exits 17.
butter-churn — procedural staved plunge churn whose dasher stroke is recomputed from the inner wall read off the staves and the plunger's reach, through the same pipeline. Falsifiers --wide-dasher exits 20, --tight-hole exits 18.
bookshelf — procedural bookcase of thirty-eight rounded-spine hardbacks, standing, stacked and leaning, whose leaning books' contact with their neighbour's head edge is recomputed as a band, through the same pipeline. Falsifiers --air-lean and --deep-lean exit 22, --crowd-books exits 23.
book-trolley — procedural double-sided library book truck on four casters, forty-seven hardbacks in four sloped troughs, whose every book's fore-edge depth in its backrest is recomputed as a band beside its shelf seat, through the same pipeline. Falsifiers --off-back and --deep-back exit 21, --skew-caster exits 19.
basketball-hoop — the first sports piece: procedural in-ground basketball goal on a patch of driveway court (square gooseneck pole swept in one piece with bend webs, bolted into a two-pour concrete pad, braced board in an aluminium frame, breakaway regulation rim, knotted twelve-loop net, faded court paint, two basketballs), whose rim height over the court, inside diameter, board gap and level, every net loop threaded on its rim hook, each ball resting on its slab, the anchor bolts set through the plate into the slab, and every paint line set into its slab, are recomputed from the mesh, through the same pipeline. Falsifiers --drop-net exits 18, --tilt-rim 19, --loose-pad 20, --float-ball 21, --short-bolts 22, --float-paint 23.
pine-tree — the first nature piece: procedural mature Scots pine on a needle-litter soil disc (a buttressed trunk with plated lower bark bedded in the soil, surface roots, eight seeded whorls of heavy crooked limbs, 113 overlapping brushes of long thin needle strands each on its own twig, dead stubs and limbs, hanging cones, fallen cones, mossy stones and sticks), whose every limb's seat in the bark, whorl spacing, trunk plumb and crown balance, every clump seated on its own carrier and the ground cover bedded in the soil are recomputed from the mesh, through the same pipeline. Falsifiers --float-branches exits 17, --lean-crown 19, --bunch-whorls 20, --short-twigs 22, --float-litter 23.
desk-lamp — the first household piece: procedural balanced-arm desk lamp (stepped cast base, two parallelogram arm sections pinned through knuckle bosses, three tension springs hung on cross bars, domed shade with reflector and lamp, draped flex and plugged cable), whose every joint pin coaxial through the eyes it joins, every spring end seated on its bar, and mass centre over the base footprint are recomputed from the mesh, through the same pipeline. Falsifiers --offset-pin exits 17, --unhook-spring 18, --hollow-base 19, --unscrew-bulb 20.
quad-drone — the first vehicles piece: procedural camera quadcopter (two-tone moulded shell with panel lines, grilles, visor and battery pack, four folding arms hinged on pinned clevises, slotted brushless motors carrying twisted, swept two-blade props, rubber-footed skids, a three-axis gimbal camera), whose motor axes on an exact X, the gap between neighbouring prop discs, every foot on the ground and the mass centre over the landing footprint are recomputed from the mesh, through the same pipeline. Falsifiers --float-foot exits 16, --unlock-arm 17, --long-blades 18, --narrow-skids 19, --drop-lens 20.
soccer-goal — the second sports piece: procedural freestanding 5 × 2 m youth soccer goal (posts and crossbar in one oval aluminium extrusion with a net channel, mitred and welded at the corners, cast corner brackets, foot connectors and rear hubs, sloped supports and a steel ground frame pinned by staples and spikes, a sagging diamond-mesh net with a red head rope through 53 nylon clips, a turf patch with a painted goal line), whose ground bars bedded in the turf, supports seated in their sockets, head rope threaded through every clip, clear mouth size with plumb posts, and catenary sag of the back panel are recomputed from the mesh, through the same pipeline. Falsifiers --float-bar exits 16, --short-support 17, --unclip-net 18, --wide-mouth 19, --taut-net 20.
fallen-log — the second nature piece: procedural fallen forest log (one furrowed lathe along a bowed axis, bark peeled to sapwood scored by beetle galleries, a rotted hollow saw-cut butt with growth rings, a splintered snapped top, broken branch stubs, moss cushions on the top and shaded side, three tiers of bracket fungi, a soil mound with toadstools, ferns and fallen leaves), whose bed along its length, brackets rooted in the bark, mass centre over its contact patch, moss on up- and shade-facing surfaces and ground cover rooted in the soil are recomputed from the mesh, through the same pipeline. Falsifiers --hump-ground exits 17, --float-fungi 18, --tilt-ground 19, --sunny-moss 20, --float-litter 21.
office-chair — the second household piece: procedural ergonomic task chair on a chair mat at a desk corner (polished aluminium five-star base with ribbed spokes and five swivelled hooded twin-wheel casters, a chrome gas lift in a telescoping cover under a synchro-tilt mechanism with tension knob and paddles, a two-tone sculpted cushion with thigh channels, a waterfall front and piped welts in a moulded shell, an elastomeric mesh back and mesh headrest on graphite frames with an S-curved lumbar pad on sliders, 4D armrests, a smoked polycarbonate mat and a snake plant in a stone planter), whose mat flat on the floor with every wheel pressed into it, five-star spacing with plumb swivel stems on one circle, gas-lift column coaxial with hub and socket, mirrored level armrests with seat height and mass centre inside the caster contact hull, single connected chair, lumbar sliders clamped on the frame and leaves rooted in the soil are recomputed from the mesh, through the same pipeline. Falsifiers --float-caster and --curl-mat exit 16, --skew-spoke 17, --offset-column 18, --uneven-arms 19, --loose-wheel 20, --float-lumbar 21, --float-leaves 22.
hover-bike — the second vehicles piece: procedural sci-fi hover bike (a sculpted two-tone fuselage with panel seams, gasketed access panels, a belly service plate, decal plate, charge-port door, heat sink, grab rail and tail light, a stitched pleated saddle, a twin-stanchion fork through sculpted triple clamps with clip-ons, switch pods, pivoted levers and a visored instrument cluster, two glowing exhaust nozzles, two ducted fans with canted stator vanes and handed seven-blade rotors, aerofoil pylons with fastener rows and a conduit, and landing gear of twin-plate pressed links and oleo shocks on 16 pinned joints carrying ski-section skids on wear strips), whose skids on the floor, rotor hubs coaxial with their shrouds, blade-tip clearance to the shroud wall, mirror-symmetric fuselage with seat height, equal blade spacing, mass centre inside the skids' contact polygon, single connected assembly, pins coaxial with their bushings and shock rods coaxial and inside their stroke band are recomputed from the mesh, through the same pipeline. Falsifiers --float-skid exits 16, --offset-hub 17, --long-blades 18, --odd-hull 19, --skew-blade 20, --narrow-skids 21, --pop-lens 22, --offset-pin 24, --skew-rod and --short-rod 25.
weight-rack — the third sports piece: procedural home-gym half rack (punched, numbered square uprights on bolted base plates and padded feet, side rails on bolted flanges, a pull-up bar, J-hooks with UHMW-lined saddles and spotter arms on pull pins, four plate-storage horns, an Olympic barbell with a knurled shaft, collars and sleeves loaded with 20 and 15 kg bumpers and 5 kg iron plates behind spring clips, and two hex dumbbells on the floor), whose pads and dumbbell heads on the floor, pull pins coaxial with their holes, bar seated in both saddles and level, plates coaxial and seated along their sleeves, balanced load and single connected rack are recomputed from the mesh, through the same pipeline. Falsifiers --float-foot exits 16, --offset-pin 17, --float-bar 18, --hook-high 19, --gap-plate 20, --odd-load 21, --loose-horn 22.
boulder-cluster — the third nature piece: procedural glacial boulder cluster (four boulders cut from ellipsoids by cleavage planes with weathered bevels: a speckled granite block, a banded sandstone boulder split in two with matching crack faces and bedding, and a sandstone slab resting flat on a smaller granite boulder, with lichen crusts and moss cushions on the tops and north faces, sunk into a soil mound with grass tufts, pebbles and wildflowers), whose boulders sunk into the soil all round, slab seated on its support and balanced over its footprint, split halves matching across the crack, growth facing up or north and ground cover rooted in the soil are recomputed from the mesh, through the same pipeline. Falsifiers --perch-boulder exits 17, --float-slab 18, --perch-slab 19, --skew-half 20, --sunny-lichen 21, --float-cover 22.
floor-fan — the third household piece: procedural 1950s oscillating pedestal fan (a hollow two-tier cast base on a rubber gasket with a rotary speed switch and badge, a telescoping column with a knurled height-lock collar, a strap yoke with a tilt knob, a slotted motor housing with an oscillation knob, a two-half wire guard of spokes and rings welded to clipped rim rings, four swept brass blades on a hub with a spinner nut, and a cord to a plug), whose rotor and head coaxial with the guard, spokes seated in their rim rings, plumb column on the base's axis, blade-tip clearance, equal blade spacing, tip-over angle and single connected assembly are recomputed from the mesh, through the same pipeline. Falsifiers --offset-hub exits 17, --short-spoke 18, --lean-column 19, --long-blades 20, --skew-blade 21, --hollow-base 22, --loose-spinner 23.
motor-scooter — the third vehicles piece: procedural 1960s Italian step-through motor scooter (a pressed-steel tail with two bulbous side cowls, louvres on the engine side and chrome belt trims, a floorboard with runner strips pressed up into the tail and a leg shield convex in plan, arched into the headset and rimmed in chrome, with a horn cast and grille, a single-sided front end with a raked column, trailing link, coil spring and a crested mudguard, a headset carrying the headlamp, speedometer, grips, levers and mirrors, a two-tone piped dual saddle with a grab strap, 10-inch split rims in block-tread tyres, an alloy engine case with a finned cylinder, silencer and kick-start, a luggage rack, tail lamp and plate, and a centre stand), whose tyres and stand feet grounded, wheel axles level and parallel, steering trail, body mirror symmetry excluding the engine side, wheelbase, mass centre inside the support polygon, single connected assembly and the leg shield seated in the floorboard are recomputed from the mesh, through the same pipeline. Falsifiers --float-tyre exits 16, --toe-wheel 17, --steep-head 18, --odd-body 19, --short-wheelbase 20, --narrow-stand 21, --pop-speedo 22, --lift-shield 23.
bowling-pins — the fourth sports piece: procedural pin deck end of a ten-pin lane (a slab of 39 V-seamed maple boards crossed by the pin-deck joint, ten inlaid pin spots on a 12 in triangle, targeting arrows and range dots, channel gutters, cappings, kickbacks with sloped noses, aluminium caps and kick plates, a steel pit edge and sleepers; ten pins lathe-turned from the regulation profile table with red neck stripes and a crown band; an 8.5 in marbled ball drilled by an exact Boolean with a countersunk thumb hole and two parallel finger holes), whose sleepers grounded, pins centred on their spots, seated, plumb and to size, spots on the exact lattice, turned profile, ball resting on the lane at its radius, hole depths, bores, span and bridge, boards flush and parallel and single connected assembly are recomputed from the mesh, through the same pipeline. Falsifiers --float-sleeper exits 16, --offset-pin 17, --float-pin 18, --lean-pin 19, --wide-rack 20, --fat-neck 21, --float-ball 22, --shallow-holes 23, --proud-board 24, --lift-arrows 25.
pond-edge — the fourth nature piece: procedural pond margin on a raised soil disc (a bank sloping from turf through wet mud into a shallow basin, its cut edge showing its soil horizons; the water its own rippled sheet at a declared level, its rim run on under the bank; a cattail clump of arching strap leaves and five stems, each threaded through a velvet seed head with a bare spike; rush and turf tufts; five notched lily pads and two layered water lilies floating; wet stones, a half-submerged branch, pebbles and fallen leaves), whose leaves and stems rooted in the mud, pads floating at the water level, water level and ripple band, seed heads threaded on their stems, water enclosed by the bank and cover joined to the soil are recomputed from the mesh, through the same pipeline. Falsifiers --float-reeds exits 17, --sink-pad 18, --flat-water 19, --slip-heads 20, --short-water 21, --float-cover 22.
stand-mixer — the fourth household piece: procedural retro tilt-head stand mixer on a honed stone countertop section (a cast enamel base foot, neck and streamlined head lofted from superellipse sections, on four rubber feet; a tilt hinge pinned through two neck knuckles; a chrome trim band, blank badge, speed and tilt-lock levers; an attachment hub with cap and thumb screw; a planetary socket carrying a flat beater into a 4.5 L brushed stainless bowl with a rolled rim and strap handle under three bayonet lugs; a cord to a plug; a whisk, a measuring cup and two eggs in a glazed dish), whose feet on the counter, hinge pin coaxial through its knuckles, bowl seated and concentric on its plate, height and brim capacity, beater coaxial with its socket, beater's dime-test clearance to the bowl, mass centre inside the feet and single connected assembly are recomputed from the mesh, through the same pipeline. Falsifiers --float-foot exits 16, --offset-hinge 17, --offset-bowl 18, --shallow-bowl 19, --offset-beater 20, --long-beater 21, --bunch-feet 22, --loose-cap 23.
cargo-loader — the fourth vehicles piece: procedural sci-fi industrial cargo loader, a bipedal powered-lift exoframe (broad flat feet with rubber soles, grip cleats and toe bumpers; hydraulic legs of lofted box-section shins and thighs pinned at the ankle, knee and hip; arms hung from shoulder yokes on towers; every joint a clevis with a chrome pin through two lug bushings and an eye bushing; eight rams, each a collared cylinder with a chromed rod, a pinned bracket at each end and a hose; fork carriages with hazard-striped faces and forged L-tines; an open roll-cage cockpit with a bucket seat, four-point harness, joystick consoles, amber beacon and work lights; a power pack with a slatted grille, cooling fins, hazard bands, exhaust stacks and cable looms; a corrugated cargo crate held on the tines), whose soles grounded, clevis pins coaxial with their bushings, crate resting on both tines, soles level, ram rods coaxial with their cylinders, rod strokes, mass centre of loader and crate inside the soles' support polygon and single connected assembly are recomputed from the mesh, through the same pipeline. Falsifiers --float-foot exits 16, --offset-pin 17, --lift-crate 18, --tilt-sole 19, --skew-rod 20, --bottom-ram 21, --overload 22, --loose-light 23.
archery-target — the fifth sports piece: procedural archery range target (a compressed-straw boss coiled from rope courses that show on its back and edge, bound with doubled jute twine tight over the crests; an 80 cm ten-zone World Archery face with ring lines, an X ring and a printed X, held by target pins; a timber easel leaning it back 12° on toe skids with knee braces, a ledge with a stop lip on a bolted rail and gussets, a numbered butt board, a strap hinge pinned to a rear leg in a steel ferrule and foot, a splay chain between eye bolts; five arrows in the face, one glancing into the edge, one snapped with its fletched half on the grass, a leather quiver of arrows among grass tufts on a turf patch), whose supports bedded in the turf, hinge pin coaxial with its knuckles, boss seated on its ledge and leaning on both legs, regulation gold height and size, points buried in the straw, fletching clear of the face, vanes at 120°, ring radii of the scoring table, forward tip angle and single connected assembly are recomputed from the mesh, through the same pipeline. Falsifiers --float-foot exits 16, --offset-hinge 17, --lift-boss 18, --high-boss 19, --shallow-arrow 20, --short-arrow 21, --skew-vane 22, --wide-gold 23, --short-skids 24, --loose-pin 25.
cactus-garden — the fifth nature piece: procedural Sonoran cactus garden on a raised sand-and-gravel disc (a 2.2 m saguaro of fourteen pleated ribs with rounded crests, three arms leaving the trunk through a smooth collar and turning up through wide elbows, a corky boot and scars, felt areoles with radiating spine clusters down every crest and cream flowers on the crown; a fishhook barrel cactus with a red hooked central at every areole and a ring of yellow fruit; a prickly pear of twelve broad sage paddles fused pad on pad in four tiers, with glochids and magenta fruit; a blue agave rosette, cleaved sandstone rocks, a bleached branch, fallen saguaro ribs, dry bunchgrass and gravel), whose arms biting into the trunk, pads jointed into their parents, plumb saguaro with its mass over its foot, ribs at equal stations, spines rooted in the skin, plants bedded in the sand and cover joined to the sand are recomputed from the mesh, through the same pipeline. Falsifiers --short-arm exits 17, --shallow-pad 18, --lean-saguaro 19, --skew-ribs 20, --float-spines 21, --perch-barrel 22, --float-cover 23.
espresso-machine — the fifth household piece: procedural prosumer E61 espresso machine on a honed stone countertop section (a black chassis behind a brushed stainless front panel, side panels folded round its edges with louvred vent slots cut through each sheet, a warmer tray with a bent rail and four upturned cups, adjustable feet; the chromed E61 group with its neck, gasket, mushroom cap and a lever pinned through two bosses; a spouted portafilter with a walnut handle; steam and hot-water valves with fluted bakelite knobs and wands on ball joints; twin gauges with printed dials in chrome bezels; a toggle and pilot lamp; a drip tray whose slotted grate carries a shot cup of espresso; a knock box, a tamper and a milk pitcher), whose feet on the counter, lever pin coaxial through its bosses, cups seated on their hosts, body size, portafilter coaxial and seated to the gasket, gauge glasses recessed in their bezels, drip tray inside the footprint, mass centre inside the feet and single connected assembly are recomputed from the mesh, through the same pipeline. Falsifiers --float-foot exits 16, --offset-pin 17, --sink-cup 18, --narrow-body 19, --offset-pf 20, --drop-pf 21, --proud-gauge 22, --shift-tray 23, --bunch-feet 24, --loose-knob 25.
road-bicycle — the fifth vehicles piece: procedural 1970s lugged-steel road bicycle leaning on its side kickstand (a 56 cm diamond frame in chromed, spear-pointed lugs, tapered stays with chrome tips, a chrome-crowned fork with socks; two 700c wheels of 36 spokes laced three-cross from both flanges of small-flange hubs to nipples through box-section rims, quick-release skewers, tan-wall tyres with a file-tread crown; a 52/42 crankset with quill pedals, toe clips and straps, a six-speed freewheel and a roller chain of 112 individual links solved round the ring, the cog and both jockeys; front and rear derailleurs, down-tube shifters, side-pull calipers, gum-hooded levers on cotton-taped drop bars, a quill stem, a leather saddle on rails, a bottle in a bolted cage), whose hubs coaxial with their dropouts, spoke seats in flange and nipple, wheels in the frame's plane, steering trail, three-cross lacing, chain seated on ring and cog, straight chain line, mass centre inside the tyres-and-foot triangle and one connected assembly are recomputed from the mesh, through the same pipeline. Falsifiers --float-tyre exits 16, --slip-wheel 17, --short-spoke 18, --dish-wheel 19, --steep-head 20, --bunch-spokes 21, --lift-chain 22, --shift-rollers 23, --tuck-stand 24, --pop-bottle 25.
skate-ramp — the sixth sports piece: procedural backyard quarter-pipe, 1.2 m on a 1.8 m transition (five plywood transition templates on 2x4 sills with sistered studs and a back post, nine 2x4 stringers under a two-layer plywood skin with joints offset between layers and landing on stringers, screw rows over every stringer, a steel coping pipe on welded, bolted tabs, a steel kicker plate ground to a lip on a toe block, a worn stencilled roundel and wheel marks; a skateboard on the deck with a seven-ply concave deck, kicktails, grip tape, two trucks and four wheels on bearings), whose sills on the floor, templates seated on sills and under the skin, wheels on the deck, circular transition, coping reveal, flush kicker plate, staggered seams, screws over stringers, coaxial wheels and one connected assembly are recomputed from the mesh, through the same pipeline. Falsifiers --float-sill exits 16, --short-rib 17, --small-wheel 18, --sag-skin 19, --sink-coping 20, --proud-plate 21, --stack-seams 22, --miss-screws 23, --skew-wheel 24, --lift-grip 25.
palm-tree — the sixth nature piece: procedural coconut palm on a raised disc of rippled beach sand (a 4.47 m trunk rising from a swollen, lobed bole with a mat of 24 roots flaring out into the sand, leaning along a curve and coming back upright under the crown, tapering, ringed with 25 leaf scars at an even pitch; a fibrous boss of leaf bases carrying eighteen pinnate fronds in a golden-angle spiral, each a curved, drooping rachis with 36 pairs of folded leaflets hanging below it in a V, young fronds rising and old ones hanging; two dead fronds, two spear leaves and twelve green and ripening coconuts in bunches under the frond bases; two fallen coconuts, a fallen frond, driftwood, seashells and sea grass), whose fronds seated in the crown, coconuts attached under it, trunk height and lean with the crown's mass inside the root plate, leaf-scar rings at an even pitch, trunk and roots bedded in the sand, fallen coconuts resting in it and beach litter joined to it are recomputed from the mesh, through the same pipeline. Falsifiers --short-petioles exits 17, --drop-coconut 18, --short-roots 19, --bunch-rings 20, --perch-trunk 21, --float-nuts 22, --float-cover 23.
wingback-armchair — the sixth household piece: procedural reading corner on a fringed wool rug (a Queen Anne / Chesterfield wingback in oxblood leather: a reclined back deep-button tufted with thirteen buttons on a diamond lattice, each seated in a funnelled dimple, the leather puffed into pillows and folded into sharp pleats along every line joining two buttons; wings sweeping forward into rolled arms with a tucked English roll, crowned scroll fronts, piped welts and rows of brass nailheads, a nailed front rail, a loose crowned cushion with piped welts on both seams, cabriole front legs on pad feet and splayed rear legs in brass ferrules; beside it a walnut tripod side table with a brass reading lamp, a linen shade and two cloth-bound books), whose feet sunk into the rug, legs tenoned into the body, buttons seated in their dimples, mirror symmetry and size, diamond lattice, table's mass centre inside its feet, cushion resting on the deck and evenly spaced, seated nailheads are recomputed from the mesh, through the same pipeline. Falsifiers --float-foot exits 16, --short-legs 17, --sink-buttons 18, --odd-wing 19, --drift-buttons 20, --narrow-tripod 21, --lift-cushion 22, --bunch-nails 23.
planet-rover — the sixth vehicles piece: procedural six-wheeled planetary science rover on a patch of rocky red-grey regolith (a cream warm-electronics body with quilted gold-foil blankets, a deck of instrument boxes, inlets and a calibration target, a finned power unit on struts between two radiator banks; a rocker on each side pivoting on a boss in the body and a bogie pinned in a clevis on its front end, the two rockers linked through a differential bar on the deck; six drum wheels with 24 chevron grousers, curved flexure spokes and drive actuators, the four corners on steering actuators; a camera mast, a high-gain dish on a two-axis gimbal, a whip; a 5-DOF arm drilling a boulder; harnesses along every leg; ruts behind the wheel lines and 19 broken rocks), the regolith fitted so every wheel sinks 11–19 mm into it. --float-wheel exits 16 on every wheel sunk in band, --offset-pin 17 on the pivot pins coaxial with their bushings, --sink-grousers 18 on the grousers seated on the drum, --lean-mast 19 on the mast plumb and the rover's size, --jam-rocker 20 on the rockers equal and opposite through the differential, --offset-steer 21 on the steering axes through the wheel centres, --camber-wheel 22 on the axles level and lateral, --bunch-grousers 23 on the grouser pitch, --overload-turret 24 on the mass centre inside the support polygon by the 45° tip margin, --loose-dish 25 on one connected assembly, while the envelope holds.
traffic-cones — the seventh vehicles piece: procedural roadworks set on a cut-out patch of asphalt (a broken edge, a worn white road line and two sealed tar cracks; seven 720 mm PVC cones, each a hollow lathed body with a moulded bead and a rolled lip round an open tip, bonded into a square rubber base with chamfered corners, a raked top, a collar, four lugs and a recess underneath, and hooped with two retroreflective collars; three standing in a taper line, three nested in a stack and one knocked over onto the edge of its base and its lip; a folding A-frame barricade of four square steel legs hinged in pairs on pivot bolts, spread by pinned straps, footed in rubber pads, with two striped boards bolted to each face and a warning lamp with amber fresnel lenses on a bracket), the cone wall sized so each cone in the stack bears 1 mm on the one below at a 36 mm pitch. --float-cone exits 16 on every support bedded in the slab, --gap-board 17 on the boards biting their legs, --float-band 18 on the collars seated on their bodies, --lean-cone and --skew-leg 19 on the cones plumb at real size and the legs mirror-symmetric, --loose-stack 20 on the nesting pitch and wall bite, --loose-lamp 21 on one connected assembly, while the envelope holds.
mushroom-stump — the seventh nature piece: procedural felled-tree stump on a sloping forest-floor soil disc (one furrowed lathe about a plumb axis flaring through five buttresses into the ground, plated bark peeled to sapwood in two patches, a level saw cut with weathered growth rings round a dark heartwood, radial drying checks notching the rim and a strip of torn holding wood with long splinters, five surface roots lying in the soil and diving into it, moss on the shaded flank, two tiers of turkey-tail brackets, three fly agarics with warted caps, pleated gills, a volva and a hanging skirt, two clusters of ringed honey fungus out of a root and the stump's foot, fallen leaves, ferns, twigs and pebbles), whose foot sealed in the soil all round, caps seated on their stipes, level cut and stated size, roots bedded along their run, stipes rooted in their soil or wood, brackets rooted in the bark, moss on up- and shade-facing surfaces and ground cover joined to the soil are recomputed from the mesh, through the same pipeline. --perch-stump exits 17 on the stump sealed all round, --float-caps 18 on every cap seated on its stipe, --tilt-cut and --fat-stump 19 on the level cut and stated size, --arch-roots 20 on the roots bedded, --float-mushrooms 21 on every stipe rooted in its host, --float-brackets 22 on the brackets rooted in the bark, --sunny-moss 23 on moss facing up or into the shade, --float-cover 24 on the ground cover joined to the soil, while the envelope holds.
go-kart — the eighth vehicles piece: procedural rental go-kart on a patch of kart-track asphalt against a red and white kerb (a 30 mm tube chassis whose main loop is one bar swept round every bend, cross tubes ending inside the rails with welded gussets, bearing hangers and kingpin C-brackets; spindles on kingpin bolts with 14° caster; a three-spoke wheel on a raked column in a bushing, a steering plate and two tie rods on rod-end eyes; a bolted nose, side pods on nerf bars and a curved front panel; a moulded seat on stays, a floor tray, two pedals, a strapped fuel tank with its line and a lead ballast block; a finned four-stroke clamped to the right rail with a pull-start, air-box and silencer, driving the live rear axle through a clutch, an 88-link chain solved to a whole number of pitches and a 60-tooth sprocket; bearing carriers, a brake disc and caliper; a tubular rear bumper; four loaded slicks on split rims with valve stems, the fronts narrower than the rears), whose tyres pressed into the asphalt in one plane, hubs and bearings coaxial with their axles, tie-rod eyes on their pins, tyre beads and chain seated, frame, bodywork and wheels mirrored at the stated wheelbase and tracks, caster, mass centre inside the support polygon and one connected assembly are recomputed from the mesh, through the same pipeline. --float-tyre exits 16 on every tyre grounded, --cock-hub, --drop-bearing and --short-tierod 17 on joint fit, --sink-tyre and --lift-chain 18 on the bead and chain seats, --toe-wheel, --wide-track, --odd-frame and --no-caster 19 on mirror, size and caster, --aft-ballast 20 on the stance, --loose-ballast 21 on one connected assembly, while the envelope holds.
broadleaf-oak — the eighth nature piece: procedural mature, open-grown English oak on a sloping grassy soil disc (a short fluted, ridged trunk flaring through six buttresses into surface roots bedded in the soil, a low fork into five crooked scaffold limbs that divide three more times into 260 tapered branches, each seated in its parent and narrowing past every junction by its child's area, a broad domed crown of 1370 lobed oak leaves in clusters on every twig tip, dead twigs, acorns with scaly cups and glossy nuts hanging on stalks and lying in the grass among curled fallen leaves, tufts and sticks), whose branch seats, da Vinci taper, nuts seated in their cups, plumb trunk and balanced crown, foot and roots sealed in the soil, leaves carried by their twigs, acorns hung on their stalks and ground cover joined to the soil are recomputed from the mesh, through the same pipeline. --float-branches exits 17 on every branch seated in its parent, --pop-nuts 18 on every nut seated in its cup, --lean-crown 19 on plumb and balance, --fat-twigs 20 on the taper and area rule, --perch-trunk and --arch-roots 21 on the trunk and roots sealed in the soil, --orphan-clump 22 on every leaf cluster carried by its twig, --drop-acorns 23 on the hanging acorns on their stalks, --float-cover 24 on the ground cover joined to the soil, while the envelope holds.
farm-tractor — the ninth vehicles piece: procedural mid-century utility tractor standing in the ruts of a muddy farmyard with a puddle between its wheels (a cast-iron backbone of engine, bell housing, gearbox and rear axle housing with trumpets; a front axle oscillating on a pivot pin through the front support's lugs and two bushings, kingpins, spindles and a tie rod; 1.240 m rear tyres with 44 chevron bars rooted in the carcass and handed for forward travel, on dished rims with welded clamp lugs and cast-iron half-moon weights; ribbed front tyres; a grille shell with radiator and headlamps, a louvred bonnet, fuel tank and dash; a vertical exhaust stack with a hinged rain cap and an oil-bath pre-cleaner bowl; a raked steering column, a pan seat on a leaf spring, pedals and footplates; mudguards with a tail lamp and a work lamp; a three-point linkage with lift arms, lift rods, lower links, a stowed top link and the drawbar, and a PTO stub under its shield; paint chipped to primer at its edges, rust-streaked, sun-faded and mud-splashed). Asserts 122272 tris, twelve materials with face floors, zero coplanar cross-shell pairs, every tyre sunk 18–45 mm into the mud, hubs and the pivot pin coaxial, 14 link eyes on their pins, beads seated, 88 bars rooted and evenly pitched with their apex leading, body and wheels mirrored, wheelbase, tracks and rear-tyre diameter at their stated size, the mass centre inside the support triangle of the rear contacts and the front pivot by a quarter of the track, and one connected assembly; --float-tyre exits 16, --cock-hub, --cant-pin and --unpin-link 17, --sink-tyre and --float-lugs 18, --skew-wheel, --wide-track, --tall-lugs and --odd-fender 19, --bunch-lugs 20, --reverse-lugs 21, --offset-pivot 22, --loose-lamp 23, while the envelope holds.
fern-mossy-rock — the ninth nature piece: procedural shaded woodland corner on a sloping soil bank (a gritstone boulder cleaved into broken, weathered faces and split by a deep crack, sunk into the bank all round, a thick moss cushion over its crown draped down its shaded front as a conforming shell with a lumpy rim tucked into the stone, a male fern's shuttlecock crown of eleven bipinnate fronds whose 434 alternate pinnae are cut into pinnules and taper to the tip, three fiddleheads unrolling as logarithmic spirals from a scaly rootstock bedded in the soil, a smaller fern growing out of the crack, and beech litter, pebbles, a twig and wood sorrel at the foot), whose rooted fronds and rootstock, moss thickness over the stone, boulder sealed in the bank, moss facing up or into the shade, crack fern wedged in the cleft, pinna alternation and taper, true spirals and ground cover are recomputed from the mesh, through the same pipeline. --float-fronds and --lift-crown exit 17 on every frond rooted in its crown and the crown sealed in the soil, --float-moss 18 on the moss cushion's thickness band on the stone, --perch-rock 20 on the boulder sealed all round, --sunny-moss 21 on moss facing up or into the shade, --perch-crack-fern 22 on the crack fern rooted in the cleft, --flat-taper and --opposite-pinnae 23 on pinnae alternating and tapering along the rachis, --open-crozier 24 on every fiddlehead a real spiral, --float-cover 25 on the ground cover joined to the soil, while the envelope holds.
Runnable, smoke-gated demos live in examples/ — each is executed headless on
Blender 5.2 LTS and 4.5 LTS by the blender-smoke workflow (5.1 on the weekly cron, the needs-5.1 PR label, or manual dispatch), so the screenshots reflect code
that actually runs. Browse them all with filters and full-size renders in the
examples gallery,
or expand a category below.
Materials, shading & compositing — 7 examples
Mesh, curves & text — 13 examples
Geometry Nodes — 7 examples
Animation, rigging & constraints — 6 examples
Context & Grease Pencil — 5 examples
Game asset pipeline — 22 examples
|
A game-prop supply crate round-tripped through |
|
The same radio-mast mesh under the Unity ( |
|
One recognizable asset at three LODs via |
|
Cycles cage-bakes a ribbed hatch onto a |
|
The game-engine max-four-bone-influences constraint, enforced through the data
API ( |
|
The normal-mapping tangent-space contract: deterministic triangulation
( |
|
The skinning counterpart to |
|
The compound-collision contract prop pipelines (engines generally,
FiveM/GTA-style prop workflows specifically) ingest: one convex hull piece
per part group, built with |
|
The shading contract a prop's silhouette depends on: since Blender 4.1,
hard edges are mesh data (face smooth flags + |
|
The mesh-cleanliness contract a prop pipeline relies on before engine ingest:
no ngons, no loose vertices, every edge bordering exactly two faces, no
zero-area faces, contiguous and outward winding on all eight parts of a
flanged street valve, and Euler |
|
The origin / scale-apply / MPI contract a prop pipeline relies on before
engine ingest: data-API scale bake to exactly |
|
The truncated icosahedron as a bmesh contract: every icosphere edge cut at
exactly |
|
The Mirror + depsgraph contract: the datablock holds only the authored half
(676/1289/614, 104 centerline verts) while the evaluated mesh is the welded
whole — exactly |
|
What |
|
The half-dimension bevel collapse, isolated. A slab beveled at
|
|
A tiling corridor kit where the snap is the contract. 16 boundary verts
on |
|
The second UV layer engines need for baked lighting, on a reusable market
cart. Per-part |
|
Named |
|
Baked occlusion in a colour attribute, checked against a formula instead
of a captured value: the cosine-weighted hemisphere integral for a wall of
height |
| check-only, no gallery still — a hexagon on a cube is not thumbnail-legible |
Synthesizes one 6-loop hexagon by dissolving a cube edge. Pre-asserts the
n-gon exists (1 face / 6 loops / 5 faces), then |
| check-only, no gallery still — unapplied scale looks like modeled non-uniform size |
Unit cube with object scale |
| check-only, no gallery still — coincident cubes look like one cube |
Two cubes in one mesh: 16 verts / 8 unique / still manifold. Pre-asserts
the duplicates, then glTF ships 24 tris / 48 positions / 8 unique.
|
skills/<name>/SKILL.md - 16 skill files, YAML frontmatter, one canonical pattern each
rules/<name>.mdc - 9 rule files, anti-pattern + correction
templates/<name>/ - 3 template directories (extension-addon-template, headless-batch-script-template, ai-asset-pipeline-template)
snippets/<name>.py - 27 standalone Python snippets, 5 to 50 lines each
The .mdc files in rules/ apply automatically when Cursor opens a Blender Python project, scoped by the globs in each rule's frontmatter. The nine rules are:
prefer-data-over-ops-in-loops: flagsbpy.ops.*calls inside object iterationalways-free-bmesh: flagsbmesh.new()without pairedbm.free()intry/finallytarget-extensions-platform-format: flags add-ons missingblender_manifest.tomltype-annotate-props-and-defend-context: flagsbpy.propsassignment form and unguardedcontext.active_objectprefer-temp-override-over-context-copy: flagsbpy.context.copy()passed to operators (deprecated 4.x, removed 5.x)use-foreach-set-for-bulk-data: flags Python loops overmesh.verticessettingco, normals, or other per-element bulk datavalidate-imported-mesh-scale: flags glTF/FBX import then mesh work with notransform_applyand no unit-scale checkno-unapplied-modifiers-on-export: flags export of objects with live modifiers when the export does not request evaluated geometryuse-correct-axis-rna-per-exporter: flagsexport_scene.gltfcalls that pass FBXaxis_forward/axis_up, andexport_scene.fbxcalls that pass glTFexport_yup
Symlink or clone this repo, then point Cursor at it as a skills/rules source.
templates/extension-addon-template/ is a working Blender extension. Copy the directory, edit blender_manifest.toml (id, version, name, maintainer), and install via Edit > Preferences > Get Extensions > Install From Disk. The template registers an Operator, a Panel, and a PropertyGroup, and demonstrates the register_classes_factory pattern with symmetric register() and unregister().
templates/headless-batch-script-template/ is a working starter for unattended Blender batch jobs. It opens a .blend, optionally adds and applies a modifier to every mesh, and exports to glTF, with explicit exit codes for CI integration. Run with blender --background <input.blend> --python script.py -- --output ....
templates/ai-asset-pipeline-template/ is a working starter for a headless GLB-in / engine-ready-out job. It imports a GLB, runs the ai-mesh-cleanup order, emits an LOD chain and optional collider, and exports under a Unity, Godot, or Unreal glTF preset. Run with blender --background --python pipeline.py -- --input ... --outdir ... --preset unity.
Each snippet is a standalone Python file under snippets/. They are not loaded as a package. Open one, copy the relevant lines into your script, and adapt the names. Each file's header comment cites the Blender doc URL or research section the pattern came from.
| Resource | Use it for |
|---|---|
| Blender 5.2 LTS Python API | Authoritative reference for current stable APIs |
| Blender 5.1 Python API | Prior stable |
| Blender 4.5 LTS Python API | LTS reference when targeting 4.5 |
| Extensions Platform manual | blender_manifest.toml schema, hosting, install flow |
| developer.blender.org | Release notes, breaking change tracking, design docs |
When community content (Stack Overflow, older add-on source) conflicts with the official docs, prefer the docs. The 2.x to 4.x to 5.x churn around Actions, Extensions, and property handling has invalidated a lot of older material.
See ROADMAP.md for the candidate pool and what ships next. Releases are cut automatically from conventional commits; the full history lives in CHANGELOG.md.
Issues and pull requests are welcome — see CONTRIBUTING.md for the
workflow, SECURITY.md for reporting vulnerabilities, and
CODE_OF_CONDUCT.md for community standards. New examples must
follow the anatomy of examples/bmesh-gear/ and the render
look in docs/VISUAL-STYLE.md.
Copyright (c) 2026 TM Hospitality Strategies. Licensed under CC-BY-NC-ND-4.0.
































































































![Cross-version property delete: two stage lamps on one stand — the left lamp keeps its ID property and glows, lighting a placard reading obj["accession"] = 42; the right lamp had del obj["accession"] and stands dark](/TMHSDigital/Blender-Developer-Tools/raw/main/examples/cross-version-property-delete/preview.webp)



















