Natsura 0.7.2.0
0.7.2 rolls up everything since 0.7.0.3, including the four preview releases in between, and there is quite a lot in it. You can now batch export a whole library of Nanite assemblies. Simulate has a new post-processing stack driven by maps and effectors, Surface Decoration has been overhauled with variable resolution meshing, and Natsura Shape lets you reshape a tree after the fact. There is also wind in the assembly previews, the groundwork for Clusters Decoration 2.0, a new Project Browser, and a lot of smaller fixes along the way.
Back to Changelog
Workflow Changes
Custom Module
Custom Module (experimental) allows custom skeletons to be passed through Natsura. It takes your curves and brings them in as a skeleton that Natsura understands, so they can be decorated, and reshaped with Natsura Shape, the same as a tree you grew. It opens up hand drawing, since any curves you draw can be passed through the same way, and it is also how we have quietly started bringing in curves from SpeedTree.
Wind preview
Assembly Resource, Rig to Assembly, and Simulate now preview with wind, which you can set from a new wind selector on the display toolbar (Calm, Breeze, and Strong). We are adding this visualisation to most of the nodes where there are assemblies, so you can see how the trees move and identify any issues with the rig before they get anywhere near Unreal.
The values live on Wind Environment, an experimental new node and workflow that supports defining wind objects and environments, which for now influence the preview wind but will be used for more shaping control in the future.
Effectors and mapping
Effectors and mapping are turning into a generic framework that works everywhere, and we have made it faster and easier to roll effectors and mapping out to new nodes and old ones, so expect them to keep appearing in more places. Natsura Shape, the Simulate post-process, and Surface Decoration each have their own effector stack now.
New mapping nodes
There are also new mapping nodes. Map Remap expands on the library of map nodes, pushing the system as a whole closer to VOPs or a shader graph, and Map Wrangle extends wrangling to mapping, to make it as easy to write custom mapping operations as it is to write custom effectors. Map Blend has been fixed, with a Mask input and six new modes.
Natsura Shape
Natsura Shape is part of a suite of post-processing tools that let you get that further 10% of quality, produce variants quickly, or further modify a manually drawn tree or one sent from SpeedTree, since it deforms the rig and the rigged geometry after the fact instead of simulating.
It should be viewed as extremely experimental.
Simulate post-processing
Simulate has a new, experimental set of post-processing options, such as resampling and shaping, which are fully driven by maps and effectors and improve the quality of the simulation output.
The shape enhancement in the post-process stack deals with longstanding issues, like the fact that shape enhancements in the decorator would cause assemblies to appear detached, and also the fact that our simulation has a fixed resolution, and getting better quality previously meant reworking steps, which was tricky.
The post-process step takes place before decorations, meaning all decorations inherit the now enhanced shapes.
Surface Decoration
Surface Decoration has been overhauled, and it has surface effectors, which allow you to use any effector to displace the surface.
The noise effector has also been expanded, adding more controls such as curl, octaves, and sharpness, but the more interesting part is that its position and direction are now inherited from wherever it is used. Each node that runs effectors declares the space that makes sense for it, like the rest position on a surface or the u along a strand, and a direction, like the surface normal, so the same noise setup patterns correctly wherever you drop it. You can still switch either one to world space, for true 3D wind or turbulence, or to any attribute you like.
Surface Decoration meshing
Surface Decoration now supports variable resolution sweeping with mappable density, along with more extensive width postprocessing controls.
Many more improvements are coming, and we will have more detail on the utilities that make this possible in the future (with 0.8 probably).
Assemblies
Merge Assemblies is a new node which allows combining assembly libraries before the decorator, using the existing utilities.
Yaw is back on the Assembly Decoration as a first class control, and Mask now works. Assembly Resource also better supports kits at different scales.
Simulate now has a single output, so one wire takes the tree and its rig into Rig to Assembly, the exporter, and Wind Config, and the workflow nodes that follow it, such as Simplify Tree Rig and Skin, Natsura Shape, and Natsura Stage, now use the same single pin. There is also Simplify Assembly, for reducing an assembly's polycount.
Clusters Decoration 2.0
The cluster decorator was our first decorator, and it came before mapping and effectors, so we will be upgrading it to work with these modern workflows, with more part picking and shaping controls.
For now, with Clusters Decoration 2.0 we have laid the groundwork, refactoring the internal utilities and simplifying the interface, so expect more work to come here. Clusters Decoration 1.0 stays as the 0.6 tool, so older scenes keep working.
Assembly Inspect
Assembly Inspect can be used to find out the polycount, instance count, joint count, and other useful data about an assembly, which is something people have been asking for.
Nanite export
Now it is possible to batch export Nanite assemblies. Simulate an entire library at once, and import it to Unreal with one click, using a shared library of parts. Materials are fixed, and material changes are now auto-detected, so you don't need to keep hitting the Auto Fill Materials button. There is also better structuring of the USD files on disk, which is more USD-ish: the shared parts go in a parts/ folder, each tree gets its own layer in an assemblies/ folder along with its own wind config, and a root layer stitches them all together, so you import the one root file and everything comes in.
We recommend 10,000 instances and 600 bones as a guide to start at, with around 56,000 instances as the top limit.
The import now goes through the USD Interchange plugin in Unreal, and if you export and import with everything on default, it just comes in fine.
Expect many more improvements here in the future, and the docs have been updated too, see Export Unreal Nanite Assembly and Nanite Skeletal Assemblies.
And we have to thank Erik Östsjö for his help understanding USD.
UI
The Hub, Projects, and Examples panels are now the Project Browser, with more improvements to make it more familiar and easy to use.
Docs and guides
Every node now has a help page, the help buttons on Grow and Map open the Guide, and the tips have been updated, with three new ones on mapping.
Looking Ahead
Meshing is our core focus right now, especially the trunk and surface geometry: dealing with branch intersections, vascular appearance, and instancing, all the final finishing features.
Performance remains our top priority, and we are working to provide upgrade paths from scenes on 0.5 and 0.6 to 0.7, which we will be sharing in the near future, but bear in mind that not all scenes will be successfully upgraded. We are also working to provide more examples and templates.
The full list of changes is in the changelog. This is an ongoing project, so please keep the feedback coming.
George
Full Changelog
This release rolls up the four preview releases 0.7.1.0 to 0.7.1.3 plus work that has not shipped before. Scenes from 0.6 upgrade only partly. We are working on the upgrade paths from older scenes and will be publishing upgrade guides later; in the meantime the Known Issues below say what updates by itself and what to check by hand. Nothing has changed about installing, and you can keep several versions installed side by side.
Export to Unreal
Natsura Export Unreal Nanite Assembly
- Added batch Nanite export: simulate a whole library of trees and import it to Unreal in one go, with every tree sharing one library of parts
- Added export of several assembly decorators together
- Added a round-trip preview, and an Export Summary that reports polycount, joint count, and instance count
- Changed the recommended Unreal import to the USD Interchange plugin (with the export and import on their defaults, trees come in as they should)
- Added a starting guide for exports: around 10,000 instances and 600 bones per tree, with roughly 56,000 instances per export as the upper limit
- Changed wind export to one wind config per tree (
<asset>_<n>_wind.json, inassemblies/) instead of one merged file for the scene - Changed wind to compile per tree; wind compiler version is now 2.0
- Changed USD export to a folder: shared parts in
parts/, one layer per tree inassemblies/, and a root layer that stitches them together - Changed materials to survive renaming the asset and changing the number of trees
- Fixed materials missing on instanced parts (36 of 38 bindings were being dropped; only trunks arrived bound)
- Fixed the material list going empty or stale; material changes are now auto-detected before every export, so there is no need to keep pressing Auto Fill Materials
- Fixed trees with no instances erroring on export
- Fixed the Nanite export also writing a stray USD file to a fixed path on Execute
- Fixed an empty Name writing an oddly named wind file; it now errors
- Fixed wind files containing incorrect true/false values and duplicate root joints
- Documentation: Export Unreal Nanite Assembly, Nanite Skeletal Assemblies
Assemblies
- The assembly nodes now use one canonical assembly workflow on a single pin: one wire carries the assembly through Assembly Resource, Import Assembly, Classify, Assembly Edit, Assembly Decoration, Rig to Assembly, Natsura Shape, Prune Wizard, Natsura Stage, Natsura Simplify Tree Rig and Skin, and Simulate
Merge Assemblies (new, experimental)
- Combines several assembly libraries so one Assembly Decoration can draw on all of them
Assembly Inspect (new, experimental)
- Find out the polycount, instance count, joint count, and other useful data about an assembly, with breakdowns of the packed parts and the rig; the assembly passes through unchanged
Simplify Assembly (new, experimental)
- Makes it easier to reduce the rig and mesh complexity of assemblies in one top level node
Natsura Assembly Decoration
- Added an effector stack, working the same way as on Grow, with each effector weighted by a value or a map
- Restored Yaw as a first-class control, now mappable and applied after Pitch
- Changed Spawn at to Tips, Intersections, Internodes, and Roots; Extra is gone, and older scenes move it to Internodes
- Added Divisions and Distance to Internodes spawning: 1 division spawns at the joint, 2 adds the midpoint, 3 the thirds, or Distance spaces parts evenly by Step Length
- Added an upgrade report: scenes saved before this release open with a list of what moved and which looks change
- Fixed the Mask regression: Mask now sets the chance a candidate point keeps its part
- Fixed the extra point regression
- Fixed phyllotaxy: Relative and Skeleton turn once per internode and no longer depend on skeleton resolution; Absolute lines every part up the same way
- Fixed Roll mode (Unified, Counter) and Whorl Angle mode (Relative, Absolute) doing nothing
- Fixed outputting nothing when an effector's weight map read from the parent
Assembly Resource
- Tidied up internally
- Improved: "Fix N bad pivots" no longer comes up on every build
- Improved: results no longer depend on the scale of the kit
- Improved: needled twigs are detected properly
- Improved: USD kits import correctly from a file or a geometry input
- Improved the pivot check (Pivot Edit): it names the parts with bad pivots and reports the miss percentage
- Fixed parts binding to a neighbour's joint, which spoiled animation (70 of 239 parts in one test kit)
- Fixed some kit pieces arriving rotated by up to 90 degrees and failing the pivot check
Classify
- Supports clusters, and adds scale normalisation and control of the preview
Import Assembly
- Fixed its transform being applied twice
Rig to Assembly
- Minor bug fixes
Rig Delete, Rig Merge, and Rig Rename
- Moved in the Tab menu to Natsura/Animation
Wind
Wind Environment (new, experimental)
- A new node and workflow for defining wind objects and environments, which for now influence the preview wind and will be used for more shaping control in the future
- Added wind to the Assembly Resource and Rig to Assembly previews, driven by the new Wind selector on the display toolbar (Calm, Breeze, and Strong, with Speed and Strength sliders). The values live on a Wind Environment node at object level, which the selector creates the first time you use it
- Visualize Assemblies follows the Wind Environment; its old Speed and Strength parameters are hidden
- Changed the default preview wind to Breeze
Wind Config
- Takes and returns a single assembly, sampled at frame 1, and only the wind preview shows in the viewport
- Placing it creates a Wind Environment if the scene has none
Wind Previs
- Takes a single assembly input
- Needs a Natsura Simulate node in the scene, like the other licensed nodes
Atlas
Atlas Wizard
- Returns one packed output, with the layout preview hidden inside, instead of a second output, and no longer changes your viewer flag
Decorations
Natsura Surface Decoration
- Added variable resolution sweeping with mappable density
- Added mappable width: smoothing, min, max, and scale, with a minimum-width limit
- Added a Strands section for shaping curves before meshing, including a spiral
- Added displacement, end cap types, and separate U and V scale
- Added surface effectors: use any effector to displace the surface
- Removed Simplify Curves, Decimate, and Subdivide Surface
Natsura Clusters Decoration 2.0 (new)
- Lays the groundwork for future improvements to this workflow, and already includes a simplified interface
- A set of associated clustering utilities have been added, which will allow a greater degree of pipeline customisation, where you can pick from existing libraries or regenerate the clustered primitives at the end of the simulation
- Additional part picking and shaping controls will come soon, supporting a wider variety of expression
- The Tab menu and toolbar now create Clusters Decoration 2.0
Natsura Clusters Decoration 1.0
- Restored as the 0.6 tool (older scenes keep their curve-deform settings)
- Added a Strands section: keep branches by length and trim them along a ramp (off by default)
Growth and Simulation
Natsura Simulate
- Added a Postprocess stage (Enable Postprocess, experimental): substeps with mappable segments, interpolation, and enhancement, plus its own effector stack
- Changed shaping to run in Simulate before the decorations, so every decoration inherits the same shape and assemblies stay attached to their branches
- Changed to a single output: one wire carries the tree and its rig into Rig to Assembly, Export Unreal Nanite Assembly, and Wind Config
- Added a wind preview (an embedded Visualize Assemblies)
- Fixed the fat root bug (trees after the first in a multi-tree Simulate got a flat disc at the base)
- Fixed kinks at the roots; roots now stay locked
- Fixed the mapping reading one step off
Natsura Grow
- Added normalized U, a highly requested feature that works with growth fraction to make certain modelling styles easier: the regular u only reaches 1 when a branch is fully grown, while normalized U reaches 1 at the tip of a partly grown branch, so a map driven along it (width, shape) plays out in full however far the branch has got. Everyone can thank Tilman Mielsch for not letting us forget this one
- Changed Offset to a normal parameter instead of one behind a toggle
- Minor bug fixes
Natsura Shape (new, experimental)
- Deforms the rig and rigged geometry after the fact instead of simulating, for extra quality, quick variants, or reworking a hand-drawn or SpeedTree tree
- Hosts a stack of shape effectors, each weighted by a value or a map, with an Allow Breaks toggle
- The Environment moves to input 1, Shape is skipped when nothing is wired in, and Environment Mode is exposed
Prune Wizard (new, experimental)
- Takes a single Assembly input
Natsura Custom Module (experimental)
- Passes custom skeletons through Natsura, which the SpeedTree import and hand drawing build on
- Fixed a flipped mesh
Natsura Import Speedtree (experimental)
- We have quietly started adding support for importing curves from SpeedTree, through Custom Module, and we plan to add more support for importing from SpeedTree in the future, such as the branch and trunk geometry, with settings for how much procedural control you get in Natsura; minor fixes
Natsura Bake
- Supports non-scan inputs, laying the foundations for card baking and LODs
Mapping and Effectors
- The effectors (Effector, Ancestor, Deflection, Direction, Gravity, Magnet, and Noise) and the map nodes (Map Attribute, Map Blend, and Map If) now use the horizontal node shape
- The effectors, maps, and Grow use named constants, which makes the system less fragile and more user friendly
Natsura Noise Effector
- Reworked: added curl (Swirl), octaves, and sharpness (Sharp), and control over position and direction
- Changed to take its position domain and direction from wherever it is used (Inherit, the default), with world space and custom attribute options for each
Natsura Map
- Uses Map Constant and Map Random instead of three embedded regular maps
- Improved the visualisation to show the range properly
- Added a Read From label, help, and buttons for the mapping levels and ranges tips
Map Blend
- Fixed the broken implementation, including nested blends; added a Mask input and six new modes (lerp, difference, screen, overlay, power, and average)
Map If
- Fixed the threshold
- Uses the canonical mapping parameter setup
Map Attribute
- Changed to a level picker with no inputs
Map Remap (new, experimental)
- Expands on the library of map nodes, pushing the system as a whole closer to VOPs or a shader graph
Map Wrangle (new, experimental)
- Extends wrangling to mapping: write custom mapping operations the same way you write custom effectors
Natsura Wrangle
- Fixed mappings
- Fixed a chain of maps into a wrangle (a second map using
*=,+=, ormax, or a first map that is not a plain=) failing to compile and emptying the simulate
Project Browser and UI
- Added the Project Browser (also opened as the Example Browser), replacing the Hub, Projects, and Examples panels: Grid, List, and Details views, multi-select, rename, duplicate, and collections
- Added project versions: Save As copies share a project id and are grouped together; older files are suggested, never grouped automatically
- Added your own Examples and Templates libraries, which survive updates
- Changed Delete to a ten-second countdown with undo before files go to the Recycle Bin
- Changed opening an example to open a copy as a new project, so the shipped scene is never changed
- Added Locate for relinking missing files
- Changed New Project to open Templates (Blank and Simple, a Grow feeding a Simulate)
- Changed the splash to the Welcome Screen, which can be docked
- Changed first-run setup to end with "Grow your first tree?"
- Added a "Load Natsura desktop at startup" preference, asked at setup and in Settings
- Changed the help buttons on Grow and Map to open the Guide instead of the Houdini help browser
- Updated 72 tips and added 3 on mapping (promotion, reading an attribute, and ranges and direction)
- Added a help page for every node, generated from its parameter tooltips (some parameters are still undescribed)
- Removed the Hub container; every Natsura panel floats or docks
- Changed the pins on the grow graph nodes (Grow, Delay, Split, Switch, Kill, Repeat Begin, and Repeat End) to teal
- Updated the example scenes (Assemblies Workflow, Chaining Simulations, Simple Tree) and the Simple template
- Fixed projects never showing their Natsura and Houdini versions
- Fixed opening a copy of a project breaking
$HIPreferences - Fixed favourites being dropped
Performance
- Improved node selection in a scene with 1,008 Natsura nodes and 26 simulates: ~3.8 s to ~0.6 s per click
- Improved the Spans panel refresh: 1,697 ms to 10.5 ms across 26 simulates, 179 ms to 4.4 ms for the current simulate
- Improved the Spans panel background poll: 406 ms to 121 ms
- Improved node graph colouring: repeat calls no longer write anything
Install and Startup
- Added Houdini 22 support (Natsura previously failed to start on H22, silently); only roughly tested so far
- Added support for Houdini Education licences
- Changed the package layout: the root holds only what you click, read, or edit, and the rest is in
setup/ - Added a real shortcut on setup for each platform (
.lnkon Windows,.appon macOS,.desktopon Linux) - Changed
launch.confto plainKEY=VALUE, with every key documented inREADME.txt - Fixed Windows install failing on a missing
setup.ps1 - Fixed Linux and macOS install failing on Windows line endings in
setup.sh - Fixed an empty scene sometimes spawning a geo node with Grow and Simulate in it
- Fixed hotkeys not responding
- Fixed Check for Updates and the Welcome Screen update badge, which had stopped seeing new releases; the update dialog now links to the release notes
- Fixed the upgrade dialog reporting "0.6 to 0.6"
- Changed usage analytics to policy v3, with an updated privacy policy; you are asked for consent again
- Improved logging: each session's log starts with a header, and uncaught errors are recorded
Known Issues
- 0.6 scenes upgrade only partly: Grow, Bud, and Assembly Decoration upgrade on load and nothing else does yet, so keep Clusters Decoration 1.0, set Grow's Offset (Spawn tab) to 0 if graft strands fold onto the graft point, and check Surface Decoration's resample mode and UV scale by hand
- If a node in an existing scene has Allow Editing of Contents on, use Match Current Definition after updating or the fixes will not reach it; Assembly Decorations with it on are reported on load but not upgraded
- Simulate now has one output: wires from Simulate into Rig to Assembly, Export Unreal Nanite Assembly, and Wind Config carry over, but wires into Export Json, Build Assembly Rig, or nodes of your own, and anything that read the old second (rig) output, need rewiring by hand
- Natsura Shape: in scenes from before this release the old skeleton wire lands in Environment and the environment wire is lost; remove it and wire the environment into Environment (the second input)
- Prune Wizard, Natsura Stage, and Export Unreal Nanite Assembly lost their last input; older scenes load with an "Ignored extraneous inputs" warning, which is safe to ignore
- Export Unreal Nanite Assembly: older scenes load with warnings about unrecognised or spare parameters left over from the old interface; the spare parameters can be deleted
- Natsura Highpoly Hole (Scans) has been removed, so scenes that use it load with a missing node
- Surface Decoration: a trunk with Resample set to step length or subdivide can disappear from the simulate output (use none for now)
- Clusters Decoration 2.0: Up Axis does nothing; libraries from before this release need Forward Axis set to +Z
- Merge Assemblies: merging several large libraries is not fully tested
- Map: Get Updated Info raises an error
- Nanite export: material bindings live in the root layer, so a tree's layer loaded on its own has none
- The macOS
.appshortcut is untested and has a generic icon