You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 0c56a8a
Browse filesBrowse the repository at this point in the historyBrowse files
fix: text-version-stamp presentation, the stamp on a plinth
Render path only: the numerals stand on a plinth with the caption set into
its face; the floating caption and edge glow bar are gone. Standard view.
Contract and exit codes unchanged on 4.5.11, 5.1.2 and 5.2.1.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
<ahref="examples/text-version-stamp/"><imgsrc="examples/text-version-stamp/preview.webp"alt="Text version stamp: beveled brass 5.1.2 numerals standing on a dark studio floor over a glowing teal underline, with a small steel BLENDER caption above — the body text is the live bpy.app.version_string" /></a>
407
+
<ahref="examples/text-version-stamp/"><imgsrc="examples/text-version-stamp/preview.webp"alt="Text version stamp: beveled brass version numerals standing on a dark plinth with a steel BLENDER caption set into its face — the body text is the live bpy.app.version_string" /></a>
<metaproperty="og:image:alt" content="The word BLENDER above the Blender version number in large gold 3D characters." />
19
+
<metaproperty="og:image:alt" content="The Blender version number in large gold 3D characters standing on a dark plinth, the word BLENDER set into its face." />
<metaname="twitter:description" content="The TextCurve data API — curves.new(type='FONT'), live body text from bpy.app.version_string, extrude and bevel_depth solids, and evaluated-mesh conversion — so every render self-documents which Blender produced it." />
<metaname="twitter:image:alt" content="The word BLENDER above the Blender version number in large gold 3D characters." />
25
+
<metaname="twitter:image:alt" content="The Blender version number in large gold 3D characters standing on a dark plinth, the word BLENDER set into its face." />
26
26
<style>
27
27
/* fonts are deployed by the landing build (docs/fonts/) */
<p>The TextCurve data API — curves.new(type='FONT'), live body text from bpy.app.version_string, extrude and bevel_depth solids, and evaluated-mesh conversion — so every render self-documents which Blender produced it.</p>
269
269
</header>
270
270
<mainid="main">
271
-
<buttonclass="detail-hero" id="heroZoom" type="button" aria-label="View full size: The word BLENDER above the Blender version number in large gold 3D characters.">
272
-
<imgsrc="../assets/text-version-stamp-hero.webp" alt="The word BLENDER above the Blender version number in large gold 3D characters." width="1280" height="720" />
271
+
<buttonclass="detail-hero" id="heroZoom" type="button" aria-label="View full size: The Blender version number in large gold 3D characters standing on a dark plinth, the word BLENDER set into its face.">
272
+
<imgsrc="../assets/text-version-stamp-hero.webp" alt="The Blender version number in large gold 3D characters standing on a dark plinth, the word BLENDER set into its face." width="1280" height="720" />
273
273
</button>
274
274
<pclass="zoom-hint">Rendered headless by the example itself — click to zoom.</p>
275
275
<divclass="callout"><spanclass="tag">witnesses</span> TextCurve solids are exactly predictable: evaluated z-extent = 2 × (extrude + bevel_depth), bevel widens the outline by 2 × bevel_depth, editing body regenerates geometry — and version_string is not bare semver on LTS ("4.5.11 LTS"), so parse bpy.app.version instead.</div>
@@ -281,6 +281,8 @@ <h1>text-version-stamp</h1>
281
281
<p>A runnable example that builds a beveled 3D stamp of the running Blender version — a <code>TextCurve</code> (<code>bpy.data.curves.new(type='FONT')</code>) whose <code>body</code> is the live <code>bpy.app.version_string</code>, so every render self-documents which Blender produced it. CI artifacts made this way are self-labeling.</p>
282
282
<p><strong>What it witnesses:</strong> the TextCurve data-API contract. <code>curves.new(type='FONT')</code> returns a Curve subclass, the built-in font ("Bfont Regular") is always loaded even headless, <code>body</code> is plain assignable text that regenerates geometry on edit (more characters → strictly wider evaluated mesh), and <code>extrude</code> / <code>bevel_depth</code> produce exactly predictable solids: the evaluated mesh z-extent equals 2 × (extrude + bevel_depth) and the round bevel widens the outline in-plane by 2 × bevel_depth. Flat text (no extrude, no bevel) is already <em>filled</em> — faces exist — but strictly planar. The check also witnesses the depsgraph lifetime hazard: after <code>to_mesh_clear()</code> the returned Mesh reference is dead and any access raises <code>ReferenceError</code>.</p>
283
283
<p><strong>Version divergence:</strong> the string format itself differs — <code>"5.1.2"</code> on 5.x but <code>"4.5.11 LTS"</code> on 4.5 (the suffix is part of <code>version_string</code>). The check therefore asserts the contract that holds on both: <code>version_string</code> starts with the dotted <code>bpy.app.version</code> tuple. Code that parses <code>version_string</code> as a bare semver breaks on every LTS build; branch on the <code>bpy.app.version</code> tuple instead.</p>
284
+
<h2>Staging</h2>
285
+
<p>The numerals stand on a dark plinth, with the steel caption set into the plinth's front face. The caption used to float in the air above the stamp, and an emissive bar lay along the bottom edge of the frame. The still renders under the Standard view transform on the house stage. Render path only; the checked text body and its extents are unchanged.</p>
284
286
<h2>Run</h2>
285
287
<pre><code># Cheap correctness check (no render) — the CI check:
<imgsrc="../assets/text-version-stamp-hero.webp" alt="The word BLENDER above the Blender version number in large gold 3D characters." />
638
+
<imgsrc="../assets/text-version-stamp-hero.webp" alt="The Blender version number in large gold 3D characters standing on a dark plinth, the word BLENDER set into its face." />
Copy file name to clipboardExpand all lines: examples/gallery.json
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -259,7 +259,7 @@
259
259
"name": "text-version-stamp",
260
260
"dir": "examples/text-version-stamp",
261
261
"teaches": "The TextCurve data API — curves.new(type='FONT'), live body text from bpy.app.version_string, extrude and bevel_depth solids, and evaluated-mesh conversion — so every render self-documents which Blender produced it.",
262
-
"alt": "The word BLENDER above the Blender version number in large gold 3D characters.",
262
+
"alt": "The Blender version number in large gold 3D characters standing on a dark plinth, the word BLENDER set into its face.",
263
263
"witnessesFix": "TextCurve solids are exactly predictable: evaluated z-extent = 2 × (extrude + bevel_depth), bevel widens the outline by 2 × bevel_depth, editing body regenerates geometry — and version_string is not bare semver on LTS (\"4.5.11 LTS\"), so parse bpy.app.version instead.",
0 commit comments