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
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -408,16 +408,17 @@ lifting and flaring the rim — authored through `shape_key_add` / `key_blocks`
</tr>
<tr>
<td width="46%" valign="middle">
<a href="examples/curve-bevel-arc/"><img src="examples/curve-bevel-arc/preview.webp" alt="Curve bevel arc: a rose beveled Bezier semicircle tube resting on a dark studio floor, both filled end caps facing the camera" /></a>
<a href="examples/curve-bevel-arc/"><img src="examples/curve-bevel-arc/preview.webp" alt="Curve bevel arc: a red horseshoe magnet built from one beveled Bezier curve, its filled end caps turned to the camera as steel pole faces, iron filings arcing between the poles and Bezier-wire paper clips clinging to them" /></a>
</td>
<td valign="middle">

### [curve-bevel-arc](examples/curve-bevel-arc/)

A beveled Bezier semicircle authored on `bpy.types.Curve` — `splines.new('BEZIER')`,
`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.
without a prior mesh conversion — staged as a horseshoe magnet whose capped ends
are the pole faces. Asserts eight points, `bevel_depth == 0.15`, and evaluated
topology 1044 verts / 1028 faces.

</td>
</tr>
Expand Down
Binary file added docs/gallery/asset-sheets/curve-bevel-arc.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/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.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
357 changes: 320 additions & 37 deletions docs/gallery/curve-bevel-arc/index.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/gallery/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -475,7 +475,7 @@ <h2><a href="shape-key-blend/">shape-key-blend</a></h2>
</article>
<article class="card" data-tags="curves bevel">
<a class="card-media" href="curve-bevel-arc/" tabindex="-1" aria-hidden="true">
<img src="assets/curve-bevel-arc-hero.webp" alt="A magenta beveled curve tube lying in a semicircle on a dark floor, both filled end caps facing the camera." loading="lazy" decoding="async" />
<img src="assets/curve-bevel-arc-hero.webp" alt="A red horseshoe magnet made of one beveled Bezier curve on a dark floor, its filled end caps facing the camera as steel pole faces, iron filings arcing between them." loading="lazy" decoding="async" />
</a>
<div class="card-body">
<h2><a href="curve-bevel-arc/">curve-bevel-arc</a></h2>
Expand Down
21 changes: 15 additions & 6 deletions examples/curve-bevel-arc/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,20 @@ and that the depsgraph-evaluated mesh has the deterministic topology (1044 verts
1028 faces for these resolution settings) with a Z span that rests on the floor
(`[0, 2 × bevel]`) and an X span of `2 × radius + 2 × bevel`.

Staging: both ends of the semicircle face −Y, so the still looks from −Y and
shows both filled caps (`use_fill_caps`, the witness) face-on, with the arc
sweeping behind them. The old angle showed one cap and the other end edge-on.
The cap's 12-sided outline is the pinned tessellation (`bevel_resolution` 4,
locked by the 1044-vertex gate), not a presentation choice.
Staging: the checked curve is presented as what a capped, beveled Bezier
semicircle is in the world — a round-bar horseshoe magnet lying on the floor,
open end to the camera. The two filled caps (`use_fill_caps`, the witness) are
its ground-steel pole faces, turned face-on; an uncapped build would show two
hollow pipe ends exactly there. The red enamel / bare-steel split is one
material keyed on object-space Y, so the magnet stays a single curve
datablock. The paper clips are beveled Bezier curves too (explicit `FREE`
handles: straight legs plus quarter-circle bends), each lying along the field
line that leaves its pole; the iron filings trace those lines — for two
opposite line poles they are exact circular arcs through both pole faces. The
cap's 12-sided outline is the pinned tessellation (`bevel_resolution` 4,
locked by the 1044-vertex gate), not a presentation choice. The render path
rotates the object only; the check reads object-space evaluated geometry and
runs before any staging.

## Run

Expand Down Expand Up @@ -49,7 +58,7 @@ against it. `10` is also the shared framing helper.
| 8 | Tube does not rest on the floor |
| 9 | Tube height ≠ 2 × bevel |
| 10 | X span off closed form; also gallery framing violation |
| 11 | `--output` produced no file |
| 11 | `--output` produced no file; also asset-quality floor violation (`gallery_asset_quality`) |

The `blender-smoke` workflow runs the check on Blender 5.2 LTS and 4.5 LTS
(5.1 on the weekly cron, the `needs-5.1` PR label, or manual dispatch).
Expand Down
Loading
Loading