Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 11 additions & 9 deletions .github/workflows/blender-smoke.yml
Original file line number Diff line number Diff line change
Expand Up @@ -198,35 +198,37 @@ jobs:
- name: Shipped example - temp-override join (context override)
run: |
set -euo pipefail
# Frame-independent check only (no render): three cubes joined under
# Frame-independent check only (no render): three-step staircase joined under
# bpy.context.temp_override; asserts one mesh remains, sources are gone,
# and topology is verts=24 faces=18. Exits non-zero on failure.
# topology verts=24 faces=18, and local Z spans all steps. Exits non-zero
# on failure.
xvfb-run -a "$BLENDER" --background \
--python examples/temp-override-join/temp_override_join.py --

- name: Shipped example - GN instance grid (Instance on Points)
run: |
set -euo pipefail
# Frame-independent check only (no render): generative GN tree instances a
# cube on a 3x3 grid and realizes; asserts eval verts=72 faces=54 and Set
# Material carries Lime. Exits non-zero on failure.
# cube on a 3x3 grid and realizes; asserts eval verts=72 faces=54, Set
# Material carries Lime, and corner center matches the grid. Exits non-zero
# on failure.
xvfb-run -a "$BLENDER" --background \
--python examples/gn-instance-grid/gn_instance_grid.py --

- name: Shipped example - shape-key blend (data API + evaluated mesh)
run: |
set -euo pipefail
# Frame-independent check only (no render): relative Tall shape key at
# value=0.5; asserts undeformed mesh stays at Basis and evaluated z matches
# basis + value*(key-basis). Exits non-zero on failure.
# Frame-independent check only (no render): relative Tall key lifts+flares
# at value=0.5; asserts undeformed mesh stays at Basis and every evaluated
# vert matches basis + value*(key-basis). Exits non-zero on failure.
xvfb-run -a "$BLENDER" --background \
--python examples/shape-key-blend/shape_key_blend.py --

- name: Shipped example - curve bevel arc (Bezier + bevel_depth)
run: |
set -euo pipefail
# Frame-independent check only (no render): beveled Bezier semicircle via
# curve data API; asserts 8 points, bevel_depth=0.12, eval verts=850
# faces=840, tube rests on floor. Exits non-zero on failure.
# curve data API; asserts 8 points, bevel_depth=0.15, fill caps, eval
# verts=1044 faces=1028, tube rests on floor. Exits non-zero on failure.
xvfb-run -a "$BLENDER" --background \
--python examples/curve-bevel-arc/curve_bevel_arc.py --
23 changes: 11 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -165,15 +165,15 @@ materials with different Tint values. Witnesses the grouping contract: shared da
</tr>
<tr>
<td width="46%" valign="middle">
<a href="examples/temp-override-join/"><img src="examples/temp-override-join/preview.webp" alt="Temp-override join: an amber L-shaped mesh made of three joined unit cubes on a dark studio floor, viewed into the open corner" /></a>
<a href="examples/temp-override-join/"><img src="examples/temp-override-join/preview.webp" alt="Temp-override join: an amber three-step staircase of joined unit cubes on a dark studio floor" /></a>
</td>
<td valign="middle">

### [temp-override-join](examples/temp-override-join/)

Three unit cubes joined into one L-shaped mesh under `bpy.context.temp_override` — the
supported replacement for the removed `context.copy()` dict-pass form. Asserts one mesh
remains, sources are gone, and topology is verts = 8 × blocks, faces = 6 × blocks.
Three unit cubes joined into a staircase under `bpy.context.temp_override` — the supported
replacement for the removed `context.copy()` dict-pass form. Asserts one mesh remains,
sources are gone, and local Z spans all three steps.

</td>
</tr>
Expand All @@ -193,16 +193,15 @@ verts = 72, faces = 54, and `Set Material` carries the lime accent.
</tr>
<tr>
<td width="46%" valign="middle">
<a href="examples/shape-key-blend/"><img src="examples/shape-key-blend/preview.webp" alt="Shape-key blend: a tall violet rectangular block on a dark studio floor, stretched by a relative Tall shape key at value 0.5" /></a>
<a href="examples/shape-key-blend/"><img src="examples/shape-key-blend/preview.webp" alt="Shape-key blend: a violet truncated pyramid on a dark studio floor, lifted and flared by a relative Tall shape key at value 0.5" /></a>
</td>
<td valign="middle">

### [shape-key-blend](examples/shape-key-blend/)

A relative shape key authored through the data API — `shape_key_add`, per-vertex
`key_blocks` data, and `.value`. Witnesses that shape keys do not rewrite
`mesh.vertices`: undeformed top stays at Basis, evaluated z matches
`basis + value × (key − basis)`.
A relative Tall shape key that lifts and flares the top face — authored through
`shape_key_add` / `key_blocks` / `.value`. Witnesses that shape keys do not rewrite
`mesh.vertices`: every evaluated vert matches `basis + value × (key − basis)`.

</td>
</tr>
Expand All @@ -215,9 +214,9 @@ A relative shape key authored through the data API — `shape_key_add`, per-vert
### [curve-bevel-arc](examples/curve-bevel-arc/)

A beveled Bezier semicircle authored on `bpy.types.Curve` — `splines.new('BEZIER')`,
`bezier_points`, `bevel_depth` — so the curve renders as a tube without a prior mesh
conversion. Asserts eight points, `bevel_depth == 0.12`, and evaluated topology
850 verts / 840 faces.
`bezier_points`, `bevel_depth`, `use_fill_caps` — so the curve renders as a solid tube
without a prior mesh conversion. Asserts eight points, `bevel_depth == 0.15`, and
evaluated topology 1044 verts / 1028 faces.

</td>
</tr>
Expand Down
Binary file modified docs/gallery/assets/curve-bevel-arc-hero.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/gallery/assets/gn-instance-grid-hero.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/gallery/assets/shape-key-blend-hero.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/gallery/assets/temp-override-join-hero.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading