[{"data":1,"prerenderedAt":1275},["ShallowReactive",2],{"navigation":3,"\u002Fdocs\u002Ffeatures\u002Fmapping\u002Foverview":557,"\u002Fdocs\u002Ffeatures\u002Fmapping\u002Foverview-surround":1270},[4,26,51,169,195,216,261],{"title":5,"path":6,"stem":7,"children":8,"page":25},"Getting Started","\u002Fdocs\u002Fgetting-started","1.docs\u002F1.getting-started",[9,13,17,21],{"title":10,"path":11,"stem":12},"Overview","\u002Fdocs\u002Fgetting-started\u002Foverview","1.docs\u002F1.getting-started\u002F01.overview",{"title":14,"path":15,"stem":16},"Installation","\u002Fdocs\u002Fgetting-started\u002Finstallation","1.docs\u002F1.getting-started\u002F02.installation",{"title":18,"path":19,"stem":20},"Interface","\u002Fdocs\u002Fgetting-started\u002Finterface","1.docs\u002F1.getting-started\u002F03.interface",{"title":22,"path":23,"stem":24},"Your First Tree","\u002Fdocs\u002Fgetting-started\u002Fyour-first-tree","1.docs\u002F1.getting-started\u002F04.your-first-tree",false,{"title":27,"path":28,"stem":29,"children":30,"page":25},"Core Concepts","\u002Fdocs\u002Fcore-concepts","1.docs\u002F2.core-concepts",[31,35,39,43,47],{"title":32,"path":33,"stem":34},"Simulation","\u002Fdocs\u002Fcore-concepts\u002Fsimulation","1.docs\u002F2.core-concepts\u002F04.simulation",{"title":36,"path":37,"stem":38},"Shaping","\u002Fdocs\u002Fcore-concepts\u002Fshaping","1.docs\u002F2.core-concepts\u002F08.shaping",{"title":40,"path":41,"stem":42},"Trunks & Meshing","\u002Fdocs\u002Fcore-concepts\u002Ftrunks-meshing","1.docs\u002F2.core-concepts\u002F12.trunks-meshing",{"title":44,"path":45,"stem":46},"Foliage & Instancing","\u002Fdocs\u002Fcore-concepts\u002Ffoliage-instancing","1.docs\u002F2.core-concepts\u002F13.foliage-instancing",{"title":48,"path":49,"stem":50},"Glossary","\u002Fdocs\u002Fcore-concepts\u002Fglossary","1.docs\u002F2.core-concepts\u002F14.glossary",{"title":52,"path":53,"stem":54,"children":55,"page":25},"Features","\u002Fdocs\u002Ffeatures","1.docs\u002F3.features",[56,68,80,104,113,137,145,161],{"title":57,"path":58,"stem":59,"children":60,"page":25},"Mapping","\u002Fdocs\u002Ffeatures\u002Fmapping","1.docs\u002F3.features\u002F01.mapping",[61,64],{"title":57,"path":62,"stem":63},"\u002Fdocs\u002Ffeatures\u002Fmapping\u002Foverview","1.docs\u002F3.features\u002F01.mapping\u002F01.overview",{"title":65,"path":66,"stem":67},"Mapping Cookbook","\u002Fdocs\u002Ffeatures\u002Fmapping\u002Fcookbook","1.docs\u002F3.features\u002F01.mapping\u002F02.cookbook",{"title":69,"path":70,"stem":71,"children":72,"page":25},"Effectors","\u002Fdocs\u002Ffeatures\u002Feffectors","1.docs\u002F3.features\u002F02.effectors",[73,76],{"title":69,"path":74,"stem":75},"\u002Fdocs\u002Ffeatures\u002Feffectors\u002Foverview","1.docs\u002F3.features\u002F02.effectors\u002F01.overview",{"title":77,"path":78,"stem":79},"Effectors Cookbook","\u002Fdocs\u002Ffeatures\u002Feffectors\u002Fcookbook","1.docs\u002F3.features\u002F02.effectors\u002F02.cookbook",{"title":81,"path":82,"stem":83,"children":84,"page":25},"Decorations","\u002Fdocs\u002Ffeatures\u002Fdecorations","1.docs\u002F3.features\u002F03.decorations",[85,88,92,96,100],{"title":81,"path":86,"stem":87},"\u002Fdocs\u002Ffeatures\u002Fdecorations\u002Foverview","1.docs\u002F3.features\u002F03.decorations\u002F01.overview",{"title":89,"path":90,"stem":91},"Surface Decoration","\u002Fdocs\u002Ffeatures\u002Fdecorations\u002Fsurface","1.docs\u002F3.features\u002F03.decorations\u002F02.surface",{"title":93,"path":94,"stem":95},"Trunk Decoration","\u002Fdocs\u002Ffeatures\u002Fdecorations\u002Ftrunk","1.docs\u002F3.features\u002F03.decorations\u002F03.trunk",{"title":97,"path":98,"stem":99},"Assembly Decoration","\u002Fdocs\u002Ffeatures\u002Fdecorations\u002Fassembly","1.docs\u002F3.features\u002F03.decorations\u002F04.assembly",{"title":101,"path":102,"stem":103},"Cluster Decoration","\u002Fdocs\u002Ffeatures\u002Fdecorations\u002Fcluster","1.docs\u002F3.features\u002F03.decorations\u002F05.cluster",{"title":105,"path":106,"stem":107,"children":108,"page":25},"Traits","\u002Fdocs\u002Ffeatures\u002Ftraits","1.docs\u002F3.features\u002F04.traits",[109],{"title":110,"path":111,"stem":112},"Trait System","\u002Fdocs\u002Ffeatures\u002Ftraits\u002Foverview","1.docs\u002F3.features\u002F04.traits\u002F01.overview",{"title":114,"path":115,"stem":116,"children":117,"page":25},"Materials","\u002Fdocs\u002Ffeatures\u002Fmaterials","1.docs\u002F3.features\u002F05.materials",[118,121,125,129,133],{"title":114,"path":119,"stem":120},"\u002Fdocs\u002Ffeatures\u002Fmaterials\u002Foverview","1.docs\u002F3.features\u002F05.materials\u002F01.overview",{"title":122,"path":123,"stem":124},"Surface Materials","\u002Fdocs\u002Ffeatures\u002Fmaterials\u002Fsurface","1.docs\u002F3.features\u002F05.materials\u002F02.surface",{"title":126,"path":127,"stem":128},"Atlas Materials","\u002Fdocs\u002Ffeatures\u002Fmaterials\u002Fatlas","1.docs\u002F3.features\u002F05.materials\u002F03.atlas",{"title":130,"path":131,"stem":132},"Copernicus","\u002Fdocs\u002Ffeatures\u002Fmaterials\u002Fcopernicus","1.docs\u002F3.features\u002F05.materials\u002F04.copernicus",{"title":134,"path":135,"stem":136},"Baking","\u002Fdocs\u002Ffeatures\u002Fmaterials\u002Fbake","1.docs\u002F3.features\u002F05.materials\u002F05.bake",{"title":138,"defaultOpen":25,"path":139,"stem":140,"children":141,"page":25},"Atlas Workflow","\u002Fdocs\u002Ffeatures\u002Fatlases","1.docs\u002F3.features\u002F06.atlases",[142],{"title":138,"path":143,"stem":144},"\u002Fdocs\u002Ffeatures\u002Fatlases\u002Foverview","1.docs\u002F3.features\u002F06.atlases\u002F01.overview",{"title":146,"defaultOpen":25,"path":147,"stem":148,"children":149,"page":25},"Scan Workflow","\u002Fdocs\u002Ffeatures\u002Fscans","1.docs\u002F3.features\u002F07.scans",[150,153,157],{"title":146,"path":151,"stem":152},"\u002Fdocs\u002Ffeatures\u002Fscans\u002Foverview","1.docs\u002F3.features\u002F07.scans\u002F01.overview",{"title":154,"path":155,"stem":156},"Trunk Extension","\u002Fdocs\u002Ffeatures\u002Fscans\u002Fextension","1.docs\u002F3.features\u002F07.scans\u002F02.extension",{"title":158,"path":159,"stem":160},"Baking for Scans","\u002Fdocs\u002Ffeatures\u002Fscans\u002Fbaking","1.docs\u002F3.features\u002F07.scans\u002F03.baking",{"title":162,"defaultOpen":25,"path":163,"stem":164,"children":165,"page":25},"Assembly Workflow","\u002Fdocs\u002Ffeatures\u002Fassemblies","1.docs\u002F3.features\u002F08.assemblies",[166],{"title":162,"path":167,"stem":168},"\u002Fdocs\u002Ffeatures\u002Fassemblies\u002Foverview","1.docs\u002F3.features\u002F08.assemblies\u002F01.overview",{"title":170,"defaultOpen":25,"path":171,"stem":172,"children":173,"page":25},"Unreal","\u002Fdocs\u002Funreal","1.docs\u002F4.unreal",[174,178,182],{"title":175,"path":176,"stem":177},"Take Your Tree to Unreal","\u002Fdocs\u002Funreal\u002Ftree-to-unreal","1.docs\u002F4.unreal\u002F01.tree-to-unreal",{"title":179,"path":180,"stem":181},"Wind for Unreal","\u002Fdocs\u002Funreal\u002Fwind","1.docs\u002F4.unreal\u002F02.wind",{"title":183,"defaultOpen":25,"path":184,"stem":185,"children":186,"page":25},"Nanite","\u002Fdocs\u002Funreal\u002Fnanite","1.docs\u002F4.unreal\u002Fnanite",[187,191],{"title":188,"path":189,"stem":190},"Working with Assemblies in Unreal","\u002Fdocs\u002Funreal\u002Fnanite\u002Fskeletal-assemblies","1.docs\u002F4.unreal\u002Fnanite\u002F01.skeletal-assemblies",{"title":192,"path":193,"stem":194},"Nanite Assemblies & Unreal Export","\u002Fdocs\u002Funreal\u002Fnanite\u002Ftroubleshooting","1.docs\u002F4.unreal\u002Fnanite\u002F02.troubleshooting",{"title":196,"path":197,"stem":198,"children":199,"page":25},"Guru","\u002Fdocs\u002Fguru","1.docs\u002F5.guru",[200,204,208,212],{"title":201,"path":202,"stem":203},"Extend Natsura","\u002Fdocs\u002Fguru\u002Fextend-natsura","1.docs\u002F5.guru\u002F01.extend-natsura",{"title":205,"path":206,"stem":207},"Building Your Own Decorations","\u002Fdocs\u002Fguru\u002Fcustom-decorations","1.docs\u002F5.guru\u002F02.custom-decorations",{"title":209,"path":210,"stem":211},"VEX","\u002Fdocs\u002Fguru\u002Fvex","1.docs\u002F5.guru\u002F03.vex",{"title":213,"path":214,"stem":215},"Make Your Own Tools","\u002Fdocs\u002Fguru\u002Fcustom-tools","1.docs\u002F5.guru\u002F04.custom-tools",{"title":217,"path":218,"stem":219,"children":220,"page":25},"Help","\u002Fdocs\u002Fhelp","1.docs\u002F6.help",[221,225,241,245,249,253,257],{"title":222,"path":223,"stem":224},"Commercial Use","\u002Fdocs\u002Fhelp\u002Fcommercial-use","1.docs\u002F6.help\u002F01.commercial-use",{"title":226,"path":227,"stem":228,"children":229,"page":25},"Install & Upgrade","\u002Fdocs\u002Fhelp\u002Finstall-upgrade","1.docs\u002F6.help\u002F02.install-upgrade",[230,233,237],{"title":14,"path":231,"stem":232},"\u002Fdocs\u002Fhelp\u002Finstall-upgrade\u002Foverview","1.docs\u002F6.help\u002F02.install-upgrade\u002F01.overview",{"title":234,"path":235,"stem":236},"Install Natsura (Package Method)","\u002Fdocs\u002Fhelp\u002Finstall-upgrade\u002Fpackage","1.docs\u002F6.help\u002F02.install-upgrade\u002F02.package",{"title":238,"path":239,"stem":240},"Upgrading","\u002Fdocs\u002Fhelp\u002Finstall-upgrade\u002Fupgrading","1.docs\u002F6.help\u002F02.install-upgrade\u002F03.upgrading",{"title":242,"path":243,"stem":244},"Troubleshooting","\u002Fdocs\u002Fhelp\u002Ftroubleshooting","1.docs\u002F6.help\u002F03.troubleshooting",{"title":246,"path":247,"stem":248},"Common Issues","\u002Fdocs\u002Fhelp\u002Fcommon-issues","1.docs\u002F6.help\u002F04.common-issues",{"title":250,"path":251,"stem":252},"FAQ","\u002Fdocs\u002Fhelp\u002Ffaq","1.docs\u002F6.help\u002F05.faq",{"title":254,"path":255,"stem":256},"Support","\u002Fdocs\u002Fhelp\u002Fsupport","1.docs\u002F6.help\u002F06.support",{"title":258,"path":259,"stem":260},"Contact","\u002Fdocs\u002Fhelp\u002Fcontact","1.docs\u002F6.help\u002F07.contact",{"title":262,"path":263,"stem":264,"children":265,"page":25},"Node Reference","\u002Fdocs\u002Fnodes","1.docs\u002F7.Nodes",[266,269,273,276,280,284,288,292,296,300,304,308,312,316,320,324,328,332,336,340,343,347,351,355,359,363,367,371,375,379,383,387,391,395,399,403,407,411,415,419,423,427,431,435,439,443,447,451,455,459,463,467,471,475,479,483,487,491,495,499,503,507,511,515,519,522,526,530,534,538,541,545,549,553],{"title":262,"path":267,"stem":268},"\u002Fdocs\u002Fnodes\u002Fnode-reference","1.docs\u002F7.Nodes\u002F0.node-reference",{"title":270,"path":271,"stem":272},"Ancestor Effector","\u002Fdocs\u002Fnodes\u002Fancestor-effector","1.docs\u002F7.Nodes\u002Fancestor-effector",{"title":97,"path":274,"stem":275},"\u002Fdocs\u002Fnodes\u002Fassembly-decoration","1.docs\u002F7.Nodes\u002Fassembly-decoration",{"title":277,"path":278,"stem":279},"Assembly Edit","\u002Fdocs\u002Fnodes\u002Fassembly-edit","1.docs\u002F7.Nodes\u002Fassembly-edit",{"title":281,"path":282,"stem":283},"Assembly Pack","\u002Fdocs\u002Fnodes\u002Fassembly-pack","1.docs\u002F7.Nodes\u002Fassembly-pack",{"title":285,"path":286,"stem":287},"Assembly Resource","\u002Fdocs\u002Fnodes\u002Fassembly-resource","1.docs\u002F7.Nodes\u002Fassembly-resource",{"title":289,"path":290,"stem":291},"Atlas 3D","\u002Fdocs\u002Fnodes\u002Fatlas-3d","1.docs\u002F7.Nodes\u002Fatlas-3d",{"title":293,"path":294,"stem":295},"Atlas Emboss","\u002Fdocs\u002Fnodes\u002Fatlas-emboss","1.docs\u002F7.Nodes\u002Fatlas-emboss",{"title":297,"path":298,"stem":299},"Atlas Import","\u002Fdocs\u002Fnodes\u002Fatlas-import","1.docs\u002F7.Nodes\u002Fatlas-import",{"title":301,"path":302,"stem":303},"Atlas Layout","\u002Fdocs\u002Fnodes\u002Fatlas-layout","1.docs\u002F7.Nodes\u002Fatlas-layout",{"title":305,"path":306,"stem":307},"Atlas Material","\u002Fdocs\u002Fnodes\u002Fatlas-material","1.docs\u002F7.Nodes\u002Fatlas-material",{"title":309,"path":310,"stem":311},"Atlas Mesh","\u002Fdocs\u002Fnodes\u002Fatlas-mesh","1.docs\u002F7.Nodes\u002Fatlas-mesh",{"title":313,"path":314,"stem":315},"Atlas Remesh","\u002Fdocs\u002Fnodes\u002Fatlas-remesh","1.docs\u002F7.Nodes\u002Fatlas-remesh",{"title":317,"path":318,"stem":319},"Atlas Source","\u002Fdocs\u002Fnodes\u002Fatlas-source","1.docs\u002F7.Nodes\u002Fatlas-source",{"title":321,"path":322,"stem":323},"Atlas Trace","\u002Fdocs\u002Fnodes\u002Fatlas-trace","1.docs\u002F7.Nodes\u002Fatlas-trace",{"title":325,"path":326,"stem":327},"Atlas Wizard","\u002Fdocs\u002Fnodes\u002Fatlas-wizard","1.docs\u002F7.Nodes\u002Fatlas-wizard",{"title":329,"path":330,"stem":331},"Bake","\u002Fdocs\u002Fnodes\u002Fbake","1.docs\u002F7.Nodes\u002Fbake",{"title":333,"path":334,"stem":335},"Build Assembly Rig","\u002Fdocs\u002Fnodes\u002Fbuild-assembly-rig","1.docs\u002F7.Nodes\u002Fbuild-assembly-rig",{"title":337,"path":338,"stem":339},"Classify","\u002Fdocs\u002Fnodes\u002Fclassify","1.docs\u002F7.Nodes\u002Fclassify",{"title":101,"path":341,"stem":342},"\u002Fdocs\u002Fnodes\u002Fcluster-decoration","1.docs\u002F7.Nodes\u002Fcluster-decoration",{"title":344,"path":345,"stem":346},"Core Decoration","\u002Fdocs\u002Fnodes\u002Fcore-decoration","1.docs\u002F7.Nodes\u002Fcore-decoration",{"title":348,"path":349,"stem":350},"Create Proxy","\u002Fdocs\u002Fnodes\u002Fcreate-proxy","1.docs\u002F7.Nodes\u002Fcreate-proxy",{"title":352,"path":353,"stem":354},"Debug Tree Rig","\u002Fdocs\u002Fnodes\u002Fdebug-tree-rig","1.docs\u002F7.Nodes\u002Fdebug-tree-rig",{"title":356,"path":357,"stem":358},"Deflection Effector","\u002Fdocs\u002Fnodes\u002Fdeflection-effector","1.docs\u002F7.Nodes\u002Fdeflection-effector",{"title":360,"path":361,"stem":362},"Delay","\u002Fdocs\u002Fnodes\u002Fdelay","1.docs\u002F7.Nodes\u002Fdelay",{"title":364,"path":365,"stem":366},"Direction Effector","\u002Fdocs\u002Fnodes\u002Fdirection-effector","1.docs\u002F7.Nodes\u002Fdirection-effector",{"title":368,"path":369,"stem":370},"Effector (Custom Base)","\u002Fdocs\u002Fnodes\u002Feffector","1.docs\u002F7.Nodes\u002Feffector",{"title":372,"path":373,"stem":374},"Effector Template","\u002Fdocs\u002Fnodes\u002Feffector-template","1.docs\u002F7.Nodes\u002Feffector-template",{"title":376,"path":377,"stem":378},"Export Unreal Nanite Assembly","\u002Fdocs\u002Fnodes\u002Fexport-unreal-nanite-assembly","1.docs\u002F7.Nodes\u002Fexport-unreal-nanite-assembly",{"title":380,"path":381,"stem":382},"Create Graft Mesh","\u002Fdocs\u002Fnodes\u002Fgraft-mesh","1.docs\u002F7.Nodes\u002Fgraft-mesh",{"title":384,"path":385,"stem":386},"Gravity Effector","\u002Fdocs\u002Fnodes\u002Fgravity-effector","1.docs\u002F7.Nodes\u002Fgravity-effector",{"title":388,"path":389,"stem":390},"Grow","\u002Fdocs\u002Fnodes\u002Fgrow","1.docs\u002F7.Nodes\u002Fgrow",{"title":392,"path":393,"stem":394},"Grow Draw","\u002Fdocs\u002Fnodes\u002Fgrow-draw","1.docs\u002F7.Nodes\u002Fgrow-draw",{"title":396,"path":397,"stem":398},"Import Highpoly","\u002Fdocs\u002Fnodes\u002Fhighpoly-import","1.docs\u002F7.Nodes\u002Fhighpoly-import",{"title":400,"path":401,"stem":402},"Identify Shared Instances","\u002Fdocs\u002Fnodes\u002Fidentify-shared-instances","1.docs\u002F7.Nodes\u002Fidentify-shared-instances",{"title":404,"path":405,"stem":406},"Import Assembly","\u002Fdocs\u002Fnodes\u002Fimport-assembly","1.docs\u002F7.Nodes\u002Fimport-assembly",{"title":408,"path":409,"stem":410},"Import Props","\u002Fdocs\u002Fnodes\u002Fimport-props","1.docs\u002F7.Nodes\u002Fimport-props",{"title":412,"path":413,"stem":414},"Internal Nodes","\u002Fdocs\u002Fnodes\u002Finternal-nodes","1.docs\u002F7.Nodes\u002Finternal-nodes",{"title":416,"path":417,"stem":418},"Kill","\u002Fdocs\u002Fnodes\u002Fkill","1.docs\u002F7.Nodes\u002Fkill",{"title":420,"path":421,"stem":422},"Magnet Effector","\u002Fdocs\u002Fnodes\u002Fmagnet-effector","1.docs\u002F7.Nodes\u002Fmagnet-effector",{"title":424,"path":425,"stem":426},"Map","\u002Fdocs\u002Fnodes\u002Fmap","1.docs\u002F7.Nodes\u002Fmap",{"title":428,"path":429,"stem":430},"Map Attribute","\u002Fdocs\u002Fnodes\u002Fmap-attribute","1.docs\u002F7.Nodes\u002Fmap-attribute",{"title":432,"path":433,"stem":434},"Map Blend","\u002Fdocs\u002Fnodes\u002Fmap-blend","1.docs\u002F7.Nodes\u002Fmap-blend",{"title":436,"path":437,"stem":438},"Map Constant","\u002Fdocs\u002Fnodes\u002Fmap-constant","1.docs\u002F7.Nodes\u002Fmap-constant",{"title":440,"path":441,"stem":442},"Map If","\u002Fdocs\u002Fnodes\u002Fmap-if","1.docs\u002F7.Nodes\u002Fmap-if",{"title":444,"path":445,"stem":446},"Map Random","\u002Fdocs\u002Fnodes\u002Fmap-random","1.docs\u002F7.Nodes\u002Fmap-random",{"title":448,"path":449,"stem":450},"Mapping Template","\u002Fdocs\u002Fnodes\u002Fmapping-template","1.docs\u002F7.Nodes\u002Fmapping-template",{"title":452,"path":453,"stem":454},"Noise Effector","\u002Fdocs\u002Fnodes\u002Fnoise-effector","1.docs\u002F7.Nodes\u002Fnoise-effector",{"title":456,"path":457,"stem":458},"Pivot Edit","\u002Fdocs\u002Fnodes\u002Fpivot-edit","1.docs\u002F7.Nodes\u002Fpivot-edit",{"title":460,"path":461,"stem":462},"Prune","\u002Fdocs\u002Fnodes\u002Fprune","1.docs\u002F7.Nodes\u002Fprune",{"title":464,"path":465,"stem":466},"Repeat","\u002Fdocs\u002Fnodes\u002Frepeat","1.docs\u002F7.Nodes\u002Frepeat",{"title":468,"path":469,"stem":470},"Rig to Assembly","\u002Fdocs\u002Fnodes\u002Frig-to-assembly","1.docs\u002F7.Nodes\u002Frig-to-assembly",{"title":472,"path":473,"stem":474},"Scan Material","\u002Fdocs\u002Fnodes\u002Fscan-material","1.docs\u002F7.Nodes\u002Fscan-material",{"title":476,"path":477,"stem":478},"Scan Profiles","\u002Fdocs\u002Fnodes\u002Fscan-profiles","1.docs\u002F7.Nodes\u002Fscan-profiles",{"title":480,"path":481,"stem":482},"Scan Rig","\u002Fdocs\u002Fnodes\u002Fscan-rig","1.docs\u002F7.Nodes\u002Fscan-rig",{"title":484,"path":485,"stem":486},"Scan to Parts","\u002Fdocs\u002Fnodes\u002Fscan-to-parts","1.docs\u002F7.Nodes\u002Fscan-to-parts",{"title":488,"path":489,"stem":490},"Scan to Patch","\u002Fdocs\u002Fnodes\u002Fscan-to-patch","1.docs\u002F7.Nodes\u002Fscan-to-patch",{"title":492,"path":493,"stem":494},"Scan to Tube","\u002Fdocs\u002Fnodes\u002Fscan-to-tube","1.docs\u002F7.Nodes\u002Fscan-to-tube",{"title":496,"path":497,"stem":498},"Seed Points","\u002Fdocs\u002Fnodes\u002Fseed-points","1.docs\u002F7.Nodes\u002Fseed-points",{"title":500,"path":501,"stem":502},"Select Decoration","\u002Fdocs\u002Fnodes\u002Fselect-decoration","1.docs\u002F7.Nodes\u002Fselect-decoration",{"title":504,"path":505,"stem":506},"Signal","\u002Fdocs\u002Fnodes\u002Fsignal","1.docs\u002F7.Nodes\u002Fsignal",{"title":508,"path":509,"stem":510},"Simplify Tree Rig and Skin","\u002Fdocs\u002Fnodes\u002Fsimplify-tree-rig-and-skin","1.docs\u002F7.Nodes\u002Fsimplify-tree-rig-and-skin",{"title":512,"path":513,"stem":514},"Simulate","\u002Fdocs\u002Fnodes\u002Fsimulate","1.docs\u002F7.Nodes\u002Fsimulate",{"title":516,"path":517,"stem":518},"Split","\u002Fdocs\u002Fnodes\u002Fsplit","1.docs\u002F7.Nodes\u002Fsplit",{"title":89,"path":520,"stem":521},"\u002Fdocs\u002Fnodes\u002Fsurface-decoration","1.docs\u002F7.Nodes\u002Fsurface-decoration",{"title":523,"path":524,"stem":525},"Surface Resource","\u002Fdocs\u002Fnodes\u002Fsurface-resource","1.docs\u002F7.Nodes\u002Fsurface-resource",{"title":527,"path":528,"stem":529},"Surface Wizard","\u002Fdocs\u002Fnodes\u002Fsurface-wizard","1.docs\u002F7.Nodes\u002Fsurface-wizard",{"title":531,"path":532,"stem":533},"Switch","\u002Fdocs\u002Fnodes\u002Fswitch","1.docs\u002F7.Nodes\u002Fswitch",{"title":535,"path":536,"stem":537},"Treeparameterize","\u002Fdocs\u002Fnodes\u002Ftreeparameterize","1.docs\u002F7.Nodes\u002Ftreeparameterize",{"title":93,"path":539,"stem":540},"\u002Fdocs\u002Fnodes\u002Ftrunk-decoration","1.docs\u002F7.Nodes\u002Ftrunk-decoration",{"title":542,"path":543,"stem":544},"Unreal Wizard (Deprecated)","\u002Fdocs\u002Fnodes\u002Funreal-wizard","1.docs\u002F7.Nodes\u002Funreal-wizard",{"title":546,"path":547,"stem":548},"Wind Config","\u002Fdocs\u002Fnodes\u002Fwind-config","1.docs\u002F7.Nodes\u002Fwind-config",{"title":550,"path":551,"stem":552},"Wind Previs","\u002Fdocs\u002Fnodes\u002Fwind-previs","1.docs\u002F7.Nodes\u002Fwind-previs",{"title":554,"path":555,"stem":556},"Wrangle","\u002Fdocs\u002Fnodes\u002Fwrangle","1.docs\u002F7.Nodes\u002Fwrangle",{"id":558,"title":57,"body":559,"description":1264,"extension":1265,"meta":1266,"navigation":1267,"path":62,"seo":1268,"stem":63,"__hash__":1269},"docs\u002F1.docs\u002F3.features\u002F01.mapping\u002F01.overview.md",{"type":560,"value":561,"toc":1245},"minimark",[562,567,571,579,586,589,593,596,615,618,635,642,644,648,707,710,712,716,719,737,740,748,751,753,757,763,777,783,786,788,792,795,850,853,889,891,895,898,900,904,907,931,937,939,943,946,1010,1017,1019,1026,1035,1038,1049,1052,1072,1075,1098,1101,1103,1107,1110,1132,1135,1137,1141,1144,1162,1165,1177,1179,1183,1190,1201,1203,1207],[563,564,566],"h2",{"id":565},"problem-why-mapping-exists","Problem: why mapping exists",[568,569,570],"p",{},"Natsura needed a way to control growth that wasn't just \"add more sliders to every node\".",[568,572,573,574,578],{},"For scalars, ",[575,576,577],"strong",{},"mappings"," solve this: they turn attributes (and other data) into parameter values, so you can build your own behaviours on top of the simulation instead of waiting for new hard-coded parameters.",[568,580,581,582,585],{},"For vectors, ",[583,584,69],"a",{"href":74}," provide the equivalent mechanism.",[587,588],"hr",{},[563,590,592],{"id":591},"what-mapping-enables","What mapping enables",[568,594,595],{},"Mapping lets a single parameter:",[597,598,599,603,606,609,612],"ul",{},[600,601,602],"li",{},"Vary along the plant (per point or per segment).",[600,604,605],{},"Change with time or age, distance, or depth in the structure.",[600,607,608],{},"React to world-space information (via effectors and attributes).",[600,610,611],{},"Contain controlled randomness instead of noise everywhere.",[600,613,614],{},"Switch modes based on conditions (age, generation, region, etc.).",[568,616,617],{},"Examples of what that means artistically:",[597,619,620,623,626,629,632],{},[600,621,622],{},"Taper branches or trunks along their length.",[600,624,625],{},"Make forks more likely near the top of the tree than near the base.",[600,627,628],{},"Bend growth toward light or with wind.",[600,630,631],{},"Turn decorations on only after certain ages or generations.",[600,633,634],{},"Blend between \"forms\" (e.g. young vs old profile) smoothly.",[568,636,637,638,641],{},"Mapping doesn't change the simulation itself. It decides ",[575,639,640],{},"what numbers nodes see"," when they ask \"what is my pitch, width, fork probability, etc. here?\".",[587,643],{},[563,645,647],{"id":646},"how-to-use-mapping-artist-view","How to use mapping (artist view)",[649,650,651,672,682,701],"ol",{},[600,652,653,656,657,659,660,664,665,664,668,671],{},[575,654,655],{},"Pick a parameter to drive."," On a node like ",[583,658,388],{"href":389},", choose a parameter (e.g. ",[661,662,663],"em",{},"Pitch",", ",[661,666,667],{},"Width",[661,669,670],{},"Fork Probability",").",[600,673,674,677,678,681],{},[575,675,676],{},"Promote it to a mapping."," Instead of typing a single number, attach a ",[575,679,680],{},"map chain"," to that parameter's input.",[600,683,684,687,688,664,690,664,692,664,694,664,696,664,698,700],{},[575,685,686],{},"Add map nodes to the chain."," Use nodes like ",[583,689,424],{"href":425},[583,691,428],{"href":425},[583,693,444],{"href":425},[583,695,440],{"href":441},[583,697,432],{"href":433},[583,699,436],{"href":425},". Each node contributes part of the logic: read some data, remap it, blend it into the result.",[600,702,703,706],{},[575,704,705],{},"Preview the effect."," Run the simulation. The parameter is now a per-point value that changes according to your chain.",[568,708,709],{},"You can always drop back to \"just a number\" if mapping is not needed. Mapping is there when a single slider stops being enough.",[587,711],{},[563,713,715],{"id":714},"how-mapping-works-broadly","How mapping works (broadly)",[568,717,718],{},"At a high level:",[597,720,721,727,730],{},[600,722,723,724,726],{},"A ",[575,725,680],{}," is a definition of how to compute one scalar value per point for a parameter.",[600,728,729],{},"Each map node adds one step: read an attribute, apply a ramp, add randomness, blend with the previous value, and so on.",[600,731,732,733,736],{},"Internally, this becomes a small ",[575,734,735],{},"VEX program plus data"," that is evaluated later during simulation.",[568,738,739],{},"If you know Houdini:",[597,741,742,745],{},[600,743,744],{},"Think of mapping as a mini VOP \u002F VEX graph aimed at a single parameter.",[600,746,747],{},"You work with map nodes instead of wiring VOP nodes directly, but the idea is the same: data flows in, code transforms it, you get a value out.",[568,749,750],{},"You don't need to know any of the internals to use mapping. All of the \"program assembly\" is hidden behind the map nodes.",[587,752],{},[563,754,756],{"id":755},"where-mapping-is-used-now","Where mapping is used now",[568,758,759,760,762],{},"Today, mapping is mainly used on ",[583,761,388],{"href":389}," to drive:",[597,764,765,768,771,774],{},[600,766,767],{},"Length and width over repeats.",[600,769,770],{},"Pitch, roll, yaw, bending and spirals.",[600,772,773],{},"Fork probability and related branching behaviour.",[600,775,776],{},"Noise and variation strengths and other scalar controls.",[568,778,779,780,782],{},"It is also used on the ",[583,781,97],{"href":274}," for its mappable parameters, so foliage placement uses the same interface artists already know from the grow.",[568,784,785],{},"Mapping is being extended to other core nodes and to additional decoration and scattering nodes. The goal is that anywhere you see \"this could be more interesting than a constant slider\", you can plug in a map chain.",[587,787],{},[563,789,791],{"id":790},"current-mapping-options-and-combinations","Current mapping options and combinations",[568,793,794],{},"Core map node types and how they combine:",[597,796,797,803,826,832,838,844],{},[600,798,799,802],{},[575,800,801],{},"Map Constant."," Set a base value (e.g. default pitch or width). Often the first node in a chain.",[600,804,805,808,809,664,813,664,816,664,819,822,823,825],{},[575,806,807],{},"Map Attribute."," Read an attribute such as ",[810,811,812],"code",{},"u",[810,814,815],{},"age",[810,817,818],{},"root_distance",[810,820,821],{},"branch_id",", or a custom one. Remap it through ranges or ramps (classic taper along ",[810,824,812],{}," lives here).",[600,827,828,831],{},[575,829,830],{},"Map Random."," Add controlled randomness. Seeded by branch ID, point ID, or other attributes for stable variation.",[600,833,834,837],{},[575,835,836],{},"Map If."," Condition-based logic (e.g. \"if age > 2, use this profile, otherwise use that one\"). Good for \"only after this stage\" or \"different behaviour per generation\".",[600,839,840,843],{},[575,841,842],{},"Map Blend."," Blend between two map sub-chains. Useful for mixing shapes (e.g. \"between young and old taper\" or \"between calm and windy response\").",[600,845,846,849],{},[575,847,848],{},"Map (general)."," A more flexible building block that can act like a combination of the above behaviours depending on settings.",[568,851,852],{},"Interesting artistic combinations:",[597,854,855,864,873,883],{},[600,856,857,860,861,863],{},[575,858,859],{},"Attribute and Random."," Taper width by ",[810,862,812],{}," and then add small random variation produces natural, non-uniform branches.",[600,865,866,869,870,872],{},[575,867,868],{},"Effector and Attribute."," Use an effector (e.g. light direction reduced to a scalar) multiplied by a ramp along ",[810,871,812],{}," to produce branches that bend more toward light at the tips than at the base.",[600,874,875,878,879,882],{},[575,876,877],{},"Map If and Random."," Use Map If on ",[810,880,881],{},"generation"," to make higher generations more random and lower generations more stable.",[600,884,885,888],{},[575,886,887],{},"Map Blend for style mixing."," Two fully different map chains blended with a slider gives a smooth interpolation between two \"tree styles\" without rebuilding the graph.",[587,890],{},[563,892,894],{"id":893},"advanced-topics-for-technical-users","Advanced topics (for technical users)",[568,896,897],{},"The rest of this section is aimed at tech artists, TDs, and developers. If you only care about artistic control, you can stop reading here.",[587,899],{},[563,901,903],{"id":902},"internal-mental-model","Internal mental model",[568,905,906],{},"Internally, a map chain is:",[597,908,909,915,925],{},[600,910,723,911,914],{},[575,912,913],{},"structure",": map nodes that each contribute a small VEX snippet and an optional primitive.",[600,916,723,917,920,921,924],{},[575,918,919],{},"skeleton program",": assembled from all those snippets, with a placeholder output called ",[810,922,923],{},"\u003Cparm>",".",[600,926,723,927,930],{},[575,928,929],{},"data store",": primitives holding UI parameters (ramps, ranges, etc.) in a separate geometry stream.",[568,932,933,934,936],{},"At this stage, the chain does not know which concrete attribute it will write; ",[810,935,923],{}," is just \"whatever this parameter will be\".",[587,938],{},[563,940,942],{"id":941},"discrete-stages-from-map-chain-to-running-code","Discrete stages: from map chain to running code",[568,944,945],{},"There are several distinct steps between \"artist builds a map chain\" and \"code runs per point\":",[649,947,948,968,990,996],{},[600,949,950,953,954,957,958,960,961,964,965,924],{},[575,951,952],{},"User builds the chain."," Each map node contributes a VEX ",[575,955,956],{},"snippet"," that uses ",[810,959,923],{}," as its output symbol, plus a primitive (in another stream) containing its UI data if needed. The result is a chain that defines ",[661,962,963],{},"how to compute a value",", but not ",[661,966,967],{},"where to store it",[600,969,970,976,977,979,980,982,983,986,987,989],{},[575,971,972,973,975],{},"Binding ",[810,974,923],{}," to a real attribute."," When a node ingests the chain for a specific parameter, it decides what ",[810,978,923],{}," actually means. Example: for Grow's Pitch on a given Grow, ",[810,981,923],{}," becomes ",[810,984,985],{},"@cluster_pitch",". All snippets in the chain are rewritten so ",[810,988,923],{}," is replaced by that attribute name.",[600,991,992,995],{},[575,993,994],{},"Program assembly."," A code processor concatenates snippets from the chain (in order) into a single VEX block. This block is now a complete program for computing that attribute.",[600,997,998,1001,1002,1005,1006,1009],{},[575,999,1000],{},"Compilation and APEX graph."," The assembled VEX is fed into an ",[575,1003,1004],{},"Attrib VOP",". That VOP is compiled and wired into an ",[575,1007,1008],{},"APEX Invoke graph",". From this point on, the Grow node can call that graph to evaluate the mapping.",[568,1011,1012,1013,1016],{},"Each Grow with mapped parameters ends up with its own unique program per mapped parameter (or per group of parameters), but the VEX is ",[575,1014,1015],{},"compiled once per Grow",". Subsequent evaluations reuse the compiled program.",[587,1018],{},[563,1020,1022,1023],{"id":1021},"primitives-streams-and-primuv","Primitives, streams, and ",[810,1024,1025],{},"primuv",[568,1027,1028,1029,1031,1032,924],{},"To avoid recompiling whenever a slider or ramp changes, mapping splits ",[575,1030,810],{}," and ",[575,1033,1034],{},"data",[568,1036,1037],{},"Code lives in the assembled VEX program constructed from snippets.",[568,1039,1040,1041,1044,1045,1048],{},"Data lives on ",[575,1042,1043],{},"primitives"," in a separate geometry stream (typically stream 1). Each map node's point has a ",[575,1046,1047],{},"path attribute"," that points to its corresponding primitive.",[568,1050,1051],{},"At evaluation time:",[597,1053,1054,1061],{},[600,1055,1056,1057,1060],{},"The program runs over ",[575,1058,1059],{},"stream 0"," (the simulated plant geometry).",[600,1062,1063,1064,1067,1068,1071],{},"It uses the path attribute and ",[810,1065,1066],{},"primuv()"," (and related calls) on ",[575,1069,1070],{},"stream 1"," to read its parameters from primitives.",[568,1073,1074],{},"Typical pattern:",[597,1076,1077,1083,1093],{},[600,1078,1079,1080,1082],{},"Treat an attribute (like ",[810,1081,812],{},") as a UV (or a 1D parameter).",[600,1084,1085,1086,1088,1089,1092],{},"Use ",[810,1087,1066],{}," on stream 1 to sample ",[810,1090,1091],{},"@P.y"," (or other components) on a ramp curve primitive.",[600,1094,1095,1096,924],{},"Use that value as part of the scalar being written to ",[810,1097,923],{},[568,1099,1100],{},"Because primitives can hold arbitrary data, this mechanism can support more complex map behaviours over time without changing the program structure.",[587,1102],{},[563,1104,1106],{"id":1105},"re-evaluation-vs-re-compilation","Re-evaluation vs re-compilation",[568,1108,1109],{},"This separation has a key consequence:",[597,1111,1112,1119,1125],{},[600,1113,1114,1115,1118],{},"Changing ",[575,1116,1117],{},"map UI values"," (ramps, ranges, toggles) only changes the primitive data.",[600,1120,1121,1122,924],{},"The ",[575,1123,1124],{},"compiled VEX program remains the same",[600,1126,1127,1128,1131],{},"The APEX graph does not need to be rebuilt; it is simply ",[575,1129,1130],{},"re-evaluated"," with new primitive values.",[568,1133,1134],{},"You only pay the cost of rebuilding and compiling when the map chain structure changes (nodes added, removed, or wired differently) or when you change the advanced VEX snippets themselves.",[587,1136],{},[563,1138,1140],{"id":1139},"customising-and-extending-mapping","Customising and extending mapping",[568,1142,1143],{},"For advanced users:",[597,1145,1146,1153,1159],{},[600,1147,1148,1149,1152],{},"Each map node's VEX snippet is exposed under an ",[575,1150,1151],{},"Advanced"," section.",[600,1154,1155,1156,1158],{},"You can modify those snippets directly if you follow the ",[810,1157,923],{}," convention and the expected inputs.",[600,1160,1161],{},"You can create new mapping behaviours by writing new snippets, defining how they are combined in the chain, and creating primitives to store any additional parameters.",[568,1163,1164],{},"Beyond per-node customisation:",[597,1166,1167,1174],{},[600,1168,1169,1170,1173],{},"You can build ",[575,1171,1172],{},"compound map HDAs"," that internally contain multiple core map nodes wired together to express higher-level plant behaviours.",[600,1175,1176],{},"Artists then see one higher-level node, built from familiar low-level map components.",[587,1178],{},[563,1180,1182],{"id":1181},"one-line-mental-model","One-line mental model",[568,1184,1185,1186,1189],{},"Mappings are ",[575,1187,1188],{},"deferred scalar programs",":",[597,1191,1192,1195,1198],{},[600,1193,1194],{},"Artists build them from map nodes.",[600,1196,1197],{},"Nodes bind them to real attributes and compile them once.",[600,1199,1200],{},"The compiled code is reused to fill per-point parameter values during simulation, driven by attributes, effectors, and primitives.",[587,1202],{},[563,1204,1206],{"id":1205},"related","Related",[597,1208,1209,1215,1220,1225,1230,1235,1240],{},[600,1210,1211,1214],{},[583,1212,1213],{"href":66},"Cookbook",". Practical mapping recipes.",[600,1216,1217,1219],{},[583,1218,69],{"href":74},". The vector equivalent of mapping.",[600,1221,1222,1224],{},[583,1223,105],{"href":111},". Uses mappable parameters on the assembly decoration.",[600,1226,1227,1229],{},[583,1228,388],{"href":389},". The first node to expose mappable parameters.",[600,1231,1232,1234],{},[583,1233,424],{"href":425},". The base map node.",[600,1236,1237,1239],{},[583,1238,440],{"href":441},". Conditional mapping.",[600,1241,1242,1244],{},[583,1243,432],{"href":433},". Blended mapping.",{"title":1246,"searchDepth":1247,"depth":1247,"links":1248},"",2,[1249,1250,1251,1252,1253,1254,1255,1256,1257,1258,1260,1261,1262,1263],{"id":565,"depth":1247,"text":566},{"id":591,"depth":1247,"text":592},{"id":646,"depth":1247,"text":647},{"id":714,"depth":1247,"text":715},{"id":755,"depth":1247,"text":756},{"id":790,"depth":1247,"text":791},{"id":893,"depth":1247,"text":894},{"id":902,"depth":1247,"text":903},{"id":941,"depth":1247,"text":942},{"id":1021,"depth":1247,"text":1259},"Primitives, streams, and primuv",{"id":1105,"depth":1247,"text":1106},{"id":1139,"depth":1247,"text":1140},{"id":1181,"depth":1247,"text":1182},{"id":1205,"depth":1247,"text":1206},"Attribute-driven parameter control. Build your own behaviours instead of relying on fixed UIs.","md",{},true,{"title":57,"description":1264},"2iu1CeCohCm8xWWit9MsmLeEH3CWYC99dozcSttH3cs",[1271,1273],{"title":48,"path":49,"stem":50,"description":1272,"children":-1},"Natsura-specific and botanical vocabulary used across the docs.",{"title":65,"path":66,"stem":67,"description":1274,"children":-1},"A growing collection of practical mapping recipes: common ways to drive parameters by attribute, each with the goal, the attribute it reads, and the map chain that gets there.",1780555259677]