|
1 | 1 | { |
2 | | - "_comment": "FORWARD-COMPATIBLE SOURCE OF TRUTH for the examples gallery. The local page at docs/gallery/index.html is GENERATED from this file by scripts/build_gallery.py -- do not hand-edit the HTML. When the fleet template (Developer-Tools-Directory: site-template/build_site.py + template.html.j2) gains examples support (see ROADMAP: 'Fleet Pages examples support'), it reads this same file and the local page is retired. That migration is a lift-and-shift, not a rewrite: keep this schema stable. Per-entry schema: {name, dir, teaches, witnessesFix, hero, preview, tags?}; hero/preview/dir are repo-root-relative; tags is an optional additive list driving the gallery filter chips. build_gallery.py also emits a detail page per example at docs/gallery/<name>/.", |
| 2 | + "_comment": "FORWARD-COMPATIBLE SOURCE OF TRUTH for the examples gallery. The local page at docs/gallery/index.html is GENERATED from this file by scripts/build_gallery.py -- do not hand-edit the HTML. When the fleet template (Developer-Tools-Directory: site-template/build_site.py + template.html.j2) gains examples support (see ROADMAP: 'Fleet Pages examples support'), it reads this same file and the local page is retired. That migration is a lift-and-shift, not a rewrite: keep this schema stable. Per-entry schema: {name, dir, teaches, witnessesFix, hero, preview, tags?, assetSelect?}; hero/preview/dir are repo-root-relative; tags is an optional additive list driving the gallery filter chips; assetSelect ({include, exclude?} regexes on object names) tells scripts/asset_sheet.py which objects are the hero asset. build_gallery.py also emits a detail page per example at docs/gallery/<name>/.", |
3 | 3 | "title": "Examples and Showcase", |
4 | 4 | "description": "Runnable Blender Python examples, each run headless on Blender 5.2 LTS and 4.5 LTS in CI, so every render reflects code that actually runs — shown beside budget-conformance showcase props.", |
5 | 5 | "repoBaseUrl": "https://github.com/TMHSDigital/Blender-Developer-Tools/tree/main", |
|
54 | 54 | "tags": [ |
55 | 55 | "depsgraph", |
56 | 56 | "export" |
57 | | - ] |
| 57 | + ], |
| 58 | + "assetSelect": { |
| 59 | + "include": "^Gamepad\\." |
| 60 | + } |
58 | 61 | }, |
59 | 62 | { |
60 | 63 | "name": "wave-displace", |
|
120 | 123 | "tags": [ |
121 | 124 | "operators", |
122 | 125 | "context" |
123 | | - ] |
| 126 | + ], |
| 127 | + "assetSelect": { |
| 128 | + "include": "^Lantern$" |
| 129 | + } |
124 | 130 | }, |
125 | 131 | { |
126 | 132 | "name": "gn-instance-grid", |
|
133 | 139 | "tags": [ |
134 | 140 | "geometry-nodes", |
135 | 141 | "instancing" |
136 | | - ] |
| 142 | + ], |
| 143 | + "assetSelect": { |
| 144 | + "include": "^Macropad\\." |
| 145 | + } |
137 | 146 | }, |
138 | 147 | { |
139 | 148 | "name": "gn-modifier-inputs", |
|
146 | 155 | "tags": [ |
147 | 156 | "geometry-nodes", |
148 | 157 | "modifiers" |
149 | | - ] |
| 158 | + ], |
| 159 | + "assetSelect": { |
| 160 | + "include": "^SpiralStair\\.H3$" |
| 161 | + } |
150 | 162 | }, |
151 | 163 | { |
152 | 164 | "name": "shape-key-blend", |
|
159 | 171 | "tags": [ |
160 | 172 | "mesh", |
161 | 173 | "shape-keys" |
162 | | - ] |
| 174 | + ], |
| 175 | + "assetSelect": { |
| 176 | + "include": "^Vase$" |
| 177 | + } |
163 | 178 | }, |
164 | 179 | { |
165 | 180 | "name": "curve-bevel-arc", |
|
172 | 187 | "tags": [ |
173 | 188 | "curves", |
174 | 189 | "bevel" |
175 | | - ] |
| 190 | + ], |
| 191 | + "assetSelect": { |
| 192 | + "include": "^(Magnet|Clip\\w+|PoleBearings)$" |
| 193 | + } |
176 | 194 | }, |
177 | 195 | { |
178 | 196 | "name": "compositor-glare", |
|
336 | 354 | "tags": [ |
337 | 355 | "export", |
338 | 356 | "uv" |
339 | | - ] |
| 357 | + ], |
| 358 | + "assetSelect": { |
| 359 | + "include": "^Crate\\.Authored$" |
| 360 | + } |
340 | 361 | }, |
341 | 362 | { |
342 | 363 | "name": "export-preset-axis", |
|
348 | 369 | "preview": "examples/export-preset-axis/preview.webp", |
349 | 370 | "tags": [ |
350 | 371 | "export" |
351 | | - ] |
| 372 | + ], |
| 373 | + "assetSelect": { |
| 374 | + "include": "^RadioMast\\.Unity$" |
| 375 | + } |
352 | 376 | }, |
353 | 377 | { |
354 | 378 | "name": "lod-decimate-chain", |
|
361 | 385 | "tags": [ |
362 | 386 | "depsgraph", |
363 | 387 | "mesh" |
364 | | - ] |
| 388 | + ], |
| 389 | + "assetSelect": { |
| 390 | + "include": "^Rocket$" |
| 391 | + } |
365 | 392 | }, |
366 | 393 | { |
367 | 394 | "name": "vertex-weight-limit", |
|
374 | 401 | "tags": [ |
375 | 402 | "armature", |
376 | 403 | "mesh" |
377 | | - ] |
| 404 | + ], |
| 405 | + "assetSelect": { |
| 406 | + "include": "^MechArm$" |
| 407 | + } |
378 | 408 | }, |
379 | 409 | { |
380 | 410 | "name": "triangulate-tangents", |
|
387 | 417 | "tags": [ |
388 | 418 | "mesh", |
389 | 419 | "uv" |
390 | | - ] |
| 420 | + ], |
| 421 | + "assetSelect": { |
| 422 | + "include": "^Buckler(\\.Rivets)?$" |
| 423 | + } |
391 | 424 | }, |
392 | 425 | { |
393 | 426 | "name": "gltf-skin-roundtrip", |
|
400 | 433 | "tags": [ |
401 | 434 | "export", |
402 | 435 | "armature" |
403 | | - ] |
| 436 | + ], |
| 437 | + "assetSelect": { |
| 438 | + "include": "^ScorpionAuthored$" |
| 439 | + } |
404 | 440 | }, |
405 | 441 | { |
406 | 442 | "name": "vse-gamma-cross", |
|
441 | 477 | "bmesh", |
442 | 478 | "mesh" |
443 | 479 | ], |
444 | | - "featured_rank": 5 |
| 480 | + "featured_rank": 5, |
| 481 | + "assetSelect": { |
| 482 | + "include": "^(Body|Nut|PumperCap|Lug\\d|SideCap\\d)$" |
| 483 | + } |
445 | 484 | }, |
446 | 485 | { |
447 | 486 | "name": "custom-normals-shade", |
|
454 | 493 | "tags": [ |
455 | 494 | "mesh", |
456 | 495 | "attributes" |
457 | | - ] |
| 496 | + ], |
| 497 | + "assetSelect": { |
| 498 | + "include": "_byangle$" |
| 499 | + } |
458 | 500 | }, |
459 | 501 | { |
460 | 502 | "name": "sky-texture-sun-elevation", |
|
496 | 538 | "bmesh", |
497 | 539 | "mesh", |
498 | 540 | "game-pipeline" |
499 | | - ] |
| 541 | + ], |
| 542 | + "assetSelect": { |
| 543 | + "include": "^Valve\\." |
| 544 | + } |
500 | 545 | }, |
501 | 546 | { |
502 | 547 | "name": "prop-origin-transform", |
|
510 | 555 | "transforms", |
511 | 556 | "parenting", |
512 | 557 | "game-pipeline" |
513 | | - ] |
| 558 | + ], |
| 559 | + "assetSelect": { |
| 560 | + "include": "^(Pedestal|Conduit)\\.Keep$" |
| 561 | + } |
514 | 562 | }, |
515 | 563 | { |
516 | 564 | "name": "soccer-ball-goldberg", |
|
538 | 586 | "modifiers", |
539 | 587 | "depsgraph" |
540 | 588 | ], |
541 | | - "featured_rank": 1 |
| 589 | + "featured_rank": 1, |
| 590 | + "assetSelect": { |
| 591 | + "include": "^(CarBody|Wheel(Front|Rear)|Headlamp|Taillamp|Grille|DoorMirror|DoorHandle(Front|Rear))$" |
| 592 | + } |
542 | 593 | }, |
543 | 594 | { |
544 | 595 | "name": "attribute-domain-shear", |
|
566 | 617 | "bmesh", |
567 | 618 | "mesh", |
568 | 619 | "game-pipeline" |
569 | | - ] |
| 620 | + ], |
| 621 | + "assetSelect": { |
| 622 | + "include": "^CaseSafe\\." |
| 623 | + } |
570 | 624 | }, |
571 | 625 | { |
572 | 626 | "name": "modular-kit-snap", |
|
582 | 636 | "game-pipeline", |
583 | 637 | "instancing" |
584 | 638 | ], |
585 | | - "featured_rank": 8 |
| 639 | + "featured_rank": 8, |
| 640 | + "assetSelect": { |
| 641 | + "include": "^Kit\\.CorridorSeg\\.", |
| 642 | + "exclude": "\\.0\\d\\d$" |
| 643 | + } |
586 | 644 | }, |
587 | 645 | { |
588 | 646 | "name": "lightmap-uv-channel", |
|
596 | 654 | "uv", |
597 | 655 | "game-pipeline", |
598 | 656 | "rendering" |
599 | | - ] |
| 657 | + ], |
| 658 | + "assetSelect": { |
| 659 | + "include": "^Cart\\." |
| 660 | + } |
600 | 661 | }, |
601 | 662 | { |
602 | 663 | "name": "socket-attach-points", |
|
611 | 672 | "transforms", |
612 | 673 | "game-pipeline", |
613 | 674 | "instancing" |
614 | | - ] |
| 675 | + ], |
| 676 | + "assetSelect": { |
| 677 | + "include": "^Drone\\.Survey\\." |
| 678 | + } |
615 | 679 | }, |
616 | 680 | { |
617 | 681 | "name": "vertex-color-ao", |
|
626 | 690 | "attributes", |
627 | 691 | "game-pipeline", |
628 | 692 | "rendering" |
629 | | - ] |
| 693 | + ], |
| 694 | + "assetSelect": { |
| 695 | + "include": "^Well\\.Stone\\." |
| 696 | + } |
630 | 697 | }, |
631 | 698 | { |
632 | 699 | "name": "cross-version-property-delete", |
|
0 commit comments