Minor·

Natsura 0.7.1.0

Highly experimental release containing many untested features and significant under-the-hood changes to the decorations pipeline

Back to Changelog

Highly experimental release containing many untested features and significant under-the-hood changes to the decorations pipeline

Highlights

  • This is an experimental build. The decorations pipeline has been substantially reworked under the hood and much of it is untested. Keep your 0.7.0.x install alongside it.
  • Bud — a new growth component covering spawn interval, whorl angle, multiplicity, offset and phyllotaxy in one node.
  • Shape — a new node that takes a stack of weighted shape effectors, each mappable, with break control.
  • Nanite/USD export now keeps material bindings on instanced prototypes. Previously only the trunk arrived bound; every prototype came through with an empty binding.
  • Multi-tree exports now write one wind sidecar per tree instead of a single merged file covering all of them.
  • Houdini 22 support. Natsura previously failed to start on H22 — no desktop, no logging, no background service, and no error to say why.
  • Clicking around a heavy scene is roughly 6x faster (~3.8s to ~0.6s per selection on a 1,008-node scene).

Workflow Changes

  • New package layout. The root of the download now holds only what you click, read or edit; the machinery lives in setup/. Setup creates a real shortcut for your platform — .lnk on Windows, an .app bundle on macOS, a .desktop entry on Linux.
  • launch.conf is plain KEY=VALUE, with every key documented in README.txt.
  • Bud, Shape, Map Wrangle and Invoke Effector appear in the tab menu under Natsura/, Natsura/Core and Natsura/Utility.

New Nodes

  • natsura::bud::1.0Natsura Bud. Growth component with spawn seed and interval, whorl angle and multiplicity, spawn offset, and phyllotaxy. Takes terminal, lateral and prune graph inputs, and hosts effectors and decorators.
  • natsura::shape::1.0Natsura Shape. Hosts a stack of shape effectors, each with a weight that can be a value or a map, plus an Allow Breaks toggle.
  • natsura::map_wrangle::1.0Natsura Map Wrangle. A bare VEX field for writing a map directly.
  • natsura::invoke_effector::1.0Natsura Invoke Effector. Runs a stack of effector snippets against a group, precompiled by default, with the header and template exposed when it isn't.
  • natsura::prestitch_temp::1.0STRANDS. Work in progress and unstable. Expect it to change or disappear.

Node Updates

  • create_nanite_assembly Material targeting is now pattern-based rather than a frozen list of paths, so it survives renaming the asset, changing the tree count and changing the prototype count. The list refreshes itself immediately before every export.
  • unreal_wind Wind data is compiled per tree rather than for the whole geometry. Each connected tree gets its own payload; the compiler version is now 2.0.
  • export_json Writes one file per tree, named <asset>_<n>_wind.json.
  • export_unreal_nanite_assembly Updated alongside the wind and material changes.
  • Decoration pipeline rebuild — updated: Assembly Decoration, Clusters Decoration, Core Decorate, Surface Decoration, Rebuild Primitive Attributes, Spline Reduce, Atlas Material.
  • Effectors — updated: Autocode Effector, Effector Template, Deflection Effector, Magnet Effector, Noise Effector.
  • Mapping — updated: Map, Map Attribute, Map Constant, Mapping Template, Core Wrangle.
  • Growth and rigging — updated: Grow, Core Grow, Simulate, Execute Logic, Instancify, Rig to Assembly, Identify Shared Instances, Import Speedtree.

Performance

  • Selection in a 1,008-node scene: ~3.8s to ~0.6s per click.
  • Spans panel scope rebuild, single simulate: 179ms to 4.4ms.
  • Spans panel scope rebuild, 26 simulates and 619 drivers: 1,697ms to 10.5ms.
  • Spans panel background poll: 406ms to 121ms.
  • Node graph colouring on repeat calls: full rewrite to no writes at all.

Bug Fixes

  • create_nanite_assembly Materials did not come through on instanced prototypes. 36 of 38 bindings were being dropped at the reference boundary; only the trunks survived.
  • create_nanite_assembly The material list went empty or stale after a rename or a change in tree count, and nothing refilled it.
  • export_json Booleans were written as 1 and 0 instead of true and false.
  • export_json Duplicate Root and root joints both survived into the sidecar.
  • export_json An empty Name now raises an error instead of writing a mysteriously named file.
  • unreal_wind Multi-tree exports wrote a single merged sidecar covering every tree in the scene.
  • Natsura did not start at all under Houdini 22, silently. H22 uses Python 3.13 and only 3.10 and 3.11 were shipped.
  • Starting Houdini with an empty scene could spawn a Natsura geo node with Grow and Simulate in it.
  • Windows install failed — setup.bat called a setup.ps1 that was not in the archive.
  • Linux and macOS install failed — setup.sh shipped with Windows line endings.

Internals

  • The startup sequence lives in one place now, with the per-Python-version entry points reduced to shims. Supporting a new Houdini version is a file copy rather than a third copy of the logic to keep in sync.
  • Hotkeys persist nothing. The dead file-based loader and its shipped config file have been removed; bindings resolve live on each keypress.
  • Includes everything from 0.7.0.3. If you never successfully installed that one, its fixes are here.

Known Issues

  • Experimental build. The decoration pipeline changes are largely untested and regressions are likely.
  • create_nanite_assembly Material bindings are written into the root layer, not into the per-tree assemblies/*.usda. If you load an assembly layer standalone it will have no bindings.
  • create_nanite_assembly If an existing hip has Allow Editing of Contents on the node, use Match Current Definition after updating or the material fix will not reach it.
  • unreal_wind Gust attenuation, root stub, ground cover and emit mode are internal and not reachable from the node interface.
  • USD exports write upAxis = "Y". Unreal is Z-up.
  • The macOS .app bundle is untested and carries a generic icon.
  • prestitch_temp is a scratch node, not a feature.

Looking Ahead

  • Settling the decorations pipeline rework and getting the new Bud and Shape nodes tested and documented.