Skip to content

Commit 33752f6

Browse files
Built site for gh-pages
1 parent 65e9c6d commit 33752f6

72 files changed

Lines changed: 3093 additions & 4959 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.nojekyll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
671deeb0
1+
29e8e21e

assets.html

Lines changed: 23 additions & 13 deletions
Large diffs are not rendered by default.

assets.llms.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,19 @@ generate_asset_api(
3535

3636
`PackageLibrary(anchor, relative)` locates a `.blend` shipped inside your own package (resolved relative to `anchor`, usually `__file__`); use `BundledLibrary("…")` for a library that ships with Blender. You can pass a list of libraries to merge several into one module, and `names={...}` to restrict generation to specific node groups.
3737

38+
If your libraries mix tree types, use `generate_asset_modules` instead — it takes a directory and writes one module per tree type (`geometry.py`, `shader.py`, `compositor.py`), skipping tree types with no assets:
39+
40+
``` python
41+
from nodebpy.assets import generate_asset_modules, PackageLibrary
42+
43+
generate_asset_modules(
44+
PackageLibrary(__file__, "data/my_assets.blend"),
45+
"my_addon/nodes/",
46+
)
47+
```
48+
49+
Because asset names repeat across editors, splitting also keeps the generated class names collision-free where a single mixed module would silently shadow one tree type’s class with another’s.
50+
3851
The generated module imports from `nodebpy` and looks like any other node module, so import and use it directly:
3952

4053
``` python

changelog.html

Lines changed: 313 additions & 245 deletions
Large diffs are not rendered by default.

changelog.llms.md

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,43 @@
11
# Changelog
22

3-
## v520.5.0 - 2026-06-16
3+
## v520.7.0 - 2026-07-16
4+
5+
### Enhancements
6+
7+
- **Per-tree-type asset modules**`nodebpy.assets.generate_asset_modules(libraries, output_dir)` splits the generated asset classes into one module per tree type (`geometry.py` / `shader.py` / `compositor.py`), writing only the tree types that have assets. Asset names repeat across editors (a geometry *and* a compositor “Combine Spherical” both exist), so splitting keeps the generated class names collision-free where a single `generate_asset_api` module would silently shadow one with the other. The CLI splits the same way when the output is a directory:
8+
9+
``` sh
10+
python -m nodebpy.assets -b my_assets.blend -o my_addon/nodes/
11+
```
12+
13+
## v520.6.0 - 2026-07-15
14+
15+
### Enhancements
16+
17+
- **Blender 5.2 stable**`bpy` now tracks the final 5.2 release (CI no longer installs daily builds); the node classes and bundled-essentials asset APIs were regenerated against it. The `SetAttachmentSurface` asset was removed upstream and is no longer generated.
18+
19+
### Fixes
20+
21+
- `to_python` export now preserves a `Value` node’s number. The editable value lives on the node’s *output* socket, which the generic constructor path never examined, so non-default values were silently dropped from the generated code.
22+
23+
## v520.5.2 - 2026-07-07
24+
25+
### Internal
26+
27+
- Documentation cleanup.
28+
29+
## v520.5.1 - 2026-07-07
30+
31+
### Enhancements
32+
33+
- **Interactive graphs in docs / notebooks** — a `TreeBuilder` now displays as an interactive, Blender-styled, pan-and-zoomable node graph in Jupyter and Quarto (via `_repr_html_`, backed by the new `nodebpy.web_render` module using `tree_clipper` and the `geonodes-web-render` web component). Falls back to the existing Mermaid diagram when rendering isn’t available.
34+
35+
### Fixes
36+
37+
- `to_python` export: a single link into a multi-input socket is now emitted as a one-element tuple, since the manual classes (`JoinGeometry`, `MeshBoolean`, …) expect an iterable — previously such trees didn’t round-trip. Unary float/integer math socket methods also emit Blender’s zero-padded socket identifiers (`Value_001`).
38+
- Regenerated the bundled asset APIs with upstream label fixes — e.g. `cip_start``clip_start`, `animated_``animated`, and the “Super 8 mm” film-grain preset spelling.
39+
40+
## v520.5.0 - 2026-06-19
441

542
### Enhancements
643

comparisons.html

Lines changed: 27 additions & 27 deletions
Large diffs are not rendered by default.

custom-node-groups.html

Lines changed: 23 additions & 23 deletions
Large diffs are not rendered by default.

index.html

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
88

99

10-
<title>nodebpy 520.6.0</title>
10+
<title>nodebpy 520.7.0</title>
1111
<style>
1212
/* Default styles provided by pandoc.
1313
** See https://pandoc.org/MANUAL.html#variables-for-html for config info.
@@ -77,7 +77,7 @@
7777
<link href="site_libs/quarto-html/quarto-syntax-highlighting-dark-0a6b7249c26820e032cb0bd839ff02b1.css" rel="stylesheet" id="quarto-text-highlighting-styles">
7878
<script src="site_libs/bootstrap/bootstrap.min.js"></script>
7979
<link href="site_libs/bootstrap/bootstrap-icons.css" rel="stylesheet">
80-
<link href="site_libs/bootstrap/bootstrap-328b4c1962c9a5575e7328ba9c647c56.min.css" rel="stylesheet" append-hash="true" id="quarto-bootstrap" data-mode="dark">
80+
<link href="site_libs/bootstrap/bootstrap-da754bb905dfff91d967e43b5e6004aa.min.css" rel="stylesheet" append-hash="true" id="quarto-bootstrap" data-mode="dark">
8181
<script id="quarto-search-options" type="application/json">{
8282
"location": "navbar",
8383
"copy-button": false,
@@ -169,7 +169,7 @@
169169
<div class="navbar-container container-fluid">
170170
<div class="navbar-brand-container mx-auto">
171171
<a class="navbar-brand" href="./index.html">
172-
<span class="navbar-title">nodebpy 520.6.0</span>
172+
<span class="navbar-title">nodebpy 520.7.0</span>
173173
</a>
174174
</div>
175175
<div id="quarto-search" class="" title="Search"></div>
@@ -294,7 +294,7 @@ <h2 class="anchored" data-anchor-id="creating-nodes-with-code">Creating Nodes Wi
294294
<blockquote class="blockquote">
295295
<p>A text-based version of nodes should bring the convenience of writing code with IDE auto-completion, type hinting, with overall compactness and readability, while staying as close as possible to what building a node tree via the GUI feels like.</p>
296296
</blockquote>
297-
<div id="89423d36" class="cell" data-execution_count="1">
297+
<div id="dbefde13" class="cell" data-execution_count="1">
298298
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb2"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="im">from</span> nodebpy <span class="im">import</span> geometry <span class="im">as</span> g</span>
299299
<span id="cb2-2"><a href="#cb2-2" aria-hidden="true" tabindex="-1"></a></span>
300300
<span id="cb2-3"><a href="#cb2-3" aria-hidden="true" tabindex="-1"></a><span class="cf">with</span> g.tree(<span class="st">"AnotherTree"</span>, collapse<span class="op">=</span><span class="va">True</span>) <span class="im">as</span> tree:</span>
@@ -428,7 +428,7 @@ <h2 class="anchored" data-anchor-id="design-considerations">Design Consideration
428428
}
429429
var localhostRegex = new RegExp(/^(?:http|https):\/\/localhost\:?[0-9]*\//);
430430
var mailtoRegex = new RegExp(/^mailto:/);
431-
var filterRegex = new RegExp("https:\/\/BradyAJohnston\.github\.io\/nodebpy\/");
431+
var filterRegex = new RegExp('/' + window.location.host + '/');
432432
var isInternal = (href) => {
433433
return filterRegex.test(href) || localhostRegex.test(href) || mailtoRegex.test(href);
434434
}

0 commit comments

Comments
 (0)