|
18 | 18 | </p> |
19 | 19 |
|
20 | 20 | <p align="center"> |
21 | | - <strong>12 skills</strong> • <strong>6 rules</strong> • <strong>2 templates</strong> • <strong>17 snippets</strong> • <strong>35 examples</strong> |
| 21 | + <strong>12 skills</strong> • <strong>6 rules</strong> • <strong>2 templates</strong> • <strong>17 snippets</strong> • <strong>36 examples</strong> |
22 | 22 | </p> |
23 | 23 |
|
24 | 24 | <p align="center"> |
|
36 | 36 |
|
37 | 37 | ## Overview |
38 | 38 |
|
39 | | -This repository ships **12 skills, 6 rules, 2 templates, 17 snippets, and 35 runnable examples** for Blender Python development targeting Blender 5.1 (current stable) with Blender 4.5 LTS fallback support. |
| 39 | +This repository ships **12 skills, 6 rules, 2 templates, 17 snippets, and 36 runnable examples** for Blender Python development targeting Blender 5.1 (current stable) with Blender 4.5 LTS fallback support. |
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 |
|
@@ -537,7 +537,7 @@ portable path is `radius`. |
537 | 537 | </details> |
538 | 538 |
|
539 | 539 | <details> |
540 | | -<summary><strong>Game asset pipeline</strong> — 8 examples</summary> |
| 540 | +<summary><strong>Game asset pipeline</strong> — 9 examples</summary> |
541 | 541 |
|
542 | 542 | <table> |
543 | 543 | <tr> |
@@ -682,6 +682,23 @@ closed solid (measured 24/44/22, volume 0.989248). Companion to |
682 | 682 | and [`bmesh-gear`](examples/bmesh-gear/) (parametric closed solids). Dual-panel |
683 | 683 | still: DIRTY (injected boundary + loose vert) vs CLEAN. |
684 | 684 |
|
| 685 | +</td> |
| 686 | +</tr> |
| 687 | +<tr> |
| 688 | +<td width="46%" valign="middle"> |
| 689 | +<a href="examples/prop-origin-transform/"><img src="examples/prop-origin-transform/preview.webp" alt="Prop origin transform: dual-panel TRAP vs MPI KEEP street pedestals — left bare-parent accessory teleports with expected-seat ghost, right accessory stays put, emissive origin markers at base — proving scale apply, base origin, and matrix_parent_inverse" /></a> |
| 690 | +</td> |
| 691 | +<td valign="middle"> |
| 692 | + |
| 693 | +### [prop-origin-transform](examples/prop-origin-transform/) |
| 694 | + |
| 695 | +The origin / scale-apply / MPI contract a prop pipeline relies on before |
| 696 | +engine ingest: data-API scale bake to exactly `(1,1,1)`, local bbox |
| 697 | +`min.z == 0` (origin at base), world AABB unchanged across the bake, and |
| 698 | +`matrix_parent_inverse` so a bolted accessory does not teleport. Extends |
| 699 | +[`parent-inverse-orrery`](examples/parent-inverse-orrery/) without retreading |
| 700 | +orbits. Dual-panel still: TRAP (bare parent) vs MPI KEEP. |
| 701 | + |
685 | 702 | </td> |
686 | 703 | </tr> |
687 | 704 | </table> |
|
0 commit comments