[{"data":1,"prerenderedAt":919},["ShallowReactive",2],{"navigation":3,"\u002Fchangelog\u002F0-6-1-0":210,"\u002Fchangelog\u002F0-6-1-0-surround":909},[4,22,55,73],{"title":5,"path":6,"stem":7,"children":8,"page":21},"Getting Started","\u002Fdocs\u002Fgetting-started","1.docs\u002F1.getting-started",[9,13,17],{"title":10,"path":11,"stem":12},"Overview","\u002Fdocs\u002Fgetting-started\u002Foverview","1.docs\u002F1.getting-started\u002F01.overview",{"title":14,"path":15,"stem":16},"Commercial Use","\u002Fdocs\u002Fgetting-started\u002Frequirements","1.docs\u002F1.getting-started\u002F02.requirements",{"title":18,"path":19,"stem":20},"Install Natsura (Windows)","\u002Fdocs\u002Fgetting-started\u002Finstallation_package","1.docs\u002F1.getting-started\u002F03.installation_package",false,{"title":23,"path":24,"stem":25,"children":26,"page":21},"Core Concepts","\u002Fdocs\u002Fcore-concepts","1.docs\u002F2.core-concepts",[27,31,35,39,43,47,51],{"title":28,"path":29,"stem":30},"Simulation","\u002Fdocs\u002Fcore-concepts\u002Fsimulation","1.docs\u002F2.core-concepts\u002F04.simulation",{"title":32,"path":33,"stem":34},"Wrappers","\u002Fdocs\u002Fcore-concepts\u002Fwrappers","1.docs\u002F2.core-concepts\u002F05.wrappers",{"title":36,"path":37,"stem":38},"Mapping","\u002Fdocs\u002Fcore-concepts\u002Fmapping","1.docs\u002F2.core-concepts\u002F06.mapping",{"title":40,"path":41,"stem":42},"Effectors","\u002Fdocs\u002Fcore-concepts\u002Feffectors","1.docs\u002F2.core-concepts\u002F07.effectors",{"title":44,"path":45,"stem":46},"Decorations","\u002Fdocs\u002Fcore-concepts\u002Fdecorations","1.docs\u002F2.core-concepts\u002F08.decorations",{"title":48,"path":49,"stem":50},"Node Reference","\u002Fdocs\u002Fcore-concepts\u002Fnode_reference","1.docs\u002F2.core-concepts\u002F10.node_reference",{"title":52,"path":53,"stem":54},"Attribute Reference","\u002Fdocs\u002Fcore-concepts\u002Fattributes","1.docs\u002F2.core-concepts\u002F11.attributes",{"title":56,"badge":57,"defaultOpen":21,"path":58,"stem":59,"children":60,"page":21},"Meshing","WIP","\u002Fdocs\u002Fmeshing","1.docs\u002F3.meshing",[61,65,69],{"title":62,"path":63,"stem":64},"Scanned Trunk Extension","\u002Fdocs\u002Fmeshing\u002Fscanned_trunk_extension","1.docs\u002F3.meshing\u002F02.scanned_trunk_extension",{"title":66,"path":67,"stem":68},"Highpoly Framework","\u002Fdocs\u002Fmeshing\u002Fhighpoly_processing","1.docs\u002F3.meshing\u002F03.highpoly_processing",{"title":70,"path":71,"stem":72},"Atlas Workflow","\u002Fdocs\u002Fmeshing\u002Fatlas_tools","1.docs\u002F3.meshing\u002F04.atlas_tools",{"title":48,"path":74,"stem":75,"children":76,"page":21},"\u002Fdocs\u002Fnodes","1.docs\u002FNodes",[77,81,126,140,148,168,181,194],{"title":78,"path":79,"stem":80},"Internal Nodes","\u002Fdocs\u002Fnodes\u002Finternal_nodes","1.docs\u002FNodes\u002F0.internal_nodes",{"title":82,"path":83,"stem":84,"children":85,"page":21},"Core","\u002Fdocs\u002Fnodes\u002Fcore","1.docs\u002FNodes\u002F1.core",[86,90,94,98,102,106,110,114,118,122],{"title":87,"path":88,"stem":89},"Natsura Delay","\u002Fdocs\u002Fnodes\u002Fcore\u002Fdelay","1.docs\u002FNodes\u002F1.core\u002Fdelay",{"title":91,"path":92,"stem":93},"Natsura Grow","\u002Fdocs\u002Fnodes\u002Fcore\u002Fgrow","1.docs\u002FNodes\u002F1.core\u002Fgrow",{"title":95,"path":96,"stem":97},"Natsura Map","\u002Fdocs\u002Fnodes\u002Fcore\u002Fmap","1.docs\u002FNodes\u002F1.core\u002Fmap",{"title":99,"path":100,"stem":101},"Natsura Prune","\u002Fdocs\u002Fnodes\u002Fcore\u002Fprune","1.docs\u002FNodes\u002F1.core\u002Fprune",{"title":103,"path":104,"stem":105},"Repeat","\u002Fdocs\u002Fnodes\u002Fcore\u002Frepeat","1.docs\u002FNodes\u002F1.core\u002Frepeat",{"title":107,"path":108,"stem":109},"Natsura Signal","\u002Fdocs\u002Fnodes\u002Fcore\u002Fsignal","1.docs\u002FNodes\u002F1.core\u002Fsignal",{"title":111,"path":112,"stem":113},"Natsura Simulate","\u002Fdocs\u002Fnodes\u002Fcore\u002Fsimulate","1.docs\u002FNodes\u002F1.core\u002Fsimulate",{"title":115,"path":116,"stem":117},"Natsura Split","\u002Fdocs\u002Fnodes\u002Fcore\u002Fsplit","1.docs\u002FNodes\u002F1.core\u002Fsplit",{"title":119,"path":120,"stem":121},"Natsura Switch","\u002Fdocs\u002Fnodes\u002Fcore\u002Fswitch","1.docs\u002FNodes\u002F1.core\u002Fswitch",{"title":123,"path":124,"stem":125},"Natsura Wrangle","\u002Fdocs\u002Fnodes\u002Fcore\u002Fwrangle","1.docs\u002FNodes\u002F1.core\u002Fwrangle",{"title":127,"path":128,"stem":129,"children":130},"Map","\u002Fdocs\u002Fnodes\u002Fmap","1.docs\u002FNodes\u002F3.Map\u002Findex",[131,132,136],{"title":127,"path":128,"stem":129},{"title":133,"path":134,"stem":135},"Map Blend","\u002Fdocs\u002Fnodes\u002Fmap\u002Fmap-blend","1.docs\u002FNodes\u002F3.Map\u002Fmap-blend",{"title":137,"path":138,"stem":139},"Map If","\u002Fdocs\u002Fnodes\u002Fmap\u002Fmap-if","1.docs\u002FNodes\u002F3.Map\u002Fmap-if",{"title":40,"badge":57,"defaultOpen":21,"path":141,"stem":142,"children":143,"page":21},"\u002Fdocs\u002Fnodes\u002Feffectors","1.docs\u002FNodes\u002F4.Effectors",[144],{"title":145,"path":146,"stem":147},"Noise Effector","\u002Fdocs\u002Fnodes\u002Feffectors\u002Fnoise-effector","1.docs\u002FNodes\u002F4.Effectors\u002F1.noise-effector",{"title":44,"badge":57,"defaultOpen":21,"path":149,"stem":150,"children":151,"page":21},"\u002Fdocs\u002Fnodes\u002Fdecorations","1.docs\u002FNodes\u002F5.Decorations",[152,156,160,164],{"title":153,"path":154,"stem":155},"Core Decoration","\u002Fdocs\u002Fnodes\u002Fdecorations\u002Fcore-decoration","1.docs\u002FNodes\u002F5.Decorations\u002F1.core-decoration",{"title":157,"path":158,"stem":159},"Surface Decoration","\u002Fdocs\u002Fnodes\u002Fdecorations\u002Fsurface-decoration","1.docs\u002FNodes\u002F5.Decorations\u002F2.surface-decoration",{"title":161,"path":162,"stem":163},"Cluster Decoration","\u002Fdocs\u002Fnodes\u002Fdecorations\u002Fcluster-decoration","1.docs\u002FNodes\u002F5.Decorations\u002F3.cluster-decoration",{"title":165,"path":166,"stem":167},"Trunk Decoration","\u002Fdocs\u002Fnodes\u002Fdecorations\u002Ftrunk-decoration","1.docs\u002FNodes\u002F5.Decorations\u002F4.trunk-decoration",{"title":169,"badge":57,"defaultOpen":21,"path":170,"stem":171,"children":172,"page":21},"Highpoly","\u002Fdocs\u002Fnodes\u002Fhighpoly","1.docs\u002FNodes\u002F6.Highpoly",[173,177],{"title":174,"path":175,"stem":176},"Highpoly Import","\u002Fdocs\u002Fnodes\u002Fhighpoly\u002Fhighpoly_import","1.docs\u002FNodes\u002F6.Highpoly\u002F01.highpoly_import",{"title":178,"path":179,"stem":180},"Graft Mesh","\u002Fdocs\u002Fnodes\u002Fhighpoly\u002Fgraft_mesh","1.docs\u002FNodes\u002F6.Highpoly\u002F02.graft_mesh",{"title":182,"badge":57,"defaultOpen":21,"path":183,"stem":184,"children":185,"page":21},"Atlas","\u002Fdocs\u002Fnodes\u002Fatlas","1.docs\u002FNodes\u002F7.Atlas",[186,190],{"title":187,"path":188,"stem":189},"Atlas Material","\u002Fdocs\u002Fnodes\u002Fatlas\u002Fatlas_material","1.docs\u002FNodes\u002F7.Atlas\u002F1.atlas_material",{"title":191,"path":192,"stem":193},"Atlas Trace","\u002Fdocs\u002Fnodes\u002Fatlas\u002Fatlas_trace","1.docs\u002FNodes\u002F7.Atlas\u002F2.atlas_trace",{"title":195,"badge":57,"defaultOpen":21,"path":196,"stem":197,"children":198,"page":21},"Utilities","\u002Fdocs\u002Fnodes\u002Futilities","1.docs\u002FNodes\u002F8.utilities",[199,203,207],{"title":200,"path":201,"stem":202},"Bake","\u002Fdocs\u002Fnodes\u002Futilities\u002Fbake","1.docs\u002FNodes\u002F8.utilities\u002F1.bake",{"title":204,"path":205,"stem":206},"Unreal Wizard","\u002Fdocs\u002Fnodes\u002Futilities\u002Funreal_wizard","1.docs\u002FNodes\u002F8.utilities\u002F2.unreal_wizard",{"title":119,"path":208,"stem":209},"\u002Fdocs\u002Fnodes\u002Futilities\u002Fswitch","1.docs\u002FNodes\u002F8.utilities\u002Fswitch",{"id":211,"title":212,"badge":213,"body":214,"date":900,"description":220,"extension":901,"icon":902,"meta":903,"navigation":904,"path":905,"seo":906,"stem":907,"__hash__":908},"changelogItems\u002F5.changelog\u002F0-6-1-0.md","Natsura 0.6.1.0","v0.6.1.0",{"type":215,"value":216,"toc":896},"minimark",[217,221],[218,219,220],"p",{},"Unified effector and mapping shape, assemblies workflow 1.0, picker UI, cook trigger purge, rigged Nanite export",[222,223,224,228,231,234,237,240,243,249,255,261,267,270,277,283,289,295,301,307,313,319,325,331,337,350,356,362,369,374,379,384,389,394,399,404,410,419,424,430,435,440,445,450,456,461,466,472,477,482,489,492,495,498,509,512,515,518,524,529,534,539,544,550,555,560,565,571,576,587,590,596,602,608,613,619,625,634,641,644,647,650,653,659,664,669,675,681,687,693,696,702,708,714,720,726,732,738,744,751,754,757,760,763,766,769,772,775,778,781,784,787,790,793,796,799,802,805,808,811,814,817,820,823,826,835,838,841,844,847,850,853,856,863,866,869,872,875,878,881,887,890,893],"ul",{},[225,226,227],"li",{},"title: Natsura 0.6.1.0",[225,229,230],{},"description: \"Unified effector and mapping shape, assemblies workflow 1.0, picker UI, cook trigger purge, rigged Nanite export\"",[225,232,233],{},"date: \"2026-05-20\"",[225,235,236],{},"badge: \"v0.7.0.0\"",[225,238,239],{},"houdini: \"20.5, 21.0\"",[225,241,242],{},"previous: \"0.6.0.5\"",[225,244,245,248],{},[246,247,40],"strong",{},": unified multiparm shape shared with assembly decoration; picker UI for effector slots; up-vector control (orbit, align, flatten); same effector assignable multiple times to one node with different responses and maps.",[225,250,251,254],{},[246,252,253],{},"Assemblies",": workflow finalised at 1.0 (import → rig → classify → decorate); rigged Nanite skeletal assembly export to Unreal wired end-to-end; random part selection retired, distribution is mapping-only; tested at very large library scales.",[225,256,257,260],{},[246,258,259],{},"Performance",": cook triggers removed from outside-cook code; spans panel 4Hz → 1Hz heartbeat; toolbar redraw churn reduced; toolbar actions no longer write prefs. Stale channel refs are the next active bug class.",[225,262,263,266],{},[246,264,265],{},"UI",": 2-parm portable mapping form across the toolkit; picker UI replaces native add menus on map \u002F decorator \u002F effector slots; Natsura main menu + dev dropdown; display toolbar reorganised and context-sensitive; recipe spawn (no second cook on placement); native hotkeys; workspace panel with tear-off tabs; Guide replaces Tips Panel.",[225,268,269],{},"Grow 1.x, switch 1.0 and mappable_parms archived; existing hipfiles migrate on load.",[225,271,272,276],{},[273,274,275],"code",{},"natsura::direction_effector::1.0"," — uniform direction effector",[225,278,279,282],{},[273,280,281],{},"natsura::autocode_effector::1.0"," — utility for preparing effectors inside decorations",[225,284,285,288],{},[273,286,287],{},"natsura::effector_template::1.0"," — template for ingesting effectors inside decorations",[225,290,291,294],{},[273,292,293],{},"natsura::assembly_edit::1.0"," — pivot and per-element tweaks, utility inside assembly resource",[225,296,297,300],{},[273,298,299],{},"natsura::assembly_pack::1.0"," — pack assemblies into instanced output, utility inside assembly resource",[225,302,303,306],{},[273,304,305],{},"natsura::partition_assemblies::1.0"," — split large datasets into chunks for parallel processing, utility inside assembly resource",[225,308,309,312],{},[273,310,311],{},"natsura::visualize_assemblies::1.0"," — inspection (motion, pivots, rigs, colours), utility inside assembly resource",[225,314,315,318],{},[273,316,317],{},"natsura::pivot_edit::1.0"," — pivot adjustment of assemblies, utility inside assembly resource",[225,320,321,324],{},[273,322,323],{},"natsura::import_assembly::1.0"," — bring assemblies in from external sources, internal utility of resource",[225,326,327,330],{},[273,328,329],{},"natsura::rig_to_assembly::1.0"," — convert a rig to an assembly representation, experimental. go from simulation to assembly decoration.",[225,332,333,336],{},[273,334,335],{},"natsura::fuse_tree_rig_and_skin::1.0"," — utility for grafting tree skeletons, useful for grafting assemblies onto simulation",[225,338,339,342,343,342,346,349],{},[273,340,341],{},"natsura::grow::1.0",", ",[273,344,345],{},"natsura::grow::1.1",[273,347,348],{},"natsura::grow::1.2"," — use 2.0; pre-0.6 scenes migrate on load",[225,351,352,355],{},[273,353,354],{},"natsura::switch::1.0"," — use 1.1",[225,357,358,361],{},[273,359,360],{},"natsura::mappable_parms::1.0"," — redundant under 2-parm mapping",[225,363,364,368],{},[365,366,367],"span",{},"grow 2.0"," unified effector_list multiparm (absorbed graph_operation_count)",[225,370,371,373],{},[365,372,367],{}," recipe spawn populates trunk preview, decorator drag slot, follow rows on placement (no second cook)",[225,375,376,378],{},[365,377,367],{}," custom right-click menu replaces native",[225,380,381,383],{},[365,382,367],{}," orbit \u002F align \u002F flatten (up) modes on effectors",[225,385,386,388],{},[365,387,367],{}," tab menu spawns recipe",[225,390,391,393],{},[365,392,367],{}," menuscript-driven live parm update; no OnInputChanged proliferation",[225,395,396,398],{},[365,397,367],{}," trunk decoration skeleton fix",[225,400,401,403],{},[365,402,367],{}," pack\u002Funpack workaround for single-point-remaining decoration bug",[225,405,406,409],{},[365,407,408],{},"core_grow"," opexist guard before object merge (no invalid-path spam)",[225,411,412,414,415,418],{},[365,413,408],{}," removed invalid ",[273,416,417],{},"string new"," parm ref",[225,420,421,423],{},[365,422,408],{}," stamps Natsura version on node for upgrade tooling",[225,425,426,429],{},[365,427,428],{},"simulate"," display settings + colour restored",[225,431,432,434],{},[365,433,428],{}," skeleton split out post-cook",[225,436,437,439],{},[365,438,428],{}," bypass switch when no APEX graph present (no empty-cook errors)",[225,441,442,444],{},[365,443,428],{}," POSTPROCESS chain (attribwrangle, edgetransport, color)",[225,446,447,449],{},[365,448,428],{}," source_radius copy-to-points fix",[225,451,452,455],{},[365,453,454],{},"core_simulate"," object-merge stack subnet",[225,457,458,460],{},[365,459,454],{}," profile outputs added",[225,462,463,465],{},[365,464,454],{}," cache-if removed where misfiring",[225,467,468,471],{},[365,469,470],{},"execute_logic"," parent_id → id_parent across schema",[225,473,474,476],{},[365,475,470],{}," dynamic invoke setup",[225,478,479,481],{},[365,480,470],{}," illegal-graph handling restored (regressed in 1068)",[225,483,484,485,488],{},"All effectors prefixed ",[273,486,487],{},"experimental_"," in tab menu while contract settles",[225,490,491],{},"Up-vector control: orbit, align, flatten — control the frame of growth, not just the heading",[225,493,494],{},"Ancestor effector reads vectors from parent, grandparent and further up the lineage",[225,496,497],{},"Same effector assignable to one node multiple times, each with own response and map (for layered behaviours)",[225,499,500,501,504,505,508],{},"Signal names collision-resistant; ",[273,502,503],{},"\u002F"," → ",[273,506,507],{},"_"," so paths work as names",[225,510,511],{},"Rename tracked via channel ref to parm (was Python, brittle)",[225,513,514],{},"Menus cached (too many to update live)",[225,516,517],{},"Multiparm: fixed-size 32 slots across grow + assembly decoration",[225,519,520,523],{},[365,521,522],{},"assembly_decoration"," effector support via shared list",[225,525,526,528],{},[365,527,522],{}," flipping fix: face-gravity correction + unified rotation across opposing whorl elements",[225,530,531,533],{},[365,532,522],{}," sub-component rig support in classify",[225,535,536,538],{},[365,537,522],{}," random part selection removed; distribution is mapping-only",[225,540,541,543],{},[365,542,522],{}," mapping default range auto-picks",[225,545,546,549],{},[365,547,548],{},"surface_decoration"," 2-parm mapping shape",[225,551,552,554],{},[365,553,548],{}," gather_controls thread-pool parms exposed",[225,556,557,559],{},[365,558,548],{}," removed stale OUT_decorate_package ref",[225,561,562,564],{},[365,563,548],{}," defensive hscript on map_blend",[225,566,567,570],{},[365,568,569],{},"clusters_decoration"," deprecated this release; use assembly_decoration for module placement",[225,572,573,549],{},[365,574,575],{},"trunk_decoration, core_decorate, core_decoration",[225,577,578,579,582,583,586],{},"2-parm portable form: ",[273,580,581],{},"{name}"," + ",[273,584,585],{},"{name}_map",", shared execute_mapbutton action (handles promote, unlink, replace from either parm)",[225,588,589],{},"All map expression links on float parms removed; the map value drives the parm directly",[225,591,592,595],{},[365,593,594],{},"map, map_if, map_blend"," 2-parm shape",[225,597,598,601],{},[365,599,600],{},"map_blend"," redundant map_if branch removed",[225,603,604,607],{},[365,605,606],{},"ingest_mappings"," standardised parm refs",[225,609,610,612],{},[365,611,606],{}," broken expressions cleaned by upgrade pass",[225,614,615,618],{},[365,616,617],{},"switch 1.1"," map-driven gates respect 2-parm shape",[225,620,621,624],{},[365,622,623],{},"wrangle"," signal-naming pass",[225,626,627,630,631,633],{},[365,628,629],{},"core_fetch"," invalid ",[273,632,417],{}," parm ref removed",[225,635,636,637,640],{},"Pickers replace ",[273,638,639],{},"menureplace"," add menus on map \u002F decorator \u002F effector slots",[225,642,643],{},"Picker bucketing: already on this grow \u002F on other grows \u002F orphan",[225,645,646],{},"Preview decorators (trunk_preview, leaf_preview) and intrinsic vectors in their own columns",[225,648,649],{},"Per-slot menus: unlink, duplicate, jump-to, replace",[225,651,652],{},"~1,100 LOC Python + comparable DialogScript removed",[225,654,655,658],{},[365,656,657],{},"classify"," sub-component rig support",[225,660,661,663],{},[365,662,657],{}," viewport-based attribute + group assignment",[225,665,666,668],{},[365,667,657],{}," refreshes assembly_decoration multiparm on change",[225,670,671,674],{},[365,672,673],{},"assembly_resource"," template + editing updates",[225,676,677,680],{},[365,678,679],{},"build_assembly_rig"," nearpoint-lookup autorigging with cycle removal",[225,682,683,686],{},[365,684,685],{},"create_proxy"," outputs bounds \u002F VDB \u002F medial axis \u002F particles; optional leaf removal",[225,688,689,692],{},[365,690,691],{},"identify_shared_instances"," flat instanced structure for duplicates",[225,694,695],{},"Pipeline tested at very large library scales",[225,697,698,701],{},[365,699,700],{},"scan_to_parts"," nearpt method replaces VDB (VDB kept breaking)",[225,703,704,707],{},[365,705,706],{},"scan_profiles"," scatter-based rebuild",[225,709,710,713],{},[365,711,712],{},"scan_extend_profiles"," multitrunk extension",[225,715,716,719],{},[365,717,718],{},"import_highpoly"," SOP input from graph",[225,721,722,725],{},[365,723,724],{},"bake"," supersampling + seam handling",[225,727,728,731],{},[365,729,730],{},"surface_wizard"," internal cleanup",[225,733,734,737],{},[365,735,736],{},"sopcreatenaniteassembly"," rigged Nanite export wired end-to-end (grow → fuse → skin → export → USD)",[225,739,740,743],{},[365,741,742],{},"export_unreal_nanite_assembly"," wired through fuse + skin chain",[225,745,746,747,750],{},"Wind sidecar: ",[273,748,749],{},"\u003Cname>_wind.json"," alongside USD",[225,752,753],{},"Wind tools experimental; not a runtime match for Unreal wind, just enough to see where the wind layers are while setting up the rig",[225,755,756],{},"Natsura main menu dropdown + dev dropdown (dev tools out of the main menu)",[225,758,759],{},"Display toolbar: reorganised, MMB scroll, dev moved to far right",[225,761,762],{},"Display toolbar: context-sensitive grow \u002F switch \u002F split by graph-port count on current selection",[225,764,765],{},"Toolbar dropdown: license key, update check, support info, projects, examples, docs",[225,767,768],{},"Recipe spawn: trunk preview + empty decoration \u002F effector slots + follow rows on placement; no second cook",[225,770,771],{},"Native hotkeys (file-driven via Houdini's loader): toggle stowbars, pause cook",[225,773,774],{},"Grow uses action button scripts instead of menu callbacks (faster, less script churn)",[225,776,777],{},"Workspace panel: toolbar + guide \u002F attributes \u002F spans tabs, tear-off floating",[225,779,780],{},"Python panels in folder structure; dev panels moved to separate dev project",[225,782,783],{},"Guide (was Tips Panel): markdown format, search across names + content, prev\u002Fnext, multiple libraries",[225,785,786],{},"Multiparm right-click batch-set channel expressions",[225,788,789],{},"Panel scene tracking moved to background service (Qt signals); spans and simulate-selector still poll for scoped state the service doesn't cover",[225,791,792],{},"upgrade\u002Fv0_6\u002Fgrow_nodes.py runs on load: migrates pre-0.6 effector slots, realigns follow rows, cleans orphan channel refs",[225,794,795],{},"migrate_unified_effector_list: moves misaligned follow snapshots; clears obsolete effector_text_fields",[225,797,798],{},"afterscenesave.py stamps hip with Natsura version",[225,800,801],{},"Back-compat: pre-unification hipfiles load (graph_operation_count silently ignored, effector_list loads normally, per-row instance parms migrate)",[225,803,804],{},"Cook triggers removed from outside-cook code (UI, menus, graph layer)",[225,806,807],{},"No node.geometry() or cook-dependent parm.eval() outside cook",[225,809,810],{},"Declarative state: parm rawValue \u002F type metadata \u002F userData; readers read declarations",[225,812,813],{},"APEX-auto-from-sops: ad-hoc groups (groups not guaranteed to exist at that stage)",[225,815,816],{},"Spans panel: 4Hz → 1Hz heartbeat (cheap signature check; full driver sweep only on change)",[225,818,819],{},"Toolbar capability-fade + category-aware fade reduce redraw churn on prefs changes",[225,821,822],{},"Toolbar actions no longer write prefs (was rebuilding toolbar on every prefsChanged, killing open dropdowns)",[225,824,825],{},"Effector rename no longer breaks attribfromparms refs",[225,827,828,829,504,832],{},"Auto-merge enable condition ",[273,830,831],{},"#-1",[273,833,834],{},"#",[225,836,837],{},"Surface decorator map refs cleaned via upgrade",[225,839,840],{},"clear_stale_follow_depths widened (unified + legacy multiparm names)",[225,842,843],{},"Trunk decoration skeleton on grow",[225,845,846],{},"Decorator multiparm sorting",[225,848,849],{},"Simulate display settings + colour",[225,851,852],{},"source_radius copy-to-points",[225,854,855],{},"parent_id → id_parent applied across core_grow.preview_code, assembly_decoration.editgraph1, simulate.POSTPROCESS, execute_logic.graph_process_main (all-or-nothing; partial application breaks the schema)",[225,857,858,859,862],{},"Stale ",[273,860,861],{},"start = -0.041666666666666664"," channel keyframes stripped",[225,864,865],{},"Stale channel refs is the active bug class right now. Symptoms: parameters not updating after edit, slot values detached from their source, defaults reasserting unexpectedly. Sending us the scene is the fastest path to a fix.",[225,867,868],{},"Residual double \u002F triple cooks on some scenes. Most cases were resolved by the cook-trigger purge; the remaining ones show up as duplicate cook markers in the editor log on what should be a single-cook edit. Root cause not yet isolated.",[225,870,871],{},"Forking controls on grow are limited. Current parms don't cover all the branching cases artists want; wider controls planned for a later release.",[225,873,874],{},"Flatten + phyllotaxy controls are sensitive on perfectly upright branches — getting a flat layout of secondary branches off a near-vertical leader can produce unstable rotations. Perturbing the leader slightly off vertical works around it.",[225,876,877],{},"Maps plugged into decorations don't surface their attributes on the decorator parm UI. The map drives the value correctly downstream; only the parm-side attribute list is wrong.",[225,879,880],{},"Nanite skeletal assemblies imported to Unreal can appear to have instances at the root in the skeletal mesh editor. Fix in-engine by switching preserve-area to voxelise; the issue also goes away if you spawn the tree as an instanced skinned mesh. Unclear if it's a Natsura-side or Unreal-side issue; continuing to investigate.",[225,882,883,884,886],{},"Effectors prefixed ",[273,885,487],{}," until contract settles across grow + assembly decoration",[225,888,889],{},"Wind tools experimental; not a runtime match for Unreal wind",[225,891,892],{},"Analytics opt-in, off by default",[225,894,895],{},"Houdini 20.5 and 21.0",{"title":897,"searchDepth":898,"depth":898,"links":899},"",2,[],"2026-05-20","md",null,{},true,"\u002Fchangelog\u002F0-6-1-0",{"title":212,"description":220},"5.changelog\u002F0-6-1-0","-Ud_dVHMnOrfHcynPxwJ7Lf4JBgK9S-jFw0ysWhP0Rw",[910,914],{"title":911,"path":912,"stem":913,"description":897,"children":-1},"Natsura 0.6.0.4","\u002Fchangelog\u002F0-6-0-4","5.changelog\u002F0-6-0-4",{"title":915,"path":916,"stem":917,"description":918,"children":-1},"Natsura 0.6.1.1","\u002Fchangelog\u002F0-6-1-1","5.changelog\u002F0-6-1-1","Traits hotfix",1779246235543]