Skip to content

feat(examples): add solidify-even-thickness and boolean-exact-volume - #305

Merged
TMHSDigital merged 1 commit into
mainfrom
feat/solidify-boolean-examples
Oct 3, 2026
Merged

TMHSDigital merged 1 commit into
mainfrom
feat/solidify-boolean-examples

Conversation

@TMHSDigital

Copy link
Copy Markdown
Owner

Adds two rendered gallery examples taken from the ROADMAP candidate pool.

solidify-even-thickness

Contract: a strip folded at 60°, 90° and 120°, solidified in Simple mode with offset −1 and t = 0.16.

  • Without use_even_offset, the shell is t·cos(φ/2) thick: 0.1386, 0.1131 and 0.0800.
  • With use_even_offset, the shell is exactly t thick.
  • Both closed forms come from the profile geometry and match to 3.7e-8.
  • The candidate's "1/cos(θ/2)" was imprecise: the factor is cos(φ/2) on the bend angle. The shipped ROADMAP line says so.
Exit Check
3 Topology
4 The even shell is exactly t thick
5 The plain shell matches its closed form
6 Thinning floor, so the contrast is real

Falsifier: --no-even exits 4 (0.0800 measured against 0.1600).

boolean-exact-volume

Contract: the EXACT solver on a 2 m cube and a 2 × 1 × 1 m slab whose top face is coplanar with the cube's. Both operands are translated and turned 18° about Z.

Exit Check
3 Union, difference and intersection volumes are 9 / 7 / 1 m³ by the divergence theorem (1e-6 relative)
4 Each result is a closed 2-manifold with no loose geometry
5 The result differs from V(A), so the check cannot pass vacuously

Falsifier: --float-solver exits 3 with a 7.708 m³ union.

The floating-point solver is named 'FAST' on 4.5 and 'FLOAT' on 5.x, so the script branches on bpy.app.version. 'EXACT' has the same name on all versions.

Evidence: live local runs

All binaries are under .scratch/, and every run went through the single-Blender lock.

Run 5.2.1 LTS 4.5.11 LTS 5.1.2
solidify default exit 0 exit 0 exit 0
--no-even exit 4 exit 4 —
boolean default exit 0 exit 0 exit 0
--float-solver exit 3 exit 3 exit 3
run_example.py (both examples) [PASS] [PASS] —
  • Solidify's exits 5 and 6 were also forced to fail on both versions, using throwaway probe copies that have since been deleted.

Contact sheets (docs/gallery/contact-sheets/)

Tile Luma Stage Warmth Saturation
solidify-even-thickness 0.283 0.247 −0.010 0.191
boolean-exact-volume 0.238 0.197 +0.115 0.189
armature-bend 0.243 0.192 −0.144 0.237
damped-track-aim 0.237 0.218 +0.105 0.178
bmesh-gear 0.237 0.252 +0.092 0.153

Wiring

  • Entries added to examples/gallery.json, the smoke catalog and plugin.json.
  • README: two rows in "Mesh, curves & text" (15 → 17); examples go from 62 to 64, rendered from 54 to 56.
  • AGENTS, CLAUDE and new-example-prompt counts updated.
  • ROADMAP marks both candidates SHIPPED and adds a new candidate, a MANIFOLD solver witness.
  • docs/gallery/ is regenerated. The alt text and witnesses callouts match gallery.json character for character.

Local checks: check_site_links (133 pages, 0 failures), check_exit_code_readme, check_engine_id, check_gallery_images and check_falsifier_targets all pass.

🤖 Generated with Claude Code

solidify-even-thickness: a strip folded at 60, 90 and 120 degrees,
solidified in Simple mode (offset -1, t = 0.16).
- Without use_even_offset, each fold vertex's copy moves t along the
  bisector of its face normals, so the shell is t*cos(phi/2) thick:
  0.1386, 0.1131 and 0.0800.
- With use_even_offset, the copy moves t/cos(phi/2) and the shell is
  exactly t thick.
- Both closed forms are derived from the profile geometry and match to
  3.7e-8. Exits: 4 even shell, 5 plain-shell closed form, 6 thinning
  floor.
- --no-even exits 4 (0.0800 against 0.1600).
- The ROADMAP candidate's "1/cos(theta/2)" was imprecise; the shipped line
  states the cos(phi/2) factor on the bend angle.

boolean-exact-volume: the Boolean modifier's EXACT solver on a 2 m cube
and a 2x1x1 m slab whose top face is coplanar with the cube's top. Both
operands are translated and turned 18 degrees about Z.
- Union, difference and intersection measure 9, 7 and 1 m^3 by the
  divergence theorem, to 1e-6 relative (exit 3).
- Each result is a closed 2-manifold with no loose geometry (exit 4).
- --float-solver exits 3 with a 7.708 m^3 union.
- The floating-point solver is named 'FAST' on 4.5 and 'FLOAT' on 5.x,
  so the script branches on bpy.app.version.

Both default runs exit 0 on Blender 4.5.11, 5.1.2 and 5.2.1. Both
falsifiers are proven on 4.5.11 and 5.2.1 (boolean's also on 5.1.2).
tests/smoke/run_example.py reports [PASS] for both on 5.2.1 and 4.5.11.
Contact sheets are committed; every criterion passes for both.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
@github-actions github-actions Bot added examples Runnable smoke-gated examples under examples/ documentation Improvements or additions to documentation labels Oct 3, 2026
@TMHSDigital
TMHSDigital merged commit 6ea4ed9 into main Oct 3, 2026
12 checks passed
@TMHSDigital
TMHSDigital deleted the feat/solidify-boolean-examples branch October 3, 2026 02:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation examples Runnable smoke-gated examples under examples/

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant