Feature·

Natsura 0.6.3.0

Suite of bugfixes and stability improvements

Back to Changelog

Suite of bugfixes and stability improvements

  • Removed many classes of bugs including "ghost" cooks triggered by python panels
  • Updated rig definition for improved control
  • Improvements to Assembly tools and workflow
  • surface decoration "min width"
  • fuse assembly rigs with simulated skeleton for detailed wind animation
  • The biggest workflow change is the rig to assembly workflow. Now it is possible to simulate a set of branches or a tree and then "decompose" it into modules for use in another simulation. This unlocks the procedural power of natsura for creating species at scale.
  • rig_merge ~ merges two rigs into one
  • binds parents ↔ children across the join
  • "fix parent id" + adjustable parentname
  • later speed-optimized
  • rig_rename ~ renames rig joints as a discrete op
  • rig_delete ~ deletes rig joints as a discrete op
  • rig_collapse ~ collapses rig hierarchy
  • refactored to host shared rig utilities
  • rig_rebind ~ rebinds skin weights to a rig
  • remade from scratch (was very slow), then standardized and optimized
  • rig_rename ~ renames rig joints as a discrete op
  • rig_delete ~ deletes rig joints as a discrete op
  • rig_collapse ~ collapses rig hierarchy
  • refactored to host shared rig utilities
  • rig_detect_used_joints ~ flags which joints are actually used
  • feeds simplify / collapse
  • rewire_tree ~ basic utility for rewiring tree topology
  • skeletonize ~ skeleton extraction utility
  • adaptive_part_removal ~ removes parts adaptively
  • prune_wizard ~ wizard-style pruning entry point
  • rig_to_assembly ~ wrapper over the whole rig→assembly toolchain
  • multiple branch inputs, nested assemblies, extract subassemblies + atoms
  • fixes and simplifies rigs
  • added "absorb instances" toggle
  • refactored onto shared rig utilities, removed redundancy
  • moved "name corrections" up a level (was too deep)
  • fixed class management (resolved a cascade of downstream bugs)
  • viewport arrow made static
  • instancify ~ pulls repeated geo out into instanced modules
  • pulls out subassemblies, fixes up rig + skin
  • transfers prim attributes too
  • removes single instances mis-tagged as modules (re-found later)
  • collapse-unused-parts now deletes fully-unused joints, not just reparents
  • fixed broken "detect unused modules" check
  • "absorb instances" toggle, internal-node refactor
  • viewport arrow made static
  • assembly_decoration ~ places decorations onto
  • fixed invalid default parm (result shows on first placement now)
  • passes name / localname / parentname / assembly_name through
  • switched to parent_id internally (old branches lacked id_parent)
  • ~100× speedup at high joint counts (nametopoi
  • smarter rig reconstruction + joint management after deletion
  • working preview mode
  • assemblify ~ converts rig + skinned geo into one mesh stream for decorators
  • scope reduced to that single responsibility
  • naming now happens here so core utilities drop name/class management
  • removed class refs, added temp-attribute cleanup
  • added a FUSE step
  • simulate ~ runs the growth simulation
  • removed output-attributes control (broke scene upgrades)
  • added timeshifts for slider dragging
  • robust fullpath-vs-name colouring
  • cleans up temp __captblock attrib
  • "locked core simulate", embedded simplify-tree-rig-and-skin
  • identify_shared_instances ~ finds geometry shared across the tree
  • sorts by size, preserves rigging
  • no longer unpacks leaves
  • assembly_resource ~ resolves an assembly from
  • correctly identifies instances inside USD files
  • partition logic moved out of import
  • USD treatment fixed
  • assembly_edit ~ viewport-edit an assembly
  • conformed to new rig_to_assembly style
  • defaults to assembly_name, added assembly_resource
  • wind preview removed
  • import_assembly ~ brings an assembly into the scene
  • partition_assemblies pulled out of it (wrong level)
  • partition_assemblies ~ splits an assembly into partitions
  • extracted out of import_assembly
  • build_assembly_rig ~ builds the rig for an as
  • ly style
  • treeparameterize ~ generates strands / parameterizes the tree skeleton
  • new "use existing prims" mode (longest strands, no new prim chain)
  • new modes: keep source prims, split by attribute (sub-primitive strands)
  • added seam group + seam attrib (split strands at UV discontinuity)
  • exports id_strand, id_parentstrand, id_sourceprimids, order_strand
  • sourceprimuv transfer bugfixes, optimized parent-strand-id gen
  • order_branches ~ orders branches for traversa
  • computes dist instead of assuming width
  • still flagged "needs more thinking"
  • fuse_tree_rig_and_skin ~ fuses tree rig with
  • stamps new prim joints with prim attributes
  • copies additional attribs
  • attribute_transfer_by_rig ~ transfers attributes by rig ownership
  • now functional
  • primsplit on input + edge transport to pick the correct prim per joint
  • simplify_rig ~ removes unused joints from a rig
  • more accurate "was this joint used" removal
  • dropped cluster-based approach, moved onto new utilities
  • simplify_rig_reskin ~ simplify rig + reskin v
  • updated to new utilities
  • simplify_tree_rig_and_skin ~ simplify pass for tree rig + skin
  • updated/fixed, embedded into simulate
  • export_unreal_nanite_assembly ~ exports assem
  • warns if too many instances / joints
  • removed unneeded "delete joints"
  • adds a root to fix Unreal auto-root-generatio
  • sopcreatenaniteassembly ~ LOP building the Nanite assembly
  • warning + root fixes matching the exporter
  • grow ~ growth node
  • internal surface-decoration preview-mode fix
  • uses component_name == opfullpath("") instead of serializing + group hunt
  • cook-trigger fixes
  • surface_decoration ~ decorates a surface
  • added working preview mode (matches assembly)
  • strands mode
  • minimum-width control
  • core_decoration ~ core decoration engine
  • was failing to pass the full skeleton, fixed
  • clusters_decoration ~ cluster-based decoration
  • sourceprimuv bugfixes
  • cluster_wizard ~ cluster setup wizard
  • fixed undefined source point
  • surface_wizard ~ surface setup wizard
  • "reverse" toggle no longer breaks rig transfe
  • magnet_effector ~ magnet effector
  • healthier defaults
  • pivot_edit ~ edits pivots in the import pipeline
  • convex hull instead of decomposition (robust inside/outside test)
  • execute_logic ~ per-tree logic evaluation (bl
  • stopped discarding "source" attributes
  • carries a valid per-tree/per-branch class
  • classify ~ classification node
  • minor bug fix
  • visualize_assemblies ~ debug-visualizes assemblies
  • fixed "instances" colour mode
  • fixed a regression
  • debug_tree_rig ~ debug view of the tree rig
  • debug alpha removed
  • wind_previs ~ wind previsualization
  • removed colour copying
  • core_simulate ~ core sim internals — debugged
  • wind_config ~ wind config — debugged
  • create_proxy ~ proxy creation — optimized
  • assembly_pack ~ assembly packing — standardized
  • rebuild_primitive_attributes ~ rebuilds prim attributes — uses uvdist instead of xyzdist
  • surface decorator enhancements, including trait system for material selection
  • cluster decorator enhancements, including trait system for part selection
  • More realistic width model and additional width controls
  • new core nodes, "select" and "buds"
  • MASSIVE performance improvements both when placing nodes and evaluating simulations
  • assembly decorator yaw controls
  • more postprocessing tools (pruning, posing)
  • more effectors (curve follow)