|
18 | 18 | </p> |
19 | 19 |
|
20 | 20 | <p align="center"> |
21 | | - <strong>13 skills</strong> • <strong>6 rules</strong> • <strong>2 templates</strong> • <strong>17 snippets</strong> • <strong>47 examples</strong> |
| 21 | + <strong>13 skills</strong> • <strong>6 rules</strong> • <strong>2 templates</strong> • <strong>17 snippets</strong> • <strong>48 examples</strong> |
22 | 22 | </p> |
23 | 23 |
|
24 | 24 | <p align="center"> |
|
36 | 36 |
|
37 | 37 | ## Overview |
38 | 38 |
|
39 | | -This repository ships **13 skills, 6 rules, 2 templates, 17 snippets, and 47 runnable examples** for Blender Python development targeting Blender 5.2 LTS (current stable) with Blender 4.5 LTS fallback support. Blender 5.1 is prior stable. |
| 39 | +This repository ships **13 skills, 6 rules, 2 templates, 17 snippets, and 48 runnable examples** for Blender Python development targeting Blender 5.2 LTS (current stable) with Blender 4.5 LTS fallback support. Blender 5.1 is prior stable. |
40 | 40 |
|
41 | 41 | The content is consumed by AI coding agents (Cursor, Claude Code, any MCP-capable client) when working on Blender add-ons, geometry nodes scripts, batch pipelines, or animation tooling. There is no build step. Edit the markdown and Python files directly. |
42 | 42 |
|
@@ -377,7 +377,7 @@ inside the effect. Per-frame sample renders assert the closed form (mid dips |
377 | 377 | </details> |
378 | 378 |
|
379 | 379 | <details> |
380 | | -<summary><strong>Geometry Nodes</strong> — 3 examples</summary> |
| 380 | +<summary><strong>Geometry Nodes</strong> — 4 examples</summary> |
381 | 381 |
|
382 | 382 | <table> |
383 | 383 | <tr> |
@@ -420,6 +420,22 @@ One Geometry Nodes tree, three modifier copies. Writes a Float Scale input throu |
420 | 420 | `mod.properties.inputs` on 5.2 and `mod[identifier]` on 4.5/5.1. Asserts readback and |
421 | 421 | evaluated Z-extent equal 1 / 2 / 3. The 5.1 dict form raises TypeError on 5.2. |
422 | 422 |
|
| 423 | +</td> |
| 424 | +</tr> |
| 425 | +<tr> |
| 426 | +<td width="46%" valign="middle"> |
| 427 | +<a href="examples/gn-zone-iterate/"><img src="examples/gn-zone-iterate/preview.webp" alt="GN zone iterate: four brass cubes in a row (Repeat Zone) beside a tower of six teal cubes (For Each Element) on a dark studio floor, proving pair_with_output actually iterates" /></a> |
| 428 | +</td> |
| 429 | +<td valign="middle"> |
| 430 | + |
| 431 | +### [gn-zone-iterate](examples/gn-zone-iterate/) |
| 432 | + |
| 433 | +Repeat Zone and For Each Element only iterate after `pair_with_output`. Asserts |
| 434 | +evaluated cubes against closed forms — Repeat `8×(1+N)` with X-centers at |
| 435 | +`k×1.2`, For Each `8×P` with Z-centers at `i×0.6+0.21` — not that the zone |
| 436 | +nodes exist. Unpaired evaluates empty; For Each's main Geometry socket is a |
| 437 | +passthrough. |
| 438 | + |
423 | 439 | </td> |
424 | 440 | </tr> |
425 | 441 | </table> |
|
0 commit comments