diff --git a/CMakeLists.txt b/CMakeLists.txt index 7d567b31d2..828269256f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -166,6 +166,8 @@ function (zeno_add_asset_dir dir) endfunction() ## --- end cihou asset dir +add_subdirectory(zeno) + ## --- begin cihou perf-geeks if (ZENO_MARCH_NATIVE) if (MSVC) @@ -183,8 +185,6 @@ if (ZENO_USE_FAST_MATH) endif() ## --- end cihou perf-geeks -add_subdirectory(zeno) - target_compile_options(zeno PUBLIC $<$: $, /utf-8, >> ) diff --git a/hdr/studio_small_08_1k.hdr b/hdr/studio_small_08_1k.hdr new file mode 100644 index 0000000000..937e8def09 Binary files /dev/null and b/hdr/studio_small_08_1k.hdr differ diff --git a/misc/graphs/Heightfield Composite.zsg b/misc/graphs/Heightfield Composite.zsg new file mode 100644 index 0000000000..9e3fd25dba --- /dev/null +++ b/misc/graphs/Heightfield Composite.zsg @@ -0,0 +1,117706 @@ +{ + "graph": { + "main": { + "nodes": { + "10fc4c1c-Erode_Smooth_Slump_Flow": { + "name": "Erode_Smooth_Slump_Flow", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Spread Iterations": { + "link": null, + "type": "int", + "default-value": 100, + "control": { + "name": "Integer" + } + }, + "Spread Rate": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "Repose Angle": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "Height Factor": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "Entrainment Rate": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "Allow Material Outflow": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "HeightField": { + "link": "main:8b27883a-PrimitiveDelAttrs:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Flow Smooth Rate": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "Material to Slump": { + "link": null, + "type": "string", + "default-value": "mask", + "control": { + "name": "String" + } + }, + "Flow Smooth Iterations": { + "link": null, + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "Height Layer Name": { + "link": null, + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "Visual Material Enable": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "Add Material to Bedrock": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "Copy Flow to Mask": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + 1937.5064697265626, + 301.5929870605469 + ], + "options": [] + }, + "10fc6526-ReadImageFile": { + "name": "ReadImageFile", + "inputs": { + "path": { + "link": null, + "type": "readpath", + "default-value": "C:/Users/YingQ/Downloads/ROCKBIG.jpg", + "control": { + "name": "read path" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -345.9840087890625, + 8318.6953125 + ], + "options": [] + }, + "11148b03-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "main:e1402856-HF_Terrain_Noise:[node]/outputs/HeightField", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@clr_3 = @clr\n\n@clr = @clr_1*0.5 + @clr_2*1.0 + @clr_3*2.0", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 7354.015625, + 9418.6953125 + ], + "options": [] + }, + "14207faa-HF_Curl_Noise": { + "name": "HF_Curl_Noise", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "main:476296e6-HF_Blur_OpenCV:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Noise Offset": { + "link": null, + "type": "vec3f", + "default-value": [ + 125.0, + 125.0, + 12879.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Noise Element Size": { + "link": null, + "type": "float", + "default-value": 500.0, + "control": { + "name": "Float" + } + }, + "Noise Amp": { + "link": null, + "type": "float", + "default-value": 20.0, + "control": { + "name": "Float" + } + }, + "Noise Octaves": { + "link": null, + "type": "float", + "default-value": 8.0, + "control": { + "name": "Float" + } + }, + "Noise Roughness": { + "link": null, + "type": "float", + "default-value": 1.2000000476837159, + "control": { + "name": "Float" + } + }, + "Mask": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Use Mask": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Mask Layer": { + "link": null, + "type": "string", + "default-value": "mask", + "control": { + "name": "String" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + -23762.494140625, + 6197.58642578125 + ], + "options": [] + }, + "1ce8dfc0-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "main:77490dbb-Erode_Precipitation:[node]/outputs/HeightField", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@height_and_debris = @height + @debris", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -862.4935302734375, + 301.5929870605469 + ], + "options": [] + }, + "1f03fb89-CreateCone": { + "name": "CreateCone", + "inputs": { + "position": { + "link": null, + "type": "vec3f", + "default-value": [ + 0.0, + 195.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "scaleSize": { + "link": null, + "type": "vec3f", + "default-value": [ + 400.0, + 400.0, + 400.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "radius": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "height": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "lons": { + "link": null, + "type": "int", + "default-value": 32, + "control": { + "name": "Integer" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -22642.314453125, + 255.53955078125 + ], + "options": [ + "collapsed" + ] + }, + "228b2c5-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "main:b065bb19-HF_Curl_Noise:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -14062.4931640625, + 301.5929870605469 + ], + "options": [] + }, + "23c3cb9d-MakeHeatmap": { + "name": "MakeHeatmap", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "_RAMPS": { + "value": "4\n0.0152376 0.509804 0.353429 0.0159915\n0.430329 0.0859846 0.680003 0.0859846\n0.798831 0.439475 0.775006 0.439475\n0.946015 0.534997 0.534997 0.534997\n", + "control": { + "name": "Color" + }, + "type": "" + }, + "nres": { + "value": 1024, + "control": { + "name": "Integer" + }, + "type": "int" + } + }, + "outputs": { + "heatmap": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -9062.4931640625, + -1198.406982421875 + ], + "options": [] + }, + "2525a08c-HF_Terrain_Noise": { + "name": "HF_Terrain_Noise", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "main:14207faa-HF_Curl_Noise:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Noise Apply Layer": { + "link": null, + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "Noise Type": { + "link": null, + "type": "string", + "default-value": "perlin", + "control": { + "name": "Enum", + "items": [ + "perlin", + "simplex", + "worley" + ] + } + }, + "Fractal Type": { + "link": null, + "type": "string", + "default-value": "hybridTerrain", + "control": { + "name": "Enum", + "items": [ + "fBm", + "hybridTerrain", + "ridgedTerrain" + ] + } + }, + "Noise Offset": { + "link": null, + "type": "vec3f", + "default-value": [ + 600.0, + 0.0, + 1200.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Noise Element Size": { + "link": null, + "type": "vec3f", + "default-value": [ + 300.0, + 300.0, + 300.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Noise Amp": { + "link": null, + "type": "vec3f", + "default-value": [ + 100.0, + 100.0, + 100.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Noise Octaves": { + "link": null, + "type": "float", + "default-value": 8.0, + "control": { + "name": "Float" + } + }, + "Noise Roughness": { + "link": null, + "type": "float", + "default-value": 0.5, + "control": { + "name": "Float" + } + }, + "Mask": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Use Mask": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Mask Layer": { + "link": null, + "type": "string", + "default-value": "mask", + "control": { + "name": "String" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + -22962.494140625, + 6201.5927734375 + ], + "options": [] + }, + "269f9af6-HF_Erode": { + "name": "HF_Erode", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "高度场地形": { + "link": "main:228b2c5-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Freeze at Frame": { + "link": null, + "type": "int", + "default-value": 5, + "control": { + "name": "Integer" + } + }, + "热侵蚀": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "热侵蚀种子值": { + "link": null, + "type": "float", + "default-value": 4650.0, + "control": { + "name": "Float" + } + }, + "热侵蚀率": { + "link": null, + "type": "float", + "default-value": 0.029999999329447748, + "control": { + "name": "Float" + } + }, + "热侵蚀风化率": { + "link": null, + "type": "float", + "default-value": 0.699999988079071, + "control": { + "name": "Float" + } + }, + "热侵蚀截止角": { + "link": null, + "type": "float", + "default-value": 35.0, + "control": { + "name": "Float" + } + }, + "热侵蚀碎屑流淌种子值": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "热侵蚀碎屑流淌迭代次数": { + "link": null, + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "Use Stability": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "降水": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "降水量": { + "link": null, + "type": "float", + "default-value": 0.20000000298023225, + "control": { + "name": "Float" + } + }, + "降水密度": { + "link": null, + "type": "float", + "default-value": 0.05000000074505806, + "control": { + "name": "Float" + } + }, + "蒸发率": { + "link": null, + "type": "float", + "default-value": -0.014999999664723874, + "control": { + "name": "Float" + } + }, + "水侵蚀": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "水侵蚀种子值": { + "link": null, + "type": "float", + "default-value": 12.34000015258789, + "control": { + "name": "Float" + } + }, + "水侵蚀迭代次数": { + "link": null, + "type": "int", + "default-value": 40, + "control": { + "name": "Integer" + } + }, + "水侵蚀率": { + "link": null, + "type": "float", + "default-value": 0.4000000059604645, + "control": { + "name": "Float" + } + }, + "河堤侵蚀角度": { + "link": null, + "type": "float", + "default-value": 70.0, + "control": { + "name": "Float" + } + }, + "水侵蚀溶解率": { + "link": null, + "type": "float", + "default-value": 0.10000000149011612, + "control": { + "name": "Float" + } + }, + "层绑定": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Height Layer Name": { + "link": null, + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "Water Layer Name": { + "link": null, + "type": "string", + "default-value": "water", + "control": { + "name": "String" + } + }, + "Debris Layer Name": { + "link": null, + "type": "string", + "default-value": "debris", + "control": { + "name": "String" + } + }, + "Sediment Layer Name": { + "link": null, + "type": "string", + "default-value": "sediment", + "control": { + "name": "String" + } + }, + "Stability Layer Name": { + "link": null, + "type": "string", + "default-value": "stability", + "control": { + "name": "String" + } + }, + "初始化高度场地形": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Visualize Enable": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Visualize Thermal Debris": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Visualize Slump Debris": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Visualize Hydro Water": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Visualize Rain Water": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Visualize Smooth Debris": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Visualize Smooth Water": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "高度场地形": { + "type": "" + } + }, + "uipos": [ + -13362.4931640625, + 301.5929870605469 + ], + "options": [] + }, + "298ac533-ReadObjPrim": { + "name": "ReadObjPrim", + "inputs": { + "path": { + "link": null, + "type": "readpath", + "default-value": "C:/Users/YingQ/Downloads/Blue_dixing.obj", + "control": { + "name": "read path" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "triangulate": { + "value": true, + "control": { + "name": "Boolean" + }, + "type": "bool" + } + }, + "outputs": { + "prim": { + "type": "primitive" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -22723.080078125, + 513.1209106445313 + ], + "options": [ + "collapsed" + ] + }, + "2f9552db-HF_Visualize": { + "name": "HF_Visualize", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "main:8b27883a-PrimitiveDelAttrs:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Final Color Scale": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "Heatmap": { + "link": "main:3e160c7f-MakeHeatmap:[node]/outputs/heatmap", + "type": "color", + "default-value": null, + "control": { + "name": "Color" + } + }, + "Revert Heatmap": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Height Layer Name": { + "link": null, + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "Layer_1": { + "link": null, + "type": "string", + "default-value": "debris_", + "control": { + "name": "String" + } + }, + "Color_1": { + "link": null, + "type": "vec3f", + "default-value": [ + 0.800000011920929, + 0.6000000238418579, + 0.4000000059604645 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_2": { + "link": null, + "type": "string", + "default-value": "water", + "control": { + "name": "String" + } + }, + "Color_2": { + "link": null, + "type": "vec3f", + "default-value": [ + 0.15000000596046449, + 0.44999998807907107, + 0.8999999761581421 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_3": { + "link": null, + "type": "string", + "default-value": "sediment_", + "control": { + "name": "String" + } + }, + "Color_3": { + "link": null, + "type": "vec3f", + "default-value": [ + 0.14000000059604646, + 0.44999998807907107, + 0.8999999761581421 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_4": { + "link": null, + "type": "string", + "default-value": "mask", + "control": { + "name": "String" + } + }, + "Color_4": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_5": { + "link": null, + "type": "string", + "default-value": "Layer_5", + "control": { + "name": "String" + } + }, + "Color_5": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_6": { + "link": null, + "type": "string", + "default-value": "Layer_6", + "control": { + "name": "String" + } + }, + "Color_6": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_7": { + "link": null, + "type": "string", + "default-value": "Layer_7", + "control": { + "name": "String" + } + }, + "Color_7": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_8": { + "link": null, + "type": "string", + "default-value": "Layer_8", + "control": { + "name": "String" + } + }, + "Color_8": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_9": { + "link": null, + "type": "string", + "default-value": "Layer_9", + "control": { + "name": "String" + } + }, + "Color_9": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + 1037.5064697265626, + -1198.406982421875 + ], + "options": [] + }, + "34332ef2-Clone": { + "name": "Clone", + "inputs": { + "object": { + "link": "main:94ba361b-HF_Resample:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "newObject": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -2462.493408203125, + 301.5929870605469 + ], + "options": [] + }, + "35885c81-ReadImageFile": { + "name": "ReadImageFile", + "inputs": { + "path": { + "link": null, + "type": "readpath", + "default-value": "C:/Users/YingQ/Downloads/ROCKBIG.jpg", + "control": { + "name": "read path" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 6654.015625, + 8318.6953125 + ], + "options": [] + }, + "35c09285-HF_Visual_Mask": { + "name": "HF_Visual_Mask", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "main:d2a54eba-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Clone HF for Visualize": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "Mask Name": { + "link": null, + "type": "string", + "default-value": "test", + "control": { + "name": "String" + } + }, + "Reset Base Color": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "Visualize Color": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + } + }, + "params": {}, + "outputs": { + "HeightField": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -22400.0, + 3500.0 + ], + "options": [] + }, + "38cb5956-HF_Visualize": { + "name": "HF_Visualize", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "main:ef3e49db-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Final Color Scale": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "Heatmap": { + "link": "main:e81e6716-HeatmapFromImage:[node]/outputs/heatmap", + "type": "color", + "default-value": null, + "control": { + "name": "Color" + } + }, + "Revert Heatmap": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "Height Layer Name": { + "link": null, + "type": "string", + "default-value": "height_temp", + "control": { + "name": "String" + } + }, + "Layer_1": { + "link": null, + "type": "string", + "default-value": "Layer_1", + "control": { + "name": "String" + } + }, + "Color_1": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_2": { + "link": null, + "type": "string", + "default-value": "Layer_2", + "control": { + "name": "String" + } + }, + "Color_2": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 1.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_3": { + "link": null, + "type": "string", + "default-value": "Layer_3", + "control": { + "name": "String" + } + }, + "Color_3": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_4": { + "link": null, + "type": "string", + "default-value": "Layer_4", + "control": { + "name": "String" + } + }, + "Color_4": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_5": { + "link": null, + "type": "string", + "default-value": "Layer_5", + "control": { + "name": "String" + } + }, + "Color_5": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_6": { + "link": null, + "type": "string", + "default-value": "Layer_6", + "control": { + "name": "String" + } + }, + "Color_6": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_7": { + "link": null, + "type": "string", + "default-value": "Layer_7", + "control": { + "name": "String" + } + }, + "Color_7": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_8": { + "link": null, + "type": "string", + "default-value": "Layer_8", + "control": { + "name": "String" + } + }, + "Color_8": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_9": { + "link": null, + "type": "string", + "default-value": "Layer_9", + "control": { + "name": "String" + } + }, + "Color_9": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + 5854.015625, + 8918.6953125 + ], + "options": [] + }, + "3acf860c-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "main:f13b239-HF_Terrain_Noise:[node]/outputs/HeightField", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@clr_1 = @clr", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2854.015869140625, + 9418.6953125 + ], + "options": [] + }, + "3b8aa1b5-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "main:d9cd69bf-HF_maskByFeature:[node]/outputs/HeightField", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@slop = @mask\n@mask = 0\n@height_temp = @height\n@pos.y = @height", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 454.0160217285156, + 9418.6953125 + ], + "options": [] + }, + "3e160c7f-MakeHeatmap": { + "name": "MakeHeatmap", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "_RAMPS": { + "value": "2\n0 0.970001 0.947692 0.947692\n1 1 1 1\n", + "control": { + "name": "Color" + }, + "type": "" + }, + "nres": { + "value": 1024, + "control": { + "name": "Integer" + }, + "type": "int" + } + }, + "outputs": { + "heatmap": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 437.5064697265625, + -1198.406982421875 + ], + "options": [] + }, + "43af7d8a-HF_Terrain_Noise": { + "name": "HF_Terrain_Noise", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "main:dcd816d2-Erode_Stability_Blur_Cuda:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Noise Apply Layer": { + "link": null, + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "Noise Type": { + "link": null, + "type": "string", + "default-value": "perlin", + "control": { + "name": "Enum", + "items": [ + "perlin", + "simplex", + "worley" + ] + } + }, + "Fractal Type": { + "link": null, + "type": "string", + "default-value": "hybridTerrain", + "control": { + "name": "Enum", + "items": [ + "fBm", + "hybridTerrain", + "ridgedTerrain" + ] + } + }, + "Noise Offset": { + "link": null, + "type": "vec3f", + "default-value": [ + 500.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Noise Element Size": { + "link": null, + "type": "vec3f", + "default-value": [ + 150.0, + 3.0, + 150.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Noise Amp": { + "link": null, + "type": "vec3f", + "default-value": [ + 10.0, + -10.0, + 10.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Noise Octaves": { + "link": null, + "type": "float", + "default-value": 8.0, + "control": { + "name": "Float" + } + }, + "Noise Roughness": { + "link": null, + "type": "float", + "default-value": 0.6499999761581421, + "control": { + "name": "Float" + } + }, + "Mask": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Use Mask": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "Mask Layer": { + "link": null, + "type": "string", + "default-value": "mask", + "control": { + "name": "String" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + -5762.49365234375, + 301.5929870605469 + ], + "options": [] + }, + "45af07d9-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "main:43af7d8a-HF_Terrain_Noise:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -4862.49365234375, + 301.5929870605469 + ], + "options": [] + }, + "461014cd-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "main:a933d1ef-HF_Resample:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -9062.4931640625, + 301.5929870605469 + ], + "options": [] + }, + "46ffc4f2-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "main:cf128f18-HF_Creation:[node]/outputs/HeightField", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@test = (abs(@pos.x) < 300 & abs(@pos.z) < 300) ? 1 : 0", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -25300.0, + 3500.0 + ], + "options": [] + }, + "472e54b2-HF_Erode": { + "name": "HF_Erode", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "高度场地形": { + "link": "main:45af07d9-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Freeze at Frame": { + "link": null, + "type": "int", + "default-value": 10, + "control": { + "name": "Integer" + } + }, + "热侵蚀": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "热侵蚀种子值": { + "link": null, + "type": "float", + "default-value": 4650.0, + "control": { + "name": "Float" + } + }, + "热侵蚀率": { + "link": null, + "type": "float", + "default-value": 0.029999999329447748, + "control": { + "name": "Float" + } + }, + "热侵蚀风化率": { + "link": null, + "type": "float", + "default-value": 0.699999988079071, + "control": { + "name": "Float" + } + }, + "热侵蚀截止角": { + "link": null, + "type": "float", + "default-value": 35.0, + "control": { + "name": "Float" + } + }, + "热侵蚀碎屑流淌种子值": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "热侵蚀碎屑流淌迭代次数": { + "link": null, + "type": "int", + "default-value": 10, + "control": { + "name": "Integer" + } + }, + "Use Stability": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "降水": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "降水量": { + "link": null, + "type": "float", + "default-value": 0.20000000298023225, + "control": { + "name": "Float" + } + }, + "降水密度": { + "link": null, + "type": "float", + "default-value": 0.05000000074505806, + "control": { + "name": "Float" + } + }, + "蒸发率": { + "link": null, + "type": "float", + "default-value": -0.014999999664723874, + "control": { + "name": "Float" + } + }, + "水侵蚀": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "水侵蚀种子值": { + "link": null, + "type": "float", + "default-value": 12.34000015258789, + "control": { + "name": "Float" + } + }, + "水侵蚀迭代次数": { + "link": null, + "type": "int", + "default-value": 40, + "control": { + "name": "Integer" + } + }, + "水侵蚀率": { + "link": null, + "type": "float", + "default-value": 0.4000000059604645, + "control": { + "name": "Float" + } + }, + "河堤侵蚀角度": { + "link": null, + "type": "float", + "default-value": 70.0, + "control": { + "name": "Float" + } + }, + "水侵蚀溶解率": { + "link": null, + "type": "float", + "default-value": 0.10000000149011612, + "control": { + "name": "Float" + } + }, + "层绑定": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Height Layer Name": { + "link": null, + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "Water Layer Name": { + "link": null, + "type": "string", + "default-value": "water", + "control": { + "name": "String" + } + }, + "Debris Layer Name": { + "link": null, + "type": "string", + "default-value": "debris", + "control": { + "name": "String" + } + }, + "Sediment Layer Name": { + "link": null, + "type": "string", + "default-value": "sediment", + "control": { + "name": "String" + } + }, + "Stability Layer Name": { + "link": null, + "type": "string", + "default-value": "stability", + "control": { + "name": "String" + } + }, + "初始化高度场地形": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Visualize Enable": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Visualize Thermal Debris": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Visualize Slump Debris": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Visualize Hydro Water": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Visualize Rain Water": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Visualize Smooth Debris": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Visualize Smooth Water": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "高度场地形": { + "type": "" + } + }, + "uipos": [ + -4162.49365234375, + 301.5929870605469 + ], + "options": [] + }, + "476296e6-HF_Blur_OpenCV": { + "name": "HF_Blur_OpenCV", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "main:f9d230ae-HF_Project:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Float Attr Name": { + "link": null, + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "Blur Type": { + "link": null, + "type": "string", + "default-value": "blur", + "control": { + "name": "Enum", + "items": [ + "blur", + "erode", + "dilate" + ] + } + }, + "Blur Radius": { + "link": null, + "type": "int", + "default-value": 150, + "control": { + "name": "Integer" + } + }, + "Weight Name": { + "link": null, + "type": "string", + "default-value": "weight", + "control": { + "name": "String" + } + }, + "Clone": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + } + }, + "params": {}, + "outputs": { + "HeightField": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -24562.494140625, + 6201.5927734375 + ], + "options": [] + }, + "4b088433-HF_Erode": { + "name": "HF_Erode", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "高度场地形": { + "link": "main:2525a08c-HF_Terrain_Noise:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Freeze at Frame": { + "link": null, + "type": "int", + "default-value": 10, + "control": { + "name": "Integer" + } + }, + "热侵蚀": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "热侵蚀种子值": { + "link": null, + "type": "float", + "default-value": 9676.7900390625, + "control": { + "name": "Float" + } + }, + "热侵蚀率": { + "link": null, + "type": "float", + "default-value": 0.029999999329447748, + "control": { + "name": "Float" + } + }, + "热侵蚀风化率": { + "link": null, + "type": "float", + "default-value": 0.699999988079071, + "control": { + "name": "Float" + } + }, + "热侵蚀截止角": { + "link": null, + "type": "float", + "default-value": 35.0, + "control": { + "name": "Float" + } + }, + "热侵蚀碎屑流淌种子值": { + "link": null, + "type": "float", + "default-value": 9676.7900390625, + "control": { + "name": "Float" + } + }, + "热侵蚀碎屑流淌迭代次数": { + "link": null, + "type": "int", + "default-value": 10, + "control": { + "name": "Integer" + } + }, + "Use Stability": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "降水": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "降水量": { + "link": null, + "type": "float", + "default-value": 0.20000000298023225, + "control": { + "name": "Float" + } + }, + "降水密度": { + "link": null, + "type": "float", + "default-value": 0.05000000074505806, + "control": { + "name": "Float" + } + }, + "蒸发率": { + "link": null, + "type": "float", + "default-value": -0.014999999664723874, + "control": { + "name": "Float" + } + }, + "水侵蚀": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "水侵蚀种子值": { + "link": null, + "type": "float", + "default-value": 12.34000015258789, + "control": { + "name": "Float" + } + }, + "水侵蚀迭代次数": { + "link": null, + "type": "int", + "default-value": 40, + "control": { + "name": "Integer" + } + }, + "水侵蚀率": { + "link": null, + "type": "float", + "default-value": 0.4000000059604645, + "control": { + "name": "Float" + } + }, + "河堤侵蚀角度": { + "link": null, + "type": "float", + "default-value": 70.0, + "control": { + "name": "Float" + } + }, + "水侵蚀溶解率": { + "link": null, + "type": "float", + "default-value": 0.10000000149011612, + "control": { + "name": "Float" + } + }, + "层绑定": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Height Layer Name": { + "link": null, + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "Water Layer Name": { + "link": null, + "type": "string", + "default-value": "water", + "control": { + "name": "String" + } + }, + "Debris Layer Name": { + "link": null, + "type": "string", + "default-value": "debris", + "control": { + "name": "String" + } + }, + "Sediment Layer Name": { + "link": null, + "type": "string", + "default-value": "sediment", + "control": { + "name": "String" + } + }, + "Stability Layer Name": { + "link": null, + "type": "string", + "default-value": "stability", + "control": { + "name": "String" + } + }, + "初始化高度场地形": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "Visualize Enable": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Visualize Thermal Debris": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "Visualize Slump Debris": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Visualize Hydro Water": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Visualize Rain Water": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Visualize Smooth Debris": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Visualize Smooth Water": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "高度场地形": { + "type": "" + } + }, + "uipos": [ + -21185.302734375, + 6582.9384765625 + ], + "options": [ + "collapsed" + ] + }, + "57d6da48-CreateCone": { + "name": "CreateCone", + "inputs": { + "position": { + "link": null, + "type": "vec3f", + "default-value": [ + 0.0, + 195.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "scaleSize": { + "link": null, + "type": "vec3f", + "default-value": [ + 400.0, + 400.0, + 400.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "radius": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "height": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "lons": { + "link": null, + "type": "int", + "default-value": 32, + "control": { + "name": "Integer" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -26262.494140625, + 6701.5927734375 + ], + "options": [] + }, + "57fb5c24-Erode_Stability_Blur_Cuda": { + "name": "Erode_Stability_Blur_Cuda", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Blur Mode": { + "link": null, + "type": "string", + "default-value": "NINE_STENCIL", + "control": { + "name": "Enum", + "items": [ + "FIVE_STENCIL", + "NINE_STENCIL" + ] + } + }, + "Blur Radius": { + "link": null, + "type": "float", + "default-value": 10.0, + "control": { + "name": "Float" + } + }, + "Visual Enable": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Float Attr Name": { + "link": null, + "type": "string", + "default-value": "mask", + "control": { + "name": "String" + } + }, + "HeightField": { + "link": "main:72d085df-HF_maskByFeature:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + -11762.4931640625, + 301.5929870605469 + ], + "options": [] + }, + "5b2bd04a-ReadImageFile": { + "name": "ReadImageFile", + "inputs": { + "path": { + "link": null, + "type": "readpath", + "default-value": "C:/Users/YingQ/Downloads/ROCKBIG.jpg", + "control": { + "name": "read path" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2054.01611328125, + 8318.6953125 + ], + "options": [] + }, + "5b5da16c-HF_Visualize": { + "name": "HF_Visualize", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "main:ef8af71b-HF_Erode:[node]/outputs/高度场地形", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Final Color Scale": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "Heatmap": { + "link": "main:63a5cac9-MakeHeatmap:[node]/outputs/heatmap", + "type": "color", + "default-value": null, + "control": { + "name": "Color" + } + }, + "Revert Heatmap": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Height Layer Name": { + "link": null, + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "Layer_1": { + "link": null, + "type": "string", + "default-value": "debris", + "control": { + "name": "String" + } + }, + "Color_1": { + "link": null, + "type": "vec3f", + "default-value": [ + 0.800000011920929, + 0.6000000238418579, + 0.4000000059604645 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_2": { + "link": null, + "type": "string", + "default-value": "water", + "control": { + "name": "String" + } + }, + "Color_2": { + "link": null, + "type": "vec3f", + "default-value": [ + 0.15000000596046449, + 0.44999998807907107, + 0.8999999761581421 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_3": { + "link": null, + "type": "string", + "default-value": "sediment", + "control": { + "name": "String" + } + }, + "Color_3": { + "link": null, + "type": "vec3f", + "default-value": [ + 0.14000000059604646, + 0.44999998807907107, + 0.8999999761581421 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_4": { + "link": null, + "type": "string", + "default-value": "Layer_4", + "control": { + "name": "String" + } + }, + "Color_4": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_5": { + "link": null, + "type": "string", + "default-value": "Layer_5", + "control": { + "name": "String" + } + }, + "Color_5": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_6": { + "link": null, + "type": "string", + "default-value": "Layer_6", + "control": { + "name": "String" + } + }, + "Color_6": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_7": { + "link": null, + "type": "string", + "default-value": "Layer_7", + "control": { + "name": "String" + } + }, + "Color_7": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_8": { + "link": null, + "type": "string", + "default-value": "Layer_8", + "control": { + "name": "String" + } + }, + "Color_8": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_9": { + "link": null, + "type": "string", + "default-value": "Layer_9", + "control": { + "name": "String" + } + }, + "Color_9": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + -18162.494140625, + -1198.406982421875 + ], + "options": [] + }, + "5da1a7b7-HF_Erode": { + "name": "HF_Erode", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "高度场地形": { + "link": "main:461014cd-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Freeze at Frame": { + "link": null, + "type": "int", + "default-value": 10, + "control": { + "name": "Integer" + } + }, + "热侵蚀": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "热侵蚀种子值": { + "link": null, + "type": "float", + "default-value": 4650.0, + "control": { + "name": "Float" + } + }, + "热侵蚀率": { + "link": null, + "type": "float", + "default-value": 0.029999999329447748, + "control": { + "name": "Float" + } + }, + "热侵蚀风化率": { + "link": null, + "type": "float", + "default-value": 0.699999988079071, + "control": { + "name": "Float" + } + }, + "热侵蚀截止角": { + "link": null, + "type": "float", + "default-value": 35.0, + "control": { + "name": "Float" + } + }, + "热侵蚀碎屑流淌种子值": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "热侵蚀碎屑流淌迭代次数": { + "link": null, + "type": "int", + "default-value": 10, + "control": { + "name": "Integer" + } + }, + "Use Stability": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "降水": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "降水量": { + "link": null, + "type": "float", + "default-value": 0.25, + "control": { + "name": "Float" + } + }, + "降水密度": { + "link": null, + "type": "float", + "default-value": 0.05000000074505806, + "control": { + "name": "Float" + } + }, + "蒸发率": { + "link": null, + "type": "float", + "default-value": -0.014999999664723874, + "control": { + "name": "Float" + } + }, + "水侵蚀": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "水侵蚀种子值": { + "link": null, + "type": "float", + "default-value": 12.34000015258789, + "control": { + "name": "Float" + } + }, + "水侵蚀迭代次数": { + "link": null, + "type": "int", + "default-value": 40, + "control": { + "name": "Integer" + } + }, + "水侵蚀率": { + "link": null, + "type": "float", + "default-value": 0.4000000059604645, + "control": { + "name": "Float" + } + }, + "河堤侵蚀角度": { + "link": null, + "type": "float", + "default-value": 70.0, + "control": { + "name": "Float" + } + }, + "水侵蚀溶解率": { + "link": null, + "type": "float", + "default-value": 0.10000000149011612, + "control": { + "name": "Float" + } + }, + "层绑定": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Height Layer Name": { + "link": null, + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "Water Layer Name": { + "link": null, + "type": "string", + "default-value": "water", + "control": { + "name": "String" + } + }, + "Debris Layer Name": { + "link": null, + "type": "string", + "default-value": "debris", + "control": { + "name": "String" + } + }, + "Sediment Layer Name": { + "link": null, + "type": "string", + "default-value": "sediment", + "control": { + "name": "String" + } + }, + "Stability Layer Name": { + "link": null, + "type": "string", + "default-value": "stability", + "control": { + "name": "String" + } + }, + "初始化高度场地形": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Visualize Enable": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Visualize Thermal Debris": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Visualize Slump Debris": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Visualize Hydro Water": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Visualize Rain Water": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Visualize Smooth Debris": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Visualize Smooth Water": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "高度场地形": { + "type": "" + } + }, + "uipos": [ + -8362.4931640625, + 301.5929870605469 + ], + "options": [] + }, + "5ec28c40-MakeHeatmap": { + "name": "MakeHeatmap", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "_RAMPS": { + "value": "4\n0.0152376 0.509804 0.353429 0.0159915\n0.430329 0.0859846 0.680003 0.0859846\n0.798831 0.439475 0.775006 0.439475\n0.946015 0.534997 0.534997 0.534997\n", + "control": { + "name": "Color" + }, + "type": "" + }, + "nres": { + "value": 1024, + "control": { + "name": "Integer" + }, + "type": "int" + } + }, + "outputs": { + "heatmap": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -4762.49365234375, + -1198.406982421875 + ], + "options": [] + }, + "62d301e9-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "main:4b088433-HF_Erode:[node]/outputs/高度场地形", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@pos.y = @height + 1.0 * @debris + 0.0 * @water\n\nclr_water = vec3(0.15,0.45,0.9)\nclr_debris = vec3(0.8,0.6,0.4)\nclr_sediment = vec3(0.8,0.0,0.8)\n\ncoef_debris = min(1, (@debris / 0.65))\n@clr = (1 - coef_debris) * @clr + coef_debris * clr_debris\n\ncoef_water = min(1, (@water / 1.0))\n@clr = (1 - coef_water) * @clr + coef_water * clr_water\n\ncoef_sediment = min(1, (@sediment / 0.65))\n@clr = (1 - coef_sediment) * @clr + coef_sediment * clr_sediment\n", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -19342.697265625, + 6673.80029296875 + ], + "options": [] + }, + "63a5cac9-MakeHeatmap": { + "name": "MakeHeatmap", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "_RAMPS": { + "value": "4\n0.0152376 0.509804 0.353429 0.0159915\n0.430329 0.0859846 0.680003 0.0859846\n0.798831 0.439475 0.775006 0.439475\n0.946015 0.534997 0.534997 0.534997\n", + "control": { + "name": "Color" + }, + "type": "" + }, + "nres": { + "value": 1024, + "control": { + "name": "Integer" + }, + "type": "int" + } + }, + "outputs": { + "heatmap": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -18862.494140625, + -1198.406982421875 + ], + "options": [] + }, + "67356444-HeatmapFromImage": { + "name": "HeatmapFromImage", + "inputs": { + "image": { + "link": "main:10fc6526-ReadImageFile:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "startPos": { + "link": null, + "type": "int", + "default-value": 700, + "control": { + "name": "Integer" + } + }, + "endPos": { + "link": null, + "type": "int", + "default-value": 2000, + "control": { + "name": "Integer" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "heatmap": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 354.0159912109375, + 8318.6953125 + ], + "options": [] + }, + "67c5b8fd-HF_Mask_by_Curvature": { + "name": "HF_Mask_by_Curvature", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "main:fe6a920-HF_Terrace:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Curvature Layer Name": { + "link": null, + "type": "string", + "default-value": "k", + "control": { + "name": "String" + } + }, + "Curvature Ramp": { + "link": null, + "type": "curve", + "default-value": { + "objectType": "curve", + "timeline": false, + "x": { + "range": { + "xFrom": 0.0, + "xTo": 1.0, + "yFrom": 0.0, + "yTo": 1.0 + }, + "nodes": [ + { + "x": 0.0, + "y": 0.0, + "left-handle": { + "x": 0.0, + "y": 0.0 + }, + "right-handle": { + "x": 0.0, + "y": 0.0 + }, + "type": "asym", + "lockX": false, + "lockY": false + }, + { + "x": 1.0, + "y": 1.0, + "left-handle": { + "x": 0.0, + "y": 0.0 + }, + "right-handle": { + "x": 0.0, + "y": 0.0 + }, + "type": "asym", + "lockX": false, + "lockY": false + } + ] + } + }, + "control": { + "name": "Curve" + } + }, + "Max Curvature": { + "link": null, + "type": "float", + "default-value": 0.699999988079071, + "control": { + "name": "Float" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + -20900.0, + 8900.0 + ], + "options": [] + }, + "6d392f44-HF_Visualize": { + "name": "HF_Visualize", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "main:11148b03-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Final Color Scale": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "Heatmap": { + "link": "main:cfd7457d-HeatmapFromImage:[node]/outputs/heatmap", + "type": "color", + "default-value": null, + "control": { + "name": "Color" + } + }, + "Revert Heatmap": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "Height Layer Name": { + "link": null, + "type": "string", + "default-value": "height_temp", + "control": { + "name": "String" + } + }, + "Layer_1": { + "link": null, + "type": "string", + "default-value": "Layer_1", + "control": { + "name": "String" + } + }, + "Color_1": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_2": { + "link": null, + "type": "string", + "default-value": "Layer_2", + "control": { + "name": "String" + } + }, + "Color_2": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 1.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_3": { + "link": null, + "type": "string", + "default-value": "Layer_3", + "control": { + "name": "String" + } + }, + "Color_3": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_4": { + "link": null, + "type": "string", + "default-value": "Layer_4", + "control": { + "name": "String" + } + }, + "Color_4": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_5": { + "link": null, + "type": "string", + "default-value": "Layer_5", + "control": { + "name": "String" + } + }, + "Color_5": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_6": { + "link": null, + "type": "string", + "default-value": "Layer_6", + "control": { + "name": "String" + } + }, + "Color_6": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_7": { + "link": null, + "type": "string", + "default-value": "Layer_7", + "control": { + "name": "String" + } + }, + "Color_7": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_8": { + "link": null, + "type": "string", + "default-value": "Layer_8", + "control": { + "name": "String" + } + }, + "Color_8": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_9": { + "link": null, + "type": "string", + "default-value": "Layer_9", + "control": { + "name": "String" + } + }, + "Color_9": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + 8254.015625, + 8918.6953125 + ], + "options": [] + }, + "711ed00-Erode_Granular_Slump_Flow": { + "name": "Erode_Granular_Slump_Flow", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField 高度场地形": { + "link": "main:1ce8dfc0-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Slump 崩解滑塌形成流网": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Slump Iterations 崩解滑塌迭代次数": { + "link": null, + "type": "int", + "default-value": 200, + "control": { + "name": "Integer" + } + }, + "Seed 随机种子值": { + "link": null, + "type": "float", + "default-value": 1234.0, + "control": { + "name": "Float" + } + }, + "Gridbias 流动偏置": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "Open Border 开放边界": { + "link": null, + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "Quantization 流量": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "Flow Rate 流网扩张": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "Repose Angle 水土保持坡度": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "Smooth Flow 平滑流场": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Flow Smooth Iterations 流场平滑迭代次数": { + "link": null, + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "Flow Smooth Rate 流场平滑程度": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "Layer Binding 层绑定": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Height Layer Name": { + "link": null, + "type": "string", + "default-value": "height_and_debris", + "control": { + "name": "String" + } + }, + "Material to Slump 崩解滑塌层": { + "link": null, + "type": "string", + "default-value": "water", + "control": { + "name": "String" + } + }, + "Stability Mask 碎屑稳固层": { + "link": null, + "type": "string", + "default-value": "none", + "control": { + "name": "String" + } + }, + "Output Flow 输出流": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Copy Flow to Mask 流拷贝到 Mask 层": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "Visual Flow 可视化流": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Visual Flow Enable 打开流场可视化效果": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField 高度场地形": { + "type": "" + } + }, + "uipos": [ + 37.50647735595703, + 301.5929870605469 + ], + "options": [] + }, + "72d085df-HF_maskByFeature": { + "name": "HF_maskByFeature", + "inputs": { + "HeightField": { + "link": "main:269f9af6-HF_Erode:[node]/outputs/高度场地形", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "height_layer": { + "link": null, + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "mask_layer": { + "link": null, + "type": "string", + "default-value": "mask", + "control": { + "name": "String" + } + }, + "smooth_radius": { + "link": null, + "type": "int", + "default-value": 1, + "control": { + "name": "Integer" + } + }, + "use_slope": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "min_slopeangle": { + "link": null, + "type": "float", + "default-value": 25.0, + "control": { + "name": "Float" + } + }, + "max_slopeangle": { + "link": null, + "type": "float", + "default-value": 70.0, + "control": { + "name": "Float" + } + }, + "use_direction": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "goal_angle": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "angle_spread": { + "link": null, + "type": "float", + "default-value": 30.0, + "control": { + "name": "Float" + } + }, + "use_height": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "min_height": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "max_height": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "HeightField": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -12562.4931640625, + 301.5929870605469 + ], + "options": [] + }, + "7530576d-HF_Visualize": { + "name": "HF_Visualize", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "main:8395c0d6-Erode_Granular_Slump_Flow:[node]/outputs/HeightField 高度场地形", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Final Color Scale": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "Heatmap": { + "link": "main:7573c667-MakeHeatmap:[node]/outputs/heatmap", + "type": "color", + "default-value": null, + "control": { + "name": "Color" + } + }, + "Revert Heatmap": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Height Layer Name": { + "link": null, + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "Layer_1": { + "link": null, + "type": "string", + "default-value": "debris_", + "control": { + "name": "String" + } + }, + "Color_1": { + "link": null, + "type": "vec3f", + "default-value": [ + 0.800000011920929, + 0.6000000238418579, + 0.4000000059604645 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_2": { + "link": null, + "type": "string", + "default-value": "water", + "control": { + "name": "String" + } + }, + "Color_2": { + "link": null, + "type": "vec3f", + "default-value": [ + 0.15000000596046449, + 0.44999998807907107, + 0.8999999761581421 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_3": { + "link": null, + "type": "string", + "default-value": "sediment_", + "control": { + "name": "String" + } + }, + "Color_3": { + "link": null, + "type": "vec3f", + "default-value": [ + 0.14000000059604646, + 0.44999998807907107, + 0.8999999761581421 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_4": { + "link": null, + "type": "string", + "default-value": "mask", + "control": { + "name": "String" + } + }, + "Color_4": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_5": { + "link": null, + "type": "string", + "default-value": "Layer_5", + "control": { + "name": "String" + } + }, + "Color_5": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_6": { + "link": null, + "type": "string", + "default-value": "Layer_6", + "control": { + "name": "String" + } + }, + "Color_6": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_7": { + "link": null, + "type": "string", + "default-value": "Layer_7", + "control": { + "name": "String" + } + }, + "Color_7": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_8": { + "link": null, + "type": "string", + "default-value": "Layer_8", + "control": { + "name": "String" + } + }, + "Color_8": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_9": { + "link": null, + "type": "string", + "default-value": "Layer_9", + "control": { + "name": "String" + } + }, + "Color_9": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + 2696.904541015625, + -2265.435546875 + ], + "options": [] + }, + "7573c667-MakeHeatmap": { + "name": "MakeHeatmap", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "_RAMPS": { + "value": "2\n0 0.970001 0.947692 0.947692\n1 1 1 1\n", + "control": { + "name": "Color" + }, + "type": "" + }, + "nres": { + "value": 1024, + "control": { + "name": "Integer" + }, + "type": "int" + } + }, + "outputs": { + "heatmap": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1850.0986328125, + -2270.770263671875 + ], + "options": [] + }, + "7576a9bd-ReadObjPrim": { + "name": "ReadObjPrim", + "inputs": { + "path": { + "link": null, + "type": "readpath", + "default-value": "C:/Users/YingQ/Downloads/Blue_dixing.obj", + "control": { + "name": "read path" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "triangulate": { + "value": true, + "control": { + "name": "Boolean" + }, + "type": "bool" + } + }, + "outputs": { + "prim": { + "type": "primitive" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -26258.619140625, + 7201.5927734375 + ], + "options": [] + }, + "77490dbb-Erode_Precipitation": { + "name": "Erode_Precipitation", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "amount": { + "link": null, + "type": "float", + "default-value": 0.10000000149011612, + "control": { + "name": "Float" + } + }, + "seed": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "HeightField": { + "link": "main:34332ef2-Clone:[node]/outputs/newObject", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "density": { + "link": null, + "type": "float", + "default-value": 0.05000000074505806, + "control": { + "name": "Float" + } + }, + "Water Layer Name": { + "link": null, + "type": "string", + "default-value": "water", + "control": { + "name": "String" + } + }, + "Visual Water Enable": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + -1762.4935302734376, + 301.5929870605469 + ], + "options": [] + }, + "7854e319-HF_Blur_OpenCV": { + "name": "HF_Blur_OpenCV", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "main:46ffc4f2-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Float Attr Name": { + "link": null, + "type": "string", + "default-value": "test", + "control": { + "name": "String" + } + }, + "Blur Type": { + "link": null, + "type": "string", + "default-value": "blur", + "control": { + "name": "Enum", + "items": [ + "blur", + "erode", + "dilate" + ] + } + }, + "Blur Radius": { + "link": null, + "type": "int", + "default-value": 50, + "control": { + "name": "Integer" + } + }, + "Weight Name": { + "link": null, + "type": "string", + "default-value": "weight", + "control": { + "name": "String" + } + }, + "Clone": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + } + }, + "params": {}, + "outputs": { + "HeightField": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -24400.0, + 4200.0 + ], + "options": [] + }, + "7ee3cc98-Clone": { + "name": "Clone", + "inputs": { + "object": { + "link": "main:94ba361b-HF_Resample:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "newObject": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -945.9839477539063, + 9418.6953125 + ], + "options": [] + }, + "7fa924da-MakeHeatmap": { + "name": "MakeHeatmap", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "_RAMPS": { + "value": "4\n0.0152376 0.509804 0.353429 0.0159915\n0.430329 0.0859846 0.680003 0.0859846\n0.798831 0.439475 0.775006 0.439475\n0.946015 0.534997 0.534997 0.534997\n", + "control": { + "name": "Color" + }, + "type": "" + }, + "nres": { + "value": 1024, + "control": { + "name": "Integer" + }, + "type": "int" + } + }, + "outputs": { + "heatmap": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -162.4935302734375, + -1198.406982421875 + ], + "options": [] + }, + "8167ec6e-HF_Terrain_Noise": { + "name": "HF_Terrain_Noise", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "main:a9e3b1da-HF_Visualize:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Noise Apply Layer": { + "link": null, + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "Noise Type": { + "link": null, + "type": "string", + "default-value": "perlin", + "control": { + "name": "Enum", + "items": [ + "perlin", + "simplex", + "worley" + ] + } + }, + "Fractal Type": { + "link": null, + "type": "string", + "default-value": "fBm", + "control": { + "name": "Enum", + "items": [ + "fBm", + "hybridTerrain", + "ridgedTerrain" + ] + } + }, + "Noise Offset": { + "link": null, + "type": "vec3f", + "default-value": [ + 600.0, + 0.0, + 1200.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Noise Element Size": { + "link": null, + "type": "vec3f", + "default-value": [ + 120.0, + 12.0, + 120.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Noise Amp": { + "link": null, + "type": "vec3f", + "default-value": [ + 100.0, + 12.0, + 100.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Noise Octaves": { + "link": null, + "type": "float", + "default-value": 11.0, + "control": { + "name": "Float" + } + }, + "Noise Roughness": { + "link": null, + "type": "float", + "default-value": 0.5, + "control": { + "name": "Float" + } + }, + "Mask": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Use Mask": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Mask Layer": { + "link": null, + "type": "string", + "default-value": "slop", + "control": { + "name": "String" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + 4254.01611328125, + 9418.6953125 + ], + "options": [] + }, + "81c16ca5-ReadImageFile": { + "name": "ReadImageFile", + "inputs": { + "path": { + "link": null, + "type": "readpath", + "default-value": "C:/Users/YingQ/Downloads/ROCKBIG.jpg", + "control": { + "name": "read path" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 4254.01611328125, + 8318.6953125 + ], + "options": [] + }, + "8395c0d6-Erode_Granular_Slump_Flow": { + "name": "Erode_Granular_Slump_Flow", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField 高度场地形": { + "link": "main:fe11fff1-Erode_Precipitation:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Slump 崩解滑塌形成流网": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Slump Iterations 崩解滑塌迭代次数": { + "link": null, + "type": "int", + "default-value": 200, + "control": { + "name": "Integer" + } + }, + "Seed 随机种子值": { + "link": null, + "type": "float", + "default-value": 1234.0, + "control": { + "name": "Float" + } + }, + "Gridbias 流动偏置": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "Open Border 开放边界": { + "link": null, + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "Quantization 流量": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "Flow Rate 流网扩张": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "Repose Angle 水土保持坡度": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "Smooth Flow 平滑流场": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Flow Smooth Iterations 流场平滑迭代次数": { + "link": null, + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "Flow Smooth Rate 流场平滑程度": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "Layer Binding 层绑定": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Height Layer Name": { + "link": null, + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "Material to Slump 崩解滑塌层": { + "link": null, + "type": "string", + "default-value": "water", + "control": { + "name": "String" + } + }, + "Stability Mask 碎屑稳固层": { + "link": null, + "type": "string", + "default-value": "none", + "control": { + "name": "String" + } + }, + "Output Flow 输出流": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Copy Flow to Mask 流拷贝到 Mask 层": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "Visual Flow 可视化流": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Visual Flow Enable 打开流场可视化效果": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField 高度场地形": { + "type": "" + } + }, + "uipos": [ + 3830.890625, + 286.1701354980469 + ], + "options": [] + }, + "8650d7d8-ParticlesTwoWrangle": { + "name": "ParticlesTwoWrangle", + "inputs": { + "prim": { + "link": "main:ff71bc46-ParticlesTwoWrangle:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "prim2": { + "link": "main:fef2875b-ParticlesWrangle:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@cliff_clr = @@clr\n@pos.y = @height", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 11021.369140625, + 7720.9970703125 + ], + "options": [] + }, + "8b27883a-PrimitiveDelAttrs": { + "name": "PrimitiveDelAttrs", + "inputs": { + "prim": { + "link": "main:711ed00-Erode_Granular_Slump_Flow:[node]/outputs/HeightField 高度场地形", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "invert": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "names": { + "link": null, + "type": "string", + "default-value": "height_and_debris none", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1037.5064697265626, + 301.5929870605469 + ], + "options": [] + }, + "907ad0e0-HF_Terrain_Noise": { + "name": "HF_Terrain_Noise", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "main:6d392f44-HF_Visualize:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Noise Apply Layer": { + "link": null, + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "Noise Type": { + "link": null, + "type": "string", + "default-value": "perlin", + "control": { + "name": "Enum", + "items": [ + "perlin", + "simplex", + "worley" + ] + } + }, + "Fractal Type": { + "link": null, + "type": "string", + "default-value": "ridgedTerrain", + "control": { + "name": "Enum", + "items": [ + "fBm", + "hybridTerrain", + "ridgedTerrain" + ] + } + }, + "Noise Offset": { + "link": null, + "type": "vec3f", + "default-value": [ + 600.0, + 0.0, + 1200.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Noise Element Size": { + "link": null, + "type": "vec3f", + "default-value": [ + 25.0, + 1.0, + 25.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Noise Amp": { + "link": null, + "type": "vec3f", + "default-value": [ + 100.0, + 1.100000023841858, + 100.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Noise Octaves": { + "link": null, + "type": "float", + "default-value": 11.0, + "control": { + "name": "Float" + } + }, + "Noise Roughness": { + "link": null, + "type": "float", + "default-value": 0.5, + "control": { + "name": "Float" + } + }, + "Mask": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Use Mask": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Mask Layer": { + "link": null, + "type": "string", + "default-value": "slop", + "control": { + "name": "String" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + 9054.0166015625, + 9418.6953125 + ], + "options": [] + }, + "90ba73c0-HF_maskByFeature": { + "name": "HF_maskByFeature", + "inputs": { + "HeightField": { + "link": "main:cf267aa5-HF_Resample:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "height_layer": { + "link": null, + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "mask_layer": { + "link": null, + "type": "string", + "default-value": "mask", + "control": { + "name": "String" + } + }, + "smooth_radius": { + "link": null, + "type": "int", + "default-value": 1, + "control": { + "name": "Integer" + } + }, + "use_slope": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "min_slopeangle": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "max_slopeangle": { + "link": null, + "type": "float", + "default-value": 90.0, + "control": { + "name": "Float" + } + }, + "use_direction": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "goal_angle": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "angle_spread": { + "link": null, + "type": "float", + "default-value": 30.0, + "control": { + "name": "Float" + } + }, + "use_height": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "min_height": { + "link": null, + "type": "float", + "default-value": 50.0, + "control": { + "name": "Float" + } + }, + "max_height": { + "link": null, + "type": "float", + "default-value": 200.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "HeightField": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -16562.494140625, + 301.5929870605469 + ], + "options": [] + }, + "93c66a25-HF_Visualize": { + "name": "HF_Visualize", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "main:5da1a7b7-HF_Erode:[node]/outputs/高度场地形", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Final Color Scale": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "Heatmap": { + "link": "main:23c3cb9d-MakeHeatmap:[node]/outputs/heatmap", + "type": "color", + "default-value": null, + "control": { + "name": "Color" + } + }, + "Revert Heatmap": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Height Layer Name": { + "link": null, + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "Layer_1": { + "link": null, + "type": "string", + "default-value": "debris", + "control": { + "name": "String" + } + }, + "Color_1": { + "link": null, + "type": "vec3f", + "default-value": [ + 0.800000011920929, + 0.6000000238418579, + 0.4000000059604645 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_2": { + "link": null, + "type": "string", + "default-value": "water", + "control": { + "name": "String" + } + }, + "Color_2": { + "link": null, + "type": "vec3f", + "default-value": [ + 0.15000000596046449, + 0.44999998807907107, + 0.8999999761581421 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_3": { + "link": null, + "type": "string", + "default-value": "sediment", + "control": { + "name": "String" + } + }, + "Color_3": { + "link": null, + "type": "vec3f", + "default-value": [ + 0.14000000059604646, + 0.44999998807907107, + 0.8999999761581421 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_4": { + "link": null, + "type": "string", + "default-value": "Layer_4", + "control": { + "name": "String" + } + }, + "Color_4": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_5": { + "link": null, + "type": "string", + "default-value": "Layer_5", + "control": { + "name": "String" + } + }, + "Color_5": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_6": { + "link": null, + "type": "string", + "default-value": "Layer_6", + "control": { + "name": "String" + } + }, + "Color_6": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_7": { + "link": null, + "type": "string", + "default-value": "Layer_7", + "control": { + "name": "String" + } + }, + "Color_7": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_8": { + "link": null, + "type": "string", + "default-value": "Layer_8", + "control": { + "name": "String" + } + }, + "Color_8": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_9": { + "link": null, + "type": "string", + "default-value": "Layer_9", + "control": { + "name": "String" + } + }, + "Color_9": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + -8362.4931640625, + -1198.406982421875 + ], + "options": [] + }, + "94ba361b-HF_Resample": { + "name": "HF_Resample", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Blur_Raius": { + "link": null, + "type": "int", + "default-value": 6, + "control": { + "name": "Integer" + } + }, + "Resolution": { + "link": null, + "type": "int", + "default-value": 4000, + "control": { + "name": "Integer" + } + }, + "HeightField": { + "link": "main:472e54b2-HF_Erode:[node]/outputs/高度场地形", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + -3362.493408203125, + 301.5929870605469 + ], + "options": [] + }, + "99b1ea31-HF_maskByFeature": { + "name": "HF_maskByFeature", + "inputs": { + "HeightField": { + "link": "main:5da1a7b7-HF_Erode:[node]/outputs/高度场地形", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "height_layer": { + "link": null, + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "mask_layer": { + "link": null, + "type": "string", + "default-value": "mask", + "control": { + "name": "String" + } + }, + "smooth_radius": { + "link": null, + "type": "int", + "default-value": 1, + "control": { + "name": "Integer" + } + }, + "use_slope": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "min_slopeangle": { + "link": null, + "type": "float", + "default-value": 35.0, + "control": { + "name": "Float" + } + }, + "max_slopeangle": { + "link": null, + "type": "float", + "default-value": 60.0, + "control": { + "name": "Float" + } + }, + "use_direction": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "goal_angle": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "angle_spread": { + "link": null, + "type": "float", + "default-value": 30.0, + "control": { + "name": "Float" + } + }, + "use_height": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "min_height": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "max_height": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "HeightField": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -7562.49365234375, + 301.5929870605469 + ], + "options": [] + }, + "a4a4afce-ReadObjPrim": { + "name": "ReadObjPrim", + "inputs": { + "path": { + "link": null, + "type": "readpath", + "default-value": "E:/Work/ProjZeno_220930_littlemine/obj/torus.obj", + "control": { + "name": "read path" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "triangulate": { + "value": true, + "control": { + "name": "Boolean" + }, + "type": "bool" + } + }, + "outputs": { + "prim": { + "type": "primitive" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -22754.73828125, + 736.8024291992188 + ], + "options": [ + "collapsed" + ] + }, + "a58b380e-HF_Visual_Mask": { + "name": "HF_Visual_Mask", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "main:67c5b8fd-HF_Mask_by_Curvature:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Clone HF for Visualize": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "Mask Name": { + "link": null, + "type": "string", + "default-value": "k", + "control": { + "name": "String" + } + }, + "Reset Base Color": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "Visualize Color": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + } + }, + "params": {}, + "outputs": { + "HeightField": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -20000.0, + 8900.0 + ], + "options": [] + }, + "a6d8ffbe-HF_Creation": { + "name": "HF_Creation", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Terrain Position": { + "link": null, + "type": "vec3f", + "default-value": [ + 0.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Terrain Resolution": { + "link": null, + "type": "int", + "default-value": 500, + "control": { + "name": "Integer" + } + }, + "Terrain Scale": { + "link": null, + "type": "float", + "default-value": 998.0, + "control": { + "name": "Float" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + -22048.080078125, + -404.2247314453125 + ], + "options": [] + }, + "a933d1ef-HF_Resample": { + "name": "HF_Resample", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Blur_Raius": { + "link": null, + "type": "int", + "default-value": 3, + "control": { + "name": "Integer" + } + }, + "Resolution": { + "link": null, + "type": "int", + "default-value": 1000, + "control": { + "name": "Integer" + } + }, + "HeightField": { + "link": "main:a97311e0-HF_Terrain_Noise:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + -9862.4931640625, + 301.5929870605469 + ], + "options": [] + }, + "a97311e0-HF_Terrain_Noise": { + "name": "HF_Terrain_Noise", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "main:57fb5c24-Erode_Stability_Blur_Cuda:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Noise Apply Layer": { + "link": null, + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "Noise Type": { + "link": null, + "type": "string", + "default-value": "perlin", + "control": { + "name": "Enum", + "items": [ + "perlin", + "simplex", + "worley" + ] + } + }, + "Fractal Type": { + "link": null, + "type": "string", + "default-value": "hybridTerrain", + "control": { + "name": "Enum", + "items": [ + "fBm", + "hybridTerrain", + "ridgedTerrain" + ] + } + }, + "Noise Offset": { + "link": null, + "type": "vec3f", + "default-value": [ + 500.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Noise Element Size": { + "link": null, + "type": "vec3f", + "default-value": [ + 300.0, + 6.0, + 300.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Noise Amp": { + "link": null, + "type": "vec3f", + "default-value": [ + 20.0, + -20.0, + 20.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Noise Octaves": { + "link": null, + "type": "float", + "default-value": 8.0, + "control": { + "name": "Float" + } + }, + "Noise Roughness": { + "link": null, + "type": "float", + "default-value": 0.6499999761581421, + "control": { + "name": "Float" + } + }, + "Mask": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Use Mask": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "Mask Layer": { + "link": null, + "type": "string", + "default-value": "mask", + "control": { + "name": "String" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + -10762.4931640625, + 301.5929870605469 + ], + "options": [] + }, + "a9e3b1da-HF_Visualize": { + "name": "HF_Visualize", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "main:3acf860c-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Final Color Scale": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "Heatmap": { + "link": "main:e0b5f432-HeatmapFromImage:[node]/outputs/heatmap", + "type": "color", + "default-value": null, + "control": { + "name": "Color" + } + }, + "Revert Heatmap": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "Height Layer Name": { + "link": null, + "type": "string", + "default-value": "height_temp", + "control": { + "name": "String" + } + }, + "Layer_1": { + "link": null, + "type": "string", + "default-value": "Layer_1", + "control": { + "name": "String" + } + }, + "Color_1": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_2": { + "link": null, + "type": "string", + "default-value": "Layer_2", + "control": { + "name": "String" + } + }, + "Color_2": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 1.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_3": { + "link": null, + "type": "string", + "default-value": "Layer_3", + "control": { + "name": "String" + } + }, + "Color_3": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_4": { + "link": null, + "type": "string", + "default-value": "Layer_4", + "control": { + "name": "String" + } + }, + "Color_4": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_5": { + "link": null, + "type": "string", + "default-value": "Layer_5", + "control": { + "name": "String" + } + }, + "Color_5": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_6": { + "link": null, + "type": "string", + "default-value": "Layer_6", + "control": { + "name": "String" + } + }, + "Color_6": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_7": { + "link": null, + "type": "string", + "default-value": "Layer_7", + "control": { + "name": "String" + } + }, + "Color_7": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_8": { + "link": null, + "type": "string", + "default-value": "Layer_8", + "control": { + "name": "String" + } + }, + "Color_8": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_9": { + "link": null, + "type": "string", + "default-value": "Layer_9", + "control": { + "name": "String" + } + }, + "Color_9": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + 3554.01611328125, + 8918.6953125 + ], + "options": [] + }, + "b065bb19-HF_Curl_Noise": { + "name": "HF_Curl_Noise", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "main:f9856348-HF_Blur_OpenCV:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Noise Offset": { + "link": null, + "type": "vec3f", + "default-value": [ + 0.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Noise Element Size": { + "link": null, + "type": "float", + "default-value": 200.0, + "control": { + "name": "Float" + } + }, + "Noise Amp": { + "link": null, + "type": "float", + "default-value": 3.0, + "control": { + "name": "Float" + } + }, + "Noise Octaves": { + "link": null, + "type": "float", + "default-value": 10.0, + "control": { + "name": "Float" + } + }, + "Noise Roughness": { + "link": null, + "type": "float", + "default-value": 0.5, + "control": { + "name": "Float" + } + }, + "Mask": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Use Mask": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "Mask Layer": { + "link": null, + "type": "string", + "default-value": "mask", + "control": { + "name": "String" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + -14862.4931640625, + 301.5929870605469 + ], + "options": [] + }, + "bd05d99-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "main:298ac533-ReadObjPrim:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -21983.220703125, + 159.17718505859376 + ], + "options": [] + }, + "cac4db29-HF_Visualize": { + "name": "HF_Visualize", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "main:269f9af6-HF_Erode:[node]/outputs/高度场地形", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Final Color Scale": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "Heatmap": { + "link": "main:cedfd813-MakeHeatmap:[node]/outputs/heatmap", + "type": "color", + "default-value": null, + "control": { + "name": "Color" + } + }, + "Revert Heatmap": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Height Layer Name": { + "link": null, + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "Layer_1": { + "link": null, + "type": "string", + "default-value": "debris", + "control": { + "name": "String" + } + }, + "Color_1": { + "link": null, + "type": "vec3f", + "default-value": [ + 0.800000011920929, + 0.6000000238418579, + 0.4000000059604645 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_2": { + "link": null, + "type": "string", + "default-value": "water", + "control": { + "name": "String" + } + }, + "Color_2": { + "link": null, + "type": "vec3f", + "default-value": [ + 0.15000000596046449, + 0.44999998807907107, + 0.8999999761581421 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_3": { + "link": null, + "type": "string", + "default-value": "sediment", + "control": { + "name": "String" + } + }, + "Color_3": { + "link": null, + "type": "vec3f", + "default-value": [ + 0.14000000059604646, + 0.44999998807907107, + 0.8999999761581421 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_4": { + "link": null, + "type": "string", + "default-value": "Layer_4", + "control": { + "name": "String" + } + }, + "Color_4": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_5": { + "link": null, + "type": "string", + "default-value": "Layer_5", + "control": { + "name": "String" + } + }, + "Color_5": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_6": { + "link": null, + "type": "string", + "default-value": "Layer_6", + "control": { + "name": "String" + } + }, + "Color_6": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_7": { + "link": null, + "type": "string", + "default-value": "Layer_7", + "control": { + "name": "String" + } + }, + "Color_7": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_8": { + "link": null, + "type": "string", + "default-value": "Layer_8", + "control": { + "name": "String" + } + }, + "Color_8": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_9": { + "link": null, + "type": "string", + "default-value": "Layer_9", + "control": { + "name": "String" + } + }, + "Color_9": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + -12668.1806640625, + -1268.37646484375 + ], + "options": [] + }, + "ce0871ff-ReadObjPrim": { + "name": "ReadObjPrim", + "inputs": { + "path": { + "link": null, + "type": "readpath", + "default-value": "E:/Work/ProjZeno_230316/Blue_dixing.obj", + "control": { + "name": "read path" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "triangulate": { + "value": true, + "control": { + "name": "Boolean" + }, + "type": "bool" + } + }, + "outputs": { + "prim": { + "type": "primitive" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -26262.494140625, + 7601.5927734375 + ], + "options": [] + }, + "cedfd813-MakeHeatmap": { + "name": "MakeHeatmap", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "_RAMPS": { + "value": "4\n0.0152376 0.509804 0.353429 0.0159915\n0.430329 0.0859846 0.680003 0.0859846\n0.798831 0.439475 0.775006 0.439475\n0.946015 0.534997 0.534997 0.534997\n", + "control": { + "name": "Color" + }, + "type": "" + }, + "nres": { + "value": 1024, + "control": { + "name": "Integer" + }, + "type": "int" + } + }, + "outputs": { + "heatmap": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -14062.4931640625, + -1198.406982421875 + ], + "options": [] + }, + "cf128f18-HF_Creation": { + "name": "HF_Creation", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Terrain Position": { + "link": null, + "type": "vec3f", + "default-value": [ + 0.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Terrain Resolution": { + "link": null, + "type": "int", + "default-value": 500, + "control": { + "name": "Integer" + } + }, + "Terrain Scale": { + "link": null, + "type": "float", + "default-value": 998.0, + "control": { + "name": "Float" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + -26200.0, + 3500.0 + ], + "options": [] + }, + "cf267aa5-HF_Resample": { + "name": "HF_Resample", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Blur_Raius": { + "link": null, + "type": "int", + "default-value": 10, + "control": { + "name": "Integer" + } + }, + "Resolution": { + "link": null, + "type": "int", + "default-value": 2000, + "control": { + "name": "Integer" + } + }, + "HeightField": { + "link": "main:ef8af71b-HF_Erode:[node]/outputs/高度场地形", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + -17362.494140625, + 301.5929870605469 + ], + "options": [] + }, + "cfd7457d-HeatmapFromImage": { + "name": "HeatmapFromImage", + "inputs": { + "image": { + "link": "main:35885c81-ReadImageFile:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "startPos": { + "link": null, + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "endPos": { + "link": null, + "type": "int", + "default-value": -1, + "control": { + "name": "Integer" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "heatmap": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 7354.015625, + 8318.6953125 + ], + "options": [] + }, + "d0de1a38-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "main:f930861c-HF_Project:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -18862.494140625, + 301.5929870605469 + ], + "options": [] + }, + "d2a54eba-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "main:e310d0b9-Erode_Stability_Blur_Cuda:[node]/outputs/HeightField", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@pos.y = @test*100", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -23300.0, + 3500.0 + ], + "options": [] + }, + "d9cd69bf-HF_maskByFeature": { + "name": "HF_maskByFeature", + "inputs": { + "HeightField": { + "link": "main:7ee3cc98-Clone:[node]/outputs/newObject", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "height_layer": { + "link": null, + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "mask_layer": { + "link": null, + "type": "string", + "default-value": "mask", + "control": { + "name": "String" + } + }, + "smooth_radius": { + "link": null, + "type": "int", + "default-value": 1, + "control": { + "name": "Integer" + } + }, + "use_slope": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "min_slopeangle": { + "link": null, + "type": "float", + "default-value": 17.799999237060548, + "control": { + "name": "Float" + } + }, + "max_slopeangle": { + "link": null, + "type": "float", + "default-value": 90.0, + "control": { + "name": "Float" + } + }, + "use_direction": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "goal_angle": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "angle_spread": { + "link": null, + "type": "float", + "default-value": 30.0, + "control": { + "name": "Float" + } + }, + "use_height": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "min_height": { + "link": null, + "type": "float", + "default-value": 0.5, + "control": { + "name": "Float" + } + }, + "max_height": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "HeightField": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -345.9840087890625, + 9418.6953125 + ], + "options": [] + }, + "da1db511-HF_Creation": { + "name": "HF_Creation", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Terrain Position": { + "link": null, + "type": "vec3f", + "default-value": [ + 0.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Terrain Resolution": { + "link": null, + "type": "int", + "default-value": 1000, + "control": { + "name": "Integer" + } + }, + "Terrain Scale": { + "link": null, + "type": "float", + "default-value": 998.0, + "control": { + "name": "Float" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + -26262.494140625, + 6201.5927734375 + ], + "options": [] + }, + "dcd816d2-Erode_Stability_Blur_Cuda": { + "name": "Erode_Stability_Blur_Cuda", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Blur Mode": { + "link": null, + "type": "string", + "default-value": "NINE_STENCIL", + "control": { + "name": "Enum", + "items": [ + "FIVE_STENCIL", + "NINE_STENCIL" + ] + } + }, + "Blur Radius": { + "link": null, + "type": "float", + "default-value": 7.0, + "control": { + "name": "Float" + } + }, + "Visual Enable": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Float Attr Name": { + "link": null, + "type": "string", + "default-value": "mask", + "control": { + "name": "String" + } + }, + "HeightField": { + "link": "main:99b1ea31-HF_maskByFeature:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + -6762.49365234375, + 301.5929870605469 + ], + "options": [] + }, + "e0b5f432-HeatmapFromImage": { + "name": "HeatmapFromImage", + "inputs": { + "image": { + "link": "main:5b2bd04a-ReadImageFile:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "startPos": { + "link": null, + "type": "int", + "default-value": 700, + "control": { + "name": "Integer" + } + }, + "endPos": { + "link": null, + "type": "int", + "default-value": 3500, + "control": { + "name": "Integer" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "heatmap": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2754.015869140625, + 8318.6953125 + ], + "options": [] + }, + "e1402856-HF_Terrain_Noise": { + "name": "HF_Terrain_Noise", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "main:38cb5956-HF_Visualize:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Noise Apply Layer": { + "link": null, + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "Noise Type": { + "link": null, + "type": "string", + "default-value": "perlin", + "control": { + "name": "Enum", + "items": [ + "perlin", + "simplex", + "worley" + ] + } + }, + "Fractal Type": { + "link": null, + "type": "string", + "default-value": "ridgedTerrain", + "control": { + "name": "Enum", + "items": [ + "fBm", + "hybridTerrain", + "ridgedTerrain" + ] + } + }, + "Noise Offset": { + "link": null, + "type": "vec3f", + "default-value": [ + 600.0, + 0.0, + 1200.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Noise Element Size": { + "link": null, + "type": "vec3f", + "default-value": [ + 60.0, + 6.0, + 60.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Noise Amp": { + "link": null, + "type": "vec3f", + "default-value": [ + 100.0, + 3.0, + 100.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Noise Octaves": { + "link": null, + "type": "float", + "default-value": 11.0, + "control": { + "name": "Float" + } + }, + "Noise Roughness": { + "link": null, + "type": "float", + "default-value": 0.5, + "control": { + "name": "Float" + } + }, + "Mask": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Use Mask": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Mask Layer": { + "link": null, + "type": "string", + "default-value": "slop", + "control": { + "name": "String" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + 6554.015625, + 9418.6953125 + ], + "options": [] + }, + "e310d0b9-Erode_Stability_Blur_Cuda": { + "name": "Erode_Stability_Blur_Cuda", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Blur Mode": { + "link": null, + "type": "string", + "default-value": "NINE_STENCIL", + "control": { + "name": "Enum", + "items": [ + "FIVE_STENCIL", + "NINE_STENCIL" + ] + } + }, + "Blur Radius": { + "link": null, + "type": "float", + "default-value": 200.0, + "control": { + "name": "Float" + } + }, + "Visual Enable": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Float Attr Name": { + "link": null, + "type": "string", + "default-value": "test", + "control": { + "name": "String" + } + }, + "HeightField": { + "link": "main:46ffc4f2-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + -24400.0, + 3500.0 + ], + "options": [] + }, + "e5cbd773-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "main:7576a9bd-ReadObjPrim:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -25362.494140625, + 6701.5927734375 + ], + "options": [] + }, + "e6cfba40-HF_Visualize": { + "name": "HF_Visualize", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "main:472e54b2-HF_Erode:[node]/outputs/高度场地形", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Final Color Scale": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "Heatmap": { + "link": "main:5ec28c40-MakeHeatmap:[node]/outputs/heatmap", + "type": "color", + "default-value": null, + "control": { + "name": "Color" + } + }, + "Revert Heatmap": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Height Layer Name": { + "link": null, + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "Layer_1": { + "link": null, + "type": "string", + "default-value": "debris", + "control": { + "name": "String" + } + }, + "Color_1": { + "link": null, + "type": "vec3f", + "default-value": [ + 0.800000011920929, + 0.6000000238418579, + 0.4000000059604645 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_2": { + "link": null, + "type": "string", + "default-value": "water", + "control": { + "name": "String" + } + }, + "Color_2": { + "link": null, + "type": "vec3f", + "default-value": [ + 0.15000000596046449, + 0.44999998807907107, + 0.8999999761581421 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_3": { + "link": null, + "type": "string", + "default-value": "sediment", + "control": { + "name": "String" + } + }, + "Color_3": { + "link": null, + "type": "vec3f", + "default-value": [ + 0.14000000059604646, + 0.44999998807907107, + 0.8999999761581421 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_4": { + "link": null, + "type": "string", + "default-value": "Layer_4", + "control": { + "name": "String" + } + }, + "Color_4": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_5": { + "link": null, + "type": "string", + "default-value": "Layer_5", + "control": { + "name": "String" + } + }, + "Color_5": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_6": { + "link": null, + "type": "string", + "default-value": "Layer_6", + "control": { + "name": "String" + } + }, + "Color_6": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_7": { + "link": null, + "type": "string", + "default-value": "Layer_7", + "control": { + "name": "String" + } + }, + "Color_7": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_8": { + "link": null, + "type": "string", + "default-value": "Layer_8", + "control": { + "name": "String" + } + }, + "Color_8": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_9": { + "link": null, + "type": "string", + "default-value": "Layer_9", + "control": { + "name": "String" + } + }, + "Color_9": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + -4162.49365234375, + -1198.406982421875 + ], + "options": [] + }, + "e81e6716-HeatmapFromImage": { + "name": "HeatmapFromImage", + "inputs": { + "image": { + "link": "main:81c16ca5-ReadImageFile:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "startPos": { + "link": null, + "type": "int", + "default-value": 700, + "control": { + "name": "Integer" + } + }, + "endPos": { + "link": null, + "type": "int", + "default-value": 6500, + "control": { + "name": "Integer" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "heatmap": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 4954.015625, + 8318.6953125 + ], + "options": [] + }, + "ecb15904-HF_Visualize": { + "name": "HF_Visualize", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "main:3b8aa1b5-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Final Color Scale": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "Heatmap": { + "link": "main:67356444-HeatmapFromImage:[node]/outputs/heatmap", + "type": "color", + "default-value": null, + "control": { + "name": "Color" + } + }, + "Revert Heatmap": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "Height Layer Name": { + "link": null, + "type": "string", + "default-value": "height_temp", + "control": { + "name": "String" + } + }, + "Layer_1": { + "link": null, + "type": "string", + "default-value": "Layer_1", + "control": { + "name": "String" + } + }, + "Color_1": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_2": { + "link": null, + "type": "string", + "default-value": "Layer_2", + "control": { + "name": "String" + } + }, + "Color_2": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 1.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_3": { + "link": null, + "type": "string", + "default-value": "Layer_3", + "control": { + "name": "String" + } + }, + "Color_3": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_4": { + "link": null, + "type": "string", + "default-value": "Layer_4", + "control": { + "name": "String" + } + }, + "Color_4": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_5": { + "link": null, + "type": "string", + "default-value": "Layer_5", + "control": { + "name": "String" + } + }, + "Color_5": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_6": { + "link": null, + "type": "string", + "default-value": "Layer_6", + "control": { + "name": "String" + } + }, + "Color_6": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_7": { + "link": null, + "type": "string", + "default-value": "Layer_7", + "control": { + "name": "String" + } + }, + "Color_7": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_8": { + "link": null, + "type": "string", + "default-value": "Layer_8", + "control": { + "name": "String" + } + }, + "Color_8": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_9": { + "link": null, + "type": "string", + "default-value": "Layer_9", + "control": { + "name": "String" + } + }, + "Color_9": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + 1354.0159912109376, + 8918.6953125 + ], + "options": [] + }, + "ef3e49db-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "main:8167ec6e-HF_Terrain_Noise:[node]/outputs/HeightField", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@clr_2 = @clr\n\n@clr = @clr_1*0.5 + @clr_2*1.5", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 5054.015625, + 9418.6953125 + ], + "options": [] + }, + "ef8af71b-HF_Erode": { + "name": "HF_Erode", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "高度场地形": { + "link": "main:d0de1a38-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Freeze at Frame": { + "link": null, + "type": "int", + "default-value": 10, + "control": { + "name": "Integer" + } + }, + "热侵蚀": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "热侵蚀种子值": { + "link": null, + "type": "float", + "default-value": 4650.0, + "control": { + "name": "Float" + } + }, + "热侵蚀率": { + "link": null, + "type": "float", + "default-value": 0.029999999329447748, + "control": { + "name": "Float" + } + }, + "热侵蚀风化率": { + "link": null, + "type": "float", + "default-value": 0.699999988079071, + "control": { + "name": "Float" + } + }, + "热侵蚀截止角": { + "link": null, + "type": "float", + "default-value": 35.0, + "control": { + "name": "Float" + } + }, + "热侵蚀碎屑流淌种子值": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "热侵蚀碎屑流淌迭代次数": { + "link": null, + "type": "int", + "default-value": 10, + "control": { + "name": "Integer" + } + }, + "Use Stability": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "降水": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "降水量": { + "link": null, + "type": "float", + "default-value": 0.20000000298023225, + "control": { + "name": "Float" + } + }, + "降水密度": { + "link": null, + "type": "float", + "default-value": 0.05000000074505806, + "control": { + "name": "Float" + } + }, + "蒸发率": { + "link": null, + "type": "float", + "default-value": -0.014999999664723874, + "control": { + "name": "Float" + } + }, + "水侵蚀": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "水侵蚀种子值": { + "link": null, + "type": "float", + "default-value": 12.34000015258789, + "control": { + "name": "Float" + } + }, + "水侵蚀迭代次数": { + "link": null, + "type": "int", + "default-value": 40, + "control": { + "name": "Integer" + } + }, + "水侵蚀率": { + "link": null, + "type": "float", + "default-value": 0.4000000059604645, + "control": { + "name": "Float" + } + }, + "河堤侵蚀角度": { + "link": null, + "type": "float", + "default-value": 70.0, + "control": { + "name": "Float" + } + }, + "水侵蚀溶解率": { + "link": null, + "type": "float", + "default-value": 0.10000000149011612, + "control": { + "name": "Float" + } + }, + "层绑定": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Height Layer Name": { + "link": null, + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "Water Layer Name": { + "link": null, + "type": "string", + "default-value": "water", + "control": { + "name": "String" + } + }, + "Debris Layer Name": { + "link": null, + "type": "string", + "default-value": "debris", + "control": { + "name": "String" + } + }, + "Sediment Layer Name": { + "link": null, + "type": "string", + "default-value": "sediment", + "control": { + "name": "String" + } + }, + "Stability Layer Name": { + "link": null, + "type": "string", + "default-value": "stability", + "control": { + "name": "String" + } + }, + "初始化高度场地形": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "Visualize Enable": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Visualize Thermal Debris": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Visualize Slump Debris": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Visualize Hydro Water": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Visualize Rain Water": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Visualize Smooth Debris": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Visualize Smooth Water": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "高度场地形": { + "type": "" + } + }, + "uipos": [ + -18162.494140625, + 301.5929870605469 + ], + "options": [] + }, + "f13b239-HF_Terrain_Noise": { + "name": "HF_Terrain_Noise", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "main:ecb15904-HF_Visualize:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Noise Apply Layer": { + "link": null, + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "Noise Type": { + "link": null, + "type": "string", + "default-value": "perlin", + "control": { + "name": "Enum", + "items": [ + "perlin", + "simplex", + "worley" + ] + } + }, + "Fractal Type": { + "link": null, + "type": "string", + "default-value": "fBm", + "control": { + "name": "Enum", + "items": [ + "fBm", + "hybridTerrain", + "ridgedTerrain" + ] + } + }, + "Noise Offset": { + "link": null, + "type": "vec3f", + "default-value": [ + 600.0, + 0.0, + 1200.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Noise Element Size": { + "link": null, + "type": "vec3f", + "default-value": [ + 90.0, + 25.0, + 100.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Noise Amp": { + "link": null, + "type": "vec3f", + "default-value": [ + 50.0, + 18.0, + 50.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Noise Octaves": { + "link": null, + "type": "float", + "default-value": 9.0, + "control": { + "name": "Float" + } + }, + "Noise Roughness": { + "link": null, + "type": "float", + "default-value": 0.5, + "control": { + "name": "Float" + } + }, + "Mask": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Use Mask": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Mask Layer": { + "link": null, + "type": "string", + "default-value": "slop", + "control": { + "name": "String" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + 2054.01611328125, + 9418.6953125 + ], + "options": [] + }, + "f930861c-HF_Project": { + "name": "HF_Project", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "main:a6d8ffbe-HF_Creation:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Project Target Prim": { + "link": "main:bd05d99-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Project Dir": { + "link": null, + "type": "string", + "default-value": "Above HeightField", + "control": { + "name": "Enum", + "items": [ + "Above HeightField", + "Below HeightField" + ] + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + -21739.41015625, + -130.90684509277345 + ], + "options": [] + }, + "f9856348-HF_Blur_OpenCV": { + "name": "HF_Blur_OpenCV", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "main:90ba73c0-HF_maskByFeature:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Float Attr Name": { + "link": null, + "type": "string", + "default-value": "mask", + "control": { + "name": "String" + } + }, + "Blur Type": { + "link": null, + "type": "string", + "default-value": "blur", + "control": { + "name": "Enum", + "items": [ + "blur", + "erode", + "dilate" + ] + } + }, + "Blur Radius": { + "link": null, + "type": "int", + "default-value": 50, + "control": { + "name": "Integer" + } + }, + "Weight Name": { + "link": null, + "type": "string", + "default-value": "weight", + "control": { + "name": "String" + } + }, + "Clone": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + } + }, + "params": {}, + "outputs": { + "HeightField": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -15670.6884765625, + 296.43023681640627 + ], + "options": [] + }, + "f9d230ae-HF_Project": { + "name": "HF_Project", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "main:da1db511-HF_Creation:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Project Target Prim": { + "link": "main:e5cbd773-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Project Dir": { + "link": null, + "type": "string", + "default-value": "Above HeightField", + "control": { + "name": "Enum", + "items": [ + "Above HeightField", + "Below HeightField" + ] + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + -25362.494140625, + 6201.5927734375 + ], + "options": [] + }, + "fe11fff1-Erode_Precipitation": { + "name": "Erode_Precipitation", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "amount": { + "link": null, + "type": "float", + "default-value": 0.10000000149011612, + "control": { + "name": "Float" + } + }, + "seed": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "HeightField": { + "link": "main:10fc4c1c-Erode_Smooth_Slump_Flow:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "density": { + "link": null, + "type": "float", + "default-value": 0.05000000074505806, + "control": { + "name": "Float" + } + }, + "Water Layer Name": { + "link": null, + "type": "string", + "default-value": "water", + "control": { + "name": "String" + } + }, + "Visual Water Enable": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + 2937.506591796875, + 301.5929870605469 + ], + "options": [] + }, + "fef2875b-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "main:907ad0e0-HF_Terrain_Noise:[node]/outputs/HeightField", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@clr_4 = @clr\nwhite = vec3(1,1,1)\n@clr = (white*0.5 + @clr_1*0.8 + @clr_2*0.25 + @clr_3*0.5 + @clr_4*1.2) * 0.9\n\n@pos.y *= 1", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 9954.0166015625, + 9418.6953125 + ], + "options": [] + }, + "ff71bc46-ParticlesTwoWrangle": { + "name": "ParticlesTwoWrangle", + "inputs": { + "prim": { + "link": "main:94ba361b-HF_Resample:[node]/outputs/HeightField", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "prim2": { + "link": "main:711ed00-Erode_Granular_Slump_Flow:[node]/outputs/HeightField 高度场地形", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@river = @@mask", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1045.056396484375, + 7136.49267578125 + ], + "options": [] + }, + "fe6a920-HF_Terrace": { + "name": "HF_Terrace", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Min Height": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "Use Mask Layer": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Slop Mask Smoothing": { + "link": null, + "type": "int", + "default-value": 3, + "control": { + "name": "Integer" + } + }, + "Mask": { + "link": null, + "type": "string", + "default-value": "mask", + "control": { + "name": "String" + } + }, + "Mesa Max Slope": { + "link": null, + "type": "float", + "default-value": 5.0, + "control": { + "name": "Float" + } + }, + "Fade Ramp": { + "link": null, + "type": "curve", + "default-value": { + "objectType": "curve", + "timeline": true, + "x": { + "range": { + "xFrom": 0.0, + "xTo": 1.0, + "yFrom": 0.0, + "yTo": 1.0 + }, + "nodes": [ + { + "x": 0.0, + "y": 0.0, + "left-handle": { + "x": 0.0, + "y": 0.0 + }, + "right-handle": { + "x": 0.0, + "y": 0.0 + }, + "type": "asym", + "lockX": false, + "lockY": false + }, + { + "x": 1.0, + "y": 1.0, + "left-handle": { + "x": 0.0, + "y": 0.0 + }, + "right-handle": { + "x": 0.0, + "y": 0.0 + }, + "type": "asym", + "lockX": false, + "lockY": false + } + ] + } + }, + "control": { + "name": "Curve" + } + }, + "Step Offset": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "Step Ramp": { + "link": null, + "type": "curve", + "default-value": { + "objectType": "curve", + "timeline": true, + "x": { + "range": { + "xFrom": 0.0, + "xTo": 1.0, + "yFrom": 0.0, + "yTo": 1.0 + }, + "nodes": [ + { + "x": 0.0, + "y": 1.0, + "left-handle": { + "x": 0.0, + "y": 0.0 + }, + "right-handle": { + "x": 0.0, + "y": 0.0 + }, + "type": "asym", + "lockX": false, + "lockY": false + }, + { + "x": 1.0, + "y": 0.0, + "left-handle": { + "x": 0.0, + "y": 0.0 + }, + "right-handle": { + "x": 0.0, + "y": 0.0 + }, + "type": "asym", + "lockX": false, + "lockY": false + } + ] + } + }, + "control": { + "name": "Curve" + } + }, + "Output Cliff Layer": { + "link": null, + "type": "string", + "default-value": "cliffs", + "control": { + "name": "String" + } + }, + "Smooth Edges": { + "link": null, + "type": "int", + "default-value": 5, + "control": { + "name": "Integer" + } + }, + "Step Size": { + "link": null, + "type": "float", + "default-value": 30.0, + "control": { + "name": "Float" + } + }, + "Fade": { + "link": null, + "type": "float", + "default-value": 0.5, + "control": { + "name": "Float" + } + }, + "Min Mask": { + "link": null, + "type": "float", + "default-value": 0.009999999776482582, + "control": { + "name": "Float" + } + }, + "Max Height": { + "link": null, + "type": "float", + "default-value": 150.0, + "control": { + "name": "Float" + } + }, + "HeightField": { + "link": "main:2525a08c-HF_Terrain_Noise:[node]/outputs/HeightField", + "type": "string", + "default-value": null, + "control": { + "name": "String" + } + }, + "Cliff Min Slope": { + "link": null, + "type": "float", + "default-value": 60.0, + "control": { + "name": "Float" + } + }, + "Output Mesa Layer": { + "link": null, + "type": "string", + "default-value": "mesa", + "control": { + "name": "String" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + -21608.654296875, + 8936.599609375 + ], + "options": [] + }, + "a2c37248-HF_maskByFeature": { + "name": "HF_maskByFeature", + "inputs": { + "HeightField": { + "link": "main:8650d7d8-ParticlesTwoWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "height_layer": { + "link": null, + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "mask_layer": { + "link": null, + "type": "string", + "default-value": "mask", + "control": { + "name": "String" + } + }, + "smooth_radius": { + "link": null, + "type": "int", + "default-value": 1, + "control": { + "name": "Integer" + } + }, + "use_slope": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "min_slopeangle": { + "link": null, + "type": "float", + "default-value": 70.0, + "control": { + "name": "Float" + } + }, + "max_slopeangle": { + "link": null, + "type": "float", + "default-value": 90.0, + "control": { + "name": "Float" + } + }, + "use_direction": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "goal_angle": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "angle_spread": { + "link": null, + "type": "float", + "default-value": 30.0, + "control": { + "name": "Float" + } + }, + "use_height": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "min_height": { + "link": null, + "type": "float", + "default-value": 0.5, + "control": { + "name": "Float" + } + }, + "max_height": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "HeightField": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 12168.9150390625, + 8351.794921875 + ], + "options": [] + }, + "e990a024-HF_maskByFeature": { + "name": "HF_maskByFeature", + "inputs": { + "HeightField": { + "link": "main:3f62ec77-ParticlesTwoWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "height_layer": { + "link": null, + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "mask_layer": { + "link": null, + "type": "string", + "default-value": "cliff", + "control": { + "name": "String" + } + }, + "smooth_radius": { + "link": null, + "type": "int", + "default-value": 1, + "control": { + "name": "Integer" + } + }, + "use_slope": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "min_slopeangle": { + "link": null, + "type": "float", + "default-value": 70.0, + "control": { + "name": "Float" + } + }, + "max_slopeangle": { + "link": null, + "type": "float", + "default-value": 90.0, + "control": { + "name": "Float" + } + }, + "use_direction": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "goal_angle": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "angle_spread": { + "link": null, + "type": "float", + "default-value": 30.0, + "control": { + "name": "Float" + } + }, + "use_height": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "min_height": { + "link": null, + "type": "float", + "default-value": 0.5, + "control": { + "name": "Float" + } + }, + "max_height": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "HeightField": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2735.5107421875, + 1912.7569580078126 + ], + "options": [ + "collapsed" + ] + }, + "3f62ec77-ParticlesTwoWrangle": { + "name": "ParticlesTwoWrangle", + "inputs": { + "prim": { + "link": null, + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "prim2": { + "link": null, + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@cliff_clr = @@clr\n", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1872.5606689453126, + 1915.8123779296876 + ], + "options": [ + "collapsed" + ] + }, + "468a0749-HF_Mask_by_Curvature": { + "name": "HF_Mask_by_Curvature", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "main:bf422d64-HF_Terrace:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Curvature Layer Name": { + "link": null, + "type": "string", + "default-value": "k", + "control": { + "name": "String" + } + }, + "Curvature Ramp": { + "link": null, + "type": "curve", + "default-value": { + "objectType": "curve", + "timeline": false, + "x": { + "range": { + "xFrom": 0.0, + "xTo": 1.0, + "yFrom": 0.0, + "yTo": 1.0 + }, + "nodes": [ + { + "x": 0.0, + "y": 0.0, + "left-handle": { + "x": 0.0, + "y": 0.0 + }, + "right-handle": { + "x": 0.0, + "y": 0.0 + }, + "type": "asym", + "lockX": false, + "lockY": false + }, + { + "x": 1.0, + "y": 1.0, + "left-handle": { + "x": 0.0, + "y": 0.0 + }, + "right-handle": { + "x": 0.0, + "y": 0.0 + }, + "type": "asym", + "lockX": false, + "lockY": false + } + ] + } + }, + "control": { + "name": "Curve" + } + }, + "Max Curvature": { + "link": null, + "type": "float", + "default-value": 0.699999988079071, + "control": { + "name": "Float" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + -11808.98828125, + 2535.1845703125 + ], + "options": [] + }, + "8b0dc117-HF_Terrain_Noise": { + "name": "HF_Terrain_Noise", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "main:b065bb19-HF_Curl_Noise:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Noise Apply Layer": { + "link": null, + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "Noise Type": { + "link": null, + "type": "string", + "default-value": "perlin", + "control": { + "name": "Enum", + "items": [ + "perlin", + "simplex", + "worley" + ] + } + }, + "Fractal Type": { + "link": null, + "type": "string", + "default-value": "hybridTerrain", + "control": { + "name": "Enum", + "items": [ + "fBm", + "hybridTerrain", + "ridgedTerrain" + ] + } + }, + "Noise Offset": { + "link": null, + "type": "vec3f", + "default-value": [ + 600.0, + 0.0, + 1200.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Noise Element Size": { + "link": null, + "type": "vec3f", + "default-value": [ + 300.0, + 300.0, + 300.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Noise Amp": { + "link": null, + "type": "vec3f", + "default-value": [ + 100.0, + 100.0, + 100.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Noise Octaves": { + "link": null, + "type": "float", + "default-value": 8.0, + "control": { + "name": "Float" + } + }, + "Noise Roughness": { + "link": null, + "type": "float", + "default-value": 0.5, + "control": { + "name": "Float" + } + }, + "Mask": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Use Mask": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Mask Layer": { + "link": null, + "type": "string", + "default-value": "mask", + "control": { + "name": "String" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + -13569.6181640625, + 2386.892333984375 + ], + "options": [] + }, + "ac3be71d-HF_Visual_Mask": { + "name": "HF_Visual_Mask", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "main:468a0749-HF_Mask_by_Curvature:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Clone HF for Visualize": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "Mask Name": { + "link": null, + "type": "string", + "default-value": "k", + "control": { + "name": "String" + } + }, + "Reset Base Color": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "Visualize Color": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + } + }, + "params": {}, + "outputs": { + "HeightField": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -10751.1005859375, + 2496.525634765625 + ], + "options": [] + }, + "bf422d64-HF_Terrace": { + "name": "HF_Terrace", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Min Height": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "Use Mask Layer": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Slop Mask Smoothing": { + "link": null, + "type": "int", + "default-value": 3, + "control": { + "name": "Integer" + } + }, + "Mask": { + "link": null, + "type": "string", + "default-value": "mask", + "control": { + "name": "String" + } + }, + "Mesa Max Slope": { + "link": null, + "type": "float", + "default-value": 5.0, + "control": { + "name": "Float" + } + }, + "Fade Ramp": { + "link": null, + "type": "curve", + "default-value": { + "objectType": "curve", + "timeline": true, + "x": { + "range": { + "xFrom": 0.0, + "xTo": 1.0, + "yFrom": 0.0, + "yTo": 1.0 + }, + "nodes": [ + { + "x": 0.0, + "y": 0.0, + "left-handle": { + "x": 0.0, + "y": 0.0 + }, + "right-handle": { + "x": 0.0, + "y": 0.0 + }, + "type": "asym", + "lockX": false, + "lockY": false + }, + { + "x": 1.0, + "y": 1.0, + "left-handle": { + "x": 0.0, + "y": 0.0 + }, + "right-handle": { + "x": 0.0, + "y": 0.0 + }, + "type": "asym", + "lockX": false, + "lockY": false + } + ] + } + }, + "control": { + "name": "Curve" + } + }, + "Step Offset": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "Step Ramp": { + "link": null, + "type": "curve", + "default-value": { + "objectType": "curve", + "timeline": true, + "x": { + "range": { + "xFrom": 0.0, + "xTo": 1.0, + "yFrom": 0.0, + "yTo": 1.0 + }, + "nodes": [ + { + "x": 0.0, + "y": 1.0, + "left-handle": { + "x": 0.0, + "y": 0.0 + }, + "right-handle": { + "x": 0.0, + "y": 0.0 + }, + "type": "asym", + "lockX": false, + "lockY": false + }, + { + "x": 1.0, + "y": 0.0, + "left-handle": { + "x": 0.0, + "y": 0.0 + }, + "right-handle": { + "x": 0.0, + "y": 0.0 + }, + "type": "asym", + "lockX": false, + "lockY": false + } + ] + } + }, + "control": { + "name": "Curve" + } + }, + "Output Cliff Layer": { + "link": null, + "type": "string", + "default-value": "cliffs", + "control": { + "name": "String" + } + }, + "Smooth Edges": { + "link": null, + "type": "int", + "default-value": 5, + "control": { + "name": "Integer" + } + }, + "Step Size": { + "link": null, + "type": "float", + "default-value": 30.0, + "control": { + "name": "Float" + } + }, + "Fade": { + "link": null, + "type": "float", + "default-value": 0.5, + "control": { + "name": "Float" + } + }, + "Min Mask": { + "link": null, + "type": "float", + "default-value": 0.009999999776482582, + "control": { + "name": "Float" + } + }, + "Max Height": { + "link": null, + "type": "float", + "default-value": 150.0, + "control": { + "name": "Float" + } + }, + "HeightField": { + "link": "main:8b0dc117-HF_Terrain_Noise:[node]/outputs/HeightField", + "type": "string", + "default-value": null, + "control": { + "name": "String" + } + }, + "Cliff Min Slope": { + "link": null, + "type": "float", + "default-value": 60.0, + "control": { + "name": "Float" + } + }, + "Output Mesa Layer": { + "link": null, + "type": "string", + "default-value": "mesa", + "control": { + "name": "String" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + -12648.14453125, + 2526.561279296875 + ], + "options": [] + }, + "910fef97-HF_Visual_Mask": { + "name": "HF_Visual_Mask", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "main:bf422d64-HF_Terrace:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Clone HF for Visualize": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "Mask Name": { + "link": null, + "type": "string", + "default-value": "cliffs", + "control": { + "name": "String" + } + }, + "Reset Base Color": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "Visualize Color": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + } + }, + "params": {}, + "outputs": { + "HeightField": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -11696.650390625, + 3109.468994140625 + ], + "options": [] + }, + "e6d2ebb8-HF_Visual_Mask": { + "name": "HF_Visual_Mask", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "main:f9856348-HF_Blur_OpenCV:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Clone HF for Visualize": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "Mask Name": { + "link": null, + "type": "string", + "default-value": "mask", + "control": { + "name": "String" + } + }, + "Reset Base Color": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "Visualize Color": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + } + }, + "params": {}, + "outputs": { + "HeightField": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -14933.1220703125, + -263.0923767089844 + ], + "options": [] + }, + "f939160-VisPrimAttrValue_Modify": { + "name": "VisPrimAttrValue_Modify", + "inputs": { + "prim": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "attrName": { + "link": null, + "type": "string", + "default-value": "pos", + "control": { + "name": "String" + } + }, + "scale": { + "link": null, + "type": "float", + "default-value": 0.05000000074505806, + "control": { + "name": "Float" + } + }, + "precision": { + "link": null, + "type": "int", + "default-value": 3, + "control": { + "name": "Integer" + } + }, + "includeSelf": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "dotDecoration": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "outPrim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -16021.8203125, + -329.2039794921875 + ], + "options": [] + }, + "42551510-PrimitiveColorByHeatmap": { + "name": "PrimitiveColorByHeatmap", + "inputs": { + "prim": { + "link": "main:bb32b9fc-erode_terrainHiMeLo:[node]/outputs/prim_2DGrid", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "attrName2": { + "link": "main:9fcfbe11-MakeString:[node]/outputs/value", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "heatmap": { + "link": "main:16b1a356-MakeHeatmap:[node]/outputs/heatmap", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "min": { + "link": "main:801aa418-GetUserData:[node]/outputs/data", + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "max": { + "link": "main:c8ff69d-GetUserData:[node]/outputs/data", + "type": "float", + "default-value": 150.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "attrName": { + "value": "pos", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -15876.755859375, + 3796.290771484375 + ], + "options": [] + }, + "9fcfbe11-MakeString": { + "name": "MakeString", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "value": { + "value": "height", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "value": { + "type": "string" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -17376.697265625, + 2953.943603515625 + ], + "options": [] + }, + "e17be76f-CompImport": { + "name": "CompImport", + "inputs": { + "prim": { + "link": "main:42551510-PrimitiveColorByHeatmap:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "attrName": { + "link": null, + "type": "string", + "default-value": "clr", + "control": { + "name": "String" + } + }, + "Remap": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "RemapRange": { + "link": null, + "type": "vec2f", + "default-value": [ + 0.0, + 1.0 + ], + "control": { + "name": "Float Vector 2" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -15081.0029296875, + 3945.177001953125 + ], + "options": [] + }, + "16b1a356-MakeHeatmap": { + "name": "MakeHeatmap", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "_RAMPS": { + "value": "6\n0.00324675 0.447059 0.294118 0.176471\n0.146104 0.87451 0.603922 0.4\n0.347403 0.545098 0.364706 0.258824\n0.663961 0.572549 0.423529 0.247059\n0.819805 0.392157 0.27451 0.117647\n0.970779 0.160784 0.152941 0.145098\n", + "control": { + "name": "Color" + }, + "type": "" + }, + "nres": { + "value": 1024, + "control": { + "name": "Integer" + }, + "type": "int" + } + }, + "outputs": { + "heatmap": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -17586.42578125, + 3338.931640625 + ], + "options": [] + }, + "194f5805-NumericFloat": { + "name": "NumericFloat", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "value": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + } + }, + "outputs": { + "value": { + "type": "float" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -20213.541015625, + 5127.31640625 + ], + "options": [] + }, + "27c45a7-SetUserData": { + "name": "SetUserData", + "inputs": { + "object": { + "link": "main:2a9b29d-SetUserData:[node]/outputs/object", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "data": { + "link": "main:194f5805-NumericFloat:[node]/outputs/value", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "me", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "object": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -19676.236328125, + 4690.49072265625 + ], + "options": [] + }, + "2a9b29d-SetUserData": { + "name": "SetUserData", + "inputs": { + "object": { + "link": "main:f930861c-HF_Project:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "data": { + "link": "main:194f5805-NumericFloat:[node]/outputs/value", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "hi", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "object": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -20610.01953125, + 4623.08056640625 + ], + "options": [] + }, + "801aa418-GetUserData": { + "name": "GetUserData", + "inputs": { + "object": { + "link": "main:bb32b9fc-erode_terrainHiMeLo:[node]/outputs/prim_2DGrid", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "lo", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "data": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -17605.4609375, + 3808.4765625 + ], + "options": [] + }, + "bb32b9fc-erode_terrainHiMeLo": { + "name": "erode_terrainHiMeLo", + "inputs": { + "prim_2DGrid": { + "link": "main:f6af1c78-SetUserData:[node]/outputs/object", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "attrName": { + "link": null, + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim_2DGrid": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -18360.73046875, + 4657.7587890625 + ], + "options": [] + }, + "c8ff69d-GetUserData": { + "name": "GetUserData", + "inputs": { + "object": { + "link": "main:bb32b9fc-erode_terrainHiMeLo:[node]/outputs/prim_2DGrid", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "hi", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "data": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -16826.90234375, + 4314.9443359375 + ], + "options": [ + "collapsed" + ] + }, + "f6af1c78-SetUserData": { + "name": "SetUserData", + "inputs": { + "object": { + "link": "main:27c45a7-SetUserData:[node]/outputs/object", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "data": { + "link": "main:194f5805-NumericFloat:[node]/outputs/value", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "lo", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "object": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -19022.912109375, + 4678.431640625 + ], + "options": [] + }, + "6fc47154-CompImport": { + "name": "CompImport", + "inputs": { + "prim": { + "link": "main:8395c0d6-Erode_Granular_Slump_Flow:[node]/outputs/HeightField 高度场地形", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "attrName": { + "link": null, + "type": "string", + "default-value": "mask", + "control": { + "name": "String" + } + }, + "Remap": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "RemapRange": { + "link": null, + "type": "vec2f", + "default-value": [ + 0.0, + 1.0 + ], + "control": { + "name": "Float Vector 2" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 5474.728130479809, + 2217.3966217071535 + ], + "options": [] + }, + "30f9bf60-ImageEditContrast": { + "name": "ImageEditContrast", + "inputs": { + "image": { + "link": "main:6fc47154-CompImport:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "ContrastRatio": { + "link": null, + "type": "float", + "default-value": 2.0480000972747804, + "control": { + "name": "Float" + } + }, + "ContrastCenter": { + "link": null, + "type": "float", + "default-value": 0.04500000178813934, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 6273.439067979809, + 2246.004165652466 + ], + "options": [] + }, + "483e7f8f-CompImport": { + "name": "CompImport", + "inputs": { + "prim": { + "link": "main:edf4cdef-PrimitiveColorByHeatmap:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "attrName": { + "link": null, + "type": "string", + "default-value": "clr", + "control": { + "name": "String" + } + }, + "Remap": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "RemapRange": { + "link": null, + "type": "vec2f", + "default-value": [ + 0.0, + 1.0 + ], + "control": { + "name": "Float Vector 2" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 13220.146484375, + 467.7252502441406 + ], + "options": [] + }, + "6641d16e-NumericFloat": { + "name": "NumericFloat", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "value": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + } + }, + "outputs": { + "value": { + "type": "float" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 6690.50830078125, + 1139.8663330078126 + ], + "options": [ + "collapsed" + ] + }, + "7d4d917f-GetUserData": { + "name": "GetUserData", + "inputs": { + "object": { + "link": "main:a9682e02-erode_terrainHiMeLo:[node]/outputs/prim_2DGrid", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "lo", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "data": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 10972.990018717312, + 1406.9609321599579 + ], + "options": [] + }, + "8fa64704-SetUserData": { + "name": "SetUserData", + "inputs": { + "object": { + "link": "main:8395c0d6-Erode_Granular_Slump_Flow:[node]/outputs/HeightField 高度场地形", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "data": { + "link": "main:6641d16e-NumericFloat:[node]/outputs/value", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "hi", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "object": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 7215.4765625, + 494.2491455078125 + ], + "options": [] + }, + "927d9a5e-GetUserData": { + "name": "GetUserData", + "inputs": { + "object": { + "link": "main:a9682e02-erode_terrainHiMeLo:[node]/outputs/prim_2DGrid", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "hi", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "data": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 10839.358995310457, + 882.8566032414499 + ], + "options": [] + }, + "a6bd2a0f-SetUserData": { + "name": "SetUserData", + "inputs": { + "object": { + "link": "main:8fa64704-SetUserData:[node]/outputs/object", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "data": { + "link": "main:6641d16e-NumericFloat:[node]/outputs/value", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "me", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "object": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 8002.626953125, + 494.2266845703125 + ], + "options": [] + }, + "a9682e02-erode_terrainHiMeLo": { + "name": "erode_terrainHiMeLo", + "inputs": { + "prim_2DGrid": { + "link": "main:bf8f17d4-SetUserData:[node]/outputs/object", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "attrName": { + "link": null, + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim_2DGrid": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 9537.0859375, + 515.8678588867188 + ], + "options": [] + }, + "bf8f17d4-SetUserData": { + "name": "SetUserData", + "inputs": { + "object": { + "link": "main:a6bd2a0f-SetUserData:[node]/outputs/object", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "data": { + "link": "main:6641d16e-NumericFloat:[node]/outputs/value", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "lo", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "object": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 8720.7392578125, + 513.0869140625 + ], + "options": [] + }, + "d664ba60-MakeString": { + "name": "MakeString", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "value": { + "value": "height", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "value": { + "type": "string" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 11231.716656422674, + -333.83821187918559 + ], + "options": [] + }, + "edf4cdef-PrimitiveColorByHeatmap": { + "name": "PrimitiveColorByHeatmap", + "inputs": { + "prim": { + "link": "main:a9682e02-erode_terrainHiMeLo:[node]/outputs/prim_2DGrid", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "attrName2": { + "link": "main:d664ba60-MakeString:[node]/outputs/value", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "heatmap": { + "link": "main:82807137-MakeHeatmap:[node]/outputs/heatmap", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "min": { + "link": "main:7d4d917f-GetUserData:[node]/outputs/data", + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "max": { + "link": "main:927d9a5e-GetUserData:[node]/outputs/data", + "type": "float", + "default-value": 150.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "attrName": { + "value": "pos", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 12347.6826171875, + 490.8674011230469 + ], + "options": [] + }, + "babe10e0-MakeHeatmap": { + "name": "MakeHeatmap", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "_RAMPS": { + "value": "6\n0.00324675 0.168627 0.0705882 0.027451\n0.146104 0.733333 0.32549 0.133333\n0.347403 0.258824 0.109804 0.054902\n0.663961 0.286275 0.14902 0.0509804\n0.819805 0.129412 0.0627451 0.0117647\n0.970779 0.0235294 0.0196078 0.0196078\n", + "control": { + "name": "Color" + }, + "type": "" + }, + "nres": { + "value": 1024, + "control": { + "name": "Integer" + }, + "type": "int" + } + }, + "outputs": { + "heatmap": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 10427.496463680283, + -209.5907562235393 + ], + "options": [ + "collapsed" + ] + }, + "57ce5d2e-ImageFlip": { + "name": "ImageFlip", + "inputs": { + "image": { + "link": "main:30f9bf60-ImageEditContrast:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "flipX": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "flipY": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 7254.745708604809, + 2270.361099246216 + ], + "options": [] + }, + "fb2a1209-ImageRotate": { + "name": "ImageRotate", + "inputs": { + "image": { + "link": "main:57ce5d2e-ImageFlip:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "rotate": { + "link": null, + "type": "float", + "default-value": -90.0, + "control": { + "name": "Float" + } + }, + "alpha": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 8162.8799168092959, + 2286.9074351871188 + ], + "options": [] + }, + "e358e5c1-Blend": { + "name": "Blend", + "inputs": { + "Foreground": { + "link": "main:acef424a-ImageColor:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Background": { + "link": "main:371c3de6-Blend:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Mask": { + "link": "main:7a8750d7-PortalOut:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Blending Mode": { + "link": null, + "type": "enum Normal Add Subtract Multiply Max(Lighten) Min(Darken) Overlay Screen SoftLight Difference Divide Average", + "default-value": "Normal", + "control": { + "name": "Enum", + "items": [ + "Normal", + "Add", + "Subtract", + "Multiply", + "Max(Lighten)", + "Min(Darken)", + "Overlay", + "Screen", + "SoftLight", + "Difference", + "Divide", + "Average" + ] + } + }, + "Mask Opacity": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "Foreground Opacity": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "Background Opacity": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 17070.431640625, + 1284.8319091796876 + ], + "options": [] + }, + "74c2abc0-ImageToNormalMap": { + "name": "ImageToNormalMap", + "inputs": { + "image": { + "link": "main:6d0e1a44-ImageRotate:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "strength": { + "link": null, + "type": "float", + "default-value": 450.0, + "control": { + "name": "Float" + } + }, + "InvertR": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "InvertG": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 8138.720676411642, + -1984.5821848979145 + ], + "options": [] + }, + "34a9bff9-CompImport": { + "name": "CompImport", + "inputs": { + "prim": { + "link": "main:8395c0d6-Erode_Granular_Slump_Flow:[node]/outputs/HeightField 高度场地形", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "attrName": { + "link": null, + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "Remap": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "RemapRange": { + "link": null, + "type": "vec2f", + "default-value": [ + 0.0, + 1.0 + ], + "control": { + "name": "Float Vector 2" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 6107.386203755392, + -2044.2350169291645 + ], + "options": [] + }, + "6d0e1a44-ImageRotate": { + "name": "ImageRotate", + "inputs": { + "image": { + "link": "main:c0f1a0b4-ImageFlip:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "rotate": { + "link": null, + "type": "float", + "default-value": -90.0, + "control": { + "name": "Float" + } + }, + "alpha": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 7408.705539692892, + -1994.9406443705707 + ], + "options": [] + }, + "c0f1a0b4-ImageFlip": { + "name": "ImageFlip", + "inputs": { + "image": { + "link": "main:34a9bff9-CompImport:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "flipX": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "flipY": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 6732.533176411642, + -2021.6623240580707 + ], + "options": [] + }, + "43935217-ImageEditInvert": { + "name": "ImageEditInvert", + "inputs": { + "image": { + "link": "main:294690d7-CompExtractChanel:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 9944.973117817892, + -1898.383942710414 + ], + "options": [] + }, + "294690d7-CompExtractChanel": { + "name": "CompExtractChanel", + "inputs": { + "image": { + "link": "main:74c2abc0-ImageToNormalMap:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "channel": { + "link": null, + "type": "enum R G B A", + "default-value": "G", + "control": { + "name": "Enum", + "items": [ + "R", + "G", + "B", + "A" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 8978.752414692892, + -1940.805695640102 + ], + "options": [] + }, + "26e0623d-ImageLevels": { + "name": "ImageLevels", + "inputs": { + "image": { + "link": "main:eeb1a0d7-PortalOut:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Input Levels": { + "link": null, + "type": "vec2f", + "default-value": [ + 152.0, + 255.0 + ], + "control": { + "name": "Float Vector 2" + } + }, + "gamma": { + "link": null, + "type": "float", + "default-value": 1.2000000476837159, + "control": { + "name": "Float" + } + }, + "Output Levels": { + "link": null, + "type": "vec2f", + "default-value": [ + 0.0, + 255.0 + ], + "control": { + "name": "Float Vector 2" + } + }, + "channel": { + "link": null, + "type": "enum RGB R G B", + "default-value": "RGB", + "control": { + "name": "Enum", + "items": [ + "RGB", + "R", + "G", + "B" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 22391.3671875, + 2041.2393798828126 + ], + "options": [] + }, + "9776b5ba-CompBlur": { + "name": "CompBlur", + "inputs": { + "image": { + "link": "main:74a2edcb-ImageEdgeDetectMarr:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "strength": { + "link": null, + "type": "int", + "default-value": 20, + "control": { + "name": "Integer" + } + }, + "kerneltop": { + "link": null, + "type": "vec3f", + "default-value": [ + 0.07500000298023224, + 0.12399999797344208, + 0.07500000298023224 + ], + "control": { + "name": "Float Vector 3" + } + }, + "kernelmid": { + "link": null, + "type": "vec3f", + "default-value": [ + 0.12399999797344208, + 0.20999999344348908, + 0.12399999797344208 + ], + "control": { + "name": "Float Vector 3" + } + }, + "kernelbot": { + "link": null, + "type": "vec3f", + "default-value": [ + 0.07500000298023224, + 0.12399999797344208, + 0.07500000298023224 + ], + "control": { + "name": "Float Vector 3" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 19471.725444317563, + 185.70754131197988 + ], + "options": [] + }, + "385db45-Blend": { + "name": "Blend", + "inputs": { + "Foreground": { + "link": "main:a07ade6f-ImageColor:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Background": { + "link": "main:e358e5c1-Blend:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Mask": { + "link": "main:9776b5ba-CompBlur:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Blending Mode": { + "link": null, + "type": "enum Normal Add Subtract Multiply Max(Lighten) Min(Darken) Overlay Screen SoftLight Difference Divide Average", + "default-value": "Subtract", + "control": { + "name": "Enum", + "items": [ + "Normal", + "Add", + "Subtract", + "Multiply", + "Max(Lighten)", + "Min(Darken)", + "Overlay", + "Screen", + "SoftLight", + "Difference", + "Divide", + "Average" + ] + } + }, + "Mask Opacity": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "Foreground Opacity": { + "link": null, + "type": "float", + "default-value": 0.41999998688697817, + "control": { + "name": "Float" + } + }, + "Background Opacity": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 20730.30078125, + 1230.570068359375 + ], + "options": [] + }, + "7af874d-CompImport": { + "name": "CompImport", + "inputs": { + "prim": { + "link": "main:8395c0d6-Erode_Granular_Slump_Flow:[node]/outputs/HeightField 高度场地形", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "attrName": { + "link": null, + "type": "string", + "default-value": "debris", + "control": { + "name": "String" + } + }, + "Remap": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "RemapRange": { + "link": null, + "type": "vec2f", + "default-value": [ + 0.0, + 1.0 + ], + "control": { + "name": "Float Vector 2" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 5496.546368624229, + 3614.3075680527765 + ], + "options": [] + }, + "fe127df5-ReadImageFile": { + "name": "ReadImageFile", + "inputs": { + "path": { + "link": null, + "type": "readpath", + "default-value": "C:/Users/YingQ/Downloads/height.png", + "control": { + "name": "read path" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 17954.660991192563, + 441.30995830416739 + ], + "options": [ + "collapsed" + ] + }, + "998251b3-Blend": { + "name": "Blend", + "inputs": { + "Foreground": { + "link": "main:6be7e7a0-ImageColor:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Background": { + "link": "main:31c625ac-Blend:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Mask": { + "link": "main:a6270327-PortalOut:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Blending Mode": { + "link": null, + "type": "enum Normal Add Subtract Multiply Max(Lighten) Min(Darken) Overlay Screen SoftLight Difference Divide Average", + "default-value": "Normal", + "control": { + "name": "Enum", + "items": [ + "Normal", + "Add", + "Subtract", + "Multiply", + "Max(Lighten)", + "Min(Darken)", + "Overlay", + "Screen", + "SoftLight", + "Difference", + "Divide", + "Average" + ] + } + }, + "Mask Opacity": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "Foreground Opacity": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "Background Opacity": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 25427.79301602262, + 1219.1572423200406 + ], + "options": [ + "VIEW" + ] + }, + "4e18b12d-ReadImageFile": { + "name": "ReadImageFile", + "inputs": { + "path": { + "link": null, + "type": "readpath", + "default-value": "C:/Users/YingQ/Downloads/resultbright.png", + "control": { + "name": "read path" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 18789.23077237317, + 1659.4583561613852 + ], + "options": [ + "collapsed" + ] + }, + "62cc924d-ReadImageFile": { + "name": "ReadImageFile", + "inputs": { + "path": { + "link": null, + "type": "readpath", + "default-value": "C:/Users/YingQ/Downloads/normal.png", + "control": { + "name": "read path" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 21661.415253210413, + 2318.4573903344637 + ], + "options": [ + "collapsed" + ] + }, + "74a2edcb-ImageEdgeDetectMarr": { + "name": "ImageEdgeDetectMarr", + "inputs": { + "image": { + "link": "main:66934e07-PortalOut:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "kernelDiameter": { + "link": null, + "type": "float", + "default-value": 9.0, + "control": { + "name": "Float" + } + }, + "sigma": { + "link": null, + "type": "float", + "default-value": 0.7250000238418579, + "control": { + "name": "Float" + } + }, + "threshold": { + "link": null, + "type": "float", + "default-value": -0.5, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 18636.649272442563, + 168.25694927096425 + ], + "options": [] + }, + "31c625ac-Blend": { + "name": "Blend", + "inputs": { + "Foreground": { + "link": "main:be004699-ImageColor:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Background": { + "link": "main:385db45-Blend:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Mask": { + "link": "main:26e0623d-ImageLevels:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Blending Mode": { + "link": null, + "type": "enum Normal Add Subtract Multiply Max(Lighten) Min(Darken) Overlay Screen SoftLight Difference Divide Average", + "default-value": "Add", + "control": { + "name": "Enum", + "items": [ + "Normal", + "Add", + "Subtract", + "Multiply", + "Max(Lighten)", + "Min(Darken)", + "Overlay", + "Screen", + "SoftLight", + "Difference", + "Divide", + "Average" + ] + } + }, + "Mask Opacity": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "Foreground Opacity": { + "link": null, + "type": "float", + "default-value": 0.8999999761581421, + "control": { + "name": "Float" + } + }, + "Background Opacity": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 23015.30078125, + 1227.604248046875 + ], + "options": [] + }, + "82807137-MakeHeatmap": { + "name": "MakeHeatmap", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "_RAMPS": { + "value": "6\n0.00322567 0.168627 0.0705882 0.027451\n0.146104 0.733333 0.32549 0.133333\n0.347403 0.258824 0.109804 0.054902\n0.663961 0.286275 0.14902 0.0509804\n0.819805 0.133333 0.0666667 0.0156863\n0.970779 0.0392157 0.0352941 0.0235294\n", + "control": { + "name": "Color" + }, + "type": "" + }, + "nres": { + "value": 1024, + "control": { + "name": "Integer" + }, + "type": "int" + } + }, + "outputs": { + "heatmap": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 11222.912575016364, + 57.60244251448444 + ], + "options": [] + }, + "6753becc-ReadImageFile": { + "name": "ReadImageFile", + "inputs": { + "path": { + "link": null, + "type": "readpath", + "default-value": "C:/Users/YingQ/Downloads/debris1.png", + "control": { + "name": "read path" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 24592.725847431673, + 2072.708300821752 + ], + "options": [ + "collapsed" + ] + }, + "9210b3a9-HF_maskByFeature": { + "name": "HF_maskByFeature", + "inputs": { + "HeightField": { + "link": "main:94ba361b-HF_Resample:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "height_layer": { + "link": null, + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "mask_layer": { + "link": null, + "type": "string", + "default-value": "mask", + "control": { + "name": "String" + } + }, + "smooth_radius": { + "link": null, + "type": "int", + "default-value": 1, + "control": { + "name": "Integer" + } + }, + "use_slope": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "min_slopeangle": { + "link": null, + "type": "float", + "default-value": 60.0, + "control": { + "name": "Float" + } + }, + "max_slopeangle": { + "link": null, + "type": "float", + "default-value": 90.0, + "control": { + "name": "Float" + } + }, + "use_direction": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "goal_angle": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "angle_spread": { + "link": null, + "type": "float", + "default-value": 30.0, + "control": { + "name": "Float" + } + }, + "use_height": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "min_height": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "max_height": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "HeightField": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 6074.343844594419, + -3434.983667858659 + ], + "options": [] + }, + "f41ba9c2-CompImport": { + "name": "CompImport", + "inputs": { + "prim": { + "link": "main:75d44f39-PrimitiveDelAttrs:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "attrName": { + "link": null, + "type": "string", + "default-value": "cliffs", + "control": { + "name": "String" + } + }, + "Remap": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "RemapRange": { + "link": null, + "type": "vec2f", + "default-value": [ + 0.0, + 1.0 + ], + "control": { + "name": "Float Vector 2" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 8427.843450753637, + -3039.764970139985 + ], + "options": [] + }, + "75d44f39-PrimitiveDelAttrs": { + "name": "PrimitiveDelAttrs", + "inputs": { + "prim": { + "link": "main:4195a6de-EvalCurveOnPrimAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "invert": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "names": { + "link": null, + "type": "string", + "default-value": "mask", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 7500.117770375669, + -3048.2169442258466 + ], + "options": [] + }, + "4195a6de-EvalCurveOnPrimAttr": { + "name": "EvalCurveOnPrimAttr", + "inputs": { + "prim": { + "link": "main:9210b3a9-HF_maskByFeature:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "attrName": { + "link": null, + "type": "string", + "default-value": "mask", + "control": { + "name": "String" + } + }, + "dstName": { + "link": null, + "type": "string", + "default-value": "cliffs", + "control": { + "name": "String" + } + }, + "curve": { + "link": null, + "type": "curve", + "default-value": { + "objectType": "curve", + "timeline": false, + "x": { + "range": { + "xFrom": 0.0, + "xTo": 1.0, + "yFrom": 0.0, + "yTo": 1.0 + }, + "nodes": [ + { + "x": 0.0, + "y": 0.0, + "left-handle": { + "x": 0.0, + "y": 0.0 + }, + "right-handle": { + "x": 0.0, + "y": 0.0 + }, + "type": "asym", + "lockX": false, + "lockY": false + }, + { + "x": 0.12282113821138204, + "y": 0.9999999999999996, + "left-handle": { + "x": 0.0, + "y": 0.0 + }, + "right-handle": { + "x": 0.0, + "y": 0.0 + }, + "type": "aligned", + "lockX": false, + "lockY": false + }, + { + "x": 1.0, + "y": 1.0, + "left-handle": { + "x": 0.0, + "y": 0.0 + }, + "right-handle": { + "x": 0.0, + "y": 0.0 + }, + "type": "asym", + "lockX": false, + "lockY": false + } + ] + } + }, + "control": { + "name": "Curve" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 6749.391696156919, + -3052.201929577409 + ], + "options": [] + }, + "524b5093-ReadImageFile": { + "name": "ReadImageFile", + "inputs": { + "path": { + "link": null, + "type": "readpath", + "default-value": "C:/Users/YingQ/Downloads/origincliffs.png", + "control": { + "name": "read path" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 9052.372054387553, + -3045.6636576164967 + ], + "options": [ + "collapsed" + ] + }, + "371c3de6-Blend": { + "name": "Blend", + "inputs": { + "Foreground": { + "link": "main:9d4799e2-ImageColor:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Background": { + "link": "main:9e8d359a-ImageRotate:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Mask": { + "link": "main:84d2f8bd-CompBlur:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Blending Mode": { + "link": null, + "type": "enum Normal Add Subtract Multiply Max(Lighten) Min(Darken) Overlay Screen SoftLight Difference Divide Average", + "default-value": "Multiply", + "control": { + "name": "Enum", + "items": [ + "Normal", + "Add", + "Subtract", + "Multiply", + "Max(Lighten)", + "Min(Darken)", + "Overlay", + "Screen", + "SoftLight", + "Difference", + "Divide", + "Average" + ] + } + }, + "Mask Opacity": { + "link": null, + "type": "float", + "default-value": 0.3700000047683716, + "control": { + "name": "Float" + } + }, + "Foreground Opacity": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "Background Opacity": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 15973.501953125, + 72.35922241210938 + ], + "options": [] + }, + "9e8d359a-ImageRotate": { + "name": "ImageRotate", + "inputs": { + "image": { + "link": "main:ac875ba-ImageFlip:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "rotate": { + "link": null, + "type": "float", + "default-value": -90.0, + "control": { + "name": "Float" + } + }, + "alpha": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 14376.9794921875, + 463.8327331542969 + ], + "options": [] + }, + "ac875ba-ImageFlip": { + "name": "ImageFlip", + "inputs": { + "image": { + "link": "main:483e7f8f-CompImport:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "flipX": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "flipY": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 13825.966796875, + 471.95880126953127 + ], + "options": [] + }, + "2e4cf0d-WriteImageFile": { + "name": "WriteImageFile", + "inputs": { + "image": { + "link": "main:9e8d359a-ImageRotate:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "path": { + "link": null, + "type": "writepath", + "default-value": "C:/Users/YingQ/Downloads/origincolor", + "control": { + "name": "write path" + } + }, + "type": { + "link": null, + "type": "enum png jpg exr pfm", + "default-value": "png", + "control": { + "name": "Enum", + "items": [ + "png", + "jpg", + "exr", + "pfm" + ] + } + }, + "mask": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "gamma": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 15018.979842939978, + 788.4717347441542 + ], + "options": [ + "collapsed" + ] + }, + "c03d5394-ReadImageFile": { + "name": "ReadImageFile", + "inputs": { + "path": { + "link": null, + "type": "readpath", + "default-value": "C:/Users/YingQ/Downloads/origincolor.png", + "control": { + "name": "read path" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 15021.66028890568, + 905.6964276445685 + ], + "options": [ + "collapsed" + ] + }, + "a07ade6f-ImageColor": { + "name": "ImageColor", + "inputs": { + "Color": { + "link": null, + "type": "vec3f", + "default-value": [ + 0.23000000417232514, + 0.1459999978542328, + 0.06199999898672104 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Size": { + "link": null, + "type": "vec2i", + "default-value": [ + 4000, + 4000 + ], + "control": { + "name": "Integer Vector 2" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 19999.20825601321, + 799.8431819650368 + ], + "options": [] + }, + "be004699-ImageColor": { + "name": "ImageColor", + "inputs": { + "Color": { + "link": null, + "type": "vec3f", + "default-value": [ + 0.5899999737739563, + 0.23600000143051148, + 0.0714000016450882 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Size": { + "link": null, + "type": "vec2i", + "default-value": [ + 4000, + 4000 + ], + "control": { + "name": "Integer Vector 2" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 22221.47662607015, + 898.0122193767379 + ], + "options": [] + }, + "6be7e7a0-ImageColor": { + "name": "ImageColor", + "inputs": { + "Color": { + "link": null, + "type": "vec3f", + "default-value": [ + 0.8579999804496765, + 0.5360000133514404, + 0.2150000035762787 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Size": { + "link": null, + "type": "vec2i", + "default-value": [ + 4000, + 4000 + ], + "control": { + "name": "Integer Vector 2" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 24687.726391040072, + 901.9808197718612 + ], + "options": [] + }, + "9d4799e2-ImageColor": { + "name": "ImageColor", + "inputs": { + "Color": { + "link": null, + "type": "vec3f", + "default-value": [ + 0.1899999976158142, + 0.15299999713897706, + 0.11599999666213989 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Size": { + "link": null, + "type": "vec2i", + "default-value": [ + 4000, + 4000 + ], + "control": { + "name": "Integer Vector 2" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 15299.396886086128, + -489.26482518922696 + ], + "options": [] + }, + "acef424a-ImageColor": { + "name": "ImageColor", + "inputs": { + "Color": { + "link": null, + "type": "vec3f", + "default-value": [ + 0.5690000057220459, + 0.3610000014305115, + 0.15299999713897706 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Size": { + "link": null, + "type": "vec2i", + "default-value": [ + 4000, + 4000 + ], + "control": { + "name": "Integer Vector 2" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 16118.8720703125, + 1083.5849609375 + ], + "options": [] + }, + "ad746be4-PortalIn": { + "name": "PortalIn", + "inputs": { + "port": { + "link": "main:43935217-ImageEditInvert:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "name": { + "value": "normal", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 10617.052219380392, + -1896.874421226039 + ], + "options": [] + }, + "eeb1a0d7-PortalOut": { + "name": "PortalOut", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "name": { + "value": "normal", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 21657.537009354804, + 1956.9505789309879 + ], + "options": [] + }, + "39416111-ImageFlip": { + "name": "ImageFlip", + "inputs": { + "image": { + "link": "main:7af874d-CompImport:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "flipX": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "flipY": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 6454.285371077087, + 3660.8693363268687 + ], + "options": [] + }, + "bbf3af5d-ImageRotate": { + "name": "ImageRotate", + "inputs": { + "image": { + "link": "main:39416111-ImageFlip:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "rotate": { + "link": null, + "type": "float", + "default-value": -90.0, + "control": { + "name": "Float" + } + }, + "alpha": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 7321.560591605299, + 3651.229333737834 + ], + "options": [] + }, + "7d5f9c43-PortalIn": { + "name": "PortalIn", + "inputs": { + "port": { + "link": "main:bbf3af5d-ImageRotate:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "name": { + "value": "debris", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 8335.334575175231, + 3721.3324745016836 + ], + "options": [] + }, + "a6270327-PortalOut": { + "name": "PortalOut", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "name": { + "value": "debris", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 24600.02896297715, + 1698.5883065025665 + ], + "options": [] + }, + "5153d3f3-ImageFlip": { + "name": "ImageFlip", + "inputs": { + "image": { + "link": "main:81a6d5fe-CompImport:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "flipX": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "flipY": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 7065.331157123077, + -869.6755719982275 + ], + "options": [] + }, + "81a6d5fe-CompImport": { + "name": "CompImport", + "inputs": { + "prim": { + "link": "main:8395c0d6-Erode_Granular_Slump_Flow:[node]/outputs/HeightField 高度场地形", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "attrName": { + "link": null, + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "Remap": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "RemapRange": { + "link": null, + "type": "vec2f", + "default-value": [ + 0.0, + 1.0 + ], + "control": { + "name": "Float Vector 2" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 6339.386743627176, + -905.4662159976342 + ], + "options": [] + }, + "eb454b88-ImageRotate": { + "name": "ImageRotate", + "inputs": { + "image": { + "link": "main:5153d3f3-ImageFlip:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "rotate": { + "link": null, + "type": "float", + "default-value": -90.0, + "control": { + "name": "Float" + } + }, + "alpha": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 7748.288255218518, + -860.9418172327073 + ], + "options": [] + }, + "859d8d35-WriteImageFile": { + "name": "WriteImageFile", + "inputs": { + "image": { + "link": "main:eb454b88-ImageRotate:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "path": { + "link": null, + "type": "writepath", + "default-value": "C:/Users/YingQ/Downloads/height", + "control": { + "name": "write path" + } + }, + "type": { + "link": null, + "type": "enum png jpg exr pfm", + "default-value": "png", + "control": { + "name": "Enum", + "items": [ + "png", + "jpg", + "exr", + "pfm" + ] + } + }, + "mask": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "gamma": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 8416.602888958863, + -865.482451190167 + ], + "options": [ + "collapsed" + ] + }, + "587280c8-PortalIn": { + "name": "PortalIn", + "inputs": { + "port": { + "link": "main:eb454b88-ImageRotate:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "name": { + "value": "height", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 9039.614738832053, + -801.201703070125 + ], + "options": [] + }, + "22059544-Blend": { + "name": "Blend", + "inputs": { + "Foreground": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Background": { + "link": "main:e17be76f-CompImport:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Mask": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Blending Mode": { + "link": null, + "type": "enum Normal Add Subtract Multiply Max(Lighten) Min(Darken) Overlay Screen SoftLight Difference Divide Average", + "default-value": "Multiply", + "control": { + "name": "Enum", + "items": [ + "Normal", + "Add", + "Subtract", + "Multiply", + "Max(Lighten)", + "Min(Darken)", + "Overlay", + "Screen", + "SoftLight", + "Difference", + "Divide", + "Average" + ] + } + }, + "Mask Opacity": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "Foreground Opacity": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "Background Opacity": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -13426.15234375, + 4193.89306640625 + ], + "options": [] + }, + "fb926413-MakeHeatmap": { + "name": "MakeHeatmap", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "_RAMPS": { + "value": "6\n0.00324675 0.447059 0.294118 0.176471\n0.146104 0.87451 0.603922 0.4\n0.347403 0.545098 0.364706 0.258824\n0.663961 0.572549 0.423529 0.247059\n0.819805 0.392157 0.27451 0.117647\n0.970779 0.160784 0.152941 0.145098\n", + "control": { + "name": "Color" + }, + "type": "" + }, + "nres": { + "value": 1024, + "control": { + "name": "Integer" + }, + "type": "int" + } + }, + "outputs": { + "heatmap": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 10424.600400565558, + -49.30776450827193 + ], + "options": [ + "collapsed" + ] + }, + "66934e07-PortalOut": { + "name": "PortalOut", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "name": { + "value": "height", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 18009.739116192563, + 105.82567485690174 + ], + "options": [] + }, + "53288191-ReadImageFile": { + "name": "ReadImageFile", + "inputs": { + "path": { + "link": null, + "type": "readpath", + "default-value": "C:/Users/YingQ/Downloads/HFflow1.png", + "control": { + "name": "read path" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 16133.57971535913, + 1847.8064492423415 + ], + "options": [ + "collapsed" + ] + }, + "1f812419-PortalIn": { + "name": "PortalIn", + "inputs": { + "port": { + "link": "main:fb2a1209-ImageRotate:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "name": { + "value": "flow", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 9183.218695478718, + 2384.812008619174 + ], + "options": [] + }, + "7a8750d7-PortalOut": { + "name": "PortalOut", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "name": { + "value": "flow", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 16136.366458523307, + 1504.7681878225617 + ], + "options": [] + }, + "6f88255c-ImageErode": { + "name": "ImageErode", + "inputs": { + "image": { + "link": "main:f41ba9c2-CompImport:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "strength": { + "link": null, + "type": "int", + "default-value": 1, + "control": { + "name": "Integer" + } + }, + "kernel_width": { + "link": null, + "type": "int", + "default-value": 5, + "control": { + "name": "Integer" + } + }, + "kernel_height": { + "link": null, + "type": "int", + "default-value": 5, + "control": { + "name": "Integer" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 9630.115312983744, + -3001.2806509477525 + ], + "options": [] + }, + "84d2f8bd-CompBlur": { + "name": "CompBlur", + "inputs": { + "image": { + "link": "main:6f88255c-ImageErode:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "strength": { + "link": null, + "type": "int", + "default-value": 5, + "control": { + "name": "Integer" + } + }, + "kerneltop": { + "link": null, + "type": "vec3f", + "default-value": [ + 0.07500000298023224, + 0.12399999797344208, + 0.07500000298023224 + ], + "control": { + "name": "Float Vector 3" + } + }, + "kernelmid": { + "link": null, + "type": "vec3f", + "default-value": [ + 0.12399999797344208, + 0.20399999618530274, + 0.12399999797344208 + ], + "control": { + "name": "Float Vector 3" + } + }, + "kernelbot": { + "link": null, + "type": "vec3f", + "default-value": [ + 0.07500000298023224, + 0.12399999797344208, + 0.07500000298023224 + ], + "control": { + "name": "Float Vector 3" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 10383.017966607113, + -3011.9495311913826 + ], + "options": [] + } + }, + "view_rect": {} + }, + "Erode_Precipitation": { + "nodes": { + "5de487eb-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "Erode_Precipitation:f0807eed-ParticlesWrangle:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_water = max(0.0, @_water + @_added_water)\n\n", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1800.0, + 200.0 + ], + "options": [] + }, + "f0807eed-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "Erode_Precipitation:24a08689-zs_erode_value2cond:[node]/outputs/prim_2DGrid", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_added_water = $amount * @cond", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": "Erode_Precipitation:61313c29-MakeDict:[node]/outputs/dict", + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 900.0, + 200.0 + ], + "options": [] + }, + "844fcbd8-SubCategory": { + "name": "SubCategory", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "name": { + "value": "wbStdGraph", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 2800.0, + 1800.0 + ], + "options": [] + }, + "9a6f675f-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "amount", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 900.0, + -700.0 + ], + "options": [] + }, + "83a90248-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": false, + "control": { + "name": "Boolean" + }, + "type": "bool" + }, + "name": { + "value": "Visual Water Enable", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "bool", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 4200.0, + 500.0 + ], + "options": [] + }, + "b8dcf308-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "density", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 0.0, + -800.0 + ], + "options": [] + }, + "921e9ec2-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "seed", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 0.0, + -300.0 + ], + "options": [] + }, + "2739fa6-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": null, + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "HeightField", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1600.0, + 200.0 + ], + "options": [] + }, + "5fe7e249-SubOutput": { + "name": "SubOutput", + "inputs": { + "port": { + "link": "Erode_Precipitation:2e3c8427-PrimitiveDelAttrs:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": null, + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "HeightField", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 6700.0, + 200.0 + ], + "options": [] + }, + "61313c29-MakeDict": { + "name": "MakeDict", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "amount": { + "property": "editable", + "link": "Erode_Precipitation:9a6f675f-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "obj1": { + "property": "editable", + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "dict": { + "type": "dict" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 900.0, + -200.0 + ], + "options": [], + "dict_keys": { + "inputs": [ + "amount", + "obj1" + ], + "outputs": [] + } + }, + "24a08689-zs_erode_value2cond": { + "name": "zs_erode_value2cond", + "inputs": { + "prim_2DGrid": { + "link": "Erode_Precipitation:963094c1-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "value": { + "link": "Erode_Precipitation:b8dcf308-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "seed": { + "link": "Erode_Precipitation:921e9ec2-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim_2DGrid": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 0.0, + 200.0 + ], + "options": [] + }, + "2e3c8427-PrimitiveDelAttrs": { + "name": "PrimitiveDelAttrs", + "inputs": { + "prim": { + "link": "Erode_Precipitation:1437b759-IfElse:[node]/outputs/result", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "invert": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "names": { + "link": null, + "type": "string", + "default-value": "cond _added_water _water", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 5800.0, + 200.0 + ], + "options": [] + }, + "1437b759-IfElse": { + "name": "IfElse", + "inputs": { + "true": { + "link": "Erode_Precipitation:c192c62f-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "false": { + "link": "Erode_Precipitation:1c6fb697-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "cond": { + "link": "Erode_Precipitation:83a90248-SubInput:[node]/outputs/port", + "type": "bool", + "default-value": null, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "result": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 5100.0, + 200.0 + ], + "options": [] + }, + "c192c62f-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "Erode_Precipitation:1c6fb697-Route:[node]/outputs/output", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@pos.y = @height + 1 * @debris + 1 * @water + 0 * @sediment\n\nclr_water = vec3(0.15,0.15,0.9)\ncoef_water = min(1, (@_water / 1.0))\n\n@clr = (1 - coef_water) * @clr + coef_water * clr_water", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 4200.0, + -400.0 + ], + "options": [] + }, + "73216233-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "Erode_Precipitation:5de487eb-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": null, + "type": "string", + "default-value": "_water", + "control": { + "name": "String" + } + }, + "targetName": { + "link": "Erode_Precipitation:8bea828-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "_material", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2700.0, + 200.0 + ], + "options": [] + }, + "8bea828-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "water", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Water Layer Name", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 300.0, + -1800.0 + ], + "options": [] + }, + "963094c1-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "Erode_Precipitation:2739fa6-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": "Erode_Precipitation:8bea828-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "s", + "control": { + "name": "String" + } + }, + "targetName": { + "link": null, + "type": "string", + "default-value": "_water", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -800.0, + 200.0 + ], + "options": [] + }, + "1c6fb697-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "Erode_Precipitation:73216233-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3500.0, + 200.0 + ], + "options": [] + } + }, + "view_rect": {} + }, + "Erode_Thermal": { + "nodes": { + "3da98ee3-NumericOperator": { + "name": "NumericOperator", + "inputs": { + "lhs": { + "link": "Erode_Thermal:9e107c56-SubInput:[node]/outputs/port", + "type": "NumericObject", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "rhs": { + "link": null, + "type": "NumericObject", + "default-value": 10.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "op_type": { + "value": "mul", + "control": { + "name": "Enum", + "items": [ + "add", + "sub", + "mul", + "div", + "mod", + "and", + "or", + "xor", + "shr", + "shl", + "cmpge", + "cmple", + "cmpgt", + "cmplt", + "cmpne", + "cmpeq", + "land", + "lor", + "pos", + "neg", + "inv", + "not", + "atan2", + "pow", + "max", + "min", + "fmod", + "dot", + "cross", + "distance", + "length", + "normalize", + "abs", + "sqrt", + "sin", + "cos", + "tan", + "asin", + "acos", + "atan", + "exp", + "log", + "floor", + "ceil", + "toint", + "tofloat", + "anytrue", + "alltrue", + "copy", + "copyr" + ] + }, + "type": "enum add sub mul div mod and or xor shr shl cmpge cmple cmpgt cmplt cmpne cmpeq land lor pos neg inv not atan2 pow max min fmod dot cross distance length normalize abs sqrt sin cos tan asin acos atan exp log floor ceil toint tofloat anytrue alltrue copy copyr" + } + }, + "outputs": { + "ret": { + "type": "NumericObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2200.0, + -400.0 + ], + "options": [] + }, + "41406718-BeginFor": { + "name": "BeginFor", + "inputs": { + "count": { + "link": "Erode_Thermal:9e107c56-SubInput:[node]/outputs/port", + "type": "int", + "default-value": 10, + "control": { + "name": "Integer" + } + }, + "SRC": { + "link": "Erode_Thermal:e3950dbc-CopyAllUserData:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "index": { + "type": "int" + }, + "FOR": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1700.0, + 2100.0 + ], + "options": [] + }, + "475a8fdc-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "Erode_Thermal:d17d7016-PrimCopyAttr:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_temp_height = 0\n@_temp_debris = 0", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1600.0, + 1700.0 + ], + "options": [] + }, + "559756a7-EndFor": { + "name": "EndFor", + "inputs": { + "FOR": { + "link": "Erode_Thermal:41406718-BeginFor:[node]/outputs/FOR", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": "Erode_Thermal:ae4497af-EndFor:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 8400.0, + 2200.0 + ], + "options": [] + }, + "7d882f30-erode_rand_color": { + "name": "erode_rand_color", + "inputs": { + "iterations": { + "link": "Erode_Thermal:9e107c56-SubInput:[node]/outputs/port", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "iter": { + "link": "Erode_Thermal:6f8419a9-NumericOperator:[node]/outputs/ret", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "list": { + "type": "list" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3600.0, + -600.0 + ], + "options": [] + }, + "ae4497af-EndFor": { + "name": "EndFor", + "inputs": { + "FOR": { + "link": "Erode_Thermal:ce7eceac-BeginFor:[node]/outputs/FOR", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": "Erode_Thermal:23cd24ce-zs_tumble_material_erosion:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 7800.0, + 1800.0 + ], + "options": [] + }, + "ce7eceac-BeginFor": { + "name": "BeginFor", + "inputs": { + "count": { + "link": null, + "type": "int", + "default-value": 8, + "control": { + "name": "Integer" + } + }, + "SRC": { + "link": "Erode_Thermal:e0c29a8b-erode_rand_dir:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "index": { + "type": "int" + }, + "FOR": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 4500.0, + 1700.0 + ], + "options": [] + }, + "cfce706a-erode_rand_dir": { + "name": "erode_rand_dir", + "inputs": { + "iterations": { + "link": "Erode_Thermal:9e107c56-SubInput:[node]/outputs/port", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "iter": { + "link": "Erode_Thermal:6f8419a9-NumericOperator:[node]/outputs/ret", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "SRC": { + "link": "Erode_Thermal:7d882f30-erode_rand_color:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "list": { + "type": "list" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3600.0, + -200.0 + ], + "options": [] + }, + "e0c29a8b-erode_rand_dir": { + "name": "erode_rand_dir", + "inputs": { + "iterations": { + "link": "Erode_Thermal:3da98ee3-NumericOperator:[node]/outputs/ret", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "iter": { + "link": "Erode_Thermal:6f8419a9-NumericOperator:[node]/outputs/ret", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "SRC": { + "link": "Erode_Thermal:cfce706a-erode_rand_dir:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "list": { + "type": "list" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3600.0, + 200.0 + ], + "options": [] + }, + "292c1ff-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 9676.7900390625, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "seed", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 800.0, + 300.0 + ], + "options": [] + }, + "61a40294-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": null, + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "HeightField", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -3900.0, + 1700.0 + ], + "options": [] + }, + "62cc4385-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.0, + "control": { + "name": "Integer" + }, + "type": "int" + }, + "name": { + "value": "openborder", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "int", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3100.0, + 2800.0 + ], + "options": [] + }, + "61ec5add-SubOutput": { + "name": "SubOutput", + "inputs": { + "port": { + "link": "Erode_Thermal:6d79222c-IfElse:[node]/outputs/result", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": null, + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "HeightField", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 15100.0, + 1800.0 + ], + "options": [] + }, + "71e722de-SubCategory": { + "name": "SubCategory", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "name": { + "value": "wbStdGraph", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 9500.0, + 3500.0 + ], + "options": [] + }, + "9e107c56-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 10.0, + "control": { + "name": "Integer" + }, + "type": "int" + }, + "name": { + "value": "iterations", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "int", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 800.0, + 800.0 + ], + "options": [] + }, + "a7811b41-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "gridbias", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 6100.0, + 3300.0 + ], + "options": [] + }, + "d54b1953-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 35.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "cut_angle", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 4600.0, + 3300.0 + ], + "options": [] + }, + "fe68866d-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 1.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "global_erosionrate", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 4100.0, + 2800.0 + ], + "options": [] + }, + "17d3acd2-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.029999999329447748, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "erosionrate", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 4600.0, + 2800.0 + ], + "options": [] + }, + "feeb9285-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.4000000059604645, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "erodability", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 5100.0, + 3300.0 + ], + "options": [] + }, + "9f470d07-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.699999988079071, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "removalrate", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 5600.0, + 3300.0 + ], + "options": [] + }, + "8b71bc24-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 5.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "maxdepth", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3600.0, + 2800.0 + ], + "options": [] + }, + "6d79222c-IfElse": { + "name": "IfElse", + "inputs": { + "true": { + "link": "Erode_Thermal:6e03573c-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "false": { + "link": "Erode_Thermal:8c11e0-PrimitiveDelAttrs:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "cond": { + "link": "Erode_Thermal:7f02ab06-SubInput:[node]/outputs/port", + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "result": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 14400.0, + 1800.0 + ], + "options": [] + }, + "6e03573c-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "Erode_Thermal:8c11e0-PrimitiveDelAttrs:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "clr_debris = vec3(0.8,0.6,0.4)\ncoef_debris = min(1, (@debris / 0.65))\n\n@clr = (1 - coef_debris) * @clr + coef_debris * clr_debris", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 13500.0, + 1100.0 + ], + "options": [] + }, + "7f02ab06-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": false, + "control": { + "name": "Boolean" + }, + "type": "bool" + }, + "name": { + "value": "Visual Enable", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "bool", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 13500.0, + 2100.0 + ], + "options": [] + }, + "6f8419a9-NumericOperator": { + "name": "NumericOperator", + "inputs": { + "lhs": { + "link": "Erode_Thermal:41406718-BeginFor:[node]/outputs/index", + "type": "NumericObject", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "rhs": { + "link": null, + "type": "NumericObject", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "op_type": { + "value": "add", + "control": { + "name": "Enum", + "items": [ + "add", + "sub", + "mul", + "div", + "mod", + "and", + "or", + "xor", + "shr", + "shl", + "cmpge", + "cmple", + "cmpgt", + "cmplt", + "cmpne", + "cmpeq", + "land", + "lor", + "pos", + "neg", + "inv", + "not", + "atan2", + "pow", + "max", + "min", + "fmod", + "dot", + "cross", + "distance", + "length", + "normalize", + "abs", + "sqrt", + "sin", + "cos", + "tan", + "asin", + "acos", + "atan", + "exp", + "log", + "floor", + "ceil", + "toint", + "tofloat", + "anytrue", + "alltrue", + "copy", + "copyr" + ] + }, + "type": "enum add sub mul div mod and or xor shr shl cmpge cmple cmpgt cmplt cmpne cmpeq land lor pos neg inv not atan2 pow max min fmod dot cross distance length normalize abs sqrt sin cos tan asin acos atan exp log floor ceil toint tofloat anytrue alltrue copy copyr" + } + }, + "outputs": { + "ret": { + "type": "NumericObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2500.0, + 1600.0 + ], + "options": [] + }, + "8c11e0-PrimitiveDelAttrs": { + "name": "PrimitiveDelAttrs", + "inputs": { + "prim": { + "link": "Erode_Thermal:338bf310-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "invert": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "names": { + "link": null, + "type": "string", + "default-value": "_debris _height _temp_height _temp_debris cutangle_mask erodability_mask removalrate_mask gridbias_mask", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 12600.0, + 1700.0 + ], + "options": [] + }, + "f08745d9-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "Erode_Thermal:475a8fdc-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -800.0, + 1700.0 + ], + "options": [] + }, + "59afa25e-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "Erode_Thermal:61a40294-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": "Erode_Thermal:76c31eec-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "s", + "control": { + "name": "String" + } + }, + "targetName": { + "link": null, + "type": "string", + "default-value": "_height", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -3200.0, + 1700.0 + ], + "options": [] + }, + "76c31eec-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "height", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Height Layer Name", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3600.0, + -2900.0 + ], + "options": [] + }, + "d17d7016-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "Erode_Thermal:59afa25e-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": "Erode_Thermal:b1435cef-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "s", + "control": { + "name": "String" + } + }, + "targetName": { + "link": null, + "type": "string", + "default-value": "_debris", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -2400.0, + 1700.0 + ], + "options": [] + }, + "b1435cef-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "debris", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Debris Layer Name", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 4400.0, + -2900.0 + ], + "options": [] + }, + "338bf310-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "Erode_Thermal:cfd0cc2a-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": null, + "type": "string", + "default-value": "_debris", + "control": { + "name": "String" + } + }, + "targetName": { + "link": "Erode_Thermal:b1435cef-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "_debris", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 11800.0, + 1700.0 + ], + "options": [] + }, + "cfd0cc2a-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "Erode_Thermal:6b6d7cff-ExtractPrimitiveFromZSParticles:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": null, + "type": "string", + "default-value": "_height", + "control": { + "name": "String" + } + }, + "targetName": { + "link": "Erode_Thermal:76c31eec-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "_height", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 11000.0, + 1700.0 + ], + "options": [] + }, + "205ac7bb-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "Erode_Thermal:23cd24ce-zs_tumble_material_erosion:[node]/outputs/zs_HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": "Erode_Thermal:559756a7-EndFor:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 9100.0, + 1700.0 + ], + "options": [] + }, + "1276ab6e-ZSParticlesWrangler": { + "name": "ZSParticlesWrangler", + "inputs": { + "ZSParticles": { + "link": "Erode_Thermal:e3950dbc-CopyAllUserData:[node]/outputs/dst", + "type": "ZenoParticles", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_temp_height = @_height\n@_temp_debris = @_debris", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": "Erode_Thermal:ce7eceac-BeginFor:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "ZSParticles": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 5900.0, + -300.0 + ], + "options": [] + }, + "e3950dbc-CopyAllUserData": { + "name": "CopyAllUserData", + "inputs": { + "dst": { + "link": "Erode_Thermal:792484df-PointsToZSParticles2:[node]/outputs/ZSParticles", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "src": { + "link": "Erode_Thermal:f08745d9-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "dst": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 600.0, + 1700.0 + ], + "options": [] + }, + "23cd24ce-zs_tumble_material_erosion": { + "name": "zs_tumble_material_erosion", + "inputs": { + "zs_HeightField": { + "link": "Erode_Thermal:1276ab6e-ZSParticlesWrangler:[node]/outputs/ZSParticles", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "perm": { + "link": "Erode_Thermal:7d882f30-erode_rand_color:[node]/outputs/list", + "type": "ListObject", + "default-value": null, + "control": { + "name": "" + } + }, + "p_dirs": { + "link": "Erode_Thermal:cfce706a-erode_rand_dir:[node]/outputs/list", + "type": "ListObject", + "default-value": null, + "control": { + "name": "" + } + }, + "x_dirs": { + "link": "Erode_Thermal:e0c29a8b-erode_rand_dir:[node]/outputs/list", + "type": "ListObject", + "default-value": null, + "control": { + "name": "" + } + }, + "seed": { + "link": "Erode_Thermal:292c1ff-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 9676.7900390625, + "control": { + "name": "Float" + } + }, + "iterations": { + "link": "Erode_Thermal:9e107c56-SubInput:[node]/outputs/port", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "iter": { + "link": "Erode_Thermal:6f8419a9-NumericOperator:[node]/outputs/ret", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "i": { + "link": "Erode_Thermal:ce7eceac-BeginFor:[node]/outputs/index", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "openborder": { + "link": "Erode_Thermal:62cc4385-SubInput:[node]/outputs/port", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "maxdepth": { + "link": "Erode_Thermal:8b71bc24-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 5.0, + "control": { + "name": "Float" + } + }, + "global_erosionrate": { + "link": "Erode_Thermal:fe68866d-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "erosionrate": { + "link": "Erode_Thermal:17d3acd2-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 0.029999999329447748, + "control": { + "name": "Float" + } + }, + "cutangle": { + "link": "Erode_Thermal:d54b1953-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 35.0, + "control": { + "name": "Float" + } + }, + "cutangle_mask_layer": { + "link": null, + "type": "string", + "default-value": "cutangle_mask", + "control": { + "name": "String" + } + }, + "erodability": { + "link": "Erode_Thermal:feeb9285-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 0.4000000059604645, + "control": { + "name": "Float" + } + }, + "erodability_mask_layer": { + "link": null, + "type": "string", + "default-value": "erodability_mask", + "control": { + "name": "String" + } + }, + "removalrate": { + "link": "Erode_Thermal:9f470d07-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 0.699999988079071, + "control": { + "name": "Float" + } + }, + "removalrate_mask_layer": { + "link": null, + "type": "string", + "default-value": "removalrate_mask", + "control": { + "name": "String" + } + }, + "gridbias": { + "link": "Erode_Thermal:a7811b41-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "gridbias_mask_layer": { + "link": null, + "type": "string", + "default-value": "gridbias_mask", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "zs_HeightField": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 6800.0, + 600.0 + ], + "options": [] + }, + "8c020f21-UpdatePrimitiveAttrFromZSParticles": { + "name": "UpdatePrimitiveAttrFromZSParticles", + "inputs": { + "ZSParticles": { + "link": "Erode_Thermal:205ac7bb-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "attr": { + "value": "_height", + "control": { + "name": "String" + }, + "type": "string" + }, + "location": { + "value": "vert", + "control": { + "name": "Enum", + "items": [ + "vert", + "quad" + ] + }, + "type": "enum vert quad" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec3f" + ] + }, + "type": "enum float vec3f" + } + }, + "outputs": { + "ZSParticles": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 9700.0, + 1700.0 + ], + "options": [] + }, + "7c7ddfb5-UpdatePrimitiveAttrFromZSParticles": { + "name": "UpdatePrimitiveAttrFromZSParticles", + "inputs": { + "ZSParticles": { + "link": "Erode_Thermal:8c020f21-UpdatePrimitiveAttrFromZSParticles:[node]/outputs/ZSParticles", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "attr": { + "value": "_debris", + "control": { + "name": "String" + }, + "type": "string" + }, + "location": { + "value": "vert", + "control": { + "name": "Enum", + "items": [ + "vert", + "quad" + ] + }, + "type": "enum vert quad" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec3f" + ] + }, + "type": "enum float vec3f" + } + }, + "outputs": { + "ZSParticles": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 9700.0, + 2200.0 + ], + "options": [] + }, + "792484df-PointsToZSParticles2": { + "name": "PointsToZSParticles2", + "inputs": { + "prim": { + "link": "Erode_Thermal:f08745d9-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "add_customed_attr": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "selected_custom_attr_tags": { + "link": null, + "type": "string", + "default-value": "_height _debris _temp_height _temp_debris weight", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "ZSParticles": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -200.0, + 2000.0 + ], + "options": [] + }, + "6b6d7cff-ExtractPrimitiveFromZSParticles": { + "name": "ExtractPrimitiveFromZSParticles", + "inputs": { + "ZSParticles": { + "link": "Erode_Thermal:7c7ddfb5-UpdatePrimitiveAttrFromZSParticles:[node]/outputs/ZSParticles", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 10800.0, + 2300.0 + ], + "options": [] + } + }, + "view_rect": {} + }, + "Erode_Slump_Debris": { + "nodes": { + "10b74d41-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 10.0, + "control": { + "name": "Integer" + }, + "type": "int" + }, + "name": { + "value": "iterations", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "int", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2200.0, + 1000.0 + ], + "options": [] + }, + "29ae00a5-IfElse": { + "name": "IfElse", + "inputs": { + "true": { + "link": "Erode_Slump_Debris:a28bedac-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "false": { + "link": "Erode_Slump_Debris:66e2df04-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "cond": { + "link": "Erode_Slump_Debris:e9114f2a-SubInput:[node]/outputs/port", + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "result": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 15900.0, + 1500.0 + ], + "options": [] + }, + "2b48a579-EndFor": { + "name": "EndFor", + "inputs": { + "FOR": { + "link": "Erode_Slump_Debris:af813e77-BeginFor:[node]/outputs/FOR", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": "Erode_Slump_Debris:dd608a58-zs_tumble_material_v2:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 9000.0, + 1600.0 + ], + "options": [] + }, + "2c99d3d0-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "gridbias", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 5532.29443359375, + 2753.7021484375 + ], + "options": [] + }, + "301ddd2e-SubOutput": { + "name": "SubOutput", + "inputs": { + "port": { + "link": "Erode_Slump_Debris:5b7069fe-PrimitiveDelAttrs:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": null, + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "HeightField", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 17500.0, + 1500.0 + ], + "options": [] + }, + "3228615-erode_rand_dir": { + "name": "erode_rand_dir", + "inputs": { + "iterations": { + "link": "Erode_Slump_Debris:10b74d41-SubInput:[node]/outputs/port", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "iter": { + "link": "Erode_Slump_Debris:4d708ed2-NumericOperator:[node]/outputs/ret", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "SRC": { + "link": "Erode_Slump_Debris:bc7f3592-erode_rand_color:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "list": { + "type": "list" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 5000.0, + -100.0 + ], + "options": [] + }, + "4d687b34-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "flow_rate", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 7003.7578125, + 3733.472900390625 + ], + "options": [] + }, + "4e8529a7-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "Erode_Slump_Debris:dd82e2b8-PrimCopyAttr:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_temp_material = 0", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1039.8702392578126, + 1481.130126953125 + ], + "options": [] + }, + "93360393-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "seed", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2200.0, + 500.0 + ], + "options": [] + }, + "9a5fd700-NumericOperator": { + "name": "NumericOperator", + "inputs": { + "lhs": { + "link": "Erode_Slump_Debris:10b74d41-SubInput:[node]/outputs/port", + "type": "NumericObject", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "rhs": { + "link": null, + "type": "NumericObject", + "default-value": 10.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "op_type": { + "value": "mul", + "control": { + "name": "Enum", + "items": [ + "add", + "sub", + "mul", + "div", + "mod", + "and", + "or", + "xor", + "shr", + "shl", + "cmpge", + "cmple", + "cmpgt", + "cmplt", + "cmpne", + "cmpeq", + "land", + "lor", + "pos", + "neg", + "inv", + "not", + "atan2", + "pow", + "max", + "min", + "fmod", + "dot", + "cross", + "distance", + "length", + "normalize", + "abs", + "sqrt", + "sin", + "cos", + "tan", + "asin", + "acos", + "atan", + "exp", + "log", + "floor", + "ceil", + "toint", + "tofloat", + "anytrue", + "alltrue", + "copy", + "copyr" + ] + }, + "type": "enum add sub mul div mod and or xor shr shl cmpge cmple cmpgt cmplt cmpne cmpeq land lor pos neg inv not atan2 pow max min fmod dot cross distance length normalize abs sqrt sin cos tan asin acos atan exp log floor ceil toint tofloat anytrue alltrue copy copyr" + } + }, + "outputs": { + "ret": { + "type": "NumericObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3700.0, + -200.0 + ], + "options": [] + }, + "a28bedac-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "Erode_Slump_Debris:66e2df04-PrimCopyAttr:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "clr_debris = vec3(0,1,0)\ncoef_debris = min(1, (@_material * 1))\n\n@clr = (1 - coef_debris) * @clr + coef_debris * clr_debris", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 15000.0, + 900.0 + ], + "options": [] + }, + "a3ea7167-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.0, + "control": { + "name": "Integer" + }, + "type": "int" + }, + "name": { + "value": "openborder", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "int", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 5051.10986328125, + 2436.960693359375 + ], + "options": [] + }, + "af813e77-BeginFor": { + "name": "BeginFor", + "inputs": { + "count": { + "link": null, + "type": "int", + "default-value": 8, + "control": { + "name": "Integer" + } + }, + "SRC": { + "link": "Erode_Slump_Debris:fd3dd570-erode_rand_dir:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "index": { + "type": "int" + }, + "FOR": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 5700.0, + 1500.0 + ], + "options": [] + }, + "bc7f3592-erode_rand_color": { + "name": "erode_rand_color", + "inputs": { + "iterations": { + "link": "Erode_Slump_Debris:10b74d41-SubInput:[node]/outputs/port", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "iter": { + "link": "Erode_Slump_Debris:4d708ed2-NumericOperator:[node]/outputs/ret", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "list": { + "type": "list" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 5000.0, + -500.0 + ], + "options": [] + }, + "cd5b33a1-BeginFor": { + "name": "BeginFor", + "inputs": { + "count": { + "link": "Erode_Slump_Debris:10b74d41-SubInput:[node]/outputs/port", + "type": "int", + "default-value": 10, + "control": { + "name": "Integer" + } + }, + "SRC": { + "link": "Erode_Slump_Debris:c2f3144f-Route:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "index": { + "type": "int" + }, + "FOR": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3230.521484375, + 1924.2589111328126 + ], + "options": [] + }, + "e9114f2a-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": false, + "control": { + "name": "Boolean" + }, + "type": "bool" + }, + "name": { + "value": "Visual Enable", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "bool", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 15000.0, + 1900.0 + ], + "options": [] + }, + "f376e089-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": null, + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "HeightField", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -4800.0, + 1500.0 + ], + "options": [] + }, + "f8e41e02-EndFor": { + "name": "EndFor", + "inputs": { + "FOR": { + "link": "Erode_Slump_Debris:cd5b33a1-BeginFor:[node]/outputs/FOR", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": "Erode_Slump_Debris:2b48a579-EndFor:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 9790.716796875, + 2045.2655029296876 + ], + "options": [] + }, + "fd3dd570-erode_rand_dir": { + "name": "erode_rand_dir", + "inputs": { + "iterations": { + "link": "Erode_Slump_Debris:9a5fd700-NumericOperator:[node]/outputs/ret", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "iter": { + "link": "Erode_Slump_Debris:4d708ed2-NumericOperator:[node]/outputs/ret", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "SRC": { + "link": "Erode_Slump_Debris:3228615-erode_rand_dir:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "list": { + "type": "list" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 5000.0, + 300.0 + ], + "options": [] + }, + "a50f42cb-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "quant_amt", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 6503.6552734375, + 3411.85009765625 + ], + "options": [] + }, + "312b790a-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "repose_angle", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 6016.658203125, + 3082.056640625 + ], + "options": [] + }, + "4d708ed2-NumericOperator": { + "name": "NumericOperator", + "inputs": { + "lhs": { + "link": "Erode_Slump_Debris:cd5b33a1-BeginFor:[node]/outputs/index", + "type": "NumericObject", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "rhs": { + "link": null, + "type": "NumericObject", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "op_type": { + "value": "add", + "control": { + "name": "Enum", + "items": [ + "add", + "sub", + "mul", + "div", + "mod", + "and", + "or", + "xor", + "shr", + "shl", + "cmpge", + "cmple", + "cmpgt", + "cmplt", + "cmpne", + "cmpeq", + "land", + "lor", + "pos", + "neg", + "inv", + "not", + "atan2", + "pow", + "max", + "min", + "fmod", + "dot", + "cross", + "distance", + "length", + "normalize", + "abs", + "sqrt", + "sin", + "cos", + "tan", + "asin", + "acos", + "atan", + "exp", + "log", + "floor", + "ceil", + "toint", + "tofloat", + "anytrue", + "alltrue", + "copy", + "copyr" + ] + }, + "type": "enum add sub mul div mod and or xor shr shl cmpge cmple cmpgt cmplt cmpne cmpeq land lor pos neg inv not atan2 pow max min fmod dot cross distance length normalize abs sqrt sin cos tan asin acos atan exp log floor ceil toint tofloat anytrue alltrue copy copyr" + } + }, + "outputs": { + "ret": { + "type": "NumericObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3900.0, + 1400.0 + ], + "options": [] + }, + "5b7069fe-PrimitiveDelAttrs": { + "name": "PrimitiveDelAttrs", + "inputs": { + "prim": { + "link": "Erode_Slump_Debris:29ae00a5-IfElse:[node]/outputs/result", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "invert": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "names": { + "link": null, + "type": "string", + "default-value": "_height _stability _material _temp_material", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 16600.0, + 1500.0 + ], + "options": [] + }, + "299411fe-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "material", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Material Layer Name to Slump", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 6000.0, + -2700.0 + ], + "options": [] + }, + "dd82e2b8-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "Erode_Slump_Debris:b1ff5892-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": "Erode_Slump_Debris:299411fe-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "s", + "control": { + "name": "String" + } + }, + "targetName": { + "link": null, + "type": "string", + "default-value": "_material", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1800.0, + 1500.0 + ], + "options": [] + }, + "66e2df04-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "Erode_Slump_Debris:3ab10e70-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": null, + "type": "string", + "default-value": "_material", + "control": { + "name": "String" + } + }, + "targetName": { + "link": "Erode_Slump_Debris:299411fe-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "_material", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 14200.0, + 1500.0 + ], + "options": [] + }, + "c2f3144f-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "Erode_Slump_Debris:260121bd-CopyAllUserData:[node]/outputs/dst", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2200.0, + 1500.0 + ], + "options": [] + }, + "13187b2d-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "Erode_Slump_Debris:dd608a58-zs_tumble_material_v2:[node]/outputs/zs_HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": "Erode_Slump_Debris:f8e41e02-EndFor:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 10600.0, + 1500.0 + ], + "options": [] + }, + "3ab10e70-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "Erode_Slump_Debris:c9b2e309-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": null, + "type": "string", + "default-value": "_height", + "control": { + "name": "String" + } + }, + "targetName": { + "link": "Erode_Slump_Debris:89e7b83-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "_material", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 13400.0, + 1500.0 + ], + "options": [] + }, + "89e7b83-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "height", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Height Layer Name", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 5300.0, + -2700.0 + ], + "options": [] + }, + "b1ff5892-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "Erode_Slump_Debris:7f3b0040-IfElse:[node]/outputs/result", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": "Erode_Slump_Debris:89e7b83-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "s", + "control": { + "name": "String" + } + }, + "targetName": { + "link": null, + "type": "string", + "default-value": "_height", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -2600.0, + 1500.0 + ], + "options": [] + }, + "beb86d89-ZSParticlesWrangler": { + "name": "ZSParticlesWrangler", + "inputs": { + "ZSParticles": { + "link": "Erode_Slump_Debris:c2f3144f-Route:[node]/outputs/output", + "type": "ZenoParticles", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_temp_material = @_material", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": "Erode_Slump_Debris:af813e77-BeginFor:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "ZSParticles": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 6900.0, + -500.0 + ], + "options": [] + }, + "260121bd-CopyAllUserData": { + "name": "CopyAllUserData", + "inputs": { + "dst": { + "link": "Erode_Slump_Debris:df14d43-PointsToZSParticles2:[node]/outputs/ZSParticles", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "src": { + "link": "Erode_Slump_Debris:4e8529a7-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "dst": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1000.0, + 1800.0 + ], + "options": [] + }, + "dd608a58-zs_tumble_material_v2": { + "name": "zs_tumble_material_v2", + "inputs": { + "zs_HeightField": { + "link": "Erode_Slump_Debris:beb86d89-ZSParticlesWrangler:[node]/outputs/ZSParticles", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "stabilitymask": { + "link": null, + "type": "string", + "default-value": "_stability", + "control": { + "name": "String" + } + }, + "perm": { + "link": "Erode_Slump_Debris:bc7f3592-erode_rand_color:[node]/outputs/list", + "type": "ListObject", + "default-value": null, + "control": { + "name": "" + } + }, + "p_dirs": { + "link": "Erode_Slump_Debris:3228615-erode_rand_dir:[node]/outputs/list", + "type": "ListObject", + "default-value": null, + "control": { + "name": "" + } + }, + "x_dirs": { + "link": "Erode_Slump_Debris:fd3dd570-erode_rand_dir:[node]/outputs/list", + "type": "ListObject", + "default-value": null, + "control": { + "name": "" + } + }, + "seed": { + "link": "Erode_Slump_Debris:93360393-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 15231.2998046875, + "control": { + "name": "Float" + } + }, + "iterations": { + "link": "Erode_Slump_Debris:10b74d41-SubInput:[node]/outputs/port", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "iter": { + "link": "Erode_Slump_Debris:4d708ed2-NumericOperator:[node]/outputs/ret", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "i": { + "link": "Erode_Slump_Debris:af813e77-BeginFor:[node]/outputs/index", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "openborder": { + "link": "Erode_Slump_Debris:a3ea7167-SubInput:[node]/outputs/port", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "gridbias": { + "link": "Erode_Slump_Debris:2c99d3d0-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "repose_angle": { + "link": "Erode_Slump_Debris:312b790a-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 15.0, + "control": { + "name": "Float" + } + }, + "quant_amt": { + "link": "Erode_Slump_Debris:a50f42cb-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 0.25, + "control": { + "name": "Float" + } + }, + "flow_rate": { + "link": "Erode_Slump_Debris:4d687b34-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "zs_HeightField": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 7800.0, + 500.0 + ], + "options": [] + }, + "a45f0c80-UpdatePrimitiveAttrFromZSParticles": { + "name": "UpdatePrimitiveAttrFromZSParticles", + "inputs": { + "ZSParticles": { + "link": "Erode_Slump_Debris:13187b2d-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "attr": { + "value": "_material", + "control": { + "name": "String" + }, + "type": "string" + }, + "location": { + "value": "vert", + "control": { + "name": "Enum", + "items": [ + "vert", + "quad" + ] + }, + "type": "enum vert quad" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec3f" + ] + }, + "type": "enum float vec3f" + } + }, + "outputs": { + "ZSParticles": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 11200.0, + 1500.0 + ], + "options": [] + }, + "df14d43-PointsToZSParticles2": { + "name": "PointsToZSParticles2", + "inputs": { + "prim": { + "link": "Erode_Slump_Debris:4e8529a7-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "add_customed_attr": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "selected_custom_attr_tags": { + "link": null, + "type": "string", + "default-value": "_height _material _temp_material _stability", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "ZSParticles": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 0.0, + 1500.0 + ], + "options": [] + }, + "37822095-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "Erode_Slump_Debris:f376e089-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": "Erode_Slump_Debris:41792e62-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "s", + "control": { + "name": "String" + } + }, + "targetName": { + "link": null, + "type": "string", + "default-value": "_stability", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -4100.0, + 1500.0 + ], + "options": [] + }, + "41792e62-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "stability", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Stability Layer Name", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 4600.0, + -2700.0 + ], + "options": [] + }, + "c9b2e309-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "Erode_Slump_Debris:55c979e5-ExtractPrimitiveFromZSParticles:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": null, + "type": "string", + "default-value": "_stability", + "control": { + "name": "String" + } + }, + "targetName": { + "link": "Erode_Slump_Debris:41792e62-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "_material", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 12600.0, + 1500.0 + ], + "options": [] + }, + "77ac4449-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": false, + "control": { + "name": "Boolean" + }, + "type": "bool" + }, + "name": { + "value": "Use Stability", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "bool", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -3300.0, + 2000.0 + ], + "options": [] + }, + "7f3b0040-IfElse": { + "name": "IfElse", + "inputs": { + "true": { + "link": "Erode_Slump_Debris:37822095-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "false": { + "link": "Erode_Slump_Debris:33255a84-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "cond": { + "link": "Erode_Slump_Debris:77ac4449-SubInput:[node]/outputs/port", + "type": "bool", + "default-value": null, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "result": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -3300.0, + 1500.0 + ], + "options": [] + }, + "33255a84-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "Erode_Slump_Debris:f376e089-SubInput:[node]/outputs/port", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_stability = 0", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -4100.0, + 2000.0 + ], + "options": [] + }, + "55c979e5-ExtractPrimitiveFromZSParticles": { + "name": "ExtractPrimitiveFromZSParticles", + "inputs": { + "ZSParticles": { + "link": "Erode_Slump_Debris:a45f0c80-UpdatePrimitiveAttrFromZSParticles:[node]/outputs/ZSParticles", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 11200.0, + 2000.0 + ], + "options": [] + } + }, + "view_rect": {} + }, + "Erode_Hydro": { + "nodes": { + "2a83cbd7-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.0, + "control": { + "name": "Integer" + }, + "type": "int" + }, + "name": { + "value": "openborder", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "int", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -5700.0, + 5300.0 + ], + "options": [] + }, + "2c3e17af-SubCategory": { + "name": "SubCategory", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "name": { + "value": "wbStdGraph", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 9900.0, + 3900.0 + ], + "options": [] + }, + "3ac641d4-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "gridbias", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -5300.0, + 5700.0 + ], + "options": [] + }, + "3fe31eca-erode_rand_color": { + "name": "erode_rand_color", + "inputs": { + "iterations": { + "link": "Erode_Hydro:e0be7ab9-SubInput:[node]/outputs/port", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "iter": { + "link": "Erode_Hydro:45ca9bf3-NumericOperator:[node]/outputs/ret", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "list": { + "type": "list" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1500.0, + 600.0 + ], + "options": [] + }, + "43d8d4d-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "erodability", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -4600.0, + 6300.0 + ], + "options": [] + }, + "4a69e5b5-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": null, + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "HeightField", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -9700.0, + 2500.0 + ], + "options": [] + }, + "5d0b6e62-EndFor": { + "name": "EndFor", + "inputs": { + "FOR": { + "link": "Erode_Hydro:ec0910c5-BeginFor:[node]/outputs/FOR", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": "Erode_Hydro:716b531b-zs_tumble_material_v4:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 2000.0, + 3000.0 + ], + "options": [] + }, + "63478ef2-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "Erode_Hydro:6bb0b643-PrimCopyAttr:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_temp_height = 0\n@_temp_material = 0\n@_temp_debris = 0\n", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -6300.0, + 2400.0 + ], + "options": [] + }, + "6b7ec066-erode_rand_dir": { + "name": "erode_rand_dir", + "inputs": { + "iterations": { + "link": "Erode_Hydro:e0be7ab9-SubInput:[node]/outputs/port", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "iter": { + "link": "Erode_Hydro:45ca9bf3-NumericOperator:[node]/outputs/ret", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "SRC": { + "link": "Erode_Hydro:3fe31eca-erode_rand_color:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "list": { + "type": "list" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1500.0, + 1000.0 + ], + "options": [] + }, + "6c6d499b-SubOutput": { + "name": "SubOutput", + "inputs": { + "port": { + "link": "Erode_Hydro:e482cc95-PrimitiveDelAttrs:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": null, + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "HeightField", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 14000.0, + 2600.0 + ], + "options": [] + }, + "726d0453-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 12.34000015258789, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "seed", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -4000.0, + 1400.0 + ], + "options": [] + }, + "846f68ef-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": false, + "control": { + "name": "Boolean" + }, + "type": "bool" + }, + "name": { + "value": "Visual Material Enable", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "bool", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 11500.0, + 3000.0 + ], + "options": [] + }, + "86cc708d-erode_rand_dir": { + "name": "erode_rand_dir", + "inputs": { + "iterations": { + "link": "Erode_Hydro:c834a1c4-NumericOperator:[node]/outputs/ret", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "iter": { + "link": "Erode_Hydro:45ca9bf3-NumericOperator:[node]/outputs/ret", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "SRC": { + "link": "Erode_Hydro:6b7ec066-erode_rand_dir:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "list": { + "type": "list" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1500.0, + 1400.0 + ], + "options": [] + }, + "a834c801-EndFor": { + "name": "EndFor", + "inputs": { + "FOR": { + "link": "Erode_Hydro:c43bf06d-BeginFor:[node]/outputs/FOR", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": "Erode_Hydro:5d0b6e62-EndFor:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 2700.0, + 3400.0 + ], + "options": [] + }, + "c43bf06d-BeginFor": { + "name": "BeginFor", + "inputs": { + "count": { + "link": "Erode_Hydro:e0be7ab9-SubInput:[node]/outputs/port", + "type": "int", + "default-value": 10, + "control": { + "name": "Integer" + } + }, + "SRC": { + "link": "Erode_Hydro:8c04aea2-CopyAllUserData:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "index": { + "type": "int" + }, + "FOR": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -3100.0, + 3300.0 + ], + "options": [] + }, + "c834a1c4-NumericOperator": { + "name": "NumericOperator", + "inputs": { + "lhs": { + "link": "Erode_Hydro:e0be7ab9-SubInput:[node]/outputs/port", + "type": "NumericObject", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "rhs": { + "link": null, + "type": "NumericObject", + "default-value": 10.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "op_type": { + "value": "mul", + "control": { + "name": "Enum", + "items": [ + "add", + "sub", + "mul", + "div", + "mod", + "and", + "or", + "xor", + "shr", + "shl", + "cmpge", + "cmple", + "cmpgt", + "cmplt", + "cmpne", + "cmpeq", + "land", + "lor", + "pos", + "neg", + "inv", + "not", + "atan2", + "pow", + "max", + "min", + "fmod", + "dot", + "cross", + "distance", + "length", + "normalize", + "abs", + "sqrt", + "sin", + "cos", + "tan", + "asin", + "acos", + "atan", + "exp", + "log", + "floor", + "ceil", + "toint", + "tofloat", + "anytrue", + "alltrue", + "copy", + "copyr" + ] + }, + "type": "enum add sub mul div mod and or xor shr shl cmpge cmple cmpgt cmplt cmpne cmpeq land lor pos neg inv not atan2 pow max min fmod dot cross distance length normalize abs sqrt sin cos tan asin acos atan exp log floor ceil toint tofloat anytrue alltrue copy copyr" + } + }, + "outputs": { + "ret": { + "type": "NumericObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -2800.0, + 900.0 + ], + "options": [] + }, + "cc7dbbd0-IfElse": { + "name": "IfElse", + "inputs": { + "true": { + "link": "Erode_Hydro:cdc32f76-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "false": { + "link": "Erode_Hydro:fb57d551-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "cond": { + "link": "Erode_Hydro:846f68ef-SubInput:[node]/outputs/port", + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "result": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 12400.0, + 2600.0 + ], + "options": [] + }, + "cdc32f76-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "Erode_Hydro:fb57d551-Route:[node]/outputs/output", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "clr_water = vec3(0.15,0.45,0.9)\n\ncoef_water = min(1, (@_material / 0.65))\n@clr = (1 - coef_water) * @clr + coef_water * clr_debris", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 11500.0, + 2000.0 + ], + "options": [] + }, + "e0be7ab9-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 40.0, + "control": { + "name": "Integer" + }, + "type": "int" + }, + "name": { + "value": "iterations", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "int", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -4000.0, + 1900.0 + ], + "options": [] + }, + "e2b72415-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "global_erosionrate", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -5000.0, + 6000.0 + ], + "options": [] + }, + "ec0910c5-BeginFor": { + "name": "BeginFor", + "inputs": { + "count": { + "link": null, + "type": "int", + "default-value": 8, + "control": { + "name": "Integer" + } + }, + "SRC": { + "link": "Erode_Hydro:86cc708d-erode_rand_dir:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "index": { + "type": "int" + }, + "FOR": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1700.0, + 2900.0 + ], + "options": [] + }, + "f632ab30-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "erosionrate", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -4200.0, + 6700.0 + ], + "options": [] + }, + "4f722b3-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "bank_angle", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -3900.0, + 7000.0 + ], + "options": [] + }, + "6e930db8-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "removalrate", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -3500.0, + 7400.0 + ], + "options": [] + }, + "7fd040a8-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "max_debris_depth", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -3100.0, + 7700.0 + ], + "options": [] + }, + "dd262ad2-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "initial_erodability_factor", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -2400.0, + 8400.0 + ], + "options": [] + }, + "df3dca15-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 5.0, + "control": { + "name": "Integer" + }, + "type": "int" + }, + "name": { + "value": "max_erodability_iteration", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "int", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -2800.0, + 8000.0 + ], + "options": [] + }, + "ebf03e22-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "slope_contribution_factor", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -2100.0, + 8700.0 + ], + "options": [] + }, + "7b1467d3-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "sedimentcap", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1000.0, + 9700.0 + ], + "options": [] + }, + "9289a865-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "bed_erosionrate_factor", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1700.0, + 9000.0 + ], + "options": [] + }, + "e88f3006-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "depositionrate", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1300.0, + 9400.0 + ], + "options": [] + }, + "379dd022-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "quant_amt", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 100.0, + 10700.0 + ], + "options": [] + }, + "743b9c41-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "max_bank_bed_ratio", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -200.0, + 10400.0 + ], + "options": [] + }, + "a06879c0-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "bank_erosionrate_factor", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -600.0, + 10000.0 + ], + "options": [] + }, + "45ca9bf3-NumericOperator": { + "name": "NumericOperator", + "inputs": { + "lhs": { + "link": "Erode_Hydro:c43bf06d-BeginFor:[node]/outputs/index", + "type": "NumericObject", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "rhs": { + "link": null, + "type": "NumericObject", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "op_type": { + "value": "add", + "control": { + "name": "Enum", + "items": [ + "add", + "sub", + "mul", + "div", + "mod", + "and", + "or", + "xor", + "shr", + "shl", + "cmpge", + "cmple", + "cmpgt", + "cmplt", + "cmpne", + "cmpeq", + "land", + "lor", + "pos", + "neg", + "inv", + "not", + "atan2", + "pow", + "max", + "min", + "fmod", + "dot", + "cross", + "distance", + "length", + "normalize", + "abs", + "sqrt", + "sin", + "cos", + "tan", + "asin", + "acos", + "atan", + "exp", + "log", + "floor", + "ceil", + "toint", + "tofloat", + "anytrue", + "alltrue", + "copy", + "copyr" + ] + }, + "type": "enum add sub mul div mod and or xor shr shl cmpge cmple cmpgt cmplt cmpne cmpeq land lor pos neg inv not atan2 pow max min fmod dot cross distance length normalize abs sqrt sin cos tan asin acos atan exp log floor ceil toint tofloat anytrue alltrue copy copyr" + } + }, + "outputs": { + "ret": { + "type": "NumericObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -2300.0, + 2200.0 + ], + "options": [] + }, + "e482cc95-PrimitiveDelAttrs": { + "name": "PrimitiveDelAttrs", + "inputs": { + "prim": { + "link": "Erode_Hydro:cc7dbbd0-IfElse:[node]/outputs/result", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "invert": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "names": { + "link": null, + "type": "string", + "default-value": "_height _material _temp_material _debris _sediment", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 13100.0, + 2600.0 + ], + "options": [] + }, + "25442050-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "debris", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Debris Layer Name", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 300.0, + -2400.0 + ], + "options": [] + }, + "7194bfd7-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "Erode_Hydro:77b65489-ExtractPrimitiveFromZSParticles:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": null, + "type": "string", + "default-value": "_height", + "control": { + "name": "String" + } + }, + "targetName": { + "link": "Erode_Hydro:b76dce00-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "_height", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 7800.0, + 2600.0 + ], + "options": [] + }, + "b76dce00-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "height", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Height Layer Name", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -800.0, + -2400.0 + ], + "options": [] + }, + "c2dd444e-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "Erode_Hydro:2c9c2177-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": null, + "type": "string", + "default-value": "_debris", + "control": { + "name": "String" + } + }, + "targetName": { + "link": "Erode_Hydro:25442050-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "_debris", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 9200.0, + 2600.0 + ], + "options": [] + }, + "ed6f748-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "Erode_Hydro:4a69e5b5-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": "Erode_Hydro:b76dce00-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "s", + "control": { + "name": "String" + } + }, + "targetName": { + "link": null, + "type": "string", + "default-value": "_height", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -9100.0, + 2500.0 + ], + "options": [] + }, + "efc5a2a7-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "Erode_Hydro:d6eb8d1a-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": "Erode_Hydro:25442050-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "s", + "control": { + "name": "String" + } + }, + "targetName": { + "link": null, + "type": "string", + "default-value": "_debris", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -7700.0, + 2500.0 + ], + "options": [] + }, + "6bb0b643-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "Erode_Hydro:efc5a2a7-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": "Erode_Hydro:852e4fa2-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "s", + "control": { + "name": "String" + } + }, + "targetName": { + "link": null, + "type": "string", + "default-value": "_sediment", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -7000.0, + 2500.0 + ], + "options": [] + }, + "d6eb8d1a-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "Erode_Hydro:ed6f748-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": "Erode_Hydro:ad2f8dc3-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "s", + "control": { + "name": "String" + } + }, + "targetName": { + "link": null, + "type": "string", + "default-value": "_material", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -8400.0, + 2500.0 + ], + "options": [] + }, + "852e4fa2-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "sediment", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Sediment Layer Name", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 900.0, + -2400.0 + ], + "options": [] + }, + "ad2f8dc3-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "water", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Water Layer Name", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -200.0, + -2400.0 + ], + "options": [] + }, + "2c9c2177-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "Erode_Hydro:7194bfd7-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": null, + "type": "string", + "default-value": "_material", + "control": { + "name": "String" + } + }, + "targetName": { + "link": "Erode_Hydro:ad2f8dc3-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "_height", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 8500.0, + 2600.0 + ], + "options": [] + }, + "5073558-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "Erode_Hydro:c2dd444e-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": null, + "type": "string", + "default-value": "_sediment", + "control": { + "name": "String" + } + }, + "targetName": { + "link": "Erode_Hydro:852e4fa2-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "_debris", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 9900.0, + 2600.0 + ], + "options": [] + }, + "8c04aea2-CopyAllUserData": { + "name": "CopyAllUserData", + "inputs": { + "dst": { + "link": "Erode_Hydro:4f9a207f-PointsToZSParticles2:[node]/outputs/ZSParticles", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "src": { + "link": "Erode_Hydro:63478ef2-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "dst": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -4500.0, + 2600.0 + ], + "options": [] + }, + "8efa3ccd-ZSParticlesWrangler": { + "name": "ZSParticlesWrangler", + "inputs": { + "ZSParticles": { + "link": "Erode_Hydro:8c04aea2-CopyAllUserData:[node]/outputs/dst", + "type": "ZenoParticles", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_temp_height = @_height\n@_temp_material = @_material\n@_temp_debris = @_debris", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": "Erode_Hydro:ec0910c5-BeginFor:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "ZSParticles": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 100.0, + 600.0 + ], + "options": [] + }, + "716b531b-zs_tumble_material_v4": { + "name": "zs_tumble_material_v4", + "inputs": { + "zs_HeightField": { + "link": "Erode_Hydro:8efa3ccd-ZSParticlesWrangler:[node]/outputs/ZSParticles", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "perm": { + "link": "Erode_Hydro:3fe31eca-erode_rand_color:[node]/outputs/list", + "type": "ListObject", + "default-value": null, + "control": { + "name": "" + } + }, + "p_dirs": { + "link": "Erode_Hydro:6b7ec066-erode_rand_dir:[node]/outputs/list", + "type": "ListObject", + "default-value": null, + "control": { + "name": "" + } + }, + "x_dirs": { + "link": "Erode_Hydro:86cc708d-erode_rand_dir:[node]/outputs/list", + "type": "ListObject", + "default-value": null, + "control": { + "name": "" + } + }, + "seed": { + "link": "Erode_Hydro:726d0453-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 12.34000015258789, + "control": { + "name": "Float" + } + }, + "iterations": { + "link": "Erode_Hydro:e0be7ab9-SubInput:[node]/outputs/port", + "type": "int", + "default-value": 40, + "control": { + "name": "Integer" + } + }, + "iter": { + "link": "Erode_Hydro:45ca9bf3-NumericOperator:[node]/outputs/ret", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "i": { + "link": "Erode_Hydro:ec0910c5-BeginFor:[node]/outputs/index", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "openborder": { + "link": "Erode_Hydro:2a83cbd7-SubInput:[node]/outputs/port", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "gridbias": { + "link": "Erode_Hydro:3ac641d4-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "global_erosionrate": { + "link": "Erode_Hydro:e2b72415-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "erodability": { + "link": "Erode_Hydro:43d8d4d-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "erosionrate": { + "link": "Erode_Hydro:f632ab30-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 0.4000000059604645, + "control": { + "name": "Float" + } + }, + "bank_angle": { + "link": "Erode_Hydro:4f722b3-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 70.0, + "control": { + "name": "Float" + } + }, + "removalrate": { + "link": "Erode_Hydro:6e930db8-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 0.10000000149011612, + "control": { + "name": "Float" + } + }, + "max_debris_depth": { + "link": "Erode_Hydro:7fd040a8-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 5.0, + "control": { + "name": "Float" + } + }, + "max_erodability_iteration": { + "link": "Erode_Hydro:df3dca15-SubInput:[node]/outputs/port", + "type": "int", + "default-value": 5, + "control": { + "name": "Integer" + } + }, + "initial_erodability_factor": { + "link": "Erode_Hydro:dd262ad2-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 0.5, + "control": { + "name": "Float" + } + }, + "slope_contribution_factor": { + "link": "Erode_Hydro:ebf03e22-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 0.800000011920929, + "control": { + "name": "Float" + } + }, + "bed_erosionrate_factor": { + "link": "Erode_Hydro:9289a865-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "depositionrate": { + "link": "Erode_Hydro:e88f3006-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 0.009999999776482582, + "control": { + "name": "Float" + } + }, + "sedimentcap": { + "link": "Erode_Hydro:7b1467d3-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 10.0, + "control": { + "name": "Float" + } + }, + "bank_erosionrate_factor": { + "link": "Erode_Hydro:a06879c0-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "max_bank_bed_ratio": { + "link": "Erode_Hydro:743b9c41-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 0.5, + "control": { + "name": "Float" + } + }, + "quant_amt": { + "link": "Erode_Hydro:379dd022-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 0.05000000074505806, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "zs_HeightField": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1000.0, + 1600.0 + ], + "options": [] + }, + "20ef2926-UpdatePrimitiveAttrFromZSParticles": { + "name": "UpdatePrimitiveAttrFromZSParticles", + "inputs": { + "ZSParticles": { + "link": "Erode_Hydro:df06c989-UpdatePrimitiveAttrFromZSParticles:[node]/outputs/ZSParticles", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "attr": { + "value": "_debris", + "control": { + "name": "String" + }, + "type": "string" + }, + "location": { + "value": "vert", + "control": { + "name": "Enum", + "items": [ + "vert", + "quad" + ] + }, + "type": "enum vert quad" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec3f" + ] + }, + "type": "enum float vec3f" + } + }, + "outputs": { + "ZSParticles": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 5100.0, + 2600.0 + ], + "options": [] + }, + "f0923cc9-UpdatePrimitiveAttrFromZSParticles": { + "name": "UpdatePrimitiveAttrFromZSParticles", + "inputs": { + "ZSParticles": { + "link": "Erode_Hydro:20ef2926-UpdatePrimitiveAttrFromZSParticles:[node]/outputs/ZSParticles", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "attr": { + "value": "_material", + "control": { + "name": "String" + }, + "type": "string" + }, + "location": { + "value": "vert", + "control": { + "name": "Enum", + "items": [ + "vert", + "quad" + ] + }, + "type": "enum vert quad" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec3f" + ] + }, + "type": "enum float vec3f" + } + }, + "outputs": { + "ZSParticles": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 4100.0, + 3100.0 + ], + "options": [] + }, + "c884fc81-UpdatePrimitiveAttrFromZSParticles": { + "name": "UpdatePrimitiveAttrFromZSParticles", + "inputs": { + "ZSParticles": { + "link": "Erode_Hydro:f0923cc9-UpdatePrimitiveAttrFromZSParticles:[node]/outputs/ZSParticles", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "attr": { + "value": "_sediment", + "control": { + "name": "String" + }, + "type": "string" + }, + "location": { + "value": "vert", + "control": { + "name": "Enum", + "items": [ + "vert", + "quad" + ] + }, + "type": "enum vert quad" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec3f" + ] + }, + "type": "enum float vec3f" + } + }, + "outputs": { + "ZSParticles": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 5100.0, + 3100.0 + ], + "options": [] + }, + "df06c989-UpdatePrimitiveAttrFromZSParticles": { + "name": "UpdatePrimitiveAttrFromZSParticles", + "inputs": { + "ZSParticles": { + "link": "Erode_Hydro:8a606675-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "attr": { + "value": "_height", + "control": { + "name": "String" + }, + "type": "string" + }, + "location": { + "value": "vert", + "control": { + "name": "Enum", + "items": [ + "vert", + "quad" + ] + }, + "type": "enum vert quad" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec3f" + ] + }, + "type": "enum float vec3f" + } + }, + "outputs": { + "ZSParticles": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 4100.0, + 2600.0 + ], + "options": [] + }, + "4f9a207f-PointsToZSParticles2": { + "name": "PointsToZSParticles2", + "inputs": { + "prim": { + "link": "Erode_Hydro:63478ef2-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "add_customed_attr": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "selected_custom_attr_tags": { + "link": null, + "type": "string", + "default-value": "_height _material _debris _sediment _temp_height _temp_material _temp_debris", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "ZSParticles": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -5400.0, + 2400.0 + ], + "options": [] + }, + "8a606675-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "Erode_Hydro:716b531b-zs_tumble_material_v4:[node]/outputs/zs_HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": "Erode_Hydro:a834c801-EndFor:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3400.0, + 2600.0 + ], + "options": [] + }, + "fb57d551-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "Erode_Hydro:5073558-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 10700.0, + 2600.0 + ], + "options": [] + }, + "77b65489-ExtractPrimitiveFromZSParticles": { + "name": "ExtractPrimitiveFromZSParticles", + "inputs": { + "ZSParticles": { + "link": "Erode_Hydro:c884fc81-UpdatePrimitiveAttrFromZSParticles:[node]/outputs/ZSParticles", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 6200.0, + 3000.0 + ], + "options": [] + } + }, + "view_rect": {} + }, + "HF_Noise_Core": { + "nodes": { + "1053377f-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Noise_Core:857f4fe6-ParticlesWrangle:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_pp *= 1.0", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -12236.763671875, + 3439.3525390625 + ], + "options": [] + }, + "1b4cb11a-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "F1", + "control": { + "name": "Enum", + "items": [ + "F1", + "F2-F1" + ] + }, + "type": "string" + }, + "name": { + "value": " Worley F1-F2 Type", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -3900.0, + 4000.0 + ], + "options": [] + }, + "2168281-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": null, + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "HeightField", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -13941.958984375, + 2429.79296875 + ], + "options": [] + }, + "26efc46b-StringEqual": { + "name": "StringEqual", + "inputs": { + "lhs": { + "link": "HF_Noise_Core:c689469b-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "", + "control": { + "name": "String" + } + }, + "rhs": { + "link": null, + "type": "string", + "default-value": "simplex", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "isEqual": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -12201.91015625, + 2570.662109375 + ], + "options": [] + }, + "502654cc-StringEqual": { + "name": "StringEqual", + "inputs": { + "lhs": { + "link": "HF_Noise_Core:c2f60f22-PortalOut:[node]/outputs/port", + "type": "string", + "default-value": "", + "control": { + "name": "String" + } + }, + "rhs": { + "link": null, + "type": "string", + "default-value": "perlin", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "isEqual": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 0.0, + 3500.0 + ], + "options": [] + }, + "55e72797-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": [ + 0.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + }, + "type": "vec3f" + }, + "name": { + "value": "Offset", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "vec3f", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -14900.0, + 3900.0 + ], + "options": [] + }, + "56f2000e-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": [ + 0.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + }, + "type": "vec3f" + }, + "name": { + "value": " Worley Offset", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "vec3f", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -4900.0, + 3300.0 + ], + "options": [] + }, + "576480c0-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 2.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": " Lacunarity", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 7075.091796875, + 256.07745361328127 + ], + "options": [] + }, + "5bf7826d-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Noise_Core:1f5e4425-Route:[node]/outputs/output", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@pos = @_originalPos\n\n", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": "HF_Noise_Core:b7fb2dcc-EndFor:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 11743.8095703125, + 3512.7119140625 + ], + "options": [] + }, + "6102ceca-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": "HF_Noise_Core:fe791a4-IfElse:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 8.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": " Max Octaves", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -10836.244140625, + 3986.303955078125 + ], + "options": [] + }, + "6797840d-IfElse": { + "name": "IfElse", + "inputs": { + "true": { + "link": "HF_Noise_Core:e6b31311-IfElse:[node]/outputs/result", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "false": { + "link": "HF_Noise_Core:8371afcd-IfElse:[node]/outputs/result", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "cond": { + "link": "HF_Noise_Core:502654cc-StringEqual:[node]/outputs/isEqual", + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "result": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 50.28815460205078, + 2900.372314453125 + ], + "options": [] + }, + "6ad2bab-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "hybridTerrain", + "control": { + "name": "Enum", + "items": [ + "fBm", + "hybridTerrain", + "ridgedTerrain" + ] + }, + "type": "string" + }, + "name": { + "value": "Fractal Type", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 8700.0, + 3800.0 + ], + "options": [] + }, + "6ff2d9e0-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": [ + 1.0, + 1.0, + 1.0 + ], + "control": { + "name": "Float Vector 3" + }, + "type": "vec3f" + }, + "name": { + "value": "Scale", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "vec3f", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -14900.0, + 3400.0 + ], + "options": [] + }, + "723e593b-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Noise_Core:857f4fe6-ParticlesWrangle:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_pp *= 0.6", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -12341.6416015625, + 3644.178466796875 + ], + "options": [] + }, + "78ef7096-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Noise_Core:27926f9e-Route:[node]/outputs/output", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_weight = @_weight > 1 ? 1 : @_weight\n\namp = pow($persistence, -$H * $i)\nrough = $i>0 ? $roughness : 1\n\n_signal = (@noise + $bias) * amp * rough\n@_result += @_weight * ((@noise + $bias) * amp - $bias) * rough\n@_weight *= _signal\n\n@_pp *= $lacunarity\n\n\n\n\n\n\n", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": "HF_Noise_Core:ae9ee11b-MakeDict:[node]/outputs/dict", + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 7950.109375, + 2150.142333984375 + ], + "options": [] + }, + "8371afcd-IfElse": { + "name": "IfElse", + "inputs": { + "true": { + "link": "HF_Noise_Core:67cbbae5-IfElse:[node]/outputs/result", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "false": { + "link": "HF_Noise_Core:ced0f488-erode_noise_worley:[node]/outputs/prim_2DGrid", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "cond": { + "link": "HF_Noise_Core:d2e5b519-StringEqual:[node]/outputs/isEqual", + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "result": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -698.9286499023438, + 2898.97607421875 + ], + "options": [] + }, + "857f4fe6-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Noise_Core:2168281-SubInput:[node]/outputs/port", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_originalPos = @pos\n\nfrequency = 1 / ($elementSize * $scale + 0.00001)\noffset = $offset * frequency + 123\n@_pp = @pos * frequency + offset\n\n@_result = 0\n@_weight = 1\n@_signal = 0", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": "HF_Noise_Core:712a05e9-MakeDict:[node]/outputs/dict", + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": "HF_Noise_Core:6136f7c1-PortalIn:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -13209.6728515625, + 2666.051513671875 + ], + "options": [] + }, + "b7fb2dcc-EndFor": { + "name": "EndFor", + "inputs": { + "FOR": { + "link": "HF_Noise_Core:f85bdd49-BeginFor:[node]/outputs/FOR", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": "HF_Noise_Core:1f5e4425-Route:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 10858.5244140625, + 4236.50390625 + ], + "options": [] + }, + "bc1d592a-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.5, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": " Roughness", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 7424.8916015625, + 325.32696533203127 + ], + "options": [] + }, + "c4f4f2c8-SubOutput": { + "name": "SubOutput", + "inputs": { + "port": { + "link": "HF_Noise_Core:f8f50126-PrimitiveDelAttrs:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": null, + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "HeightField", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 18600.0, + 3800.0 + ], + "options": [] + }, + "c689469b-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "perlin", + "control": { + "name": "Enum", + "items": [ + "perlin", + "simplex", + "worley" + ] + }, + "type": "string" + }, + "name": { + "value": "Noise Type", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -17125.88671875, + 1071.59619140625 + ], + "options": [] + }, + "d2e5b519-StringEqual": { + "name": "StringEqual", + "inputs": { + "lhs": { + "link": "HF_Noise_Core:c2f60f22-PortalOut:[node]/outputs/port", + "type": "string", + "default-value": "", + "control": { + "name": "String" + } + }, + "rhs": { + "link": null, + "type": "string", + "default-value": "simplex", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "isEqual": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -700.0, + 3500.0 + ], + "options": [] + }, + "d4e01c2b-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Noise_Core:fe791a4-IfElse:[node]/outputs/result", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@pos = @_pp", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": "HF_Noise_Core:29fb13f-PortalIn:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -7113.6962890625, + 3271.23193359375 + ], + "options": [] + }, + "ea05e458-SubCategory": { + "name": "SubCategory", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "name": { + "value": "wbStdGraph", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 1641.666748046875, + 7986.25048828125 + ], + "options": [] + }, + "ea44e547-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "Euclidean", + "control": { + "name": "Enum", + "items": [ + "Euclidean", + "Chebyshev", + "Manhattan" + ] + }, + "type": "string" + }, + "name": { + "value": " Worley Distance Type", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -4400.0, + 3700.0 + ], + "options": [] + }, + "f85bdd49-BeginFor": { + "name": "BeginFor", + "inputs": { + "count": { + "link": "HF_Noise_Core:48affeb8-NumericOperator:[node]/outputs/ret", + "type": "int", + "default-value": 2, + "control": { + "name": "Integer" + } + }, + "SRC": { + "link": "HF_Noise_Core:687ec16c-PortalIn:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "index": { + "type": "int" + }, + "FOR": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -8256.16015625, + 4088.935302734375 + ], + "options": [] + }, + "fe791a4-IfElse": { + "name": "IfElse", + "inputs": { + "true": { + "link": "HF_Noise_Core:723e593b-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "false": { + "link": "HF_Noise_Core:1053377f-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "cond": { + "link": "HF_Noise_Core:26efc46b-StringEqual:[node]/outputs/isEqual", + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": "HF_Noise_Core:857f4fe6-ParticlesWrangle:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "result": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -11400.0, + 3100.0 + ], + "options": [] + }, + "1e6de57b-NumericOperator": { + "name": "NumericOperator", + "inputs": { + "lhs": { + "link": "HF_Noise_Core:b7c4dac-PortalOut:[node]/outputs/port", + "type": "NumericObject", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "rhs": { + "link": null, + "type": "NumericObject", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "op_type": { + "value": "tofloat", + "control": { + "name": "Enum", + "items": [ + "add", + "sub", + "mul", + "div", + "mod", + "and", + "or", + "xor", + "shr", + "shl", + "cmpge", + "cmple", + "cmpgt", + "cmplt", + "cmpne", + "cmpeq", + "land", + "lor", + "pos", + "neg", + "inv", + "not", + "atan2", + "pow", + "max", + "min", + "fmod", + "dot", + "cross", + "distance", + "length", + "normalize", + "abs", + "sqrt", + "sin", + "cos", + "tan", + "asin", + "acos", + "atan", + "exp", + "log", + "floor", + "ceil", + "toint", + "tofloat", + "anytrue", + "alltrue", + "copy", + "copyr" + ] + }, + "type": "enum add sub mul div mod and or xor shr shl cmpge cmple cmpgt cmplt cmpne cmpeq land lor pos neg inv not atan2 pow max min fmod dot cross distance length normalize abs sqrt sin cos tan asin acos atan exp log floor ceil toint tofloat anytrue alltrue copy copyr" + } + }, + "outputs": { + "ret": { + "type": "NumericObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 7769.4677734375, + 398.06646728515627 + ], + "options": [] + }, + "ae9ee11b-MakeDict": { + "name": "MakeDict", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "lacunarity": { + "property": "editable", + "link": "HF_Noise_Core:576480c0-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "roughness": { + "property": "editable", + "link": "HF_Noise_Core:bc1d592a-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "i": { + "property": "editable", + "link": "HF_Noise_Core:1e6de57b-NumericOperator:[node]/outputs/ret", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "H": { + "property": "editable", + "link": "HF_Noise_Core:80d263b2-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "persistence": { + "property": "editable", + "link": "HF_Noise_Core:d40d5114-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "bias": { + "property": "editable", + "link": "HF_Noise_Core:59762ef2-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "gain": { + "property": "editable", + "link": "HF_Noise_Core:6f2a549c-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "obj7": { + "property": "editable", + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "dict": { + "type": "dict" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 8058.6181640625, + 1432.991943359375 + ], + "options": [], + "dict_keys": { + "inputs": [ + "lacunarity", + "roughness", + "i", + "H", + "persistence", + "bias", + "gain", + "obj7" + ], + "outputs": [] + } + }, + "80d263b2-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 1.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": " H", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 8221.93359375, + 471.03009033203127 + ], + "options": [] + }, + "29fb13f-PortalIn": { + "name": "PortalIn", + "inputs": { + "port": { + "link": "HF_Noise_Core:f85bdd49-BeginFor:[node]/outputs/index", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": "HF_Noise_Core:f85bdd49-BeginFor:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "name": { + "value": "i", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + -7689.35400390625, + 3871.23193359375 + ], + "options": [] + }, + "b7c4dac-PortalOut": { + "name": "PortalOut", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "name": { + "value": "i", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 7813.84765625, + 818.4069213867188 + ], + "options": [] + }, + "6136f7c1-PortalIn": { + "name": "PortalIn", + "inputs": { + "port": { + "link": "HF_Noise_Core:c689469b-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "name": { + "value": "noiseType", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + -13929.97265625, + 2931.2744140625 + ], + "options": [] + }, + "c2f60f22-PortalOut": { + "name": "PortalOut", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "name": { + "value": "noiseType", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1400.0, + 3800.0 + ], + "options": [] + }, + "24ace38b-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": [ + 500.0, + 500.0, + 500.0 + ], + "control": { + "name": "Float Vector 3" + }, + "type": "vec3f" + }, + "name": { + "value": "Amplitude", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "vec3f", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 11500.0, + 4500.0 + ], + "options": [] + }, + "6b355c05-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": [ + 500.0, + 500.0, + 500.0 + ], + "control": { + "name": "Float Vector 3" + }, + "type": "vec3f" + }, + "name": { + "value": "Element Size", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "vec3f", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -14900.0, + 2900.0 + ], + "options": [] + }, + "712a05e9-MakeDict": { + "name": "MakeDict", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "elementSize": { + "property": "editable", + "link": "HF_Noise_Core:6b355c05-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "scale": { + "property": "editable", + "link": "HF_Noise_Core:6ff2d9e0-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "offset": { + "property": "editable", + "link": "HF_Noise_Core:55e72797-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "obj3": { + "property": "editable", + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "dict": { + "type": "dict" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -13928.9580078125, + 3381.970703125 + ], + "options": [], + "dict_keys": { + "inputs": [ + "elementSize", + "scale", + "offset", + "obj3" + ], + "outputs": [] + } + }, + "48affeb8-NumericOperator": { + "name": "NumericOperator", + "inputs": { + "lhs": { + "link": "HF_Noise_Core:6102ceca-SubInput:[node]/outputs/port", + "type": "NumericObject", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "rhs": { + "link": null, + "type": "NumericObject", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": "HF_Noise_Core:6102ceca-SubInput:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "op_type": { + "value": "toint", + "control": { + "name": "Enum", + "items": [ + "add", + "sub", + "mul", + "div", + "mod", + "and", + "or", + "xor", + "shr", + "shl", + "cmpge", + "cmple", + "cmpgt", + "cmplt", + "cmpne", + "cmpeq", + "land", + "lor", + "pos", + "neg", + "inv", + "not", + "atan2", + "pow", + "max", + "min", + "fmod", + "dot", + "cross", + "distance", + "length", + "normalize", + "abs", + "sqrt", + "sin", + "cos", + "tan", + "asin", + "acos", + "atan", + "exp", + "log", + "floor", + "ceil", + "toint", + "tofloat", + "anytrue", + "alltrue", + "copy", + "copyr" + ] + }, + "type": "enum add sub mul div mod and or xor shr shl cmpge cmple cmpgt cmplt cmpne cmpeq land lor pos neg inv not atan2 pow max min fmod dot cross distance length normalize abs sqrt sin cos tan asin acos atan exp log floor ceil toint tofloat anytrue alltrue copy copyr" + } + }, + "outputs": { + "ret": { + "type": "NumericObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -10214.115234375, + 3875.2392578125 + ], + "options": [] + }, + "1a0d36d4-NumericOperator": { + "name": "NumericOperator", + "inputs": { + "lhs": { + "link": "HF_Noise_Core:6102ceca-SubInput:[node]/outputs/port", + "type": "NumericObject", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "rhs": { + "link": "HF_Noise_Core:48affeb8-NumericOperator:[node]/outputs/ret", + "type": "NumericObject", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": "HF_Noise_Core:48affeb8-NumericOperator:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "op_type": { + "value": "sub", + "control": { + "name": "Enum", + "items": [ + "add", + "sub", + "mul", + "div", + "mod", + "and", + "or", + "xor", + "shr", + "shl", + "cmpge", + "cmple", + "cmpgt", + "cmplt", + "cmpne", + "cmpeq", + "land", + "lor", + "pos", + "neg", + "inv", + "not", + "atan2", + "pow", + "max", + "min", + "fmod", + "dot", + "cross", + "distance", + "length", + "normalize", + "abs", + "sqrt", + "sin", + "cos", + "tan", + "asin", + "acos", + "atan", + "exp", + "log", + "floor", + "ceil", + "toint", + "tofloat", + "anytrue", + "alltrue", + "copy", + "copyr" + ] + }, + "type": "enum add sub mul div mod and or xor shr shl cmpge cmple cmpgt cmplt cmpne cmpeq land lor pos neg inv not atan2 pow max min fmod dot cross distance length normalize abs sqrt sin cos tan asin acos atan exp log floor ceil toint tofloat anytrue alltrue copy copyr" + } + }, + "outputs": { + "ret": { + "type": "NumericObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -9507.31640625, + 4281.83349609375 + ], + "options": [] + }, + "687ec16c-PortalIn": { + "name": "PortalIn", + "inputs": { + "port": { + "link": "HF_Noise_Core:1a0d36d4-NumericOperator:[node]/outputs/ret", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": "HF_Noise_Core:1a0d36d4-NumericOperator:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "name": { + "value": "remainder", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + -8822.966796875, + 4328.76806640625 + ], + "options": [] + }, + "e7eaf6f-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Noise_Core:5bf7826d-ParticlesWrangle:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_result = @_result * $amplitude.y * 0.5", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": "HF_Noise_Core:1f9134ae-MakeDict:[node]/outputs/dict", + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 13059.7666015625, + 3000.29638671875 + ], + "options": [] + }, + "9a8f9e2c-IfElse": { + "name": "IfElse", + "inputs": { + "true": { + "link": "HF_Noise_Core:e7eaf6f-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "false": { + "link": "HF_Noise_Core:9ca48f2c-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "cond": { + "link": "HF_Noise_Core:776f8a72-SubInput:[node]/outputs/port", + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "result": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 14128.8349609375, + 3744.0859375 + ], + "options": [] + }, + "9ca48f2c-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Noise_Core:5bf7826d-ParticlesWrangle:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_result = (@_result + 1) * $amplitude.y * 0.5\n", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": "HF_Noise_Core:1f9134ae-MakeDict:[node]/outputs/dict", + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 13057.1005859375, + 3853.837158203125 + ], + "options": [] + }, + "1f9134ae-MakeDict": { + "name": "MakeDict", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "amplitude": { + "property": "editable", + "link": "HF_Noise_Core:24ace38b-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "obj1": { + "property": "editable", + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "dict": { + "type": "dict" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 12100.0, + 4500.0 + ], + "options": [], + "dict_keys": { + "inputs": [ + "amplitude", + "obj1" + ], + "outputs": [] + } + }, + "3effbf68-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Noise_Core:27926f9e-Route:[node]/outputs/output", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "amp = pow($lacunarity, -$H * $i)\n#rough = pow($roughness, -$i)\nrough = $i>0 ? abs($roughness) : 1\n\n@_result += @noise * amp * rough\n@_pp *= $lacunarity\n", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": "HF_Noise_Core:ae9ee11b-MakeDict:[node]/outputs/dict", + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 8649.9033203125, + 2150.111083984375 + ], + "options": [] + }, + "3f29340e-IfElse": { + "name": "IfElse", + "inputs": { + "true": { + "link": "HF_Noise_Core:3effbf68-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "false": { + "link": "HF_Noise_Core:9059eb57-IfElse:[node]/outputs/result", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "cond": { + "link": "HF_Noise_Core:7cd3bd70-StringEqual:[node]/outputs/isEqual", + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "result": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 9550.84375, + 2950.404296875 + ], + "options": [] + }, + "7cd3bd70-StringEqual": { + "name": "StringEqual", + "inputs": { + "lhs": { + "link": "HF_Noise_Core:6ad2bab-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "", + "control": { + "name": "String" + } + }, + "rhs": { + "link": null, + "type": "string", + "default-value": "fBm", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "isEqual": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 9400.0, + 3400.0 + ], + "options": [] + }, + "d40d5114-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 1.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": " Persistence", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 8579.16796875, + 546.6137084960938 + ], + "options": [] + }, + "59762ef2-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.800000011920929, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": " Bias", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 8937.734375, + 629.6885375976563 + ], + "options": [] + }, + "776f8a72-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": true, + "control": { + "name": "Boolean" + }, + "type": "bool" + }, + "name": { + "value": "Center Noise", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "bool", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 14104.2939453125, + 4172.78125 + ], + "options": [] + }, + "82baed7e-erode_noise_perlin": { + "name": "erode_noise_perlin", + "inputs": { + "prim_2DGrid": { + "link": "HF_Noise_Core:8ae45ebc-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "vec3fAttrName": { + "link": null, + "type": "string", + "default-value": "pos", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "attrName": { + "value": "noise", + "control": { + "name": "String" + }, + "type": "string" + }, + "attrType": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "float3" + ] + }, + "type": "enum float float3" + } + }, + "outputs": { + "prim_2DGrid": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -2800.0, + 1400.0 + ], + "options": [] + }, + "3facc09a-erode_noise_simplex": { + "name": "erode_noise_simplex", + "inputs": { + "prim_2DGrid": { + "link": "HF_Noise_Core:779ece17-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "posLikeAttrName": { + "link": null, + "type": "string", + "default-value": "pos", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "attrName": { + "value": "noise", + "control": { + "name": "String" + }, + "type": "string" + }, + "attrType": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "float3" + ] + }, + "type": "enum float float3" + } + }, + "outputs": { + "prim_2DGrid": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -2800.0, + 2600.0 + ], + "options": [] + }, + "33ea3cb3-StringEqual": { + "name": "StringEqual", + "inputs": { + "lhs": { + "link": "HF_Noise_Core:b62800c0-Route:[node]/outputs/output", + "type": "string", + "default-value": "", + "control": { + "name": "String" + } + }, + "rhs": { + "link": null, + "type": "string", + "default-value": "simplex", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "isEqual": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 15483.3759765625, + 4881.98681640625 + ], + "options": [] + }, + "e354c56d-IfElse": { + "name": "IfElse", + "inputs": { + "true": { + "link": "HF_Noise_Core:591207b-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "false": { + "link": "HF_Noise_Core:9a8f9e2c-IfElse:[node]/outputs/result", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "cond": { + "link": "HF_Noise_Core:33ea3cb3-StringEqual:[node]/outputs/isEqual", + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "result": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 16800.0, + 3800.0 + ], + "options": [] + }, + "591207b-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Noise_Core:9a8f9e2c-IfElse:[node]/outputs/result", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_result *= 0.6", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 15382.6455078125, + 3182.696533203125 + ], + "options": [] + }, + "9059eb57-IfElse": { + "name": "IfElse", + "inputs": { + "true": { + "link": "HF_Noise_Core:78ef7096-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "false": { + "link": "HF_Noise_Core:1209dabd-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "cond": { + "link": "HF_Noise_Core:158a2ab3-StringEqual:[node]/outputs/isEqual", + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "result": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 8850.056640625, + 2950.2255859375 + ], + "options": [] + }, + "158a2ab3-StringEqual": { + "name": "StringEqual", + "inputs": { + "lhs": { + "link": "HF_Noise_Core:6ad2bab-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "", + "control": { + "name": "String" + } + }, + "rhs": { + "link": null, + "type": "string", + "default-value": "hybridTerrain", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "isEqual": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 8700.0, + 3400.0 + ], + "options": [] + }, + "1209dabd-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Noise_Core:27926f9e-Route:[node]/outputs/output", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_weight = $i>0 ? @_signal * $gain : 1\n@_weight = @_weight<0 ? 0 : (@_weight>1 ? 1 : @_weight)\n\n@_signal = @noise\n@_signal = abs(@_signal)\n@_signal = $bias - @_signal\n@_signal *= @_signal\n\n@_signal *= @_weight\namp = pow($persistence, -$H * $i)\nrough = $i>0 ? $roughness : 1\n\n@_result += (@_signal - $bias/2) * amp * rough * 0.5\n\n@_pp *= $lacunarity\n\n\n", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": "HF_Noise_Core:ae9ee11b-MakeDict:[node]/outputs/dict", + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 7250.03564453125, + 2150.091796875 + ], + "options": [] + }, + "b6ae797b-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.5, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "Fold Gain", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 4300.0, + 0.0 + ], + "options": [] + }, + "ecfa28f9-erode_terrainHiMeLo": { + "name": "erode_terrainHiMeLo", + "inputs": { + "prim_2DGrid": { + "link": "HF_Noise_Core:f897dc4-SetUserData:[node]/outputs/object", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "attrName": { + "link": null, + "type": "string", + "default-value": "noise", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim_2DGrid": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2800.0, + 2400.0 + ], + "options": [] + }, + "f163e620-GetUserData": { + "name": "GetUserData", + "inputs": { + "object": { + "link": "HF_Noise_Core:ecfa28f9-erode_terrainHiMeLo:[node]/outputs/prim_2DGrid", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "hi", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "data": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1700.0, + 200.0 + ], + "options": [] + }, + "c3463503-GetUserData": { + "name": "GetUserData", + "inputs": { + "object": { + "link": "HF_Noise_Core:ecfa28f9-erode_terrainHiMeLo:[node]/outputs/prim_2DGrid", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "me", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "data": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2300.0, + 100.0 + ], + "options": [] + }, + "bc18a44e-GetUserData": { + "name": "GetUserData", + "inputs": { + "object": { + "link": "HF_Noise_Core:ecfa28f9-erode_terrainHiMeLo:[node]/outputs/prim_2DGrid", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "lo", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "data": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2900.0, + 0.0 + ], + "options": [] + }, + "b7618b34-MakeDict": { + "name": "MakeDict", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "hi": { + "property": "editable", + "link": "HF_Noise_Core:f163e620-GetUserData:[node]/outputs/data", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "me": { + "property": "editable", + "link": "HF_Noise_Core:c3463503-GetUserData:[node]/outputs/data", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "lo": { + "property": "editable", + "link": "HF_Noise_Core:bc18a44e-GetUserData:[node]/outputs/data", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "i": { + "property": "editable", + "link": "HF_Noise_Core:98500559-NumericOperator:[node]/outputs/ret", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "gain": { + "property": "editable", + "link": "HF_Noise_Core:b6ae797b-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "obj5": { + "property": "editable", + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "dict": { + "type": "dict" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3276.59619140625, + 1431.3614501953126 + ], + "options": [], + "dict_keys": { + "inputs": [ + "hi", + "me", + "lo", + "i", + "gain", + "obj5" + ], + "outputs": [] + } + }, + "af1ab777-SetUserData": { + "name": "SetUserData", + "inputs": { + "object": { + "link": "HF_Noise_Core:5ea22774-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "data": { + "link": "HF_Noise_Core:7425c9ca-NumericFloat:[node]/outputs/value", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "hi", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "object": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2200.0, + 1600.0 + ], + "options": [] + }, + "36db5f9c-SetUserData": { + "name": "SetUserData", + "inputs": { + "object": { + "link": "HF_Noise_Core:af1ab777-SetUserData:[node]/outputs/object", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "data": { + "link": "HF_Noise_Core:7425c9ca-NumericFloat:[node]/outputs/value", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "me", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "object": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2200.0, + 2000.0 + ], + "options": [] + }, + "f897dc4-SetUserData": { + "name": "SetUserData", + "inputs": { + "object": { + "link": "HF_Noise_Core:36db5f9c-SetUserData:[node]/outputs/object", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "data": { + "link": "HF_Noise_Core:7425c9ca-NumericFloat:[node]/outputs/value", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "lo", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "object": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2200.0, + 2400.0 + ], + "options": [] + }, + "7425c9ca-NumericFloat": { + "name": "NumericFloat", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "value": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + } + }, + "outputs": { + "value": { + "type": "float" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1200.0, + 2000.0 + ], + "options": [] + }, + "2ad27e48-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "HF_Noise_Core:cc00afd2-IfElse:[node]/outputs/result", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 6100.0, + 2900.0 + ], + "options": [] + }, + "1f5e4425-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "HF_Noise_Core:3f29340e-IfElse:[node]/outputs/result", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 10150.041015625, + 2950.017578125 + ], + "options": [] + }, + "c5520064-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": false, + "control": { + "name": "Boolean" + }, + "type": "bool" + }, + "name": { + "value": "Fold Enable", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "bool", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 5500.0, + 3500.0 + ], + "options": [] + }, + "cc00afd2-IfElse": { + "name": "IfElse", + "inputs": { + "true": { + "link": "HF_Noise_Core:686f897e-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "false": { + "link": "HF_Noise_Core:5ea22774-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "cond": { + "link": "HF_Noise_Core:c5520064-SubInput:[node]/outputs/port", + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "result": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 5500.0, + 2900.0 + ], + "options": [] + }, + "ab3a0fd3-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Noise_Core:ecfa28f9-erode_terrainHiMeLo:[node]/outputs/prim_2DGrid", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "delta = $me - @noise\n@noise = @noise<$me ? @noise + 2 * delta : @noise\n@noise = 2*(@noise - $me) + $lo\n#@noise *= 0.67\namp = pow(1.841, -0.25 * $i)\n@noise *= amp\n\n", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": "HF_Noise_Core:b7618b34-MakeDict:[node]/outputs/dict", + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 4000.0, + 2200.0 + ], + "options": [] + }, + "2fe31df4-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Noise_Core:ecfa28f9-erode_terrainHiMeLo:[node]/outputs/prim_2DGrid", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "delta = $me - @result\n@result = @result<$me ? @result + 2 * delta : @result\n@result = 2*(@result - $me) + $lo\n\n\n\n", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": "HF_Noise_Core:b7618b34-MakeDict:[node]/outputs/dict", + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 4000.0, + 1300.0 + ], + "options": [] + }, + "2ee33b5-PortalOut": { + "name": "PortalOut", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "name": { + "value": "i", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3600.0, + -400.0 + ], + "options": [] + }, + "98500559-NumericOperator": { + "name": "NumericOperator", + "inputs": { + "lhs": { + "link": "HF_Noise_Core:2ee33b5-PortalOut:[node]/outputs/port", + "type": "NumericObject", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "rhs": { + "link": null, + "type": "NumericObject", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "op_type": { + "value": "tofloat", + "control": { + "name": "Enum", + "items": [ + "add", + "sub", + "mul", + "div", + "mod", + "and", + "or", + "xor", + "shr", + "shl", + "cmpge", + "cmple", + "cmpgt", + "cmplt", + "cmpne", + "cmpeq", + "land", + "lor", + "pos", + "neg", + "inv", + "not", + "atan2", + "pow", + "max", + "min", + "fmod", + "dot", + "cross", + "distance", + "length", + "normalize", + "abs", + "sqrt", + "sin", + "cos", + "tan", + "asin", + "acos", + "atan", + "exp", + "log", + "floor", + "ceil", + "toint", + "tofloat", + "anytrue", + "alltrue", + "copy", + "copyr" + ] + }, + "type": "enum add sub mul div mod and or xor shr shl cmpge cmple cmpgt cmplt cmpne cmpeq land lor pos neg inv not atan2 pow max min fmod dot cross distance length normalize abs sqrt sin cos tan asin acos atan exp log floor ceil toint tofloat anytrue alltrue copy copyr" + } + }, + "outputs": { + "ret": { + "type": "NumericObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3600.0, + 0.0 + ], + "options": [] + }, + "686f897e-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Noise_Core:ab3a0fd3-ParticlesWrangle:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@noise = 2 * pow( (@noise + 1) / 2, 2 * $gain ) - 1\n\ny0 = 2*pow(0.5, 2*$gain) - 1\n@noise -= y0\n\n\n", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": "HF_Noise_Core:b7618b34-MakeDict:[node]/outputs/dict", + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 4700.0, + 2200.0 + ], + "options": [] + }, + "4fb21257-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": false, + "control": { + "name": "Boolean" + }, + "type": "bool" + }, + "name": { + "value": "Distort Enable", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "bool", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -2000.0, + 1900.0 + ], + "options": [] + }, + "67cbbae5-IfElse": { + "name": "IfElse", + "inputs": { + "true": { + "link": "HF_Noise_Core:b2080869-erode_noise_simplex:[node]/outputs/prim_2DGrid", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "false": { + "link": "HF_Noise_Core:3facc09a-erode_noise_simplex:[node]/outputs/prim_2DGrid", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "cond": { + "link": "HF_Noise_Core:4fb21257-SubInput:[node]/outputs/port", + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "result": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1300.0, + 2500.0 + ], + "options": [] + }, + "8fed3aa7-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Noise_Core:cfa75e64-erode_noise_simplex:[node]/outputs/prim_2DGrid", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_tmp_pos = @_pp + $distortionAmp * @_tmp_noise\n\n\n\n\n\n", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": "HF_Noise_Core:afa19a9-MakeDict:[node]/outputs/dict", + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -3500.0, + 1900.0 + ], + "options": [] + }, + "77891280-erode_noise_perlin": { + "name": "erode_noise_perlin", + "inputs": { + "prim_2DGrid": { + "link": "HF_Noise_Core:28cc058c-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "vec3fAttrName": { + "link": null, + "type": "string", + "default-value": "_tmp_pos", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "attrName": { + "value": "_tmp_noise", + "control": { + "name": "String" + }, + "type": "string" + }, + "attrType": { + "value": "float3", + "control": { + "name": "Enum", + "items": [ + "float", + "float3" + ] + }, + "type": "enum float float3" + } + }, + "outputs": { + "prim_2DGrid": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -4200.0, + 600.0 + ], + "options": [] + }, + "e645604f-erode_noise_perlin": { + "name": "erode_noise_perlin", + "inputs": { + "prim_2DGrid": { + "link": "HF_Noise_Core:f648d316-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "vec3fAttrName": { + "link": null, + "type": "string", + "default-value": "_tmp_pos", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "attrName": { + "value": "noise", + "control": { + "name": "String" + }, + "type": "string" + }, + "attrType": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "float3" + ] + }, + "type": "enum float float3" + } + }, + "outputs": { + "prim_2DGrid": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -2600.0, + 600.0 + ], + "options": [] + }, + "1eab57c4-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "Distortion Amp", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -6300.0, + 600.0 + ], + "options": [] + }, + "afa19a9-MakeDict": { + "name": "MakeDict", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "distortionAmp": { + "property": "editable", + "link": "HF_Noise_Core:1eab57c4-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "distortionFreq": { + "property": "editable", + "link": "HF_Noise_Core:4349bb1f-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "obj2": { + "property": "editable", + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "dict": { + "type": "dict" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -5645.21826171875, + 931.5233764648438 + ], + "options": [], + "dict_keys": { + "inputs": [ + "distortionAmp", + "distortionFreq", + "obj2" + ], + "outputs": [] + } + }, + "4349bb1f-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "Distortion Freq", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -6300.0, + 1100.0 + ], + "options": [] + }, + "921a3192-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Noise_Core:779ece17-Route:[node]/outputs/output", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_tmp_pos = @_pp * $distortionFreq + 0.5", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": "HF_Noise_Core:afa19a9-MakeDict:[node]/outputs/dict", + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -5000.0, + 1900.0 + ], + "options": [] + }, + "cfa75e64-erode_noise_simplex": { + "name": "erode_noise_simplex", + "inputs": { + "prim_2DGrid": { + "link": "HF_Noise_Core:921a3192-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "posLikeAttrName": { + "link": null, + "type": "string", + "default-value": "pos", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "attrName": { + "value": "_tmp_noise", + "control": { + "name": "String" + }, + "type": "string" + }, + "attrType": { + "value": "float3", + "control": { + "name": "Enum", + "items": [ + "float", + "float3" + ] + }, + "type": "enum float float3" + } + }, + "outputs": { + "prim_2DGrid": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -4300.0, + 2200.0 + ], + "options": [] + }, + "b2080869-erode_noise_simplex": { + "name": "erode_noise_simplex", + "inputs": { + "prim_2DGrid": { + "link": "HF_Noise_Core:8fed3aa7-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "posLikeAttrName": { + "link": null, + "type": "string", + "default-value": "_tmp_pos", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "attrName": { + "value": "noise", + "control": { + "name": "String" + }, + "type": "string" + }, + "attrType": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "float3" + ] + }, + "type": "enum float float3" + } + }, + "outputs": { + "prim_2DGrid": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -2800.0, + 2000.0 + ], + "options": [] + }, + "b62800c0-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "HF_Noise_Core:c689469b-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -14854.0302734375, + 4794.50390625 + ], + "options": [] + }, + "5ea22774-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "HF_Noise_Core:91e2cb43-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1450.093505859375, + 2901.330322265625 + ], + "options": [] + }, + "91e2cb43-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "HF_Noise_Core:6797840d-IfElse:[node]/outputs/result", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 651.7757568359375, + 2900.408935546875 + ], + "options": [] + }, + "779ece17-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "HF_Noise_Core:d4e01c2b-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -6275.53125, + 2659.265625 + ], + "options": [] + }, + "27926f9e-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "HF_Noise_Core:2ad27e48-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 6700.0, + 2900.0 + ], + "options": [] + }, + "8ae45ebc-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "HF_Noise_Core:779ece17-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -5598.6533203125, + 1450.0091552734376 + ], + "options": [] + }, + "e6b31311-IfElse": { + "name": "IfElse", + "inputs": { + "true": { + "link": "HF_Noise_Core:e645604f-erode_noise_perlin:[node]/outputs/prim_2DGrid", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "false": { + "link": "HF_Noise_Core:82baed7e-erode_noise_perlin:[node]/outputs/prim_2DGrid", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "cond": { + "link": "HF_Noise_Core:4fb21257-SubInput:[node]/outputs/port", + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "result": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1300.0, + 1600.0 + ], + "options": [] + }, + "28cc058c-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Noise_Core:8ae45ebc-Route:[node]/outputs/output", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_tmp_pos = @_pp * $distortionFreq + 0.5", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": "HF_Noise_Core:afa19a9-MakeDict:[node]/outputs/dict", + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -5000.0, + 600.0 + ], + "options": [] + }, + "f648d316-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Noise_Core:77891280-erode_noise_perlin:[node]/outputs/prim_2DGrid", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_tmp_pos = @_pp + $distortionAmp * @_tmp_noise\n\n\n\n\n\n", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": "HF_Noise_Core:afa19a9-MakeDict:[node]/outputs/dict", + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -3400.0, + 600.0 + ], + "options": [] + }, + "6f2a549c-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.5, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": " Gain", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 9299.8017578125, + 712.075927734375 + ], + "options": [] + }, + "ced0f488-erode_noise_worley": { + "name": "erode_noise_worley", + "inputs": { + "prim_2DGrid": { + "link": "HF_Noise_Core:779ece17-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "seed": { + "link": "HF_Noise_Core:56f2000e-SubInput:[node]/outputs/port", + "type": "vec3f", + "default-value": [ + 0.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "posLikeAttrName": { + "link": null, + "type": "string", + "default-value": "pos", + "control": { + "name": "String" + } + }, + "celljitter": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "distType": { + "link": "HF_Noise_Core:ea44e547-SubInput:[node]/outputs/port", + "type": "enum Euclidean Chebyshev Manhattan", + "default-value": "Euclidean", + "control": { + "name": "Enum", + "items": [ + "Euclidean", + "Chebyshev", + "Manhattan" + ] + } + }, + "fType": { + "link": "HF_Noise_Core:1b4cb11a-SubInput:[node]/outputs/port", + "type": "enum F1 F2-F1", + "default-value": "F1", + "control": { + "name": "Enum", + "items": [ + "F1", + "F2-F1" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "attrName": { + "value": "noise", + "control": { + "name": "String" + }, + "type": "string" + }, + "attrType": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "float3" + ] + }, + "type": "enum float float3" + } + }, + "outputs": { + "prim_2DGrid": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -2800.0, + 3200.0 + ], + "options": [] + }, + "f8f50126-PrimitiveDelAttrs": { + "name": "PrimitiveDelAttrs", + "inputs": { + "prim": { + "link": "HF_Noise_Core:e354c56d-IfElse:[node]/outputs/result", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "invert": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "names": { + "link": null, + "type": "string", + "default-value": "noise _originalPos _pp _signal _weight _tmp_pos _tmp_noise", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 17600.0, + 3800.0 + ], + "options": [] + } + }, + "view_rect": {} + }, + "HF_Noise_Analytic_2D": { + "nodes": { + "10f8cee8-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": null, + "control": { + "name": "Float Vector 3" + }, + "type": "vec3f" + }, + "name": { + "value": "offset", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "vec3f", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 705.2163696289063, + 1363.656005859375 + ], + "options": [] + }, + "113ef152-PortalIn": { + "name": "PortalIn", + "inputs": { + "port": { + "link": "HF_Noise_Analytic_2D:ba1825fc-BeginFor:[node]/outputs/index", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": "HF_Noise_Analytic_2D:ba1825fc-BeginFor:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "name": { + "value": "i", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 3852.831298828125, + 1792.690185546875 + ], + "options": [] + }, + "198c4a4e-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.5, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "roughness", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 4691.20556640625, + 264.1802978515625 + ], + "options": [] + }, + "23d73287-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 8.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "maxOctaves", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2638.830078125, + 2094.986328125 + ], + "options": [] + }, + "4f1f1a38-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 500.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "elementSize", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1475.178955078125, + 986.7054443359375 + ], + "options": [] + }, + "5419bc28-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": null, + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "prim", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1957.522705078125, + 762.5224609375 + ], + "options": [] + }, + "604b8fed-EndFor": { + "name": "EndFor", + "inputs": { + "FOR": { + "link": "HF_Noise_Analytic_2D:ba1825fc-BeginFor:[node]/outputs/FOR", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": "HF_Noise_Analytic_2D:f474425b-Route:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 6981.009765625, + 2081.928466796875 + ], + "options": [] + }, + "74bfe4f5-PortalOut": { + "name": "PortalOut", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "name": { + "value": "i", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 4274.61962890625, + 109.54270935058594 + ], + "options": [] + }, + "7eea29c3-SubCategory": { + "name": "SubCategory", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "name": { + "value": "wbStdGraph", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 4835.369140625, + 5325.05224609375 + ], + "options": [] + }, + "a6cb5774-MakeDict": { + "name": "MakeDict", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "elementSize": { + "property": "editable", + "link": "HF_Noise_Analytic_2D:4f1f1a38-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "scale": { + "property": "editable", + "link": "HF_Noise_Analytic_2D:f73140f1-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "offset": { + "property": "editable", + "link": "HF_Noise_Analytic_2D:10f8cee8-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "dPdx": { + "property": "editable", + "link": "HF_Noise_Analytic_2D:5404700b-NumericVec3:[node]/outputs/vec3", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "dPdz": { + "property": "editable", + "link": "HF_Noise_Analytic_2D:f7bbcb23-NumericVec3:[node]/outputs/vec3", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "obj5": { + "property": "editable", + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "dict": { + "type": "dict" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1958.6422119140626, + 1311.6829833984376 + ], + "options": [], + "dict_keys": { + "inputs": [ + "elementSize", + "scale", + "offset", + "dPdx", + "dPdz", + "obj5" + ], + "outputs": [] + } + }, + "b0c7ce96-NumericOperator": { + "name": "NumericOperator", + "inputs": { + "lhs": { + "link": "HF_Noise_Analytic_2D:74bfe4f5-PortalOut:[node]/outputs/port", + "type": "NumericObject", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "rhs": { + "link": null, + "type": "NumericObject", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "op_type": { + "value": "tofloat", + "control": { + "name": "Enum", + "items": [ + "add", + "sub", + "mul", + "div", + "mod", + "and", + "or", + "xor", + "shr", + "shl", + "cmpge", + "cmple", + "cmpgt", + "cmplt", + "cmpne", + "cmpeq", + "land", + "lor", + "pos", + "neg", + "inv", + "not", + "atan2", + "pow", + "max", + "min", + "fmod", + "dot", + "cross", + "distance", + "length", + "normalize", + "abs", + "sqrt", + "sin", + "cos", + "tan", + "asin", + "acos", + "atan", + "exp", + "log", + "floor", + "ceil", + "toint", + "tofloat", + "anytrue", + "alltrue", + "copy", + "copyr" + ] + }, + "type": "enum add sub mul div mod and or xor shr shl cmpge cmple cmpgt cmplt cmpne cmpeq land lor pos neg inv not atan2 pow max min fmod dot cross distance length normalize abs sqrt sin cos tan asin acos atan exp log floor ceil toint tofloat anytrue alltrue copy copyr" + } + }, + "outputs": { + "ret": { + "type": "NumericObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 4222.6494140625, + 437.59326171875 + ], + "options": [] + }, + "ba1825fc-BeginFor": { + "name": "BeginFor", + "inputs": { + "count": { + "link": "HF_Noise_Analytic_2D:23d73287-SubInput:[node]/outputs/port", + "type": "int", + "default-value": 2, + "control": { + "name": "Integer" + } + }, + "SRC": { + "link": "HF_Noise_Analytic_2D:3c6cd100-ParticlesWrangle:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "index": { + "type": "int" + }, + "FOR": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3277.005859375, + 1947.7000732421876 + ], + "options": [] + }, + "c9929326-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 10.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "amp", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 6783.03125, + 474.1040344238281 + ], + "options": [] + }, + "ca64ce38-SubOutput": { + "name": "SubOutput", + "inputs": { + "port": { + "link": "HF_Noise_Analytic_2D:4b6571b0-PrimitiveDelAttrs:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": null, + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "prim", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 11403.5478515625, + 1999.1094970703126 + ], + "options": [] + }, + "ce12c648-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 1.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "H", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3848.43212890625, + 560.8936157226563 + ], + "options": [] + }, + "f2eda925-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Noise_Analytic_2D:209e6f0b-erode_noise_analytic_simplex_2d:[node]/outputs/prim_2DGrid", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "amp = pow($lacunarity, -$H * $i)\nrough = $i>0 ? abs($roughness) : 1\n@result += @analyticNoise * amp * rough\n@temp_pos *= $lacunarity", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": "HF_Noise_Analytic_2D:6dc7b8a0-MakeDict:[node]/outputs/dict", + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 5464.07275390625, + 1428.219970703125 + ], + "options": [] + }, + "f474425b-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "HF_Noise_Analytic_2D:f2eda925-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 6348.45458984375, + 1635.46923828125 + ], + "options": [] + }, + "f73140f1-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": null, + "control": { + "name": "Float Vector 3" + }, + "type": "vec3f" + }, + "name": { + "value": "scale", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "vec3f", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1092.0555419921876, + 1157.5052490234376 + ], + "options": [] + }, + "209e6f0b-erode_noise_analytic_simplex_2d": { + "name": "erode_noise_analytic_simplex_2d", + "inputs": { + "prim_2DGrid": { + "link": "HF_Noise_Analytic_2D:3c6cd100-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "posLikeAttrName": { + "link": null, + "type": "string", + "default-value": "temp_pos", + "control": { + "name": "String" + } + }, + "SRC": { + "link": "HF_Noise_Analytic_2D:113ef152-PortalIn:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "attrName": { + "value": "analyticNoise", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "prim_2DGrid": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 4376.39990234375, + 1458.5631103515626 + ], + "options": [] + }, + "33f44f3b-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 1.840999960899353, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "lacunarity", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 5061.607421875, + 94.25730895996094 + ], + "options": [] + }, + "6dc7b8a0-MakeDict": { + "name": "MakeDict", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "lacunarity": { + "property": "editable", + "link": "HF_Noise_Analytic_2D:33f44f3b-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "roughness": { + "property": "editable", + "link": "HF_Noise_Analytic_2D:198c4a4e-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "i": { + "property": "editable", + "link": "HF_Noise_Analytic_2D:b0c7ce96-NumericOperator:[node]/outputs/ret", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "H": { + "property": "editable", + "link": "HF_Noise_Analytic_2D:ce12c648-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "obj4": { + "property": "editable", + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "dict": { + "type": "dict" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 5590.12109375, + 763.0648803710938 + ], + "options": [], + "dict_keys": { + "inputs": [ + "lacunarity", + "roughness", + "i", + "H", + "obj4" + ], + "outputs": [] + } + }, + "1e906526-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Noise_Analytic_2D:f474425b-Route:[node]/outputs/output", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "a = $dPdx * @result.z + $dPdz * -@result.y\nb = $amp/$steps\n@pos += a * b", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": "HF_Noise_Analytic_2D:e389dc15-MakeDict:[node]/outputs/dict", + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": "HF_Noise_Analytic_2D:604b8fed-EndFor:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 7621.9580078125, + 1463.9146728515626 + ], + "options": [] + }, + "3c6cd100-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Noise_Analytic_2D:5419bc28-SubInput:[node]/outputs/port", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "_px = dot(@pos,$dPdx)\n_pz = dot(@pos,$dPdz)\n@temp_pos = vec3(_px,0,_pz)\n\nfrequency = 1 / ($elementSize * $scale + 0.00001)\noffset = $offset * frequency\n\n@temp_pos = @temp_pos * frequency + offset\n\n@result = vec3(0,0,0)\n\n", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": "HF_Noise_Analytic_2D:a6cb5774-MakeDict:[node]/outputs/dict", + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": "HF_Noise_Analytic_2D:8b9223f8-BeginFor:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2560.736572265625, + 1284.2657470703126 + ], + "options": [] + }, + "6b7a71a9-NumericVec3": { + "name": "NumericVec3", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "x": { + "value": 1.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "y": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "z": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + } + }, + "outputs": { + "vec3": { + "type": "vec3f" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 7149.67138671875, + 341.4185791015625 + ], + "options": [] + }, + "75f26d08-NumericVec3": { + "name": "NumericVec3", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "x": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "y": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "z": { + "value": 1.0, + "control": { + "name": "Float" + }, + "type": "float" + } + }, + "outputs": { + "vec3": { + "type": "vec3f" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 7577.8251953125, + 202.23187255859376 + ], + "options": [] + }, + "e389dc15-MakeDict": { + "name": "MakeDict", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "dPdx": { + "property": "editable", + "link": "HF_Noise_Analytic_2D:75f26d08-NumericVec3:[node]/outputs/vec3", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "dPdz": { + "property": "editable", + "link": "HF_Noise_Analytic_2D:6b7a71a9-NumericVec3:[node]/outputs/vec3", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "amp": { + "property": "editable", + "link": "HF_Noise_Analytic_2D:c9929326-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "steps": { + "property": "editable", + "link": "HF_Noise_Analytic_2D:2c92f0c9-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "obj2": { + "property": "editable", + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "dict": { + "type": "dict" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 7712.1142578125, + 826.974609375 + ], + "options": [], + "dict_keys": { + "inputs": [ + "dPdx", + "dPdz", + "amp", + "steps", + "obj2" + ], + "outputs": [] + } + }, + "2c92f0c9-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 2.0, + "control": { + "name": "Integer" + }, + "type": "int" + }, + "name": { + "value": "steps", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "int", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 6412.73828125, + 640.3928833007813 + ], + "options": [] + }, + "8b9223f8-BeginFor": { + "name": "BeginFor", + "inputs": { + "count": { + "link": "HF_Noise_Analytic_2D:9951a4f-PortalOut:[node]/outputs/port", + "type": "int", + "default-value": null, + "control": { + "name": "Integer" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "index": { + "type": "int" + }, + "FOR": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1775.666259765625, + 2499.884521484375 + ], + "options": [] + }, + "98076e14-EndFor": { + "name": "EndFor", + "inputs": { + "FOR": { + "link": "HF_Noise_Analytic_2D:8b9223f8-BeginFor:[node]/outputs/FOR", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": "HF_Noise_Analytic_2D:1e906526-ParticlesWrangle:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 8643.1591796875, + 2635.61181640625 + ], + "options": [] + }, + "5404700b-NumericVec3": { + "name": "NumericVec3", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "x": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "y": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "z": { + "value": 1.0, + "control": { + "name": "Float" + }, + "type": "float" + } + }, + "outputs": { + "vec3": { + "type": "vec3f" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 271.0142822265625, + 1571.918701171875 + ], + "options": [] + }, + "f7bbcb23-NumericVec3": { + "name": "NumericVec3", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "x": { + "value": 1.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "y": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "z": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + } + }, + "outputs": { + "vec3": { + "type": "vec3f" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 704.5191650390625, + 1916.7440185546876 + ], + "options": [] + }, + "85ce4c31-PortalIn": { + "name": "PortalIn", + "inputs": { + "port": { + "link": "HF_Noise_Analytic_2D:2c92f0c9-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "name": { + "value": "steps", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 6895.04296875, + 1082.6051025390626 + ], + "options": [] + }, + "9951a4f-PortalOut": { + "name": "PortalOut", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "name": { + "value": "steps", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1225.545654296875, + 2506.489990234375 + ], + "options": [] + }, + "4b6571b0-PrimitiveDelAttrs": { + "name": "PrimitiveDelAttrs", + "inputs": { + "prim": { + "link": "HF_Noise_Analytic_2D:1e906526-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "invert": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "names": { + "link": null, + "type": "string", + "default-value": "result temp_pos analyticNoise", + "control": { + "name": "String" + } + }, + "SRC": { + "link": "HF_Noise_Analytic_2D:98076e14-EndFor:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 10000.0, + 2000.0 + ], + "options": [] + } + }, + "view_rect": {} + }, + "Erode_Granular_Slump_Flow": { + "nodes": { + "10470747-EndFor": { + "name": "EndFor", + "inputs": { + "FOR": { + "link": "Erode_Granular_Slump_Flow:8dbb7c10-BeginFor:[node]/outputs/FOR", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": "Erode_Granular_Slump_Flow:f33f6639-zs_tumble_material_v3:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 100.0, + 100.0 + ], + "options": [] + }, + "34d41f76-BeginFor": { + "name": "BeginFor", + "inputs": { + "count": { + "link": "Erode_Granular_Slump_Flow:b567f6d1-SubInput:[node]/outputs/port", + "type": "int", + "default-value": 10, + "control": { + "name": "Integer" + } + }, + "SRC": { + "link": "Erode_Granular_Slump_Flow:210966c9-Route:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "index": { + "type": "int" + }, + "FOR": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -6100.0, + 500.0 + ], + "options": [] + }, + "37d770db-EndFor": { + "name": "EndFor", + "inputs": { + "FOR": { + "link": "Erode_Granular_Slump_Flow:34d41f76-BeginFor:[node]/outputs/FOR", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": "Erode_Granular_Slump_Flow:ed5f7cde-PrintNumeric:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 1400.0, + 600.0 + ], + "options": [] + }, + "3a6bf2ad-SubOutput": { + "name": "SubOutput", + "inputs": { + "port": { + "link": "Erode_Granular_Slump_Flow:9b2ac607-PrimitiveDelAttrs:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": null, + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "HeightField 高度场地形", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 20200.0, + 0.0 + ], + "options": [] + }, + "3b4eb41d-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": null, + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "HeightField 高度场地形", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -12100.0, + 0.0 + ], + "options": [] + }, + "40857155-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0, + "control": { + "name": "Integer" + }, + "type": "int" + }, + "name": { + "value": "Open Border 开放边界", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "int", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -4300.0, + 900.0 + ], + "options": [] + }, + "489baee6-erode_rand_dir": { + "name": "erode_rand_dir", + "inputs": { + "iterations": { + "link": "Erode_Granular_Slump_Flow:f096002b-NumericOperator:[node]/outputs/ret", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "iter": { + "link": "Erode_Granular_Slump_Flow:f1445b67-NumericOperator:[node]/outputs/ret", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "SRC": { + "link": "Erode_Granular_Slump_Flow:a95a17e5-erode_rand_dir:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "list": { + "type": "list" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -4400.0, + -1200.0 + ], + "options": [] + }, + "4c739f96-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 1.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "Flow Rate 流网扩张", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -2300.0, + 2100.0 + ], + "options": [] + }, + "603f4aa2-SubCategory": { + "name": "SubCategory", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "name": { + "value": "wbStdGraph", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 12600.0, + 1800.0 + ], + "options": [] + }, + "618359d2-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": false, + "control": { + "name": "Boolean" + }, + "type": "bool" + }, + "name": { + "value": "Visual Flow Enable 打开流场可视化效果", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "bool", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 15000.0, + 400.0 + ], + "options": [] + }, + "82419828-IfElse": { + "name": "IfElse", + "inputs": { + "true": { + "link": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "false": { + "link": "Erode_Granular_Slump_Flow:329ecb8e-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "cond": { + "link": "Erode_Granular_Slump_Flow:618359d2-SubInput:[node]/outputs/port", + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "result": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 16200.0, + 0.0 + ], + "options": [] + }, + "8dbb7c10-BeginFor": { + "name": "BeginFor", + "inputs": { + "count": { + "link": null, + "type": "int", + "default-value": 8, + "control": { + "name": "Integer" + } + }, + "SRC": { + "link": "Erode_Granular_Slump_Flow:489baee6-erode_rand_dir:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "index": { + "type": "int" + }, + "FOR": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -3500.0, + 0.0 + ], + "options": [] + }, + "949f1de3-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 1234.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "Seed 随机种子值", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -7200.0, + -1000.0 + ], + "options": [] + }, + "95cd11ee-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "Repose Angle 水土保持坡度", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -3300.0, + 1500.0 + ], + "options": [] + }, + "a95a17e5-erode_rand_dir": { + "name": "erode_rand_dir", + "inputs": { + "iterations": { + "link": "Erode_Granular_Slump_Flow:b567f6d1-SubInput:[node]/outputs/port", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "iter": { + "link": "Erode_Granular_Slump_Flow:f1445b67-NumericOperator:[node]/outputs/ret", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "SRC": { + "link": "Erode_Granular_Slump_Flow:b2d76045-erode_rand_color:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "list": { + "type": "list" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -4400.0, + -1600.0 + ], + "options": [] + }, + "b001152d-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "Erode_Granular_Slump_Flow:661db1f4-PrimCopyAttr:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_temp_material = 0\n@flowdir = vec3(0.0,0.0,0.0)", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -9800.0, + 0.0 + ], + "options": [] + }, + "b2d76045-erode_rand_color": { + "name": "erode_rand_color", + "inputs": { + "iterations": { + "link": "Erode_Granular_Slump_Flow:b567f6d1-SubInput:[node]/outputs/port", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "iter": { + "link": "Erode_Granular_Slump_Flow:f1445b67-NumericOperator:[node]/outputs/ret", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "list": { + "type": "list" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -4400.0, + -2000.0 + ], + "options": [] + }, + "b567f6d1-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 200, + "control": { + "name": "Integer" + }, + "type": "int" + }, + "name": { + "value": "Slump Iterations 崩解滑塌迭代次数", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "int", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -7200.0, + -500.0 + ], + "options": [] + }, + "cd95f27a-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "Gridbias 流动偏置", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -3800.0, + 1200.0 + ], + "options": [] + }, + "ea482201-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": null, + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_temp_material = @_material", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -2600.0, + -3000.0 + ], + "options": [] + }, + "f096002b-NumericOperator": { + "name": "NumericOperator", + "inputs": { + "lhs": { + "link": "Erode_Granular_Slump_Flow:b567f6d1-SubInput:[node]/outputs/port", + "type": "NumericObject", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "rhs": { + "link": null, + "type": "NumericObject", + "default-value": 10.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "op_type": { + "value": "mul", + "control": { + "name": "Enum", + "items": [ + "add", + "sub", + "mul", + "div", + "mod", + "and", + "or", + "xor", + "shr", + "shl", + "cmpge", + "cmple", + "cmpgt", + "cmplt", + "cmpne", + "cmpeq", + "land", + "lor", + "pos", + "neg", + "inv", + "not", + "atan2", + "pow", + "max", + "min", + "fmod", + "dot", + "cross", + "distance", + "length", + "normalize", + "abs", + "sqrt", + "sin", + "cos", + "tan", + "asin", + "acos", + "atan", + "exp", + "log", + "floor", + "ceil", + "toint", + "tofloat", + "anytrue", + "alltrue", + "copy", + "copyr" + ] + }, + "type": "enum add sub mul div mod and or xor shr shl cmpge cmple cmpgt cmplt cmpne cmpeq land lor pos neg inv not atan2 pow max min fmod dot cross distance length normalize abs sqrt sin cos tan asin acos atan exp log floor ceil toint tofloat anytrue alltrue copy copyr" + } + }, + "outputs": { + "ret": { + "type": "NumericObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -6000.0, + -1500.0 + ], + "options": [] + }, + "f1445b67-NumericOperator": { + "name": "NumericOperator", + "inputs": { + "lhs": { + "link": "Erode_Granular_Slump_Flow:34d41f76-BeginFor:[node]/outputs/index", + "type": "NumericObject", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "rhs": { + "link": null, + "type": "NumericObject", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "op_type": { + "value": "add", + "control": { + "name": "Enum", + "items": [ + "add", + "sub", + "mul", + "div", + "mod", + "and", + "or", + "xor", + "shr", + "shl", + "cmpge", + "cmple", + "cmpgt", + "cmplt", + "cmpne", + "cmpeq", + "land", + "lor", + "pos", + "neg", + "inv", + "not", + "atan2", + "pow", + "max", + "min", + "fmod", + "dot", + "cross", + "distance", + "length", + "normalize", + "abs", + "sqrt", + "sin", + "cos", + "tan", + "asin", + "acos", + "atan", + "exp", + "log", + "floor", + "ceil", + "toint", + "tofloat", + "anytrue", + "alltrue", + "copy", + "copyr" + ] + }, + "type": "enum add sub mul div mod and or xor shr shl cmpge cmple cmpgt cmplt cmpne cmpeq land lor pos neg inv not atan2 pow max min fmod dot cross distance length normalize abs sqrt sin cos tan asin acos atan exp log floor ceil toint tofloat anytrue alltrue copy copyr" + } + }, + "outputs": { + "ret": { + "type": "NumericObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -5300.0, + 0.0 + ], + "options": [] + }, + "fcdc69c3-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "Quantization 流量", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -2800.0, + 1800.0 + ], + "options": [] + }, + "a7f31ab8-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "Erode_Granular_Slump_Flow:329ecb8e-Route:[node]/outputs/output", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@pos.y = @height + 1 * @debris + 1 * @water + 0 * @sediment\n\nclr_flow = vec3(1.0, 0.1, 0.1)\ncoef_flow = min(1, @_flow)\n\n@clr = (1 - coef_flow) * @clr + coef_flow * clr_flow", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 15003.28515625, + -675.2308349609375 + ], + "options": [], + "customui-panel": { + "Default": { + "In Sockets": { + "prim": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/inputs/prim", + "class": "input" + }, + "control": { + "name": "" + }, + "uuid": 3397007554, + "property": "normal" + }, + "zfxCode": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/inputs/zfxCode", + "class": "input" + }, + "control": { + "name": "Multiline String" + }, + "uuid": 2096230889, + "property": "normal" + }, + "params": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/inputs/params", + "class": "input" + }, + "control": { + "name": "" + }, + "uuid": 2554664850, + "property": "normal" + }, + "SRC": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/inputs/SRC", + "class": "input" + }, + "control": { + "name": "" + }, + "uuid": 1578766938, + "property": "normal" + } + }, + "Parameters": {}, + "Out Sockets": { + "prim": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/outputs/prim", + "class": "output" + }, + "control": { + "name": "" + }, + "uuid": 2976075330, + "property": "normal" + }, + "DST": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/outputs/DST", + "class": "output" + }, + "control": { + "name": "" + }, + "uuid": 1165561343, + "property": "normal" + } + } + } + } + }, + "afad9e7c-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "Erode_Granular_Slump_Flow:586fba01-PrimCopyAttr:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_flowx = @flowdir.x\n@_flowz = @flowdir.z", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 9000.0, + 0.0 + ], + "options": [], + "customui-panel": { + "Default": { + "In Sockets": { + "prim": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/inputs/prim", + "class": "input" + }, + "control": { + "name": "" + }, + "uuid": 2269174523, + "property": "normal" + }, + "zfxCode": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/inputs/zfxCode", + "class": "input" + }, + "control": { + "name": "Multiline String" + }, + "uuid": 1037197104, + "property": "normal" + }, + "params": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/inputs/params", + "class": "input" + }, + "control": { + "name": "" + }, + "uuid": 2496327008, + "property": "normal" + }, + "SRC": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/inputs/SRC", + "class": "input" + }, + "control": { + "name": "" + }, + "uuid": 3436462776, + "property": "normal" + } + }, + "Parameters": {}, + "Out Sockets": { + "prim": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/outputs/prim", + "class": "output" + }, + "control": { + "name": "" + }, + "uuid": 3754741058, + "property": "normal" + }, + "DST": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/outputs/DST", + "class": "output" + }, + "control": { + "name": "" + }, + "uuid": 2836836474, + "property": "normal" + } + } + } + } + }, + "329ecb8e-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "Erode_Granular_Slump_Flow:c37be7b5-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 14200.0, + 0.0 + ], + "options": [] + }, + "db2b53e-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "Erode_Granular_Slump_Flow:f99332ae-erode_smooth_flow:[node]/outputs/prim_2DGrid", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_flow = 0.75 * sqrt(@_flowx * @_flowx + @_flowz * @_flowz)\n@_flow = clamp(@_flow, 0, 1)\n", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": "Erode_Granular_Slump_Flow:a0e65a00-EndFor:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 12415.9580078125, + -497.0190124511719 + ], + "options": [ + "collapsed" + ], + "customui-panel": { + "Default": { + "In Sockets": { + "prim": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/inputs/prim", + "class": "input" + }, + "control": { + "name": "" + }, + "uuid": 2849071315, + "property": "normal" + }, + "zfxCode": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/inputs/zfxCode", + "class": "input" + }, + "control": { + "name": "Multiline String" + }, + "uuid": 3637309463, + "property": "normal" + }, + "params": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/inputs/params", + "class": "input" + }, + "control": { + "name": "" + }, + "uuid": 2825539351, + "property": "normal" + }, + "SRC": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/inputs/SRC", + "class": "input" + }, + "control": { + "name": "" + }, + "uuid": 977350842, + "property": "normal" + } + }, + "Parameters": {}, + "Out Sockets": { + "prim": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/outputs/prim", + "class": "output" + }, + "control": { + "name": "" + }, + "uuid": 1019122918, + "property": "normal" + }, + "DST": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/outputs/DST", + "class": "output" + }, + "control": { + "name": "" + }, + "uuid": 424512721, + "property": "normal" + } + } + } + } + }, + "ed5f7cde-PrintNumeric": { + "name": "PrintNumeric", + "inputs": { + "value": { + "link": "Erode_Granular_Slump_Flow:34d41f76-BeginFor:[node]/outputs/index", + "type": "NumericObject", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": "Erode_Granular_Slump_Flow:10470747-EndFor:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "hint": { + "value": "flow step ", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "value": { + "type": "NumericObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 700.0, + 300.0 + ], + "options": [] + }, + "ff0051fc-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "none", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Stability Mask 碎屑稳固层", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -4400.0, + -2500.0 + ], + "options": [] + }, + "a03541af-zs_erode_tumble_material_v3": { + "name": "zs_erode_tumble_material_v3", + "inputs": { + "prim_2DGrid": { + "link": "Erode_Granular_Slump_Flow:ea482201-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "stabilitymask": { + "link": "Erode_Granular_Slump_Flow:ff0051fc-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "_stability", + "control": { + "name": "String" + } + }, + "perm": { + "link": "Erode_Granular_Slump_Flow:b2d76045-erode_rand_color:[node]/outputs/list", + "type": "ListObject", + "default-value": null, + "control": { + "name": "" + } + }, + "p_dirs": { + "link": "Erode_Granular_Slump_Flow:a95a17e5-erode_rand_dir:[node]/outputs/list", + "type": "ListObject", + "default-value": null, + "control": { + "name": "" + } + }, + "x_dirs": { + "link": "Erode_Granular_Slump_Flow:489baee6-erode_rand_dir:[node]/outputs/list", + "type": "ListObject", + "default-value": null, + "control": { + "name": "" + } + }, + "seed": { + "link": "Erode_Granular_Slump_Flow:949f1de3-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 15231.2998046875, + "control": { + "name": "Float" + } + }, + "iterations": { + "link": "Erode_Granular_Slump_Flow:b567f6d1-SubInput:[node]/outputs/port", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "iter": { + "link": "Erode_Granular_Slump_Flow:f1445b67-NumericOperator:[node]/outputs/ret", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "i": { + "link": "Erode_Granular_Slump_Flow:8dbb7c10-BeginFor:[node]/outputs/index", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "openborder": { + "link": "Erode_Granular_Slump_Flow:40857155-SubInput:[node]/outputs/port", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "gridbias": { + "link": "Erode_Granular_Slump_Flow:cd95f27a-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "repose_angle": { + "link": "Erode_Granular_Slump_Flow:95cd11ee-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "quant_amt": { + "link": "Erode_Granular_Slump_Flow:fcdc69c3-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "flow_rate": { + "link": "Erode_Granular_Slump_Flow:4c739f96-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim_2DGrid": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -3400.0, + -3000.0 + ], + "options": [] + }, + "a2d2d920-erode_smooth_flow": { + "name": "erode_smooth_flow", + "inputs": { + "prim_2DGrid": { + "link": "Erode_Granular_Slump_Flow:afad9e7c-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "smoothRate": { + "link": "Erode_Granular_Slump_Flow:8d4ade9c-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "flowName": { + "link": null, + "type": "string", + "default-value": "_flowx", + "control": { + "name": "String" + } + }, + "SRC": { + "link": "Erode_Granular_Slump_Flow:39213ae9-BeginFor:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim_2DGrid": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 10500.0, + 100.0 + ], + "options": [] + }, + "f99332ae-erode_smooth_flow": { + "name": "erode_smooth_flow", + "inputs": { + "prim_2DGrid": { + "link": "Erode_Granular_Slump_Flow:a2d2d920-erode_smooth_flow:[node]/outputs/prim_2DGrid", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "smoothRate": { + "link": "Erode_Granular_Slump_Flow:8d4ade9c-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "flowName": { + "link": null, + "type": "string", + "default-value": "_flowz", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim_2DGrid": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 11500.0, + 100.0 + ], + "options": [] + }, + "9b2ac607-PrimitiveDelAttrs": { + "name": "PrimitiveDelAttrs", + "inputs": { + "prim": { + "link": "Erode_Granular_Slump_Flow:94972605-IfElse:[node]/outputs/result", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "invert": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "names": { + "link": null, + "type": "string", + "default-value": "_height _material _temp_material _flowx _flowz", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 19300.0, + 0.0 + ], + "options": [] + }, + "150530ec-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0, + "control": { + "name": "Integer" + }, + "type": "int" + }, + "name": { + "value": "Flow Smooth Iterations 流场平滑迭代次数", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "int", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 7200.0, + 900.0 + ], + "options": [] + }, + "2bbe61ac-NumericOperator": { + "name": "NumericOperator", + "inputs": { + "lhs": { + "link": "Erode_Granular_Slump_Flow:150530ec-SubInput:[node]/outputs/port", + "type": "NumericObject", + "default-value": null, + "control": { + "name": "Float" + } + }, + "rhs": { + "link": null, + "type": "NumericObject", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "op_type": { + "value": "cmpgt", + "control": { + "name": "Enum", + "items": [ + "add", + "sub", + "mul", + "div", + "mod", + "and", + "or", + "xor", + "shr", + "shl", + "cmpge", + "cmple", + "cmpgt", + "cmplt", + "cmpne", + "cmpeq", + "land", + "lor", + "pos", + "neg", + "inv", + "not", + "atan2", + "pow", + "max", + "min", + "fmod", + "dot", + "cross", + "distance", + "length", + "normalize", + "abs", + "sqrt", + "sin", + "cos", + "tan", + "asin", + "acos", + "atan", + "exp", + "log", + "floor", + "ceil", + "toint", + "tofloat", + "anytrue", + "alltrue", + "copy", + "copyr" + ] + }, + "type": "enum add sub mul div mod and or xor shr shl cmpge cmple cmpgt cmplt cmpne cmpeq land lor pos neg inv not atan2 pow max min fmod dot cross distance length normalize abs sqrt sin cos tan asin acos atan exp log floor ceil toint tofloat anytrue alltrue copy copyr" + } + }, + "outputs": { + "ret": { + "type": "NumericObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 8000.0, + 1700.0 + ], + "options": [] + }, + "2f741e0a-IfElse": { + "name": "IfElse", + "inputs": { + "true": { + "link": "Erode_Granular_Slump_Flow:150530ec-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "false": { + "link": "Erode_Granular_Slump_Flow:5fdd846f-NumericInt:[node]/outputs/value", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "cond": { + "link": "Erode_Granular_Slump_Flow:2bbe61ac-NumericOperator:[node]/outputs/ret", + "type": "bool", + "default-value": null, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "result": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 9000.0, + 1000.0 + ], + "options": [] + }, + "39213ae9-BeginFor": { + "name": "BeginFor", + "inputs": { + "count": { + "link": "Erode_Granular_Slump_Flow:2f741e0a-IfElse:[node]/outputs/result", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "SRC": { + "link": "Erode_Granular_Slump_Flow:afad9e7c-ParticlesWrangle:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "index": { + "type": "int" + }, + "FOR": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 9800.0, + 800.0 + ], + "options": [] + }, + "5fdd846f-NumericInt": { + "name": "NumericInt", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "value": { + "value": -1, + "control": { + "name": "Integer" + }, + "type": "int" + } + }, + "outputs": { + "value": { + "type": "int" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 8000.0, + 1300.0 + ], + "options": [] + }, + "8d4ade9c-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 1.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "Flow Smooth Rate 流场平滑程度", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 9800.0, + -200.0 + ], + "options": [] + }, + "a0e65a00-EndFor": { + "name": "EndFor", + "inputs": { + "FOR": { + "link": "Erode_Granular_Slump_Flow:39213ae9-BeginFor:[node]/outputs/FOR", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": "Erode_Granular_Slump_Flow:f99332ae-erode_smooth_flow:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 12113.806640625, + 808.1795654296875 + ], + "options": [] + }, + "411de7ed-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "water", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Material to Slump 崩解滑塌层", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -3800.0, + -4300.0 + ], + "options": [] + }, + "a40417f3-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "Erode_Granular_Slump_Flow:3b4eb41d-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": "Erode_Granular_Slump_Flow:411de7ed-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "s", + "control": { + "name": "String" + } + }, + "targetName": { + "link": null, + "type": "string", + "default-value": "_material", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -11400.0, + 0.0 + ], + "options": [] + }, + "a43e5c16-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "Erode_Granular_Slump_Flow:2e0bc76d-ExtractPrimitiveFromZSParticles:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": null, + "type": "string", + "default-value": "_material", + "control": { + "name": "String" + } + }, + "targetName": { + "link": "Erode_Granular_Slump_Flow:411de7ed-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "_material", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 4300.0, + 0.0 + ], + "options": [] + }, + "6b22007a-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": true, + "control": { + "name": "Boolean" + }, + "type": "bool" + }, + "name": { + "value": "Copy Flow to Mask 流拷贝到 Mask 层", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "bool", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 17500.0, + 400.0 + ], + "options": [] + }, + "94972605-IfElse": { + "name": "IfElse", + "inputs": { + "true": { + "link": "Erode_Granular_Slump_Flow:4b1a45c-PrimitiveDelAttrs:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "false": { + "link": "Erode_Granular_Slump_Flow:82419828-IfElse:[node]/outputs/result", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "cond": { + "link": "Erode_Granular_Slump_Flow:6b22007a-SubInput:[node]/outputs/port", + "type": "bool", + "default-value": null, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "result": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 18600.0, + 0.0 + ], + "options": [] + }, + "983f5c57-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "Erode_Granular_Slump_Flow:82419828-IfElse:[node]/outputs/result", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@mask = @_flow", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 16861.703125, + -661.6951904296875 + ], + "options": [] + }, + "4b1a45c-PrimitiveDelAttrs": { + "name": "PrimitiveDelAttrs", + "inputs": { + "prim": { + "link": "Erode_Granular_Slump_Flow:983f5c57-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "invert": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "names": { + "link": null, + "type": "string", + "default-value": "_flow", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 17700.0, + -400.0 + ], + "options": [] + }, + "210966c9-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "Erode_Granular_Slump_Flow:f7db43ea-CopyAllUserData:[node]/outputs/dst", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -7200.0, + 0.0 + ], + "options": [] + }, + "1e97f349-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "Erode_Granular_Slump_Flow:f33f6639-zs_tumble_material_v3:[node]/outputs/zs_HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": "Erode_Granular_Slump_Flow:37d770db-EndFor:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2300.0, + 0.0 + ], + "options": [] + }, + "586fba01-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "Erode_Granular_Slump_Flow:a43e5c16-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": null, + "type": "string", + "default-value": "_height", + "control": { + "name": "String" + } + }, + "targetName": { + "link": "Erode_Granular_Slump_Flow:65df91f9-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "_material", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 5100.0, + 0.0 + ], + "options": [] + }, + "65df91f9-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "height", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Height Layer Name", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -3100.0, + -4300.0 + ], + "options": [] + }, + "661db1f4-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "Erode_Granular_Slump_Flow:a40417f3-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": "Erode_Granular_Slump_Flow:65df91f9-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "s", + "control": { + "name": "String" + } + }, + "targetName": { + "link": null, + "type": "string", + "default-value": "_height", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -10600.0, + 0.0 + ], + "options": [] + }, + "f33f6639-zs_tumble_material_v3": { + "name": "zs_tumble_material_v3", + "inputs": { + "zs_HeightField": { + "link": "Erode_Granular_Slump_Flow:5b150f5d-ZSParticlesWrangler:[node]/outputs/ZSParticles", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "stabilitymask": { + "link": "Erode_Granular_Slump_Flow:ff0051fc-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "_stability", + "control": { + "name": "String" + } + }, + "perm": { + "link": "Erode_Granular_Slump_Flow:b2d76045-erode_rand_color:[node]/outputs/list", + "type": "ListObject", + "default-value": null, + "control": { + "name": "" + } + }, + "p_dirs": { + "link": "Erode_Granular_Slump_Flow:a95a17e5-erode_rand_dir:[node]/outputs/list", + "type": "ListObject", + "default-value": null, + "control": { + "name": "" + } + }, + "x_dirs": { + "link": "Erode_Granular_Slump_Flow:489baee6-erode_rand_dir:[node]/outputs/list", + "type": "ListObject", + "default-value": null, + "control": { + "name": "" + } + }, + "seed": { + "link": "Erode_Granular_Slump_Flow:949f1de3-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 15231.2998046875, + "control": { + "name": "Float" + } + }, + "iterations": { + "link": "Erode_Granular_Slump_Flow:b567f6d1-SubInput:[node]/outputs/port", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "iter": { + "link": "Erode_Granular_Slump_Flow:f1445b67-NumericOperator:[node]/outputs/ret", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "i": { + "link": "Erode_Granular_Slump_Flow:8dbb7c10-BeginFor:[node]/outputs/index", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "openborder": { + "link": "Erode_Granular_Slump_Flow:40857155-SubInput:[node]/outputs/port", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "gridbias": { + "link": "Erode_Granular_Slump_Flow:cd95f27a-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "repose_angle": { + "link": "Erode_Granular_Slump_Flow:95cd11ee-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "quant_amt": { + "link": "Erode_Granular_Slump_Flow:fcdc69c3-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "flow_rate": { + "link": "Erode_Granular_Slump_Flow:4c739f96-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "zs_HeightField": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -900.0, + -1000.0 + ], + "options": [] + }, + "5b150f5d-ZSParticlesWrangler": { + "name": "ZSParticlesWrangler", + "inputs": { + "ZSParticles": { + "link": "Erode_Granular_Slump_Flow:210966c9-Route:[node]/outputs/output", + "type": "ZenoParticles", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_temp_material = @_material", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": "Erode_Granular_Slump_Flow:8dbb7c10-BeginFor:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "ZSParticles": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1900.0, + -2000.0 + ], + "options": [] + }, + "654b845f-UpdatePrimitiveAttrFromZSParticles": { + "name": "UpdatePrimitiveAttrFromZSParticles", + "inputs": { + "ZSParticles": { + "link": "Erode_Granular_Slump_Flow:1e97f349-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "attr": { + "value": "_height", + "control": { + "name": "String" + }, + "type": "string" + }, + "location": { + "value": "vert", + "control": { + "name": "Enum", + "items": [ + "vert", + "quad" + ] + }, + "type": "enum vert quad" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec3f" + ] + }, + "type": "enum float vec3f" + } + }, + "outputs": { + "ZSParticles": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3000.0, + 0.0 + ], + "options": [] + }, + "b81c0ab6-UpdatePrimitiveAttrFromZSParticles": { + "name": "UpdatePrimitiveAttrFromZSParticles", + "inputs": { + "ZSParticles": { + "link": "Erode_Granular_Slump_Flow:654b845f-UpdatePrimitiveAttrFromZSParticles:[node]/outputs/ZSParticles", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "attr": { + "value": "_material", + "control": { + "name": "String" + }, + "type": "string" + }, + "location": { + "value": "vert", + "control": { + "name": "Enum", + "items": [ + "vert", + "quad" + ] + }, + "type": "enum vert quad" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec3f" + ] + }, + "type": "enum float vec3f" + } + }, + "outputs": { + "ZSParticles": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3000.0, + 500.0 + ], + "options": [] + }, + "6d8a6ab8-PointsToZSParticles2": { + "name": "PointsToZSParticles2", + "inputs": { + "prim": { + "link": "Erode_Granular_Slump_Flow:b001152d-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "add_customed_attr": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "selected_custom_attr_tags": { + "link": null, + "type": "string", + "default-value": "_height _material _temp_material flowdir", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "ZSParticles": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -8900.0, + 0.0 + ], + "options": [] + }, + "f7db43ea-CopyAllUserData": { + "name": "CopyAllUserData", + "inputs": { + "dst": { + "link": "Erode_Granular_Slump_Flow:6d8a6ab8-PointsToZSParticles2:[node]/outputs/ZSParticles", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "src": { + "link": "Erode_Granular_Slump_Flow:b001152d-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "dst": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -8000.0, + 300.0 + ], + "options": [] + }, + "60296227-UpdatePrimitiveAttrFromZSParticles": { + "name": "UpdatePrimitiveAttrFromZSParticles", + "inputs": { + "ZSParticles": { + "link": "Erode_Granular_Slump_Flow:b81c0ab6-UpdatePrimitiveAttrFromZSParticles:[node]/outputs/ZSParticles", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "attr": { + "value": "flowdir", + "control": { + "name": "String" + }, + "type": "string" + }, + "location": { + "value": "vert", + "control": { + "name": "Enum", + "items": [ + "vert", + "quad" + ] + }, + "type": "enum vert quad" + }, + "type": { + "value": "vec3f", + "control": { + "name": "Enum", + "items": [ + "float", + "vec3f" + ] + }, + "type": "enum float vec3f" + } + }, + "outputs": { + "ZSParticles": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3000.0, + 1000.0 + ], + "options": [] + }, + "2e0bc76d-ExtractPrimitiveFromZSParticles": { + "name": "ExtractPrimitiveFromZSParticles", + "inputs": { + "ZSParticles": { + "link": "Erode_Granular_Slump_Flow:60296227-UpdatePrimitiveAttrFromZSParticles:[node]/outputs/ZSParticles", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 4000.0, + 1000.0 + ], + "options": [] + }, + "c37be7b5-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "Erode_Granular_Slump_Flow:f99332ae-erode_smooth_flow:[node]/outputs/prim_2DGrid", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_flow = sqrt(@_flowx * @_flowx + @_flowz * @_flowz)\n\n", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": "Erode_Granular_Slump_Flow:a0e65a00-EndFor:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 13251.9541015625, + -542.5752563476563 + ], + "options": [], + "customui-panel": { + "Default": { + "In Sockets": { + "prim": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/inputs/prim", + "class": "input" + }, + "control": { + "name": "" + }, + "uuid": 859905284, + "property": "normal" + }, + "zfxCode": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/inputs/zfxCode", + "class": "input" + }, + "control": { + "name": "Multiline String" + }, + "uuid": 297519779, + "property": "normal" + }, + "params": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/inputs/params", + "class": "input" + }, + "control": { + "name": "" + }, + "uuid": 3973253098, + "property": "normal" + }, + "SRC": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/inputs/SRC", + "class": "input" + }, + "control": { + "name": "" + }, + "uuid": 1982349258, + "property": "normal" + } + }, + "Parameters": {}, + "Out Sockets": { + "prim": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/outputs/prim", + "class": "output" + }, + "control": { + "name": "" + }, + "uuid": 1085370352, + "property": "normal" + }, + "DST": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/outputs/DST", + "class": "output" + }, + "control": { + "name": "" + }, + "uuid": 1490602591, + "property": "normal" + } + } + } + } + } + }, + "view_rect": {} + }, + "HF_Mask_by_Object": { + "nodes": { + "11584bdf-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "HF_Mask_by_Object:12353f75-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1600.0, + 400.0 + ], + "options": [] + }, + "276895c2-PrimitiveProject": { + "name": "PrimitiveProject", + "inputs": { + "prim": { + "link": "HF_Mask_by_Object:f0873809-Clone:[node]/outputs/newObject", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "targetPrim": { + "link": "HF_Mask_by_Object:11584bdf-Route:[node]/outputs/output", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "nrmAttr": { + "link": null, + "type": "string", + "default-value": "_temp_nrm", + "control": { + "name": "String" + } + }, + "limit": { + "link": "HF_Mask_by_Object:527346ea-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "distTag": { + "link": null, + "type": "string", + "default-value": "dist", + "control": { + "name": "String" + } + }, + "threshold": { + "link": null, + "type": "float", + "default-value": 0.000004999999873689376, + "control": { + "name": "Float" + } + }, + "side": { + "link": null, + "type": "enum closest farthest", + "default-value": "farthest", + "control": { + "name": "Enum", + "items": [ + "closest", + "farthest" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2500.0, + 200.0 + ], + "options": [] + }, + "4bba27ff-ParticlesTwoWrangle": { + "name": "ParticlesTwoWrangle", + "inputs": { + "prim": { + "link": "HF_Mask_by_Object:cb4f5bf-Route:[node]/outputs/output", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "prim2": { + "link": "HF_Mask_by_Object:276895c2-PrimitiveProject:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_temp_mask = @@dist != -1 ? 1 : 0", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 5000.0, + -700.0 + ], + "options": [] + }, + "cb4f5bf-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "HF_Mask_by_Object:82547b41-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 800.0, + -700.0 + ], + "options": [] + }, + "f0873809-Clone": { + "name": "Clone", + "inputs": { + "object": { + "link": "HF_Mask_by_Object:cb4f5bf-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "newObject": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1600.0, + 0.0 + ], + "options": [] + }, + "6b0d7b1f-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "", + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "HeightField", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1832.0, + -700.0 + ], + "options": [] + }, + "12353f75-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "", + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "Geo to Build Mask From", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 785.7634887695313, + 359.29620361328127 + ], + "options": [] + }, + "527346ea-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 1000.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "Max Distance", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 790.1017456054688, + 1081.80322265625 + ], + "options": [] + }, + "e46e9708-SubOutput": { + "name": "SubOutput", + "inputs": { + "port": { + "link": "HF_Mask_by_Object:f8afbd59-PrimitiveDelAttrs:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "", + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "HeightField", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 22900.0, + 600.0 + ], + "options": [] + }, + "9f325749-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "Either Side", + "control": { + "name": "Enum", + "items": [ + "Either Side", + "Above HeightField", + "Below HeightField" + ] + }, + "type": "string" + }, + "name": { + "value": "Masking By Geometry", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 6200.0, + 1200.0 + ], + "options": [] + }, + "6c707815-PrimitiveProject": { + "name": "PrimitiveProject", + "inputs": { + "prim": { + "link": "HF_Mask_by_Object:f0873809-Clone:[node]/outputs/newObject", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "targetPrim": { + "link": "HF_Mask_by_Object:11584bdf-Route:[node]/outputs/output", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "nrmAttr": { + "link": null, + "type": "string", + "default-value": "_temp_nrm_inv", + "control": { + "name": "String" + } + }, + "limit": { + "link": "HF_Mask_by_Object:527346ea-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "distTag": { + "link": null, + "type": "string", + "default-value": "dist", + "control": { + "name": "String" + } + }, + "threshold": { + "link": null, + "type": "float", + "default-value": 0.000004999999873689376, + "control": { + "name": "Float" + } + }, + "side": { + "link": null, + "type": "enum closest farthest", + "default-value": "farthest", + "control": { + "name": "Enum", + "items": [ + "closest", + "farthest" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2500.0, + 800.0 + ], + "options": [] + }, + "f78640cd-ParticlesTwoWrangle": { + "name": "ParticlesTwoWrangle", + "inputs": { + "prim": { + "link": "HF_Mask_by_Object:cb4f5bf-Route:[node]/outputs/output", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "prim2": { + "link": "HF_Mask_by_Object:6c707815-PrimitiveProject:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_temp_mask = @@dist != -1 ? 1 : 0", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 5000.0, + 300.0 + ], + "options": [] + }, + "92849ef1-IfElse": { + "name": "IfElse", + "inputs": { + "true": { + "link": "HF_Mask_by_Object:4bba27ff-ParticlesTwoWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "false": { + "link": "HF_Mask_by_Object:292b0878-IfElse:[node]/outputs/result", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "cond": { + "link": "HF_Mask_by_Object:bf9631ca-StringEqual:[node]/outputs/isEqual", + "type": "bool", + "default-value": null, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "result": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 8500.0, + 300.0 + ], + "options": [] + }, + "bf9631ca-StringEqual": { + "name": "StringEqual", + "inputs": { + "lhs": { + "link": "HF_Mask_by_Object:9f325749-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "", + "control": { + "name": "String" + } + }, + "rhs": { + "link": null, + "type": "string", + "default-value": "Above HeightField", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "isEqual": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 6900.0, + 1200.0 + ], + "options": [] + }, + "292b0878-IfElse": { + "name": "IfElse", + "inputs": { + "true": { + "link": "HF_Mask_by_Object:f78640cd-ParticlesTwoWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "false": { + "link": "HF_Mask_by_Object:1009d5b8-ParticlesTwoWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "cond": { + "link": "HF_Mask_by_Object:14e0e38e-StringEqual:[node]/outputs/isEqual", + "type": "bool", + "default-value": null, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "result": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 8500.0, + 800.0 + ], + "options": [] + }, + "14e0e38e-StringEqual": { + "name": "StringEqual", + "inputs": { + "lhs": { + "link": "HF_Mask_by_Object:9f325749-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "", + "control": { + "name": "String" + } + }, + "rhs": { + "link": null, + "type": "string", + "default-value": "Below HeightField", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "isEqual": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 6900.0, + 1600.0 + ], + "options": [] + }, + "1009d5b8-ParticlesTwoWrangle": { + "name": "ParticlesTwoWrangle", + "inputs": { + "prim": { + "link": "HF_Mask_by_Object:4bba27ff-ParticlesTwoWrangle:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "prim2": { + "link": "HF_Mask_by_Object:edca5e9a-ParticlesTwoWrangle:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_temp_mask = (@_temp_mask == 1 | @@_temp_mask == 1) ? 1 : 0", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 6820.6162109375, + -766.4080200195313 + ], + "options": [] + }, + "edca5e9a-ParticlesTwoWrangle": { + "name": "ParticlesTwoWrangle", + "inputs": { + "prim": { + "link": "HF_Mask_by_Object:b5d56ebd-Clone:[node]/outputs/newObject", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "prim2": { + "link": "HF_Mask_by_Object:6c707815-PrimitiveProject:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_temp_mask = @@dist != -1 ? 1 : 0", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 5000.0, + -1700.0 + ], + "options": [] + }, + "b5d56ebd-Clone": { + "name": "Clone", + "inputs": { + "object": { + "link": "HF_Mask_by_Object:cb4f5bf-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "newObject": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 4100.0, + -1700.0 + ], + "options": [] + }, + "82547b41-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Mask_by_Object:abe410be-PrimCopyAttr:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_temp_nrm = vec3(0,1,0)\n@_temp_nrm_inv = vec3(0,-1,0)", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -113.19888305664063, + -697.8009033203125 + ], + "options": [] + }, + "2a773a25-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "FIVE_STENCIL", + "control": { + "name": "Enum", + "items": [ + "FIVE_STENCIL", + "NINE_STENCIL" + ] + }, + "type": "string" + }, + "name": { + "value": " Zeno Blur Method", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 8500.0, + 1300.0 + ], + "options": [] + }, + "dc8416cf-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 50, + "control": { + "name": "Integer" + }, + "type": "int" + }, + "name": { + "value": "Blur Radius", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "int", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 8500.0, + 1800.0 + ], + "options": [] + }, + "925e61c1-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": false, + "control": { + "name": "Boolean" + }, + "type": "bool" + }, + "name": { + "value": "Invert Mask", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "bool", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 12600.0, + 1700.0 + ], + "options": [] + }, + "9a8b969f-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Mask_by_Object:f24efe75-Route:[node]/outputs/output", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_temp_mask = 1 - @_temp_mask", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 12500.0, + 600.0 + ], + "options": [] + }, + "6cf63aee-IfElse": { + "name": "IfElse", + "inputs": { + "true": { + "link": "HF_Mask_by_Object:9a8b969f-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "false": { + "link": "HF_Mask_by_Object:f24efe75-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "cond": { + "link": "HF_Mask_by_Object:925e61c1-SubInput:[node]/outputs/port", + "type": "bool", + "default-value": null, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "result": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 13600.0, + 1300.0 + ], + "options": [] + }, + "3dcd033d-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "mask", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Mask Layer", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -2888.0, + -1705.0 + ], + "options": [] + }, + "5374603d-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "HF_Mask_by_Object:37d2a434-ListGetItem:[node]/outputs/object", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": null, + "type": "string", + "default-value": "_temp_mask", + "control": { + "name": "String" + } + }, + "targetName": { + "link": "HF_Mask_by_Object:6fed832-Route:[node]/outputs/output", + "type": "string", + "default-value": "t", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 21200.0, + 600.0 + ], + "options": [] + }, + "6fed832-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "HF_Mask_by_Object:99588345-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 18812.173828125, + -251.75009155273438 + ], + "options": [] + }, + "f24efe75-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "HF_Mask_by_Object:de466f69-IfElse:[node]/outputs/result", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 11700.0, + 1300.0 + ], + "options": [] + }, + "5a31f341-erode_HeightField_blur_OpenCV": { + "name": "HF_Blur_OpenCV", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "HF_Mask_by_Object:92849ef1-IfElse:[node]/outputs/result", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Float Attr Name": { + "link": null, + "type": "string", + "default-value": "_temp_mask", + "control": { + "name": "String" + } + }, + "Blur Type": { + "link": null, + "type": "string", + "default-value": "blur", + "control": { + "name": "Enum", + "items": [ + "blur", + "erode", + "dilate" + ] + } + }, + "Blur Radius": { + "link": "HF_Mask_by_Object:dc8416cf-SubInput:[node]/outputs/port", + "type": "int", + "default-value": 50, + "control": { + "name": "Integer" + } + }, + "Weight Name": { + "link": "HF_Mask_by_Object:2647aab2-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "", + "control": { + "name": "String" + } + }, + "Clone": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + } + }, + "params": {}, + "outputs": { + "HeightField": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 9600.0, + 1500.0 + ], + "options": [] + }, + "b8c18492-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "OpenCV Blur", + "control": { + "name": "Enum", + "items": [ + "OpenCV Blur", + "Zeno Blur" + ] + }, + "type": "string" + }, + "name": { + "value": "Blur Type", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 8500.0, + 2800.0 + ], + "options": [] + }, + "de466f69-IfElse": { + "name": "IfElse", + "inputs": { + "true": { + "link": "HF_Mask_by_Object:5a31f341-erode_HeightField_blur_OpenCV:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "false": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "cond": { + "link": "HF_Mask_by_Object:db12640a-StringEqual:[node]/outputs/isEqual", + "type": "bool", + "default-value": null, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "result": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 11100.0, + 1300.0 + ], + "options": [] + }, + "db12640a-StringEqual": { + "name": "StringEqual", + "inputs": { + "lhs": { + "link": "HF_Mask_by_Object:b8c18492-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "", + "control": { + "name": "String" + } + }, + "rhs": { + "link": null, + "type": "string", + "default-value": "OpenCV Blur", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "isEqual": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 9600.0, + 2800.0 + ], + "options": [] + }, + "2647aab2-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "weight", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Blur Weight", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 8500.0, + 2300.0 + ], + "options": [] + }, + "18ee367-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "Replace ( B )", + "control": { + "name": "Enum", + "items": [ + "Replace ( B )", + "Add ( A + B )", + "Subtract ( A - B )", + "Diff ( abs( A - B ) )", + "Multiply ( A * B )", + "Max ( max( A, B ) )", + "Min ( min( A, B ) )", + "Blend ( A*( 1 - blend ) + B*blend )" + ] + }, + "type": "string" + }, + "name": { + "value": "Combine Type", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 15200.0, + 4500.0 + ], + "options": [] + }, + "a226e915-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "HF_Mask_by_Object:3dcd033d-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1792.2681884765626, + -1151.7239990234376 + ], + "options": [] + }, + "abe410be-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "HF_Mask_by_Object:6b0d7b1f-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": "HF_Mask_by_Object:a226e915-Route:[node]/outputs/output", + "type": "string", + "default-value": "mask", + "control": { + "name": "String" + } + }, + "targetName": { + "link": null, + "type": "string", + "default-value": "_temp_mask_old", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -948.0, + -702.0 + ], + "options": [] + }, + "fb81d48c-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "HF_Mask_by_Object:6cf63aee-IfElse:[node]/outputs/result", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 14200.0, + 1300.0 + ], + "options": [] + }, + "714f810-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Mask_by_Object:f3c2b4eb-Clone:[node]/outputs/newObject", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_temp_mask += @_temp_mask_old\n@_temp_mask = min(@_temp_mask, 1)\n@_temp_mask = max(0, @_temp_mask)", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 16600.0, + 100.0 + ], + "options": [] + }, + "99588345-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "HF_Mask_by_Object:3dcd033d-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 9300.0, + -3500.0 + ], + "options": [] + }, + "f482c018-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Mask_by_Object:2180074e-Clone:[node]/outputs/newObject", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_temp_mask = @_temp_mask_old - @_temp_mask\n@_temp_mask = min(@_temp_mask, 1)\n@_temp_mask = max(0, @_temp_mask)", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 16500.0, + 400.0 + ], + "options": [] + }, + "6a196c10-NumericInt": { + "name": "NumericInt", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "value": { + "value": 0, + "control": { + "name": "Integer" + }, + "type": "int" + } + }, + "outputs": { + "value": { + "type": "int" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 13400.0, + 3100.0 + ], + "options": [] + }, + "e4604616-NumericInt": { + "name": "NumericInt", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "value": { + "value": 1, + "control": { + "name": "Integer" + }, + "type": "int" + } + }, + "outputs": { + "value": { + "type": "int" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 13400.0, + 3400.0 + ], + "options": [] + }, + "4b5a93ff-NumericInt": { + "name": "NumericInt", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "value": { + "value": 2, + "control": { + "name": "Integer" + }, + "type": "int" + } + }, + "outputs": { + "value": { + "type": "int" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 13400.0, + 3700.0 + ], + "options": [] + }, + "7c376e29-NumericInt": { + "name": "NumericInt", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "value": { + "value": 3, + "control": { + "name": "Integer" + }, + "type": "int" + } + }, + "outputs": { + "value": { + "type": "int" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 13400.0, + 4000.0 + ], + "options": [] + }, + "2bfc5df0-NumericInt": { + "name": "NumericInt", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "value": { + "value": 5, + "control": { + "name": "Integer" + }, + "type": "int" + } + }, + "outputs": { + "value": { + "type": "int" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 13400.0, + 4600.0 + ], + "options": [] + }, + "73009791-NumericInt": { + "name": "NumericInt", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "value": { + "value": 7, + "control": { + "name": "Integer" + }, + "type": "int" + } + }, + "outputs": { + "value": { + "type": "int" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 13400.0, + 5200.0 + ], + "options": [] + }, + "74d527d-NumericInt": { + "name": "NumericInt", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "value": { + "value": 4, + "control": { + "name": "Integer" + }, + "type": "int" + } + }, + "outputs": { + "value": { + "type": "int" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 13400.0, + 4300.0 + ], + "options": [] + }, + "de070d5-NumericInt": { + "name": "NumericInt", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "value": { + "value": 6, + "control": { + "name": "Integer" + }, + "type": "int" + } + }, + "outputs": { + "value": { + "type": "int" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 13400.0, + 4900.0 + ], + "options": [] + }, + "bdfa1e01-DictGetItem": { + "name": "DictGetItem", + "inputs": { + "dict": { + "link": "HF_Mask_by_Object:56671a7b-MakeDict:[node]/outputs/dict", + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "key": { + "link": "HF_Mask_by_Object:18ee367-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "", + "control": { + "name": "String" + } + }, + "defl": { + "link": null, + "type": "IObject", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "object": { + "type": "zany" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 18100.0, + 3800.0 + ], + "options": [] + }, + "37d2a434-ListGetItem": { + "name": "ListGetItem", + "inputs": { + "list": { + "link": "HF_Mask_by_Object:65be3c9f-MakeList:[node]/outputs/list", + "type": "list", + "default-value": null, + "control": { + "name": "" + } + }, + "index": { + "link": "HF_Mask_by_Object:bdfa1e01-DictGetItem:[node]/outputs/object", + "type": "int", + "default-value": null, + "control": { + "name": "Integer" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "object": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 19800.0, + 1700.0 + ], + "options": [] + }, + "f3c2b4eb-Clone": { + "name": "Clone", + "inputs": { + "object": { + "link": "HF_Mask_by_Object:fb81d48c-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "newObject": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 15100.0, + 0.0 + ], + "options": [] + }, + "2180074e-Clone": { + "name": "Clone", + "inputs": { + "object": { + "link": "HF_Mask_by_Object:fb81d48c-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "newObject": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 15100.0, + 400.0 + ], + "options": [] + }, + "941a5dd-Clone": { + "name": "Clone", + "inputs": { + "object": { + "link": "HF_Mask_by_Object:fb81d48c-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "newObject": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 15100.0, + -400.0 + ], + "options": [] + }, + "31ee85e8-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Mask_by_Object:6715d153-Clone:[node]/outputs/newObject", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_temp_mask = abs(@_temp_mask_old - @_temp_mask)\n@_temp_mask = min(@_temp_mask, 1)\n@_temp_mask = max(0, @_temp_mask)", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 16400.0, + 800.0 + ], + "options": [] + }, + "6715d153-Clone": { + "name": "Clone", + "inputs": { + "object": { + "link": "HF_Mask_by_Object:fb81d48c-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "newObject": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 15100.0, + 800.0 + ], + "options": [] + }, + "1beb0ab9-Clone": { + "name": "Clone", + "inputs": { + "object": { + "link": "HF_Mask_by_Object:fb81d48c-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "newObject": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 15100.0, + 1200.0 + ], + "options": [] + }, + "5aab0c3e-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Mask_by_Object:1beb0ab9-Clone:[node]/outputs/newObject", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_temp_mask = @_temp_mask_old * @_temp_mask\n@_temp_mask = min(@_temp_mask, 1)\n@_temp_mask = max(0, @_temp_mask)", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 16300.0, + 1200.0 + ], + "options": [] + }, + "c0e7967d-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Mask_by_Object:d3440496-Clone:[node]/outputs/newObject", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_temp_mask = max(@_temp_mask_old, @_temp_mask)\n@_temp_mask = min(@_temp_mask, 1)\n@_temp_mask = max(0, @_temp_mask)", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 16200.0, + 1600.0 + ], + "options": [] + }, + "d3440496-Clone": { + "name": "Clone", + "inputs": { + "object": { + "link": "HF_Mask_by_Object:fb81d48c-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "newObject": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 15100.0, + 1600.0 + ], + "options": [] + }, + "a8208349-Clone": { + "name": "Clone", + "inputs": { + "object": { + "link": "HF_Mask_by_Object:fb81d48c-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "newObject": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 15100.0, + 2000.0 + ], + "options": [] + }, + "ddc841ea-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Mask_by_Object:a8208349-Clone:[node]/outputs/newObject", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_temp_mask = min(@_temp_mask_old, @_temp_mask)\n@_temp_mask = min(@_temp_mask, 1)\n@_temp_mask = max(0, @_temp_mask)", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 16100.0, + 2000.0 + ], + "options": [] + }, + "db2795de-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Mask_by_Object:ece74fcc-Clone:[node]/outputs/newObject", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_temp_mask = (1 - $blend) * @_temp_mask_old + @_temp_mask * $blend\n@_temp_mask = min(@_temp_mask, 1)\n@_temp_mask = max(0, @_temp_mask)", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": { + "blend": { + "link": "HF_Mask_by_Object:5be44cdb-SubInput:[node]/outputs/port" + } + } + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 16000.0, + 2400.0 + ], + "options": [] + }, + "ece74fcc-Clone": { + "name": "Clone", + "inputs": { + "object": { + "link": "HF_Mask_by_Object:fb81d48c-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "newObject": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 15100.0, + 2400.0 + ], + "options": [] + }, + "5be44cdb-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 1.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": " Blend", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 12600.0, + 2200.0 + ], + "options": [] + }, + "56671a7b-MakeDict": { + "name": "MakeDict", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Replace ( B )": { + "property": "editable", + "link": "HF_Mask_by_Object:6a196c10-NumericInt:[node]/outputs/value", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Add ( A + B )": { + "property": "editable", + "link": "HF_Mask_by_Object:e4604616-NumericInt:[node]/outputs/value", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Subtract ( A - B )": { + "property": "editable", + "link": "HF_Mask_by_Object:4b5a93ff-NumericInt:[node]/outputs/value", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Diff ( abs( A - B ) )": { + "property": "editable", + "link": "HF_Mask_by_Object:7c376e29-NumericInt:[node]/outputs/value", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Multiply ( A * B )": { + "property": "editable", + "link": "HF_Mask_by_Object:74d527d-NumericInt:[node]/outputs/value", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Max ( max( A, B ) )": { + "property": "editable", + "link": "HF_Mask_by_Object:2bfc5df0-NumericInt:[node]/outputs/value", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Min ( min( A, B ) )": { + "property": "editable", + "link": "HF_Mask_by_Object:de070d5-NumericInt:[node]/outputs/value", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Blend ( A*( 1 - blend ) + B*blend )": { + "property": "editable", + "link": "HF_Mask_by_Object:73009791-NumericInt:[node]/outputs/value", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "obj8": { + "property": "editable", + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "dict": { + "type": "dict" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 15200.0, + 3500.0 + ], + "options": [], + "dict_keys": { + "inputs": [ + "Replace ( B )", + "Add ( A + B )", + "Subtract ( A - B )", + "Diff ( abs( A - B ) )", + "Multiply ( A * B )", + "Max ( max( A, B ) )", + "Min ( min( A, B ) )", + "Blend ( A*( 1 - blend ) + B*blend )", + "obj8" + ], + "outputs": [] + } + }, + "65be3c9f-MakeList": { + "name": "MakeList", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "obj0": { + "link": "HF_Mask_by_Object:941a5dd-Clone:[node]/outputs/newObject", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "obj1": { + "link": "HF_Mask_by_Object:714f810-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "obj2": { + "link": "HF_Mask_by_Object:f482c018-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "obj3": { + "link": "HF_Mask_by_Object:31ee85e8-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "obj4": { + "link": "HF_Mask_by_Object:5aab0c3e-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "obj5": { + "link": "HF_Mask_by_Object:c0e7967d-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "obj6": { + "link": "HF_Mask_by_Object:ddc841ea-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "obj7": { + "link": "HF_Mask_by_Object:db2795de-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "obj8": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "list": { + "type": "list" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 18500.0, + 600.0 + ], + "options": [] + }, + "f8afbd59-PrimitiveDelAttrs": { + "name": "PrimitiveDelAttrs", + "inputs": { + "prim": { + "link": "HF_Mask_by_Object:5374603d-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "invert": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "names": { + "link": null, + "type": "string", + "default-value": "_temp_mask _temp_mask_old _temp_nrm _temp_nrm_inv", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 22000.0, + 600.0 + ], + "options": [] + } + }, + "view_rect": {} + }, + "HF_Visual_Mask": { + "nodes": { + "419031e8-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "HF_Visual_Mask:f0a71e5a-IfElse:[node]/outputs/result", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": "HF_Visual_Mask:a02036a5-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "mask", + "control": { + "name": "String" + } + }, + "targetName": { + "link": null, + "type": "string", + "default-value": "_mask", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1600.0, + -1000.0 + ], + "options": [] + }, + "4ff65b50-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": null, + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "HeightField", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -600.0, + -600.0 + ], + "options": [] + }, + "60b531be-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Visual_Mask:5ef81025-IfElse:[node]/outputs/result", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@clr = @_mask * $visClr + (1 - @_mask) * @clr", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": { + "visClr": { + "link": "HF_Visual_Mask:6be3f3cd-SubInput:[node]/outputs/port" + } + } + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3700.0, + -1000.0 + ], + "options": [] + }, + "6be3f3cd-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + }, + "type": "vec3f" + }, + "name": { + "value": "Visualize Color", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "vec3f", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3100.0, + -500.0 + ], + "options": [] + }, + "a02036a5-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "mask", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Mask Name", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 500.0, + 200.0 + ], + "options": [] + }, + "fbdd1dd8-SubOutput": { + "name": "SubOutput", + "inputs": { + "port": { + "link": "HF_Visual_Mask:fb9fb590-IfElse:[node]/outputs/result", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "", + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "HeightField", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 6100.0, + -200.0 + ], + "options": [] + }, + "aca111ed-Clone": { + "name": "Clone", + "inputs": { + "object": { + "link": "HF_Visual_Mask:4ff65b50-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "newObject": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 0.0, + -700.0 + ], + "options": [] + }, + "28dd7c3f-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": true, + "control": { + "name": "Boolean" + }, + "type": "bool" + }, + "name": { + "value": "Reset Base Color", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "bool", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2400.0, + -600.0 + ], + "options": [] + }, + "5ef81025-IfElse": { + "name": "IfElse", + "inputs": { + "true": { + "link": "HF_Visual_Mask:56f85bba-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "false": { + "link": "HF_Visual_Mask:419031e8-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "cond": { + "link": "HF_Visual_Mask:28dd7c3f-SubInput:[node]/outputs/port", + "type": "bool", + "default-value": null, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "result": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3100.0, + -1000.0 + ], + "options": [] + }, + "56f85bba-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Visual_Mask:419031e8-PrimCopyAttr:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@clr = vec3(1,1,1)", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2400.0, + -1600.0 + ], + "options": [] + }, + "ceaf3147-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": true, + "control": { + "name": "Boolean" + }, + "type": "bool" + }, + "name": { + "value": "Clone HF for Visualize", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "bool", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -600.0, + -100.0 + ], + "options": [] + }, + "f0a71e5a-IfElse": { + "name": "IfElse", + "inputs": { + "true": { + "link": "HF_Visual_Mask:aca111ed-Clone:[node]/outputs/newObject", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "false": { + "link": "HF_Visual_Mask:4ff65b50-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "cond": { + "link": "HF_Visual_Mask:ceaf3147-SubInput:[node]/outputs/port", + "type": "bool", + "default-value": null, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "result": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 500.0, + -300.0 + ], + "options": [] + }, + "7f8ceed0-PrimHasAttr": { + "name": "PrimHasAttr", + "inputs": { + "prim": { + "link": "HF_Visual_Mask:f0a71e5a-IfElse:[node]/outputs/result", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "attrName": { + "link": "HF_Visual_Mask:a02036a5-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "attr_x", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "hasAttr": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1400.0, + 200.0 + ], + "options": [] + }, + "fb9fb590-IfElse": { + "name": "IfElse", + "inputs": { + "true": { + "link": "HF_Visual_Mask:b8afc9d1-PrimitiveDelAttrs:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "false": { + "link": "HF_Visual_Mask:f0a71e5a-IfElse:[node]/outputs/result", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "cond": { + "link": "HF_Visual_Mask:7f8ceed0-PrimHasAttr:[node]/outputs/hasAttr", + "type": "bool", + "default-value": null, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "result": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 5400.0, + -200.0 + ], + "options": [] + }, + "b8afc9d1-PrimitiveDelAttrs": { + "name": "PrimitiveDelAttrs", + "inputs": { + "prim": { + "link": "HF_Visual_Mask:60b531be-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "invert": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "names": { + "link": null, + "type": "string", + "default-value": "_mask", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 4500.0, + -500.0 + ], + "options": [] + } + }, + "view_rect": {} + }, + "HF_Blur_OpenCV": { + "nodes": { + "129da492-PrimSample2D": { + "name": "PrimSample2D", + "inputs": { + "prim": { + "link": "HF_Blur_OpenCV:c4099557-ParticlesWrangle:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "image": { + "link": "HF_Blur_OpenCV:f7763050-IfElse:[node]/outputs/result", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "uvChannel": { + "link": null, + "type": "string", + "default-value": "uv", + "control": { + "name": "String" + } + }, + "uvSource": { + "link": null, + "type": "enum vertex tris loopsuv", + "default-value": "vertex", + "control": { + "name": "Enum", + "items": [ + "vertex", + "tris", + "loopsuv" + ] + } + }, + "targetChannel": { + "link": null, + "type": "string", + "default-value": "__temp_clr", + "control": { + "name": "String" + } + }, + "remapMin": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "remapMax": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "wrap": { + "link": null, + "type": "enum REPEAT CLAMP_TO_EDGE CLAMP_TO_BORDER", + "default-value": "CLAMP_TO_EDGE", + "control": { + "name": "Enum", + "items": [ + "REPEAT", + "CLAMP_TO_EDGE", + "CLAMP_TO_BORDER" + ] + } + }, + "filter": { + "link": null, + "type": "enum nearest linear", + "default-value": "nearest", + "control": { + "name": "Enum", + "items": [ + "nearest", + "linear" + ] + } + }, + "borderColor": { + "link": null, + "type": "vec3f", + "default-value": [ + 0.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "outPrim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 4400.0, + 1100.0 + ], + "options": [] + }, + "27092be5-GetUserData": { + "name": "GetUserData", + "inputs": { + "object": { + "link": "HF_Blur_OpenCV:5c638c8a-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "nz", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "data": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1400.0, + 1500.0 + ], + "options": [] + }, + "41e92cc9-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Blur_OpenCV:8e475b96-PrimCopyAttr:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@__temp_mask = @__temp_clr.x\n\ndelta = @__temp_mask - @__backup_mask\n\n@__temp_mask = @__backup_mask + delta * @__weight\n", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 6200.0, + 1400.0 + ], + "options": [] + }, + "6cbe8c51-SetUserData": { + "name": "SetUserData", + "inputs": { + "object": { + "link": "HF_Blur_OpenCV:5c638c8a-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "data": { + "link": "HF_Blur_OpenCV:27092be5-GetUserData:[node]/outputs/data", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "ny", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "object": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1400.0, + 1000.0 + ], + "options": [] + }, + "a8d583ac-CompImport": { + "name": "CompImport", + "inputs": { + "prim": { + "link": "HF_Blur_OpenCV:6cbe8c51-SetUserData:[node]/outputs/object", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "attrName": { + "link": "HF_Blur_OpenCV:955b654c-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "mask", + "control": { + "name": "String" + } + }, + "Remap": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "RemapRange": { + "link": null, + "type": "vec2f", + "default-value": [ + 0.0 + ], + "control": { + "name": "Float Vector 2" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 300.0, + 2000.0 + ], + "options": [] + }, + "c4099557-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Blur_OpenCV:58717d47-PrimCopyAttr:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@__temp_clr = vec3(0,0,0)", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1400.0, + 1100.0 + ], + "options": [] + }, + "8bc9fabf-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "", + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "HeightField", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -4755.1962890625, + 1097.2325439453126 + ], + "options": [] + }, + "955b654c-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "mask", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Float Attr Name", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1400.0, + -600.0 + ], + "options": [] + }, + "798c99da-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 50, + "control": { + "name": "Integer" + }, + "type": "int" + }, + "name": { + "value": "Blur Radius", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "int", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 300.0, + 2700.0 + ], + "options": [] + }, + "9eeba352-SubOutput": { + "name": "SubOutput", + "inputs": { + "port": { + "link": "HF_Blur_OpenCV:450a34a4-IfElse:[node]/outputs/result", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "", + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "HeightField", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 10102.90234375, + 902.9488525390625 + ], + "options": [] + }, + "7e809894-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "HF_Blur_OpenCV:41e92cc9-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": null, + "type": "string", + "default-value": "__temp_mask", + "control": { + "name": "String" + } + }, + "targetName": { + "link": "HF_Blur_OpenCV:955b654c-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "t", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 7100.0, + 1000.0 + ], + "options": [] + }, + "ca5f5b4e-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "weight", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Weight Name", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 4400.0, + 2000.0 + ], + "options": [] + }, + "8e475b96-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "HF_Blur_OpenCV:129da492-PrimSample2D:[node]/outputs/outPrim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": "HF_Blur_OpenCV:ca5f5b4e-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "s", + "control": { + "name": "String" + } + }, + "targetName": { + "link": null, + "type": "string", + "default-value": "__weight", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 5300.0, + 1600.0 + ], + "options": [] + }, + "58717d47-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "HF_Blur_OpenCV:6cbe8c51-SetUserData:[node]/outputs/object", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": "HF_Blur_OpenCV:955b654c-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "s", + "control": { + "name": "String" + } + }, + "targetName": { + "link": null, + "type": "string", + "default-value": "__backup_mask", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 300.0, + 1100.0 + ], + "options": [] + }, + "cf3b8474-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "blur", + "control": { + "name": "Enum", + "items": [ + "blur", + "erode", + "dilate" + ] + }, + "type": "string" + }, + "name": { + "value": "Blur Type", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1300.0, + 3500.0 + ], + "options": [] + }, + "aa626be9-StringEqual": { + "name": "StringEqual", + "inputs": { + "lhs": { + "link": "HF_Blur_OpenCV:cf3b8474-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "", + "control": { + "name": "String" + } + }, + "rhs": { + "link": null, + "type": "string", + "default-value": "blur", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "isEqual": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2100.0, + 3400.0 + ], + "options": [] + }, + "f7763050-IfElse": { + "name": "IfElse", + "inputs": { + "true": { + "link": "HF_Blur_OpenCV:1335a20e-ImageBlur:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "false": { + "link": "HF_Blur_OpenCV:c7138522-IfElse:[node]/outputs/result", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "cond": { + "link": "HF_Blur_OpenCV:aa626be9-StringEqual:[node]/outputs/isEqual", + "type": "bool", + "default-value": null, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "result": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3500.0, + 2400.0 + ], + "options": [] + }, + "b5d49fab-StringEqual": { + "name": "StringEqual", + "inputs": { + "lhs": { + "link": "HF_Blur_OpenCV:cf3b8474-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "", + "control": { + "name": "String" + } + }, + "rhs": { + "link": null, + "type": "string", + "default-value": "erode", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "isEqual": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2100.0, + 3800.0 + ], + "options": [] + }, + "c7138522-IfElse": { + "name": "IfElse", + "inputs": { + "true": { + "link": "HF_Blur_OpenCV:663bd93f-ImageErode:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "false": { + "link": "HF_Blur_OpenCV:250100f9-ImageDilate:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "cond": { + "link": "HF_Blur_OpenCV:b5d49fab-StringEqual:[node]/outputs/isEqual", + "type": "bool", + "default-value": null, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "result": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3500.0, + 3000.0 + ], + "options": [] + }, + "1b9d7d56-PrimitiveDelAttrs": { + "name": "PrimitiveDelAttrs", + "inputs": { + "prim": { + "link": "HF_Blur_OpenCV:7e809894-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "invert": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "names": { + "link": null, + "type": "string", + "default-value": "__temp_clr __temp_mask __weight __backup_mask", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 7800.0, + 1000.0 + ], + "options": [] + }, + "1335a20e-ImageBlur": { + "name": "ImageBlur", + "inputs": { + "image": { + "link": "HF_Blur_OpenCV:a8d583ac-CompImport:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "xsize": { + "link": "HF_Blur_OpenCV:798c99da-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 10.0, + "control": { + "name": "Float" + } + }, + "ysize": { + "link": "HF_Blur_OpenCV:798c99da-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 10.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2079.5234375, + 1882.593017578125 + ], + "options": [] + }, + "250100f9-ImageDilate": { + "name": "ImageDilate", + "inputs": { + "image": { + "link": "HF_Blur_OpenCV:a8d583ac-CompImport:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "strength": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "kernel_width": { + "link": "HF_Blur_OpenCV:798c99da-SubInput:[node]/outputs/port", + "type": "int", + "default-value": 3, + "control": { + "name": "Integer" + } + }, + "kernel_height": { + "link": "HF_Blur_OpenCV:798c99da-SubInput:[node]/outputs/port", + "type": "int", + "default-value": 3, + "control": { + "name": "Integer" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2036.534912109375, + 3118.787353515625 + ], + "options": [ + "collapsed" + ] + }, + "663bd93f-ImageErode": { + "name": "ImageErode", + "inputs": { + "image": { + "link": "HF_Blur_OpenCV:a8d583ac-CompImport:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "strength": { + "link": null, + "type": "int", + "default-value": 1, + "control": { + "name": "Integer" + } + }, + "kernel_width": { + "link": "HF_Blur_OpenCV:798c99da-SubInput:[node]/outputs/port", + "type": "int", + "default-value": 3, + "control": { + "name": "Integer" + } + }, + "kernel_height": { + "link": "HF_Blur_OpenCV:798c99da-SubInput:[node]/outputs/port", + "type": "int", + "default-value": 3, + "control": { + "name": "Integer" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2038.5645751953126, + 2990.4970703125 + ], + "options": [ + "collapsed" + ] + }, + "fd4d8f3c-StringEqual": { + "name": "StringEqual", + "inputs": { + "lhs": { + "link": "HF_Blur_OpenCV:955b654c-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "", + "control": { + "name": "String" + } + }, + "rhs": { + "link": null, + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "isEqual": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 7834.65869140625, + 282.98284912109377 + ], + "options": [] + }, + "450a34a4-IfElse": { + "name": "IfElse", + "inputs": { + "true": { + "link": "HF_Blur_OpenCV:b0eabc47-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "false": { + "link": "HF_Blur_OpenCV:1b9d7d56-PrimitiveDelAttrs:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "cond": { + "link": "HF_Blur_OpenCV:fd4d8f3c-StringEqual:[node]/outputs/isEqual", + "type": "bool", + "default-value": null, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "result": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 9518.2001953125, + 873.2062377929688 + ], + "options": [] + }, + "b0eabc47-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Blur_OpenCV:1b9d7d56-PrimitiveDelAttrs:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@pos.y = @height", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 8630.0009765625, + -140.02207946777345 + ], + "options": [] + }, + "5c638c8a-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "HF_Blur_OpenCV:a7f413d3-IfElse:[node]/outputs/result", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -2220.31103515625, + 1245.760009765625 + ], + "options": [] + }, + "92e8ee14-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": true, + "control": { + "name": "Boolean" + }, + "type": "bool" + }, + "name": { + "value": "Clone", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "bool", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -3821.433837890625, + 1613.39306640625 + ], + "options": [] + }, + "a7f413d3-IfElse": { + "name": "IfElse", + "inputs": { + "true": { + "link": "HF_Blur_OpenCV:aad2d522-Clone:[node]/outputs/newObject", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "false": { + "link": "HF_Blur_OpenCV:8bc9fabf-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "cond": { + "link": "HF_Blur_OpenCV:92e8ee14-SubInput:[node]/outputs/port", + "type": "bool", + "default-value": null, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "result": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -2915.59716796875, + 1205.5838623046876 + ], + "options": [] + }, + "aad2d522-Clone": { + "name": "Clone", + "inputs": { + "object": { + "link": "HF_Blur_OpenCV:8bc9fabf-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "newObject": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -3800.923583984375, + 884.3822021484375 + ], + "options": [] + }, + "5eeac247-CompBlur": { + "name": "CompBlur", + "inputs": { + "image": { + "link": "HF_Blur_OpenCV:a8d583ac-CompImport:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "strength": { + "link": "HF_Blur_OpenCV:798c99da-SubInput:[node]/outputs/port", + "type": "int", + "default-value": 5, + "control": { + "name": "Integer" + } + }, + "kerneltop": { + "link": null, + "type": "vec3f", + "default-value": [ + 0.07500000298023224, + 0.12399999797344208, + 0.07500000298023224 + ], + "control": { + "name": "Float Vector 3" + } + }, + "kernelmid": { + "link": null, + "type": "vec3f", + "default-value": [ + 0.12399999797344208, + 0.20399999618530274, + 0.12399999797344208 + ], + "control": { + "name": "Float Vector 3" + } + }, + "kernelbot": { + "link": null, + "type": "vec3f", + "default-value": [ + 0.07500000298023224, + 0.12399999797344208, + 0.07500000298023224 + ], + "control": { + "name": "Float Vector 3" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2051.19970703125, + 2324.632568359375 + ], + "options": [] + }, + "f68946a2-ImageMedianBlur": { + "name": "ImageMedianBlur", + "inputs": { + "image": { + "link": "HF_Blur_OpenCV:a8d583ac-CompImport:[node]/outputs/image", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "kernelSize": { + "link": "HF_Blur_OpenCV:798c99da-SubInput:[node]/outputs/port", + "type": "int", + "default-value": 5, + "control": { + "name": "Integer" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "image": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2817.799560546875, + 1944.4676513671876 + ], + "options": [] + } + }, + "view_rect": {} + }, + "HF_Creation": { + "nodes": { + "1413efc5-SetUserData": { + "name": "SetUserData", + "inputs": { + "object": { + "link": "HF_Creation:37ef5762-SetUserData:[node]/outputs/object", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "data": { + "link": "HF_Creation:f410c0b2-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "scale", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "object": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1800.0, + 400.0 + ], + "options": [] + }, + "37ef5762-SetUserData": { + "name": "SetUserData", + "inputs": { + "object": { + "link": "HF_Creation:ec39871f-SetUserData:[node]/outputs/object", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "data": { + "link": "HF_Creation:bef83577-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "nz", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "object": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1800.0, + -100.0 + ], + "options": [] + }, + "968180ae-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Creation:cf36ecaa-SetUserData:[node]/outputs/object", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@height = 0\n@mask = 0\n@weight = 1\n@clr = vec3(1,1,1)\n", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2800.0, + 100.0 + ], + "options": [] + }, + "cf36ecaa-SetUserData": { + "name": "SetUserData", + "inputs": { + "object": { + "link": "HF_Creation:1413efc5-SetUserData:[node]/outputs/object", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "data": { + "link": "HF_Creation:f474742a-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "pos", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "object": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1800.0, + 900.0 + ], + "options": [] + }, + "ec39871f-SetUserData": { + "name": "SetUserData", + "inputs": { + "object": { + "link": "HF_Creation:db38438e-Make2DGridPrimitive:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "data": { + "link": "HF_Creation:bef83577-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "nx", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "object": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1800.0, + -600.0 + ], + "options": [] + }, + "bef83577-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 1000, + "control": { + "name": "Integer" + }, + "type": "int" + }, + "name": { + "value": "Terrain Resolution", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "int", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1700.0, + -600.0 + ], + "options": [] + }, + "f410c0b2-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 1000.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "Terrain Scale", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1700.0, + 1000.0 + ], + "options": [] + }, + "f474742a-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": [ + 0.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + }, + "type": "vec3f" + }, + "name": { + "value": "Terrain Position", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "vec3f", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1700.0, + 500.0 + ], + "options": [] + }, + "7dc12c3e-SubOutput": { + "name": "SubOutput", + "inputs": { + "port": { + "link": "HF_Creation:968180ae-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "", + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "HeightField", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 3900.0, + 100.0 + ], + "options": [] + }, + "db38438e-Make2DGridPrimitive": { + "name": "Make2DGridPrimitive", + "inputs": { + "nx": { + "link": "HF_Creation:bef83577-SubInput:[node]/outputs/port", + "type": "int", + "default-value": 2, + "control": { + "name": "Integer" + } + }, + "ny": { + "link": null, + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "sizeX": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "sizeY": { + "link": null, + "type": "vec3f", + "default-value": [ + 0.0, + 1.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "scale": { + "link": "HF_Creation:f410c0b2-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "origin": { + "link": "HF_Creation:f474742a-SubInput:[node]/outputs/port", + "type": "vec3f", + "default-value": [ + 0.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "Direction": { + "value": "XZ", + "control": { + "name": "Enum", + "items": [ + "XZ", + "XY", + "YZ" + ] + }, + "type": "enum XZ XY YZ" + }, + "hasFaces": { + "value": true, + "control": { + "name": "Boolean" + }, + "type": "bool" + }, + "hasUV": { + "value": true, + "control": { + "name": "Boolean" + }, + "type": "bool" + }, + "isCentered": { + "value": true, + "control": { + "name": "Boolean" + }, + "type": "bool" + } + }, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -215.9017791748047, + 91.39400482177735 + ], + "options": [] + } + }, + "view_rect": {} + }, + "HF_Project": { + "nodes": { + "41523dd4-ParticlesTwoWrangle": { + "name": "ParticlesTwoWrangle", + "inputs": { + "prim": { + "link": "HF_Project:a28b537f-Clone:[node]/outputs/newObject", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "prim2": { + "link": "HF_Project:700253c1-IfElse:[node]/outputs/result", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@height = @@pos.y\n@pos.y = @height", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2500.0, + 0.0 + ], + "options": [] + }, + "7cbacbf8-PrimitiveProject": { + "name": "PrimitiveProject", + "inputs": { + "prim": { + "link": "HF_Project:7977e365-ParticlesWrangle:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "targetPrim": { + "link": "HF_Project:e3dccd0a-SubInput:[node]/outputs/port", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "nrmAttr": { + "link": null, + "type": "string", + "default-value": "_normal", + "control": { + "name": "String" + } + }, + "limit": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "distTag": { + "link": null, + "type": "string", + "default-value": "dist", + "control": { + "name": "String" + } + }, + "threshold": { + "link": null, + "type": "float", + "default-value": 0.05000000074505806, + "control": { + "name": "Float" + } + }, + "side": { + "link": null, + "type": "enum closest farthest", + "default-value": "farthest", + "control": { + "name": "Enum", + "items": [ + "closest", + "farthest" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 200.0, + 400.0 + ], + "options": [] + }, + "a28b537f-Clone": { + "name": "Clone", + "inputs": { + "object": { + "link": "HF_Project:b6885cc3-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "newObject": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 300.0, + 0.0 + ], + "options": [] + }, + "b6885cc3-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "", + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "HeightField", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1300.0, + 0.0 + ], + "options": [] + }, + "e3dccd0a-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "", + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "Project Target Prim", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1300.0, + 600.0 + ], + "options": [] + }, + "e9120261-SubOutput": { + "name": "SubOutput", + "inputs": { + "port": { + "link": "HF_Project:66d94a11-PrimitiveDelAttrs:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "", + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "HeightField", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 4200.0, + 0.0 + ], + "options": [] + }, + "7977e365-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Project:b6885cc3-SubInput:[node]/outputs/port", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_normal = vec3(0,1,0)\n@_normal_inv = vec3(0,-1,0)", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -600.0, + 400.0 + ], + "options": [] + }, + "66d94a11-PrimitiveDelAttrs": { + "name": "PrimitiveDelAttrs", + "inputs": { + "prim": { + "link": "HF_Project:41523dd4-ParticlesTwoWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "invert": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "names": { + "link": null, + "type": "string", + "default-value": "_normal _normal_inv", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3400.0, + 0.0 + ], + "options": [] + }, + "8a095463-PrimitiveProject": { + "name": "PrimitiveProject", + "inputs": { + "prim": { + "link": "HF_Project:7977e365-ParticlesWrangle:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "targetPrim": { + "link": "HF_Project:e3dccd0a-SubInput:[node]/outputs/port", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "nrmAttr": { + "link": null, + "type": "string", + "default-value": "_normal_inv", + "control": { + "name": "String" + } + }, + "limit": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "distTag": { + "link": null, + "type": "string", + "default-value": "dist", + "control": { + "name": "String" + } + }, + "threshold": { + "link": null, + "type": "float", + "default-value": 0.05000000074505806, + "control": { + "name": "Float" + } + }, + "side": { + "link": null, + "type": "enum closest farthest", + "default-value": "farthest", + "control": { + "name": "Enum", + "items": [ + "closest", + "farthest" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 200.0, + 1100.0 + ], + "options": [] + }, + "127a955c-StringEqual": { + "name": "StringEqual", + "inputs": { + "lhs": { + "link": "HF_Project:31d9b7d7-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "", + "control": { + "name": "String" + } + }, + "rhs": { + "link": null, + "type": "string", + "default-value": "Above HeightField", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "isEqual": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 200.0, + 1800.0 + ], + "options": [] + }, + "31d9b7d7-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "Above HeightField", + "control": { + "name": "Enum", + "items": [ + "Above HeightField", + "Below HeightField" + ] + }, + "type": "string" + }, + "name": { + "value": "Project Dir", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -400.0, + 1800.0 + ], + "options": [] + }, + "700253c1-IfElse": { + "name": "IfElse", + "inputs": { + "true": { + "link": "HF_Project:7cbacbf8-PrimitiveProject:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "false": { + "link": "HF_Project:8a095463-PrimitiveProject:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "cond": { + "link": "HF_Project:127a955c-StringEqual:[node]/outputs/isEqual", + "type": "bool", + "default-value": null, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "result": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1300.0, + 1100.0 + ], + "options": [] + } + }, + "view_rect": {} + }, + "HF_Visualize": { + "nodes": { + "20ff2224-SetUserData": { + "name": "SetUserData", + "inputs": { + "object": { + "link": "HF_Visualize:e73b16e4-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "data": { + "link": "HF_Visualize:b1542b5b-NumericFloat:[node]/outputs/value", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "hi", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "object": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -100.0, + -100.0 + ], + "options": [] + }, + "5f8f09e9-erode_terrainHiMeLo": { + "name": "erode_terrainHiMeLo", + "inputs": { + "prim_2DGrid": { + "link": "HF_Visualize:d474c6b8-SetUserData:[node]/outputs/object", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "attrName": { + "link": "HF_Visualize:51d3109-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim_2DGrid": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1700.0, + -100.0 + ], + "options": [] + }, + "a858cdd1-GetUserData": { + "name": "GetUserData", + "inputs": { + "object": { + "link": "HF_Visualize:5f8f09e9-erode_terrainHiMeLo:[node]/outputs/prim_2DGrid", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "hi", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "data": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2798.447021484375, + -395.6988525390625 + ], + "options": [] + }, + "b1542b5b-NumericFloat": { + "name": "NumericFloat", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "value": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + } + }, + "outputs": { + "value": { + "type": "float" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 200.0, + -800.0 + ], + "options": [] + }, + "c8fb1913-SetUserData": { + "name": "SetUserData", + "inputs": { + "object": { + "link": "HF_Visualize:20ff2224-SetUserData:[node]/outputs/object", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "data": { + "link": "HF_Visualize:b1542b5b-NumericFloat:[node]/outputs/value", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "me", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "object": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 400.0, + -100.0 + ], + "options": [] + }, + "d474c6b8-SetUserData": { + "name": "SetUserData", + "inputs": { + "object": { + "link": "HF_Visualize:c8fb1913-SetUserData:[node]/outputs/object", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "data": { + "link": "HF_Visualize:b1542b5b-NumericFloat:[node]/outputs/value", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "lo", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "object": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 900.0, + -100.0 + ], + "options": [] + }, + "fbcad75-GetUserData": { + "name": "GetUserData", + "inputs": { + "object": { + "link": "HF_Visualize:5f8f09e9-erode_terrainHiMeLo:[node]/outputs/prim_2DGrid", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "lo", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "data": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2800.0, + -900.0 + ], + "options": [] + }, + "bb634a52-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "", + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "HeightField", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1600.0, + -100.0 + ], + "options": [] + }, + "51d3109-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "height", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Height Layer Name", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 900.0, + 500.0 + ], + "options": [] + }, + "338aa4e9-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": null, + "control": { + "name": "Color" + }, + "type": "color" + }, + "name": { + "value": "Heatmap", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "color", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 900.0, + 1100.0 + ], + "options": [] + }, + "f24dd4e9-SubOutput": { + "name": "SubOutput", + "inputs": { + "port": { + "link": "HF_Visualize:a0a041c8-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "", + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "HeightField", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 16304.001953125, + 398.6754455566406 + ], + "options": [] + }, + "b56039f4-erode_HeightField_visualize_mask": { + "name": "HF_Visual_Mask", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "HF_Visualize:9ea18cbf-PrimitiveDelAttrs:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Clone HF for Visualize": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Mask Name": { + "link": "HF_Visualize:25017ebd-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "mask", + "control": { + "name": "String" + } + }, + "Reset Base Color": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Visualize Color": { + "link": "HF_Visualize:e0e458cc-SubInput:[node]/outputs/port", + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + } + }, + "params": {}, + "outputs": { + "HeightField": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 6500.0, + 400.0 + ], + "options": [] + }, + "25017ebd-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "Layer_1", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Layer_1", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 6500.0, + 900.0 + ], + "options": [] + }, + "e0e458cc-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + }, + "type": "vec3f" + }, + "name": { + "value": "Color_1", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "vec3f", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 6500.0, + 1400.0 + ], + "options": [] + }, + "33cd6551-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "Layer_2", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Layer_2", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 7500.0, + 900.0 + ], + "options": [] + }, + "9979b85d-erode_HeightField_visualize_mask": { + "name": "HF_Visual_Mask", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "HF_Visualize:b56039f4-erode_HeightField_visualize_mask:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Clone HF for Visualize": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Mask Name": { + "link": "HF_Visualize:33cd6551-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "mask", + "control": { + "name": "String" + } + }, + "Reset Base Color": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Visualize Color": { + "link": "HF_Visualize:ed84d09a-SubInput:[node]/outputs/port", + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + } + }, + "params": {}, + "outputs": { + "HeightField": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 7500.0, + 400.0 + ], + "options": [] + }, + "ed84d09a-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + }, + "type": "vec3f" + }, + "name": { + "value": "Color_2", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "vec3f", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 7500.0, + 1400.0 + ], + "options": [] + }, + "52ad4c6c-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + }, + "type": "vec3f" + }, + "name": { + "value": "Color_3", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "vec3f", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 8500.0, + 1400.0 + ], + "options": [] + }, + "cab4f986-erode_HeightField_visualize_mask": { + "name": "HF_Visual_Mask", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "HF_Visualize:e600f739-erode_HeightField_visualize_mask:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Clone HF for Visualize": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Mask Name": { + "link": "HF_Visualize:cf0b639f-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "mask", + "control": { + "name": "String" + } + }, + "Reset Base Color": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Visualize Color": { + "link": "HF_Visualize:dc033c1a-SubInput:[node]/outputs/port", + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + } + }, + "params": {}, + "outputs": { + "HeightField": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 9500.0, + 400.0 + ], + "options": [] + }, + "cf0b639f-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "Layer_4", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Layer_4", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 9500.0, + 900.0 + ], + "options": [] + }, + "d4def7dc-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "Layer_3", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Layer_3", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 8500.0, + 900.0 + ], + "options": [] + }, + "dc033c1a-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + }, + "type": "vec3f" + }, + "name": { + "value": "Color_4", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "vec3f", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 9500.0, + 1400.0 + ], + "options": [] + }, + "e600f739-erode_HeightField_visualize_mask": { + "name": "HF_Visual_Mask", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "HF_Visualize:9979b85d-erode_HeightField_visualize_mask:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Clone HF for Visualize": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Mask Name": { + "link": "HF_Visualize:d4def7dc-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "mask", + "control": { + "name": "String" + } + }, + "Reset Base Color": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Visualize Color": { + "link": "HF_Visualize:52ad4c6c-SubInput:[node]/outputs/port", + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + } + }, + "params": {}, + "outputs": { + "HeightField": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 8500.0, + 400.0 + ], + "options": [] + }, + "134b5551-erode_HeightField_visualize_mask": { + "name": "HF_Visual_Mask", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "HF_Visualize:224511f6-erode_HeightField_visualize_mask:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Clone HF for Visualize": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Mask Name": { + "link": "HF_Visualize:600127c7-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "mask", + "control": { + "name": "String" + } + }, + "Reset Base Color": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Visualize Color": { + "link": "HF_Visualize:2a2296c8-SubInput:[node]/outputs/port", + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + } + }, + "params": {}, + "outputs": { + "HeightField": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 11500.0, + 400.0 + ], + "options": [] + }, + "1dfc4d52-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "Layer_7", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Layer_7", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 12500.0, + 900.0 + ], + "options": [] + }, + "224511f6-erode_HeightField_visualize_mask": { + "name": "HF_Visual_Mask", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "HF_Visualize:cab4f986-erode_HeightField_visualize_mask:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Clone HF for Visualize": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Mask Name": { + "link": "HF_Visualize:a9fd16a-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "mask", + "control": { + "name": "String" + } + }, + "Reset Base Color": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Visualize Color": { + "link": "HF_Visualize:91107d7e-SubInput:[node]/outputs/port", + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + } + }, + "params": {}, + "outputs": { + "HeightField": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 10500.0, + 400.0 + ], + "options": [] + }, + "2a2296c8-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + }, + "type": "vec3f" + }, + "name": { + "value": "Color_6", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "vec3f", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 11500.0, + 1400.0 + ], + "options": [] + }, + "3bc52f44-erode_HeightField_visualize_mask": { + "name": "HF_Visual_Mask", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "HF_Visualize:5bac4561-erode_HeightField_visualize_mask:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Clone HF for Visualize": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Mask Name": { + "link": "HF_Visualize:4ae78d2b-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "mask", + "control": { + "name": "String" + } + }, + "Reset Base Color": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Visualize Color": { + "link": "HF_Visualize:59fde57d-SubInput:[node]/outputs/port", + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + } + }, + "params": {}, + "outputs": { + "HeightField": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 13500.0, + 400.0 + ], + "options": [] + }, + "4ae78d2b-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "Layer_8", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Layer_8", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 13500.0, + 900.0 + ], + "options": [] + }, + "59fde57d-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + }, + "type": "vec3f" + }, + "name": { + "value": "Color_8", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "vec3f", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 13500.0, + 1400.0 + ], + "options": [] + }, + "5bac4561-erode_HeightField_visualize_mask": { + "name": "HF_Visual_Mask", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "HF_Visualize:134b5551-erode_HeightField_visualize_mask:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Clone HF for Visualize": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Mask Name": { + "link": "HF_Visualize:1dfc4d52-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "mask", + "control": { + "name": "String" + } + }, + "Reset Base Color": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Visualize Color": { + "link": "HF_Visualize:bd926615-SubInput:[node]/outputs/port", + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + } + }, + "params": {}, + "outputs": { + "HeightField": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 12500.0, + 400.0 + ], + "options": [] + }, + "600127c7-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "Layer_6", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Layer_6", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 11500.0, + 900.0 + ], + "options": [] + }, + "91107d7e-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + }, + "type": "vec3f" + }, + "name": { + "value": "Color_5", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "vec3f", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 10500.0, + 1400.0 + ], + "options": [] + }, + "a9fd16a-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "Layer_5", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Layer_5", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 10500.0, + 900.0 + ], + "options": [] + }, + "bd926615-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + }, + "type": "vec3f" + }, + "name": { + "value": "Color_7", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "vec3f", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 12500.0, + 1400.0 + ], + "options": [] + }, + "3eeb4316-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "Layer_9", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Layer_9", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 14500.0, + 900.0 + ], + "options": [] + }, + "a4b998a3-erode_HeightField_visualize_mask": { + "name": "HF_Visual_Mask", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "HF_Visualize:3bc52f44-erode_HeightField_visualize_mask:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Clone HF for Visualize": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Mask Name": { + "link": "HF_Visualize:3eeb4316-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "mask", + "control": { + "name": "String" + } + }, + "Reset Base Color": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Visualize Color": { + "link": "HF_Visualize:a4ebdaac-SubInput:[node]/outputs/port", + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + } + }, + "params": {}, + "outputs": { + "HeightField": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 14500.0, + 400.0 + ], + "options": [] + }, + "a4ebdaac-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + }, + "type": "vec3f" + }, + "name": { + "value": "Color_9", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "vec3f", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 14500.0, + 1400.0 + ], + "options": [] + }, + "48acc19c-PrimitiveColorByHeatmap": { + "name": "PrimitiveColorByHeatmap", + "inputs": { + "prim": { + "link": "HF_Visualize:5f8f09e9-erode_terrainHiMeLo:[node]/outputs/prim_2DGrid", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "attrName2": { + "link": "HF_Visualize:51d3109-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "heatmap": { + "link": "HF_Visualize:338aa4e9-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "min": { + "link": "HF_Visualize:fbcad75-GetUserData:[node]/outputs/data", + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "max": { + "link": "HF_Visualize:a858cdd1-GetUserData:[node]/outputs/data", + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "attrName": { + "value": "rho", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3698.447021484375, + -95.69886016845703 + ], + "options": [] + }, + "9ea18cbf-PrimitiveDelAttrs": { + "name": "PrimitiveDelAttrs", + "inputs": { + "prim": { + "link": "HF_Visualize:ffce1599-IfElse:[node]/outputs/result", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "invert": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "names": { + "link": null, + "type": "string", + "default-value": "hi me lo", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 5700.0, + 400.0 + ], + "options": [] + }, + "6b0538fe-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": false, + "control": { + "name": "Boolean" + }, + "type": "bool" + }, + "name": { + "value": "Revert Heatmap", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "bool", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 5000.0, + 900.0 + ], + "options": [] + }, + "ffce1599-IfElse": { + "name": "IfElse", + "inputs": { + "true": { + "link": "HF_Visualize:4b309f53-PrimitiveColorByHeatmap:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "false": { + "link": "HF_Visualize:48acc19c-PrimitiveColorByHeatmap:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "cond": { + "link": "HF_Visualize:6b0538fe-SubInput:[node]/outputs/port", + "type": "bool", + "default-value": null, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "result": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 5000.0, + 400.0 + ], + "options": [] + }, + "4b309f53-PrimitiveColorByHeatmap": { + "name": "PrimitiveColorByHeatmap", + "inputs": { + "prim": { + "link": "HF_Visualize:5f8f09e9-erode_terrainHiMeLo:[node]/outputs/prim_2DGrid", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "attrName2": { + "link": "HF_Visualize:51d3109-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "heatmap": { + "link": "HF_Visualize:338aa4e9-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "min": { + "link": "HF_Visualize:a858cdd1-GetUserData:[node]/outputs/data", + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "max": { + "link": "HF_Visualize:fbcad75-GetUserData:[node]/outputs/data", + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "attrName": { + "value": "rho", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3690.576416015625, + 483.1713562011719 + ], + "options": [] + }, + "a0a041c8-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Visualize:a4b998a3-erode_HeightField_visualize_mask:[node]/outputs/HeightField", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@clr *= $scale", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": { + "scale": { + "link": "HF_Visualize:9ebbe362-SubInput:[node]/outputs/port" + } + } + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 15366.1142578125, + 394.71612548828127 + ], + "options": [] + }, + "9ebbe362-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 1.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "Final Color Scale", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 15437.3173828125, + 1306.819091796875 + ], + "options": [] + }, + "e73b16e4-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Visualize:bb634a52-SubInput:[node]/outputs/port", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@pos.y = @height + 1 * @debris + 1 * @water + 0 * @sediment\n\n@debris = min(1, (@debris * 1))\n@water = min(1, (@water *1))\n@sediment = min(1, (@sediment * 1))\n\n", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -900.0, + -100.0 + ], + "options": [] + } + }, + "view_rect": {} + }, + "HF_Curl_Noise": { + "nodes": { + "1ac39b9b-PrimBoundingBox": { + "name": "PrimBoundingBox", + "inputs": { + "prim": { + "link": "HF_Curl_Noise:e8fdb7d8-Route:[node]/outputs/output", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "extraBound": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "bmin": { + "type": "vec3f" + }, + "bmax": { + "type": "vec3f" + }, + "center": { + "type": "vec3f" + }, + "radius": { + "type": "vec3f" + }, + "diameter": { + "type": "vec3f" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2275.091552734375, + -1.0204652547836304 + ], + "options": [] + }, + "60c2520a-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Curl_Noise:663da9bb-Clone:[node]/outputs/newObject", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@orignalPos = @pos", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -6864.18017578125, + 973.1768798828125 + ], + "options": [] + }, + "65e43fd6-NumericOperator": { + "name": "NumericOperator", + "inputs": { + "lhs": { + "link": "HF_Curl_Noise:a28bc6e2-GetUserData:[node]/outputs/data", + "type": "NumericObject", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "rhs": { + "link": "HF_Curl_Noise:b8f7750d-NumericOperator:[node]/outputs/ret", + "type": "NumericObject", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "op_type": { + "value": "div", + "control": { + "name": "Enum", + "items": [ + "add", + "sub", + "mul", + "div", + "mod", + "and", + "or", + "xor", + "shr", + "shl", + "cmpge", + "cmple", + "cmpgt", + "cmplt", + "cmpne", + "cmpeq", + "land", + "lor", + "pos", + "neg", + "inv", + "not", + "atan2", + "pow", + "max", + "min", + "fmod", + "dot", + "cross", + "distance", + "length", + "normalize", + "abs", + "sqrt", + "sin", + "cos", + "tan", + "asin", + "acos", + "atan", + "exp", + "log", + "floor", + "ceil", + "toint", + "tofloat", + "anytrue", + "alltrue", + "copy", + "copyr" + ] + }, + "type": "enum add sub mul div mod and or xor shr shl cmpge cmple cmpgt cmplt cmpne cmpeq land lor pos neg inv not atan2 pow max min fmod dot cross distance length normalize abs sqrt sin cos tan asin acos atan exp log floor ceil toint tofloat anytrue alltrue copy copyr" + } + }, + "outputs": { + "ret": { + "type": "NumericObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2975.091552734375, + 1298.9794921875 + ], + "options": [] + }, + "663da9bb-Clone": { + "name": "Clone", + "inputs": { + "object": { + "link": "HF_Curl_Noise:17353ace-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "newObject": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -7564.18017578125, + 973.1768798828125 + ], + "options": [] + }, + "9b749281-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Curl_Noise:b502884b-Route:[node]/outputs/output", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@backp = @pos\n@pos = @orignalPos", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -2250.601806640625, + 1600.8197021484376 + ], + "options": [] + }, + "a28bc6e2-GetUserData": { + "name": "GetUserData", + "inputs": { + "object": { + "link": "HF_Curl_Noise:e8fdb7d8-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "scale", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "data": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1875.091552734375, + 1998.9794921875 + ], + "options": [] + }, + "b80d637-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Curl_Noise:d8066d43-Grid2DSample_M:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@pos.y = @height", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 5755.60888671875, + 367.6988525390625 + ], + "options": [] + }, + "b8f7750d-NumericOperator": { + "name": "NumericOperator", + "inputs": { + "lhs": { + "link": "HF_Curl_Noise:f32e8f43-GetUserData:[node]/outputs/data", + "type": "NumericObject", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "rhs": { + "link": null, + "type": "NumericObject", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "op_type": { + "value": "tofloat", + "control": { + "name": "Enum", + "items": [ + "add", + "sub", + "mul", + "div", + "mod", + "and", + "or", + "xor", + "shr", + "shl", + "cmpge", + "cmple", + "cmpgt", + "cmplt", + "cmpne", + "cmpeq", + "land", + "lor", + "pos", + "neg", + "inv", + "not", + "atan2", + "pow", + "max", + "min", + "fmod", + "dot", + "cross", + "distance", + "length", + "normalize", + "abs", + "sqrt", + "sin", + "cos", + "tan", + "asin", + "acos", + "atan", + "exp", + "log", + "floor", + "ceil", + "toint", + "tofloat", + "anytrue", + "alltrue", + "copy", + "copyr" + ] + }, + "type": "enum add sub mul div mod and or xor shr shl cmpge cmple cmpgt cmplt cmpne cmpeq land lor pos neg inv not atan2 pow max min fmod dot cross distance length normalize abs sqrt sin cos tan asin acos atan exp log floor ceil toint tofloat anytrue alltrue copy copyr" + } + }, + "outputs": { + "ret": { + "type": "NumericObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2975.091552734375, + 1998.9794921875 + ], + "options": [] + }, + "becf760b-erode_HeightField_noise_analytic_simplex_2d": { + "name": "HF_Noise_Analytic_2D", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "offset": { + "link": "HF_Curl_Noise:d426949-SubInput:[node]/outputs/port", + "type": "vec3f", + "default-value": [ + 125.0, + 125.0, + 12879.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "roughness": { + "link": "HF_Curl_Noise:9faa2ab5-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 1.2000000476837159, + "control": { + "name": "Float" + } + }, + "maxOctaves": { + "link": "HF_Curl_Noise:955d6914-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 8.0, + "control": { + "name": "Float" + } + }, + "elementSize": { + "link": "HF_Curl_Noise:101b00af-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 500.0, + "control": { + "name": "Float" + } + }, + "prim": { + "link": "HF_Curl_Noise:60c2520a-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "H": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "scale": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 1.0, + 1.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "lacunarity": { + "link": null, + "type": "float", + "default-value": 1.840999960899353, + "control": { + "name": "Float" + } + }, + "amp": { + "link": "HF_Curl_Noise:47eaf80d-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 20.0, + "control": { + "name": "Float" + } + }, + "steps": { + "link": null, + "type": "int", + "default-value": 5, + "control": { + "name": "Integer" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "prim": { + "type": "" + } + }, + "uipos": [ + -5964.18017578125, + 973.1768798828125 + ], + "options": [] + }, + "f32e8f43-GetUserData": { + "name": "GetUserData", + "inputs": { + "object": { + "link": "HF_Curl_Noise:e8fdb7d8-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "nx", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "data": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1875.091552734375, + 1298.9794921875 + ], + "options": [] + }, + "17353ace-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "", + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "HeightField", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -8264.1796875, + 973.1768798828125 + ], + "options": [] + }, + "9faa2ab5-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 1.200000047683716, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "Noise Roughness", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -8264.1796875, + 1873.1768798828126 + ], + "options": [] + }, + "d426949-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": [ + 125.0, + 125.0, + 12879.0 + ], + "control": { + "name": "Float Vector 3" + }, + "type": "vec3f" + }, + "name": { + "value": "Noise Offset", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "vec3f", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -8264.1796875, + 2773.177001953125 + ], + "options": [] + }, + "101b00af-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 500.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "Noise Element Size", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -7564.18017578125, + 2773.177001953125 + ], + "options": [] + }, + "47eaf80d-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 20.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "Noise Amp", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -6828.578125, + 2773.096435546875 + ], + "options": [] + }, + "955d6914-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 8.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "Noise Octaves", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -7664.18017578125, + 1873.1768798828126 + ], + "options": [] + }, + "18201456-SubOutput": { + "name": "SubOutput", + "inputs": { + "port": { + "link": "HF_Curl_Noise:1892219-PrimitiveDelAttrs:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "", + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "HeightField", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 7644.47998046875, + 376.99554443359377 + ], + "options": [] + }, + "d8066d43-Grid2DSample_M": { + "name": "Grid2DSample_M", + "inputs": { + "grid": { + "link": "HF_Curl_Noise:e8fdb7d8-Route:[node]/outputs/output", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "grid2": { + "link": "HF_Curl_Noise:e8fdb7d8-Route:[node]/outputs/output", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "nx": { + "link": "HF_Curl_Noise:f32e8f43-GetUserData:[node]/outputs/data", + "type": "int", + "default-value": 1, + "control": { + "name": "Integer" + } + }, + "ny": { + "link": "HF_Curl_Noise:f32e8f43-GetUserData:[node]/outputs/data", + "type": "int", + "default-value": 1, + "control": { + "name": "Integer" + } + }, + "h": { + "link": "HF_Curl_Noise:65e43fd6-NumericOperator:[node]/outputs/ret", + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "bmin": { + "link": "HF_Curl_Noise:1ac39b9b-PrimBoundingBox:[node]/outputs/bmin", + "type": "vec3f", + "default-value": [ + 0.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "channel": { + "link": null, + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "sampleBy": { + "link": null, + "type": "string", + "default-value": "backp", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "attrT": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "vec3", + "float" + ] + }, + "type": "enum vec3 float" + } + }, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3775.091552734375, + 398.9795227050781 + ], + "options": [] + }, + "8e5228f4-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": false, + "control": { + "name": "Boolean" + }, + "type": "bool" + }, + "name": { + "value": "Use Mask", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "bool", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -164.87249755859376, + 1535.9739990234376 + ], + "options": [] + }, + "719e1305-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "mask", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Mask Layer", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -4360.74951171875, + -150.6211395263672 + ], + "options": [] + }, + "ff77013b-IfElse": { + "name": "IfElse", + "inputs": { + "true": { + "link": "HF_Curl_Noise:ec30d89d-PrimitiveDelAttrs:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "false": { + "link": "HF_Curl_Noise:9b749281-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "cond": { + "link": "HF_Curl_Noise:8e5228f4-SubInput:[node]/outputs/port", + "type": "bool", + "default-value": null, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "result": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -159.12896728515626, + 1019.1690673828125 + ], + "options": [] + }, + "55b3d61e-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "HF_Curl_Noise:b502884b-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": "HF_Curl_Noise:719e1305-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "s", + "control": { + "name": "String" + } + }, + "targetName": { + "link": null, + "type": "string", + "default-value": "_mask", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -3383.0068359375, + 462.9529724121094 + ], + "options": [] + }, + "acd7ad3b-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Curl_Noise:55b3d61e-PrimCopyAttr:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "delta = (@orignalPos - @pos) * (1 - @_mask)\n@backp = @pos + delta\n@pos = @orignalPos", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -2259.411865234375, + 448.7168273925781 + ], + "options": [] + }, + "ec30d89d-PrimitiveDelAttrs": { + "name": "PrimitiveDelAttrs", + "inputs": { + "prim": { + "link": "HF_Curl_Noise:acd7ad3b-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "invert": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "names": { + "link": null, + "type": "string", + "default-value": "_mask", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1193.646728515625, + 457.4193420410156 + ], + "options": [] + }, + "b502884b-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "HF_Curl_Noise:becf760b-erode_HeightField_noise_analytic_simplex_2d:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -4135.06884765625, + 990.5980224609375 + ], + "options": [] + }, + "1892219-PrimitiveDelAttrs": { + "name": "PrimitiveDelAttrs", + "inputs": { + "prim": { + "link": "HF_Curl_Noise:b80d637-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "invert": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "names": { + "link": null, + "type": "string", + "default-value": "backp orignalPos", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 6670.162109375, + 375.3769836425781 + ], + "options": [] + }, + "e8fdb7d8-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "HF_Curl_Noise:ff77013b-IfElse:[node]/outputs/result", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1039.1046142578126, + 997.395751953125 + ], + "options": [] + } + }, + "view_rect": {} + }, + "HF_Terrain_Noise": { + "nodes": { + "a0dc8e35-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "", + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "HeightField", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -3300.0, + 400.0 + ], + "options": [] + }, + "fa50732b-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": [ + 600.0, + 0.0, + 1200.0 + ], + "control": { + "name": "Float Vector 3" + }, + "type": "vec3f" + }, + "name": { + "value": "Noise Offset", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "vec3f", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -3288.5283203125, + 1870.511962890625 + ], + "options": [] + }, + "97771224-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 8.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "Noise Octaves", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -3288.5283203125, + 2370.511962890625 + ], + "options": [] + }, + "4ba049d9-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.5, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "Noise Roughness", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -3288.5283203125, + 2870.511962890625 + ], + "options": [] + }, + "ccedbb6e-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": [ + 500.0, + 500.0, + 500.0 + ], + "control": { + "name": "Float Vector 3" + }, + "type": "vec3f" + }, + "name": { + "value": "Noise Amp", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "vec3f", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -3293.32177734375, + 883.0775146484375 + ], + "options": [] + }, + "33f4c22e-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": [ + 0.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + }, + "type": "vec3f" + }, + "name": { + "value": "Noise Element Size", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "vec3f", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -3292.352294921875, + 1383.0775146484376 + ], + "options": [] + }, + "52688e09-SubOutput": { + "name": "SubOutput", + "inputs": { + "port": { + "link": "HF_Terrain_Noise:fa853546-IfElse:[node]/outputs/result", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "", + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "HeightField", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 8905.615234375, + 507.2711486816406 + ], + "options": [] + }, + "5bdd0fdf-Clone": { + "name": "Clone", + "inputs": { + "object": { + "link": "HF_Terrain_Noise:a0dc8e35-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "newObject": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -2772.40087890625, + 409.1296691894531 + ], + "options": [] + }, + "33a9b833-HF_Noise_Core": { + "name": "HF_Noise_Core", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "HF_Terrain_Noise:5bdd0fdf-Clone:[node]/outputs/newObject", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Noise Basic Setting": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Center Noise": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "Amplitude": { + "link": "HF_Terrain_Noise:ccedbb6e-SubInput:[node]/outputs/port", + "type": "vec3f", + "default-value": [ + 0.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Element Size": { + "link": "HF_Terrain_Noise:33f4c22e-SubInput:[node]/outputs/port", + "type": "vec3f", + "default-value": [ + 0.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Scale": { + "link": null, + "type": "vec3f", + "default-value": [ + 1.0, + 1.0, + 1.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Offset": { + "link": "HF_Terrain_Noise:fa50732b-SubInput:[node]/outputs/port", + "type": "vec3f", + "default-value": [ + 0.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Noise Advanced Setting": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Noise Type": { + "link": "HF_Terrain_Noise:51e621b9-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "perlin", + "control": { + "name": "Enum", + "items": [ + "perlin", + "simplex", + "worley" + ] + } + }, + " Worley Offset": { + "link": null, + "type": "vec3f", + "default-value": [ + 0.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + " Worley F1-F2 Type": { + "link": null, + "type": "string", + "default-value": "F1", + "control": { + "name": "Enum", + "items": [ + "F1", + "F2-F1" + ] + } + }, + " Worley Distance Type": { + "link": null, + "type": "string", + "default-value": "Euclidean", + "control": { + "name": "Enum", + "items": [ + "Euclidean", + "Chebyshev", + "Manhattan" + ] + } + }, + "Fractal Type": { + "link": "HF_Terrain_Noise:2dad4f07-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "hybridTerrain", + "control": { + "name": "Enum", + "items": [ + "fBm", + "hybridTerrain", + "ridgedTerrain" + ] + } + }, + " Max Octaves": { + "link": "HF_Terrain_Noise:97771224-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 8.0, + "control": { + "name": "Float" + } + }, + " Roughness": { + "link": "HF_Terrain_Noise:4ba049d9-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 0.5, + "control": { + "name": "Float" + } + }, + " Lacunarity": { + "link": null, + "type": "float", + "default-value": 1.840999960899353, + "control": { + "name": "Float" + } + }, + " Persistence": { + "link": null, + "type": "float", + "default-value": 0.9750000238418579, + "control": { + "name": "Float" + } + }, + " H": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + " Gain": { + "link": null, + "type": "float", + "default-value": 0.5, + "control": { + "name": "Float" + } + }, + " Bias": { + "link": null, + "type": "float", + "default-value": 0.800000011920929, + "control": { + "name": "Float" + } + }, + "Post Processing": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Fold Enable": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Fold Gain": { + "link": null, + "type": "float", + "default-value": 0.5, + "control": { + "name": "Float" + } + }, + "Distortion": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Distort Enable": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "Distortion Amp": { + "link": null, + "type": "float", + "default-value": 0.5, + "control": { + "name": "Float" + } + }, + "Distortion Freq": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + } + }, + "params": {}, + "outputs": { + "HeightField": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1729.671630859375, + 395.8128662109375 + ], + "options": [] + }, + "14f62d18-IfElse": { + "name": "IfElse", + "inputs": { + "true": { + "link": "HF_Terrain_Noise:bdeec2fc-PrimitiveDelAttrs:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "false": { + "link": "HF_Terrain_Noise:746584eb-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "cond": { + "link": "HF_Terrain_Noise:7812415f-SubInput:[node]/outputs/port", + "type": "bool", + "default-value": null, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "result": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3240.810302734375, + 457.69097900390627 + ], + "options": [] + }, + "2718cfd2-PrimitiveDelAttrs": { + "name": "PrimitiveDelAttrs", + "inputs": { + "prim": { + "link": "HF_Terrain_Noise:45eebae9-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "invert": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "names": { + "link": null, + "type": "string", + "default-value": "_result _height", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 6411.28369140625, + 472.6092834472656 + ], + "options": [] + }, + "322aef1-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Terrain_Noise:83bbd22d-PrimCopyAttr:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_height += @_result", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 4739.67529296875, + 461.8152770996094 + ], + "options": [] + }, + "7812415f-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": false, + "control": { + "name": "Boolean" + }, + "type": "bool" + }, + "name": { + "value": "Use Mask", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "bool", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3218.29296875, + 947.4927368164063 + ], + "options": [] + }, + "92ff48aa-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Terrain_Noise:e641d368-PrimCopyAttr:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_result *= @_mask", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1624.052490234375, + -175.1975860595703 + ], + "options": [] + }, + "d5b30e3f-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Terrain_Noise:2718cfd2-PrimitiveDelAttrs:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@pos.y = @height", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 7353.73828125, + 873.48681640625 + ], + "options": [] + }, + "e641d368-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "HF_Terrain_Noise:746584eb-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": "HF_Terrain_Noise:ed6828ec-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "s", + "control": { + "name": "String" + } + }, + "targetName": { + "link": null, + "type": "string", + "default-value": "_mask", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 916.8637084960938, + -96.15792083740235 + ], + "options": [] + }, + "ed6828ec-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "mask", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Mask Layer", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 198.83282470703126, + -314.2245178222656 + ], + "options": [] + }, + "746584eb-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "HF_Terrain_Noise:33a9b833-HF_Noise_Core:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 220.09161376953126, + 412.2901306152344 + ], + "options": [] + }, + "bdeec2fc-PrimitiveDelAttrs": { + "name": "PrimitiveDelAttrs", + "inputs": { + "prim": { + "link": "HF_Terrain_Noise:92ff48aa-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "invert": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "names": { + "link": null, + "type": "string", + "default-value": "_mask", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2417.421875, + -80.419189453125 + ], + "options": [] + }, + "2857e969-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "height", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Noise Apply Layer", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3949.525146484375, + -347.0484924316406 + ], + "options": [] + }, + "83bbd22d-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "HF_Terrain_Noise:14f62d18-IfElse:[node]/outputs/result", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": "HF_Terrain_Noise:2857e969-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "s", + "control": { + "name": "String" + } + }, + "targetName": { + "link": null, + "type": "string", + "default-value": "_height", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3909.587158203125, + 451.64801025390627 + ], + "options": [] + }, + "45eebae9-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "HF_Terrain_Noise:322aef1-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": null, + "type": "string", + "default-value": "_height", + "control": { + "name": "String" + } + }, + "targetName": { + "link": "HF_Terrain_Noise:2857e969-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "_height", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 5619.7900390625, + 466.40325927734377 + ], + "options": [] + }, + "65981af1-StringEqual": { + "name": "StringEqual", + "inputs": { + "lhs": { + "link": "HF_Terrain_Noise:2857e969-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "", + "control": { + "name": "String" + } + }, + "rhs": { + "link": null, + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "isEqual": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 6319.0576171875, + -308.36907958984377 + ], + "options": [] + }, + "fa853546-IfElse": { + "name": "IfElse", + "inputs": { + "true": { + "link": "HF_Terrain_Noise:d5b30e3f-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "false": { + "link": "HF_Terrain_Noise:2718cfd2-PrimitiveDelAttrs:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "cond": { + "link": "HF_Terrain_Noise:65981af1-StringEqual:[node]/outputs/isEqual", + "type": "bool", + "default-value": null, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "result": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 8273.1513671875, + 522.33154296875 + ], + "options": [] + }, + "51e621b9-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "perlin", + "control": { + "name": "Enum", + "items": [ + "perlin", + "simplex", + "worley" + ] + }, + "type": "string" + }, + "name": { + "value": "Noise Type", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -3297.986328125, + -712.8629150390625 + ], + "options": [] + }, + "2dad4f07-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "hybridTerrain", + "control": { + "name": "Enum", + "items": [ + "fBm", + "hybridTerrain", + "ridgedTerrain" + ] + }, + "type": "string" + }, + "name": { + "value": "Fractal Type", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -3299.630126953125, + -244.6664581298828 + ], + "options": [] + } + }, + "view_rect": {} + }, + "HF_Erode_Init": { + "nodes": { + "17510934-NumericOperator": { + "name": "NumericOperator", + "inputs": { + "lhs": { + "link": "HF_Erode_Init:420f8dcc-GetUserData:[node]/outputs/data", + "type": "NumericObject", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "rhs": { + "link": null, + "type": "NumericObject", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "op_type": { + "value": "tofloat", + "control": { + "name": "Enum", + "items": [ + "add", + "sub", + "mul", + "div", + "mod", + "and", + "or", + "xor", + "shr", + "shl", + "cmpge", + "cmple", + "cmpgt", + "cmplt", + "cmpne", + "cmpeq", + "land", + "lor", + "pos", + "neg", + "inv", + "not", + "atan2", + "pow", + "max", + "min", + "fmod", + "dot", + "cross", + "distance", + "length", + "normalize", + "abs", + "sqrt", + "sin", + "cos", + "tan", + "asin", + "acos", + "atan", + "exp", + "log", + "floor", + "ceil", + "toint", + "tofloat", + "anytrue", + "alltrue", + "copy", + "copyr" + ] + }, + "type": "enum add sub mul div mod and or xor shr shl cmpge cmple cmpgt cmplt cmpne cmpeq land lor pos neg inv not atan2 pow max min fmod dot cross distance length normalize abs sqrt sin cos tan asin acos atan exp log floor ceil toint tofloat anytrue alltrue copy copyr" + } + }, + "outputs": { + "ret": { + "type": "NumericObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 200.0, + -400.0 + ], + "options": [] + }, + "420f8dcc-GetUserData": { + "name": "GetUserData", + "inputs": { + "object": { + "link": "HF_Erode_Init:d1177861-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "nx", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "data": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -500.0, + -400.0 + ], + "options": [] + }, + "919a7366-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Erode_Init:f7bf32a1-PrimMarkIndex:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@__id_z = floor(@__idx / $nx)\n@__id_x = @__idx - @__id_z * $nx\nx_start = @__id_x == 0\nx_end = @__id_x == ($nx - 1)\nz_start = @__id_z == 0\nz_end = @__id_z == ($nz - 1)\n@is_bounded = (x_start|x_end|z_start|z_end) ? 1 : 0\n@clr = @is_bounded==1 ? vec3(1,0,0) : vec3(1,1,1)\n", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": { + "nx": { + "link": "HF_Erode_Init:17510934-NumericOperator:[node]/outputs/ret" + }, + "nz": { + "link": "HF_Erode_Init:17510934-NumericOperator:[node]/outputs/ret" + } + } + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1005.0, + -997.0 + ], + "options": [] + }, + "d1177861-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "HF_Erode_Init:e1a1b7e9-Clone:[node]/outputs/newObject", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -500.0, + -1000.0 + ], + "options": [] + }, + "d929275b-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Erode_Init:51da781b-PrimCopyAttr:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "#@_height = 0.0\n@_water = 0.0\n@_debris = 0.0\n@_sediment = 0.0\n@_stability = 0.0", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2700.0, + -1000.0 + ], + "options": [] + }, + "f7bf32a1-PrimMarkIndex": { + "name": "PrimMarkIndex", + "inputs": { + "prim": { + "link": "HF_Erode_Init:d1177861-Route:[node]/outputs/output", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "tagAttr": { + "link": null, + "type": "string", + "default-value": "__idx", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum int float", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "int", + "float" + ] + } + }, + "base": { + "link": null, + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "step": { + "link": null, + "type": "int", + "default-value": 1, + "control": { + "name": "Integer" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 205.0, + -997.0 + ], + "options": [] + }, + "1dc251f3-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "", + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "HeightField", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1900.0, + -1000.0 + ], + "options": [] + }, + "e96a8c17-SubOutput": { + "name": "SubOutput", + "inputs": { + "port": { + "link": "HF_Erode_Init:69fbb56-PrimitiveDelAttrs:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "", + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "HeightField", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 8500.0, + -1000.0 + ], + "options": [] + }, + "e1a1b7e9-Clone": { + "name": "Clone", + "inputs": { + "object": { + "link": "HF_Erode_Init:1dc251f3-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "newObject": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1200.0, + -1000.0 + ], + "options": [] + }, + "69fbb56-PrimitiveDelAttrs": { + "name": "PrimitiveDelAttrs", + "inputs": { + "prim": { + "link": "HF_Erode_Init:4f4afdf-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "invert": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "names": { + "link": null, + "type": "string", + "default-value": "__idx __id_x __id_z is_bounded _height _water _debris _sediment _stability", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 7600.0, + -1000.0 + ], + "options": [] + }, + "37970acb-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "sediment", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Sediment Layer Name", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 6000.0, + -1600.0 + ], + "options": [] + }, + "6a391082-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "debris", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Debris Layer Name", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 5200.0, + -1600.0 + ], + "options": [] + }, + "dc0913a4-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "water", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Water Layer Name", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 4400.0, + -1600.0 + ], + "options": [] + }, + "f995cd09-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "stability", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Stability Layer Name", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 6800.0, + -1600.0 + ], + "options": [] + }, + "6464601e-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "HF_Erode_Init:1b79e2ca-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": null, + "type": "string", + "default-value": "_water", + "control": { + "name": "String" + } + }, + "targetName": { + "link": "HF_Erode_Init:dc0913a4-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "t", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 4400.0, + -1000.0 + ], + "options": [] + }, + "ca8d9678-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "HF_Erode_Init:6464601e-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": null, + "type": "string", + "default-value": "_debris", + "control": { + "name": "String" + } + }, + "targetName": { + "link": "HF_Erode_Init:6a391082-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "t", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 5200.0, + -1000.0 + ], + "options": [] + }, + "4f4afdf-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "HF_Erode_Init:51cb3683-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": null, + "type": "string", + "default-value": "_stability", + "control": { + "name": "String" + } + }, + "targetName": { + "link": "HF_Erode_Init:f995cd09-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "t", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 6800.0, + -1000.0 + ], + "options": [] + }, + "51cb3683-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "HF_Erode_Init:ca8d9678-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": null, + "type": "string", + "default-value": "_sediment", + "control": { + "name": "String" + } + }, + "targetName": { + "link": "HF_Erode_Init:37970acb-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "t", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 6000.0, + -1000.0 + ], + "options": [] + }, + "1b79e2ca-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "HF_Erode_Init:d929275b-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": null, + "type": "string", + "default-value": "_height", + "control": { + "name": "String" + } + }, + "targetName": { + "link": "HF_Erode_Init:68ffcef7-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "t", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3600.0, + -1000.0 + ], + "options": [] + }, + "68ffcef7-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "height", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Height Layer Name", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2700.0, + -2300.0 + ], + "options": [] + }, + "51da781b-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "HF_Erode_Init:919a7366-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": "HF_Erode_Init:68ffcef7-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "_height", + "control": { + "name": "String" + } + }, + "targetName": { + "link": null, + "type": "string", + "default-value": "_height", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1900.0, + -1000.0 + ], + "options": [] + } + }, + "view_rect": {} + }, + "Erode_Terrain_Stability": { + "nodes": { + "2c775559-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "Erode_Terrain_Stability:c1f21dd0-Erode_Stability_Blur_Cuda:[node]/outputs/HeightField", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "water_absorption = $WaterAbsorption\n\ntop_portion_to_clamp = $TopPortionToClamp\n\ntemp = ((1.0 + top_portion_to_clamp) * water_absorption) * (0.5 * cos(3.141592654 * ((@_stability * @_stability) + 1)) + 0.5)\n\n@_stability = temp < 0 ? 0 : (temp > 1 ? 1 : temp)", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": "Erode_Terrain_Stability:3118c545-MakeDict:[node]/outputs/dict", + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1000.0, + 200.0 + ], + "options": [], + "customui-panel": { + "Default": { + "In Sockets": { + "prim": { + "value": null, + "control": { + "name": "" + }, + "uuid": 252235116, + "property": "normal" + }, + "zfxCode": { + "control": { + "name": "Multiline String" + }, + "uuid": 4248655176, + "property": "normal" + }, + "params": { + "value": null, + "control": { + "name": "" + }, + "uuid": 2232306949, + "property": "normal" + }, + "SRC": { + "value": null, + "control": { + "name": "" + }, + "uuid": 3025434415, + "property": "normal" + } + }, + "Parameters": {}, + "Out Sockets": { + "prim": { + "value": null, + "control": { + "name": "" + }, + "uuid": 2584665203, + "property": "normal" + }, + "DST": { + "value": null, + "control": { + "name": "" + }, + "uuid": 3651151012, + "property": "normal" + } + } + } + } + }, + "3118c545-MakeDict": { + "name": "MakeDict", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "MaxDebrisDepth": { + "property": "editable", + "link": "Erode_Terrain_Stability:35218b-NumericFloat:[node]/outputs/value", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "WaterAbsorption": { + "property": "editable", + "link": "Erode_Terrain_Stability:922da32c-NumericFloat:[node]/outputs/value", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "TopPortionToClamp": { + "property": "editable", + "link": "Erode_Terrain_Stability:e428bf1e-NumericFloat:[node]/outputs/value", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "obj3": { + "property": "editable", + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "dict": { + "type": "dict" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -800.0, + 1100.0 + ], + "options": [], + "dict_keys": { + "inputs": [ + "MaxDebrisDepth", + "WaterAbsorption", + "TopPortionToClamp", + "obj3" + ], + "outputs": [] + } + }, + "35218b-NumericFloat": { + "name": "NumericFloat", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "value": { + "value": 3.0, + "control": { + "name": "Float" + }, + "type": "float" + } + }, + "outputs": { + "value": { + "type": "float" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1706.0, + 877.0 + ], + "options": [] + }, + "922da32c-NumericFloat": { + "name": "NumericFloat", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "value": { + "value": 1.0, + "control": { + "name": "Float" + }, + "type": "float" + } + }, + "outputs": { + "value": { + "type": "float" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1706.0, + 1277.0 + ], + "options": [] + }, + "e428bf1e-NumericFloat": { + "name": "NumericFloat", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "value": { + "value": 0.20000000298023225, + "control": { + "name": "Float" + }, + "type": "float" + } + }, + "outputs": { + "value": { + "type": "float" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1706.0, + 1677.0 + ], + "options": [] + }, + "fcaeeb88-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "Erode_Terrain_Stability:a2ccc25e-Erode_Stability_Blur_Cuda:[node]/outputs/HeightField", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "max_debris_height = $MaxDebrisDepth\n\npower = floor(@_debris / max_debris_height)\n\ncond = @_stability > 0.1 ? 1 : 0\ncond *= pow(0.5, power)\n@_stability = cond;", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": "Erode_Terrain_Stability:3118c545-MakeDict:[node]/outputs/dict", + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -800.0, + 200.0 + ], + "options": [] + }, + "fffae519-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "Erode_Terrain_Stability:3ec9e8aa-PrimCopyAttr:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_stability = @_sediment > 0.1 ? 1 : 0", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -2600.0, + 200.0 + ], + "options": [] + }, + "b0ce029a-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "", + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "HeightField", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -5700.0, + 200.0 + ], + "options": [] + }, + "b5d474b8-SubOutput": { + "name": "SubOutput", + "inputs": { + "port": { + "link": "Erode_Terrain_Stability:bb4c9b7f-PrimitiveDelAttrs:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "", + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "HeightField", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 5200.0, + 200.0 + ], + "options": [] + }, + "bb4c9b7f-PrimitiveDelAttrs": { + "name": "PrimitiveDelAttrs", + "inputs": { + "prim": { + "link": "Erode_Terrain_Stability:f6a81fac-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "invert": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "names": { + "link": null, + "type": "string", + "default-value": "_stability _debris _sediment", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 4300.0, + 200.0 + ], + "options": [] + }, + "25ddca18-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": null, + "type": "string", + "default-value": "_sediment", + "control": { + "name": "String" + } + }, + "targetName": { + "link": "Erode_Terrain_Stability:91673414-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "_debris", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3500.0, + -300.0 + ], + "options": [] + }, + "3ec9e8aa-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "Erode_Terrain_Stability:afb55e3f-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": "Erode_Terrain_Stability:91673414-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "s", + "control": { + "name": "String" + } + }, + "targetName": { + "link": null, + "type": "string", + "default-value": "_sediment", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -3400.0, + 200.0 + ], + "options": [] + }, + "7d959426-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": "Erode_Terrain_Stability:3f2b38ec-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "s", + "control": { + "name": "String" + } + }, + "targetName": { + "link": null, + "type": "string", + "default-value": "_stability", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -5000.0, + -300.0 + ], + "options": [] + }, + "91673414-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "sediment", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Sediment Layer Name", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -700.0, + -2600.0 + ], + "options": [] + }, + "f6a81fac-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "Erode_Terrain_Stability:2c775559-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": null, + "type": "string", + "default-value": "_stability", + "control": { + "name": "String" + } + }, + "targetName": { + "link": "Erode_Terrain_Stability:3f2b38ec-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "_height", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1900.0, + 200.0 + ], + "options": [] + }, + "132f6610-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "debris", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Debris Layer Name", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1400.0, + -2600.0 + ], + "options": [] + }, + "afb55e3f-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "Erode_Terrain_Stability:b0ce029a-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": "Erode_Terrain_Stability:132f6610-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "s", + "control": { + "name": "String" + } + }, + "targetName": { + "link": null, + "type": "string", + "default-value": "_debris", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -4200.0, + 200.0 + ], + "options": [] + }, + "5458cf6c-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": null, + "type": "string", + "default-value": "_debris", + "control": { + "name": "String" + } + }, + "targetName": { + "link": "Erode_Terrain_Stability:132f6610-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "_debris", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2700.0, + -300.0 + ], + "options": [] + }, + "3f2b38ec-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "stability", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Stability Layer Name", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -2100.0, + -2600.0 + ], + "options": [] + }, + "a2ccc25e-Erode_Stability_Blur_Cuda": { + "name": "Erode_Stability_Blur_Cuda", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Blur Mode": { + "link": null, + "type": "string", + "default-value": "NINE_STENCIL", + "control": { + "name": "Enum", + "items": [ + "FIVE_STENCIL", + "NINE_STENCIL" + ] + } + }, + "Blur Radius": { + "link": null, + "type": "float", + "default-value": 50.0, + "control": { + "name": "Float" + } + }, + "Visual Enable": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Float Attr Name": { + "link": null, + "type": "string", + "default-value": "_stability", + "control": { + "name": "String" + } + }, + "HeightField": { + "link": "Erode_Terrain_Stability:fffae519-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + -1800.0, + 200.0 + ], + "options": [] + }, + "c1f21dd0-Erode_Stability_Blur_Cuda": { + "name": "Erode_Stability_Blur_Cuda", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Blur Mode": { + "link": null, + "type": "string", + "default-value": "NINE_STENCIL", + "control": { + "name": "Enum", + "items": [ + "FIVE_STENCIL", + "NINE_STENCIL" + ] + } + }, + "Blur Radius": { + "link": null, + "type": "float", + "default-value": 25.0, + "control": { + "name": "Float" + } + }, + "Visual Enable": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Float Attr Name": { + "link": null, + "type": "string", + "default-value": "_stability", + "control": { + "name": "String" + } + }, + "HeightField": { + "link": "Erode_Terrain_Stability:fcaeeb88-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + 0.0, + 200.0 + ], + "options": [] + } + }, + "view_rect": {} + }, + "HF_Layer_Combine": { + "nodes": { + "1f8ac52e-Clone": { + "name": "Clone", + "inputs": { + "object": { + "link": "HF_Layer_Combine:89248d49-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "newObject": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1900.0, + 3000.0 + ], + "options": [] + }, + "24f82268-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Layer_Combine:6cfa9f76-Clone:[node]/outputs/newObject", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_temp_mask_c = @_temp_mask_a - @_temp_mask_b\n@_temp_mask_c = min(@_temp_mask_c, 1)\n@_temp_mask_c = max(0, @_temp_mask_c)", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -700.0, + 700.0 + ], + "options": [] + }, + "2594a37d-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Layer_Combine:e2b28e18-Clone:[node]/outputs/newObject", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_temp_mask_c = (1 - $blend) * @_temp_mask_a + @_temp_mask_b * $blend\n@_temp_mask_c = min(@_temp_mask_c, 1)\n@_temp_mask_c = max(0, @_temp_mask_c)", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": { + "blend": { + "link": "HF_Layer_Combine:dc282f3d-SubInput:[node]/outputs/port" + } + } + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -700.0, + 4700.0 + ], + "options": [] + }, + "295aad24-NumericInt": { + "name": "NumericInt", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "value": { + "value": 7, + "control": { + "name": "Integer" + }, + "type": "int" + } + }, + "outputs": { + "value": { + "type": "int" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -2100.0, + 8400.0 + ], + "options": [] + }, + "612f90b-NumericInt": { + "name": "NumericInt", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "value": { + "value": 6, + "control": { + "name": "Integer" + }, + "type": "int" + } + }, + "outputs": { + "value": { + "type": "int" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -2100.0, + 8000.0 + ], + "options": [] + }, + "6156199f-DictGetItem": { + "name": "DictGetItem", + "inputs": { + "dict": { + "link": "HF_Layer_Combine:71d24cd9-MakeDict:[node]/outputs/dict", + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "key": { + "link": "HF_Layer_Combine:9f4b3924-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "", + "control": { + "name": "String" + } + }, + "defl": { + "link": null, + "type": "IObject", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "object": { + "type": "zany" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 300.0, + 7700.0 + ], + "options": [] + }, + "6cfa9f76-Clone": { + "name": "Clone", + "inputs": { + "object": { + "link": "HF_Layer_Combine:89248d49-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "newObject": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1900.0, + 1800.0 + ], + "options": [] + }, + "6dcb060f-Clone": { + "name": "Clone", + "inputs": { + "object": { + "link": "HF_Layer_Combine:89248d49-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "newObject": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1900.0, + 2200.0 + ], + "options": [] + }, + "71368af0-ListGetItem": { + "name": "ListGetItem", + "inputs": { + "list": { + "link": "HF_Layer_Combine:ac826206-MakeList:[node]/outputs/list", + "type": "list", + "default-value": null, + "control": { + "name": "" + } + }, + "index": { + "link": "HF_Layer_Combine:6156199f-DictGetItem:[node]/outputs/object", + "type": "int", + "default-value": null, + "control": { + "name": "Integer" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "object": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2233.826171875, + 2443.75 + ], + "options": [] + }, + "71d24cd9-MakeDict": { + "name": "MakeDict", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Replace ( B )": { + "property": "editable", + "link": "HF_Layer_Combine:e8f1f010-NumericInt:[node]/outputs/value", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Add ( A + B )": { + "property": "editable", + "link": "HF_Layer_Combine:8bf61d41-NumericInt:[node]/outputs/value", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Subtract ( A - B )": { + "property": "editable", + "link": "HF_Layer_Combine:faa924b3-NumericInt:[node]/outputs/value", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Diff ( abs( A - B ) )": { + "property": "editable", + "link": "HF_Layer_Combine:dac38757-NumericInt:[node]/outputs/value", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Multiply ( A * B )": { + "property": "editable", + "link": "HF_Layer_Combine:766c81c6-NumericInt:[node]/outputs/value", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Max ( max( A, B ) )": { + "property": "editable", + "link": "HF_Layer_Combine:c14d49b5-NumericInt:[node]/outputs/value", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Min ( min( A, B ) )": { + "property": "editable", + "link": "HF_Layer_Combine:612f90b-NumericInt:[node]/outputs/value", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Blend ( A*( 1 - blend ) + B*blend )": { + "property": "editable", + "link": "HF_Layer_Combine:295aad24-NumericInt:[node]/outputs/value", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "obj8": { + "property": "editable", + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "dict": { + "type": "dict" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -600.0, + 7000.0 + ], + "options": [], + "dict_keys": { + "inputs": [ + "Replace ( B )", + "Add ( A + B )", + "Subtract ( A - B )", + "Diff ( abs( A - B ) )", + "Multiply ( A * B )", + "Max ( max( A, B ) )", + "Min ( min( A, B ) )", + "Blend ( A*( 1 - blend ) + B*blend )", + "obj8" + ], + "outputs": [] + } + }, + "766c81c6-NumericInt": { + "name": "NumericInt", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "value": { + "value": 4, + "control": { + "name": "Integer" + }, + "type": "int" + } + }, + "outputs": { + "value": { + "type": "int" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -2100.0, + 7200.0 + ], + "options": [] + }, + "812ec511-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "HF_Layer_Combine:71368af0-ListGetItem:[node]/outputs/object", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": null, + "type": "string", + "default-value": "_temp_mask_c", + "control": { + "name": "String" + } + }, + "targetName": { + "link": "HF_Layer_Combine:e0e1dd56-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "t", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3000.0, + 2400.0 + ], + "options": [] + }, + "876b0163-SubOutput": { + "name": "SubOutput", + "inputs": { + "port": { + "link": "HF_Layer_Combine:cc9e6f7-PrimitiveDelAttrs:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "", + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "HeightField", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 4700.0, + 2400.0 + ], + "options": [] + }, + "89248d49-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "HF_Layer_Combine:4f979a49-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -3400.0, + 2200.0 + ], + "options": [] + }, + "8acadb13-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Layer_Combine:6dcb060f-Clone:[node]/outputs/newObject", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_temp_mask_c = abs(@_temp_mask_a - @_temp_mask_b)\n@_temp_mask_c = min(@_temp_mask_c, 1)\n@_temp_mask_c = max(0, @_temp_mask_c)\n\n\n", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -700.0, + 1500.0 + ], + "options": [] + }, + "8bf61d41-NumericInt": { + "name": "NumericInt", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "value": { + "value": 1, + "control": { + "name": "Integer" + }, + "type": "int" + } + }, + "outputs": { + "value": { + "type": "int" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -2100.0, + 6000.0 + ], + "options": [] + }, + "9f4b3924-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "Replace ( B )", + "control": { + "name": "Enum", + "items": [ + "Replace ( B )", + "Add ( A + B )", + "Subtract ( A - B )", + "Diff ( abs( A - B ) )", + "Multiply ( A * B )", + "Max ( max( A, B ) )", + "Min ( min( A, B ) )", + "Blend ( A*( 1 - blend ) + B*blend )" + ] + }, + "type": "string" + }, + "name": { + "value": "Combine Type", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -600.0, + 7800.0 + ], + "options": [] + }, + "ac826206-MakeList": { + "name": "MakeList", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "obj0": { + "link": "HF_Layer_Combine:7ce3e94b-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "obj1": { + "link": "HF_Layer_Combine:d2c5ccd4-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "obj2": { + "link": "HF_Layer_Combine:24f82268-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "obj3": { + "link": "HF_Layer_Combine:8acadb13-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "obj4": { + "link": "HF_Layer_Combine:ba2099d7-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "obj5": { + "link": "HF_Layer_Combine:b0c45dee-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "obj6": { + "link": "HF_Layer_Combine:b0a788ea-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "obj7": { + "link": "HF_Layer_Combine:2594a37d-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "obj8": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "list": { + "type": "list" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1000.0, + 2000.0 + ], + "options": [] + }, + "b0a788ea-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Layer_Combine:c1c9ce33-Clone:[node]/outputs/newObject", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_temp_mask_c = min(@_temp_mask_a, @_temp_mask_b)\n@_temp_mask_c = min(@_temp_mask_c, 1)\n@_temp_mask_c = max(0, @_temp_mask_c)", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -700.0, + 3900.0 + ], + "options": [] + }, + "b0c45dee-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Layer_Combine:1f8ac52e-Clone:[node]/outputs/newObject", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_temp_mask_c = max(@_temp_mask_a, @_temp_mask_a)\n@_temp_mask_c = min(@_temp_mask_c, 1)\n@_temp_mask_c = max(0, @_temp_mask_c)", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -700.0, + 3100.0 + ], + "options": [] + }, + "b21a43b4-Clone": { + "name": "Clone", + "inputs": { + "object": { + "link": "HF_Layer_Combine:89248d49-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "newObject": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1900.0, + 1400.0 + ], + "options": [] + }, + "ba2099d7-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Layer_Combine:cc550590-Clone:[node]/outputs/newObject", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_temp_mask_c = @_temp_mask_a * @_temp_mask_b\n@_temp_mask_c = min(@_temp_mask_c, 1)\n@_temp_mask_c = max(0, @_temp_mask_c)", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -700.0, + 2300.0 + ], + "options": [] + }, + "c14d49b5-NumericInt": { + "name": "NumericInt", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "value": { + "value": 5, + "control": { + "name": "Integer" + }, + "type": "int" + } + }, + "outputs": { + "value": { + "type": "int" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -2100.0, + 7600.0 + ], + "options": [] + }, + "c1c9ce33-Clone": { + "name": "Clone", + "inputs": { + "object": { + "link": "HF_Layer_Combine:89248d49-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "newObject": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1900.0, + 3400.0 + ], + "options": [] + }, + "cc550590-Clone": { + "name": "Clone", + "inputs": { + "object": { + "link": "HF_Layer_Combine:89248d49-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "newObject": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1900.0, + 2600.0 + ], + "options": [] + }, + "cc9e6f7-PrimitiveDelAttrs": { + "name": "PrimitiveDelAttrs", + "inputs": { + "prim": { + "link": "HF_Layer_Combine:812ec511-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "invert": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "names": { + "link": null, + "type": "string", + "default-value": "_temp_mask_a _temp_mask_b _temp_mask_c", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3800.0, + 2400.0 + ], + "options": [] + }, + "d2c5ccd4-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Layer_Combine:b21a43b4-Clone:[node]/outputs/newObject", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_temp_mask_c = @_temp_mask_a + @_temp_mask_b\n@_temp_mask_c = min(@_temp_mask_c, 1)\n@_temp_mask_c = max(0, @_temp_mask_c)", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -700.0, + -100.0 + ], + "options": [] + }, + "dac38757-NumericInt": { + "name": "NumericInt", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "value": { + "value": 3, + "control": { + "name": "Integer" + }, + "type": "int" + } + }, + "outputs": { + "value": { + "type": "int" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -2100.0, + 6800.0 + ], + "options": [] + }, + "e2b28e18-Clone": { + "name": "Clone", + "inputs": { + "object": { + "link": "HF_Layer_Combine:89248d49-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "newObject": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1900.0, + 3800.0 + ], + "options": [] + }, + "e6ee7166-Clone": { + "name": "Clone", + "inputs": { + "object": { + "link": "HF_Layer_Combine:89248d49-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "newObject": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1900.0, + 1000.0 + ], + "options": [] + }, + "e8f1f010-NumericInt": { + "name": "NumericInt", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "value": { + "value": 0, + "control": { + "name": "Integer" + }, + "type": "int" + } + }, + "outputs": { + "value": { + "type": "int" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -2100.0, + 5600.0 + ], + "options": [] + }, + "faa924b3-NumericInt": { + "name": "NumericInt", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "value": { + "value": 2, + "control": { + "name": "Integer" + }, + "type": "int" + } + }, + "outputs": { + "value": { + "type": "int" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -2100.0, + 6400.0 + ], + "options": [] + }, + "97cff076-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": null, + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "HeightField", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -6500.0, + 2200.0 + ], + "options": [] + }, + "e59db450-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "a", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Input A Layer", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -5000.0, + 1700.0 + ], + "options": [] + }, + "91376182-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "HF_Layer_Combine:535c3938-Clone:[node]/outputs/newObject", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": "HF_Layer_Combine:e59db450-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "mask", + "control": { + "name": "String" + } + }, + "targetName": { + "link": null, + "type": "string", + "default-value": "_temp_mask_a", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -5000.0, + 2200.0 + ], + "options": [] + }, + "dc1277bb-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "b", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Input B Layer", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -4200.0, + 1700.0 + ], + "options": [] + }, + "4f979a49-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "HF_Layer_Combine:91376182-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": "HF_Layer_Combine:dc1277bb-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "mask", + "control": { + "name": "String" + } + }, + "targetName": { + "link": null, + "type": "string", + "default-value": "_temp_mask_b", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -4200.0, + 2200.0 + ], + "options": [] + }, + "e0e1dd56-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "c", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Output C Layer", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3000.0, + 1900.0 + ], + "options": [] + }, + "7ce3e94b-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Layer_Combine:e6ee7166-Clone:[node]/outputs/newObject", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_temp_mask_c = @_temp_mask_b\n@_temp_mask_c = min(@_temp_mask_c, 1)\n@_temp_mask_c = max(0, @_temp_mask_c)", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -700.0, + -900.0 + ], + "options": [] + }, + "535c3938-Clone": { + "name": "Clone", + "inputs": { + "object": { + "link": "HF_Layer_Combine:97cff076-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "newObject": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -5700.0, + 2200.0 + ], + "options": [] + }, + "dc282f3d-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 1.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": " Blend", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1400.0, + 5200.0 + ], + "options": [] + } + }, + "view_rect": {} + }, + "HF_Resample": { + "nodes": { + "18e730c8-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": null, + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "HeightField", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -800.0, + 6900.0 + ], + "options": [] + }, + "1dc5045a-GetUserData": { + "name": "GetUserData", + "inputs": { + "object": { + "link": "HF_Resample:2a91f2ce-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "scale", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "data": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1600.0, + 6500.0 + ], + "options": [] + }, + "2318c94d-GetUserData": { + "name": "GetUserData", + "inputs": { + "object": { + "link": "HF_Resample:2a0043b9-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "nx", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "data": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1800.0, + 7100.0 + ], + "options": [] + }, + "2a0043b9-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "HF_Resample:2a91f2ce-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 900.0, + 7900.0 + ], + "options": [] + }, + "2a91f2ce-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "HF_Resample:18e730c8-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -100.0, + 6900.0 + ], + "options": [] + }, + "4c2d6b47-NumericOperator": { + "name": "NumericOperator", + "inputs": { + "lhs": { + "link": "HF_Resample:2318c94d-GetUserData:[node]/outputs/data", + "type": "NumericObject", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "rhs": { + "link": null, + "type": "NumericObject", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "op_type": { + "value": "tofloat", + "control": { + "name": "Enum", + "items": [ + "add", + "sub", + "mul", + "div", + "mod", + "and", + "or", + "xor", + "shr", + "shl", + "cmpge", + "cmple", + "cmpgt", + "cmplt", + "cmpne", + "cmpeq", + "land", + "lor", + "pos", + "neg", + "inv", + "not", + "atan2", + "pow", + "max", + "min", + "fmod", + "dot", + "cross", + "distance", + "length", + "normalize", + "abs", + "sqrt", + "sin", + "cos", + "tan", + "asin", + "acos", + "atan", + "exp", + "log", + "floor", + "ceil", + "toint", + "tofloat", + "anytrue", + "alltrue", + "copy", + "copyr" + ] + }, + "type": "enum add sub mul div mod and or xor shr shl cmpge cmple cmpgt cmplt cmpne cmpeq land lor pos neg inv not atan2 pow max min fmod dot cross distance length normalize abs sqrt sin cos tan asin acos atan exp log floor ceil toint tofloat anytrue alltrue copy copyr" + } + }, + "outputs": { + "ret": { + "type": "NumericObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2700.0, + 7800.0 + ], + "options": [] + }, + "7c70dcae-NumericOperator": { + "name": "NumericOperator", + "inputs": { + "lhs": { + "link": "HF_Resample:edb0011a-GetUserData:[node]/outputs/data", + "type": "NumericObject", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "rhs": { + "link": "HF_Resample:4c2d6b47-NumericOperator:[node]/outputs/ret", + "type": "NumericObject", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "op_type": { + "value": "div", + "control": { + "name": "Enum", + "items": [ + "add", + "sub", + "mul", + "div", + "mod", + "and", + "or", + "xor", + "shr", + "shl", + "cmpge", + "cmple", + "cmpgt", + "cmplt", + "cmpne", + "cmpeq", + "land", + "lor", + "pos", + "neg", + "inv", + "not", + "atan2", + "pow", + "max", + "min", + "fmod", + "dot", + "cross", + "distance", + "length", + "normalize", + "abs", + "sqrt", + "sin", + "cos", + "tan", + "asin", + "acos", + "atan", + "exp", + "log", + "floor", + "ceil", + "toint", + "tofloat", + "anytrue", + "alltrue", + "copy", + "copyr" + ] + }, + "type": "enum add sub mul div mod and or xor shr shl cmpge cmple cmpgt cmplt cmpne cmpeq land lor pos neg inv not atan2 pow max min fmod dot cross distance length normalize abs sqrt sin cos tan asin acos atan exp log floor ceil toint tofloat anytrue alltrue copy copyr" + } + }, + "outputs": { + "ret": { + "type": "NumericObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2700.0, + 7400.0 + ], + "options": [] + }, + "7cd909ad-HF_Creation": { + "name": "HF_Creation", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Terrain Position": { + "link": "HF_Resample:aec2281d-GetUserData:[node]/outputs/data", + "type": "vec3f", + "default-value": [ + 0.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Terrain Resolution": { + "link": "HF_Resample:e81813a6-SubInput:[node]/outputs/port", + "type": "int", + "default-value": 2000, + "control": { + "name": "Integer" + } + }, + "Terrain Scale": { + "link": "HF_Resample:1dc5045a-GetUserData:[node]/outputs/data", + "type": "float", + "default-value": 1000.0, + "control": { + "name": "Float" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + 2400.0, + 6100.0 + ], + "options": [] + }, + "aec2281d-GetUserData": { + "name": "GetUserData", + "inputs": { + "object": { + "link": "HF_Resample:2a91f2ce-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "pos", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "data": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1600.0, + 6100.0 + ], + "options": [] + }, + "bfa85e80-Grid2DSample": { + "name": "Grid2DSample", + "inputs": { + "prim": { + "link": "HF_Resample:7cd909ad-HF_Creation:[node]/outputs/HeightField", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "sampleGrid": { + "link": "HF_Resample:2a91f2ce-Route:[node]/outputs/output", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "nx": { + "link": "HF_Resample:2318c94d-GetUserData:[node]/outputs/data", + "type": "int", + "default-value": 1, + "control": { + "name": "Integer" + } + }, + "ny": { + "link": "HF_Resample:2318c94d-GetUserData:[node]/outputs/data", + "type": "int", + "default-value": 1, + "control": { + "name": "Integer" + } + }, + "h": { + "link": "HF_Resample:7c70dcae-NumericOperator:[node]/outputs/ret", + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "bmin": { + "link": "HF_Resample:cb40337-PrimBoundingBox:[node]/outputs/bmin", + "type": "vec3f", + "default-value": [ + 0.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "channel": { + "link": null, + "type": "string", + "default-value": "height debris water sediment", + "control": { + "name": "String" + } + }, + "sampleBy": { + "link": null, + "type": "string", + "default-value": "pos", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3600.0, + 6800.0 + ], + "options": [] + }, + "cb40337-PrimBoundingBox": { + "name": "PrimBoundingBox", + "inputs": { + "prim": { + "link": "HF_Resample:2a0043b9-Route:[node]/outputs/output", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "extraBound": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "bmin": { + "type": "vec3f" + }, + "bmax": { + "type": "vec3f" + }, + "center": { + "type": "vec3f" + }, + "radius": { + "type": "vec3f" + }, + "diameter": { + "type": "vec3f" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2700.0, + 8300.0 + ], + "options": [] + }, + "e7a1a661-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 5, + "control": { + "name": "Integer" + }, + "type": "int" + }, + "name": { + "value": "Blur_Raius", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "int", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3700.0, + 7500.0 + ], + "options": [] + }, + "e81813a6-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 1000, + "control": { + "name": "Integer" + }, + "type": "int" + }, + "name": { + "value": "Resolution", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "int", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1600.0, + 5600.0 + ], + "options": [] + }, + "edb0011a-GetUserData": { + "name": "GetUserData", + "inputs": { + "object": { + "link": "HF_Resample:2a0043b9-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "scale", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "data": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1800.0, + 7600.0 + ], + "options": [] + }, + "f0e3d6ed-SubOutput": { + "name": "SubOutput", + "inputs": { + "port": { + "link": "HF_Resample:fc07532d-Erode_Stability_Blur_Cuda:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "", + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "HeightField", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 7700.0, + 6800.0 + ], + "options": [] + }, + "ef1b6604-Erode_Stability_Blur_Cuda": { + "name": "Erode_Stability_Blur_Cuda", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Blur Mode": { + "link": null, + "type": "string", + "default-value": "NINE_STENCIL", + "control": { + "name": "Enum", + "items": [ + "FIVE_STENCIL", + "NINE_STENCIL" + ] + } + }, + "Blur Radius": { + "link": "HF_Resample:e7a1a661-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 20.0, + "control": { + "name": "Float" + } + }, + "Visual Enable": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Float Attr Name": { + "link": null, + "type": "string", + "default-value": "debris", + "control": { + "name": "String" + } + }, + "HeightField": { + "link": "HF_Resample:74be6b5b-Erode_Stability_Blur_Cuda:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + 5208.2080078125, + 6298.3662109375 + ], + "options": [] + }, + "74be6b5b-Erode_Stability_Blur_Cuda": { + "name": "Erode_Stability_Blur_Cuda", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Blur Mode": { + "link": null, + "type": "string", + "default-value": "NINE_STENCIL", + "control": { + "name": "Enum", + "items": [ + "FIVE_STENCIL", + "NINE_STENCIL" + ] + } + }, + "Blur Radius": { + "link": "HF_Resample:e7a1a661-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 20.0, + "control": { + "name": "Float" + } + }, + "Visual Enable": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Float Attr Name": { + "link": null, + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "HeightField": { + "link": "HF_Resample:bfa85e80-Grid2DSample:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + 4389.43994140625, + 6279.6484375 + ], + "options": [] + }, + "4dfee14-Erode_Stability_Blur_Cuda": { + "name": "Erode_Stability_Blur_Cuda", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Blur Mode": { + "link": null, + "type": "string", + "default-value": "NINE_STENCIL", + "control": { + "name": "Enum", + "items": [ + "FIVE_STENCIL", + "NINE_STENCIL" + ] + } + }, + "Blur Radius": { + "link": "HF_Resample:e7a1a661-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 20.0, + "control": { + "name": "Float" + } + }, + "Visual Enable": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Float Attr Name": { + "link": null, + "type": "string", + "default-value": "water", + "control": { + "name": "String" + } + }, + "HeightField": { + "link": "HF_Resample:ef1b6604-Erode_Stability_Blur_Cuda:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + 6012.8193359375, + 6295.12890625 + ], + "options": [] + }, + "fc07532d-Erode_Stability_Blur_Cuda": { + "name": "Erode_Stability_Blur_Cuda", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Blur Mode": { + "link": null, + "type": "string", + "default-value": "NINE_STENCIL", + "control": { + "name": "Enum", + "items": [ + "FIVE_STENCIL", + "NINE_STENCIL" + ] + } + }, + "Blur Radius": { + "link": "HF_Resample:e7a1a661-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 20.0, + "control": { + "name": "Float" + } + }, + "Visual Enable": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Float Attr Name": { + "link": null, + "type": "string", + "default-value": "sediment", + "control": { + "name": "String" + } + }, + "HeightField": { + "link": "HF_Resample:4dfee14-Erode_Stability_Blur_Cuda:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + 6802.9189453125, + 6291.46240234375 + ], + "options": [] + } + }, + "view_rect": {} + }, + "HF_MaxMin_Value": { + "nodes": { + "188349b5-NumericFloat": { + "name": "NumericFloat", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "value": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + } + }, + "outputs": { + "value": { + "type": "float" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 380.0, + 460.0 + ], + "options": [] + }, + "2aeacf43-erode_terrainHiMeLo": { + "name": "erode_terrainHiMeLo", + "inputs": { + "prim_2DGrid": { + "link": "HF_MaxMin_Value:746e6299-SetUserData:[node]/outputs/object", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "attrName": { + "link": "HF_MaxMin_Value:feb2baa9-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim_2DGrid": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2885.255126953125, + 866.9401245117188 + ], + "options": [] + }, + "431aa4d5-SetUserData": { + "name": "SetUserData", + "inputs": { + "object": { + "link": "HF_MaxMin_Value:43f38c0e-SetUserData:[node]/outputs/object", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "data": { + "link": "HF_MaxMin_Value:188349b5-NumericFloat:[node]/outputs/value", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "me", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "object": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1680.0, + 860.0 + ], + "options": [] + }, + "43f38c0e-SetUserData": { + "name": "SetUserData", + "inputs": { + "object": { + "link": "HF_MaxMin_Value:f7765753-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "data": { + "link": "HF_MaxMin_Value:188349b5-NumericFloat:[node]/outputs/value", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "hi", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "object": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1080.0, + 860.0 + ], + "options": [] + }, + "746e6299-SetUserData": { + "name": "SetUserData", + "inputs": { + "object": { + "link": "HF_MaxMin_Value:431aa4d5-SetUserData:[node]/outputs/object", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "data": { + "link": "HF_MaxMin_Value:188349b5-NumericFloat:[node]/outputs/value", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "lo", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "object": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2280.0, + 860.0 + ], + "options": [] + }, + "8d619bea-SubOutput": { + "name": "SubOutput", + "inputs": { + "port": { + "link": "HF_MaxMin_Value:2aeacf43-erode_terrainHiMeLo:[node]/outputs/prim_2DGrid", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": "HF_MaxMin_Value:cc216889-PrintNumeric:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "", + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "HeightField", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 5179.45458984375, + 856.8682861328125 + ], + "options": [] + }, + "f7765753-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "", + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "HeightField", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 380.0, + 860.0 + ], + "options": [] + }, + "feb2baa9-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "height", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Height Layer Name", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2322.84033203125, + 1311.4476318359376 + ], + "options": [] + }, + "47eb83d1-PrintNumeric": { + "name": "PrintNumeric", + "inputs": { + "value": { + "link": "HF_MaxMin_Value:fdd897d9-GetUserData:[node]/outputs/data", + "type": "NumericObject", + "default-value": null, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": "HF_MaxMin_Value:2aeacf43-erode_terrainHiMeLo:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "hint": { + "value": "Max Vlue ", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "value": { + "type": "NumericObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3749.456298828125, + 608.19677734375 + ], + "options": [] + }, + "cc216889-PrintNumeric": { + "name": "PrintNumeric", + "inputs": { + "value": { + "link": "HF_MaxMin_Value:7c216a3-GetUserData:[node]/outputs/data", + "type": "NumericObject", + "default-value": null, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": "HF_MaxMin_Value:47eb83d1-PrintNumeric:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "hint": { + "value": "Min Vlue ", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "value": { + "type": "NumericObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 4435.40673828125, + 618.619384765625 + ], + "options": [] + }, + "fdd897d9-GetUserData": { + "name": "GetUserData", + "inputs": { + "object": { + "link": "HF_MaxMin_Value:2aeacf43-erode_terrainHiMeLo:[node]/outputs/prim_2DGrid", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "hi", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "data": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3765.288330078125, + 1265.1102294921876 + ], + "options": [] + }, + "7c216a3-GetUserData": { + "name": "GetUserData", + "inputs": { + "object": { + "link": "HF_MaxMin_Value:2aeacf43-erode_terrainHiMeLo:[node]/outputs/prim_2DGrid", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "lo", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "data": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 4481.2939453125, + 1256.76513671875 + ], + "options": [] + } + }, + "view_rect": {} + }, + "Erode_Smooth_Slump_Flow": { + "nodes": { + "1750c69c-IfElse": { + "name": "IfElse", + "inputs": { + "true": { + "link": "Erode_Smooth_Slump_Flow:dfae8b5e-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "false": { + "link": "Erode_Smooth_Slump_Flow:78eb6e74-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "cond": { + "link": "Erode_Smooth_Slump_Flow:38049a6e-SubInput:[node]/outputs/port", + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "result": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -3100.0, + -3800.0 + ], + "options": [] + }, + "2d2641d6-PrimitiveDelAttrs": { + "name": "PrimitiveDelAttrs", + "inputs": { + "prim": { + "link": "Erode_Smooth_Slump_Flow:8e96f3c0-IfElse:[node]/outputs/result", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "invert": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "names": { + "link": null, + "type": "string", + "default-value": "_height _material write_back_material _flowx _flowz flowdir", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -100.0, + -3800.0 + ], + "options": [] + }, + "329a68f9-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "Erode_Smooth_Slump_Flow:a6cfd38e-PrimCopyAttr:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_flowx = @flowdir.x\n@_flowz = @flowdir.z", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -12300.0, + -4200.0 + ], + "options": [], + "customui-panel": { + "Default": { + "In Sockets": { + "prim": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/inputs/prim", + "class": "input" + }, + "control": { + "name": "" + }, + "uuid": 775323518, + "property": "normal" + }, + "zfxCode": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/inputs/zfxCode", + "class": "input" + }, + "control": { + "name": "Multiline String" + }, + "uuid": 684311219, + "property": "normal" + }, + "params": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/inputs/params", + "class": "input" + }, + "control": { + "name": "" + }, + "uuid": 4110122575, + "property": "normal" + }, + "SRC": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/inputs/SRC", + "class": "input" + }, + "control": { + "name": "" + }, + "uuid": 4206035312, + "property": "normal" + } + }, + "Parameters": {}, + "Out Sockets": { + "prim": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/outputs/prim", + "class": "output" + }, + "control": { + "name": "" + }, + "uuid": 3066890925, + "property": "normal" + }, + "DST": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/outputs/DST", + "class": "output" + }, + "control": { + "name": "" + }, + "uuid": 3441356791, + "property": "normal" + } + } + } + } + }, + "38049a6e-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": false, + "control": { + "name": "Boolean" + }, + "type": "bool" + }, + "name": { + "value": "Visual Material Enable", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "bool", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -4100.0, + -3400.0 + ], + "options": [] + }, + "5d78fdbe-EndFor": { + "name": "EndFor", + "inputs": { + "FOR": { + "link": "Erode_Smooth_Slump_Flow:e0f6b5cf-BeginFor:[node]/outputs/FOR", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": "Erode_Smooth_Slump_Flow:eefa9f70-ZSParticlesWrangler:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + -17900.0, + -3400.0 + ], + "options": [] + }, + "5e7830f1-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": null, + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "HeightField", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -27000.0, + -3800.0 + ], + "options": [] + }, + "60363ece-SubOutput": { + "name": "SubOutput", + "inputs": { + "port": { + "link": "Erode_Smooth_Slump_Flow:2d2641d6-PrimitiveDelAttrs:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": null, + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "HeightField", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 700.0, + -3800.0 + ], + "options": [] + }, + "6d73b1ea-erode_smooth_flow": { + "name": "erode_smooth_flow", + "inputs": { + "prim_2DGrid": { + "link": "Erode_Smooth_Slump_Flow:c431f710-erode_smooth_flow:[node]/outputs/prim_2DGrid", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "smoothRate": { + "link": "Erode_Smooth_Slump_Flow:8cc53caf-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "flowName": { + "link": null, + "type": "string", + "default-value": "_flowz", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim_2DGrid": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -9400.0, + -4100.0 + ], + "options": [] + }, + "78eb6e74-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "Erode_Smooth_Slump_Flow:137ff19d-IfElse:[node]/outputs/result", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -4900.0, + -3800.0 + ], + "options": [] + }, + "bed70c9f-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "Erode_Smooth_Slump_Flow:50ce565e-PrimCopyAttr:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@flowdir = vec3(0.0,0.0,0.0)\n@write_back_material = 0", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -24300.0, + -3800.0 + ], + "options": [] + }, + "c431f710-erode_smooth_flow": { + "name": "erode_smooth_flow", + "inputs": { + "prim_2DGrid": { + "link": "Erode_Smooth_Slump_Flow:329a68f9-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "smoothRate": { + "link": "Erode_Smooth_Slump_Flow:8cc53caf-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "flowName": { + "link": null, + "type": "string", + "default-value": "_flowx", + "control": { + "name": "String" + } + }, + "SRC": { + "link": "Erode_Smooth_Slump_Flow:c4a7beca-BeginFor:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim_2DGrid": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -10400.0, + -4100.0 + ], + "options": [] + }, + "dfae8b5e-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "Erode_Smooth_Slump_Flow:78eb6e74-Route:[node]/outputs/output", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@pos.y = @height + 1 * @debris + 1 * @water + 0 * @sediment\n\nclr_flow = vec3(1.0, 0.10, 0.10)\n#coef_flow = @_flow\ncoef_flow = @_material\n\n@clr = (1 - coef_flow) * @clr + coef_flow * clr_flow", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -4100.0, + -4500.0 + ], + "options": [], + "customui-panel": { + "Default": { + "In Sockets": { + "prim": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/inputs/prim", + "class": "input" + }, + "control": { + "name": "" + }, + "uuid": 1265233261, + "property": "normal" + }, + "zfxCode": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/inputs/zfxCode", + "class": "input" + }, + "control": { + "name": "Multiline String" + }, + "uuid": 331354536, + "property": "normal" + }, + "params": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/inputs/params", + "class": "input" + }, + "control": { + "name": "" + }, + "uuid": 1010051888, + "property": "normal" + }, + "SRC": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/inputs/SRC", + "class": "input" + }, + "control": { + "name": "" + }, + "uuid": 367108220, + "property": "normal" + } + }, + "Parameters": {}, + "Out Sockets": { + "prim": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/outputs/prim", + "class": "output" + }, + "control": { + "name": "" + }, + "uuid": 3343687466, + "property": "normal" + }, + "DST": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/outputs/DST", + "class": "output" + }, + "control": { + "name": "" + }, + "uuid": 110870362, + "property": "normal" + } + } + } + } + }, + "e0f6b5cf-BeginFor": { + "name": "BeginFor", + "inputs": { + "count": { + "link": "Erode_Smooth_Slump_Flow:607c7f45-SubInput:[node]/outputs/port", + "type": "int", + "default-value": 100, + "control": { + "name": "Integer" + } + }, + "SRC": { + "link": "Erode_Smooth_Slump_Flow:a4e3458b-Route:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "index": { + "type": "int" + }, + "FOR": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -20600.0, + -3500.0 + ], + "options": [] + }, + "e43b6a34-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "Erode_Smooth_Slump_Flow:6d73b1ea-erode_smooth_flow:[node]/outputs/prim_2DGrid", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_flow = 0.6 * sqrt(@_flowx * @_flowx + @_flowz * @_flowz)", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": "Erode_Smooth_Slump_Flow:255dc438-EndFor:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -7600.0, + -4100.0 + ], + "options": [], + "customui-panel": { + "Default": { + "In Sockets": { + "prim": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/inputs/prim", + "class": "input" + }, + "control": { + "name": "" + }, + "uuid": 2962868206, + "property": "normal" + }, + "zfxCode": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/inputs/zfxCode", + "class": "input" + }, + "control": { + "name": "Multiline String" + }, + "uuid": 2067226952, + "property": "normal" + }, + "params": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/inputs/params", + "class": "input" + }, + "control": { + "name": "" + }, + "uuid": 2987788791, + "property": "normal" + }, + "SRC": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/inputs/SRC", + "class": "input" + }, + "control": { + "name": "" + }, + "uuid": 3248941586, + "property": "normal" + } + }, + "Parameters": {}, + "Out Sockets": { + "prim": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/outputs/prim", + "class": "output" + }, + "control": { + "name": "" + }, + "uuid": 2911493565, + "property": "normal" + }, + "DST": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/outputs/DST", + "class": "output" + }, + "control": { + "name": "" + }, + "uuid": 2863251228, + "property": "normal" + } + } + } + } + }, + "dec8a73c-erode_tumble_material_v1": { + "name": "erode_tumble_material_v1", + "inputs": { + "HeightField": { + "link": "Erode_Smooth_Slump_Flow:a4e3458b-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "write_back_material_layer": { + "link": null, + "type": "string", + "default-value": "write_back_material", + "control": { + "name": "String" + } + }, + "openborder": { + "link": null, + "type": "int", + "default-value": 1, + "control": { + "name": "Integer" + } + }, + "repose_angle": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "flow_rate": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "height_factor": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "entrainmentrate": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "HeightField": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -19800.0, + -5200.0 + ], + "options": [] + }, + "bbdc9a0c-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "Erode_Smooth_Slump_Flow:dec8a73c-erode_tumble_material_v1:[node]/outputs/HeightField", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_material = @write_back_material", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -18900.0, + -5200.0 + ], + "options": [] + }, + "607c7f45-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 100, + "control": { + "name": "Integer" + }, + "type": "int" + }, + "name": { + "value": "Spread Iterations", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "int", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -21500.0, + -3300.0 + ], + "options": [] + }, + "997d3688-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "debris", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Material to Slump", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -19300.0, + -7100.0 + ], + "options": [] + }, + "dc4767b4-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "Erode_Smooth_Slump_Flow:5e7830f1-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": "Erode_Smooth_Slump_Flow:997d3688-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "s", + "control": { + "name": "String" + } + }, + "targetName": { + "link": null, + "type": "string", + "default-value": "_material", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -26000.0, + -3800.0 + ], + "options": [] + }, + "feaf0fa9-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "Erode_Smooth_Slump_Flow:3fb20a9b-ExtractPrimitiveFromZSParticles:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": null, + "type": "string", + "default-value": "_material", + "control": { + "name": "String" + } + }, + "targetName": { + "link": "Erode_Smooth_Slump_Flow:997d3688-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "_material", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -15100.0, + -4200.0 + ], + "options": [] + }, + "9468254b-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": true, + "control": { + "name": "Boolean" + }, + "type": "bool" + }, + "name": { + "value": "Allow Material Outflow", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "bool", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -23700.0, + -7800.0 + ], + "options": [] + }, + "c4fa57d2-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 1.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "Height Factor", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -23700.0, + -6300.0 + ], + "options": [] + }, + "fbc4ad9f-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "Repose Angle", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -23700.0, + -7300.0 + ], + "options": [] + }, + "6412d855-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "Entrainment Rate", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -23700.0, + -5800.0 + ], + "options": [] + }, + "198d19ff-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": true, + "control": { + "name": "Boolean" + }, + "type": "bool" + }, + "name": { + "value": "Add Material to Bedrock", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "bool", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -6500.0, + -3400.0 + ], + "options": [] + }, + "137ff19d-IfElse": { + "name": "IfElse", + "inputs": { + "true": { + "link": "Erode_Smooth_Slump_Flow:1e3ed663-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "false": { + "link": "Erode_Smooth_Slump_Flow:e43b6a34-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "cond": { + "link": "Erode_Smooth_Slump_Flow:198d19ff-SubInput:[node]/outputs/port", + "type": "bool", + "default-value": null, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "result": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -5600.0, + -3800.0 + ], + "options": [] + }, + "1e3ed663-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "Erode_Smooth_Slump_Flow:e43b6a34-ParticlesWrangle:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@height += @_material", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -6600.0, + -4400.0 + ], + "options": [], + "customui-panel": { + "Default": { + "In Sockets": { + "prim": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/inputs/prim", + "class": "input" + }, + "control": { + "name": "" + }, + "uuid": 217248348, + "property": "normal" + }, + "zfxCode": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/inputs/zfxCode", + "class": "input" + }, + "control": { + "name": "Multiline String" + }, + "uuid": 1270253823, + "property": "normal" + }, + "params": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/inputs/params", + "class": "input" + }, + "control": { + "name": "" + }, + "uuid": 616586548, + "property": "normal" + }, + "SRC": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/inputs/SRC", + "class": "input" + }, + "control": { + "name": "" + }, + "uuid": 1417027797, + "property": "normal" + } + }, + "Parameters": {}, + "Out Sockets": { + "prim": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/outputs/prim", + "class": "output" + }, + "control": { + "name": "" + }, + "uuid": 3264363741, + "property": "normal" + }, + "DST": { + "core-param": { + "name": "Erode_Granular_Slump_Flow:a7f31ab8-ParticlesWrangle:[node]/outputs/DST", + "class": "output" + }, + "control": { + "name": "" + }, + "uuid": 631046975, + "property": "normal" + } + } + } + } + }, + "4395470e-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0, + "control": { + "name": "Integer" + }, + "type": "int" + }, + "name": { + "value": "Flow Smooth Iterations", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "int", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -13100.0, + -2800.0 + ], + "options": [] + }, + "7b07dc0b-NumericOperator": { + "name": "NumericOperator", + "inputs": { + "lhs": { + "link": "Erode_Smooth_Slump_Flow:4395470e-SubInput:[node]/outputs/port", + "type": "NumericObject", + "default-value": null, + "control": { + "name": "Float" + } + }, + "rhs": { + "link": null, + "type": "NumericObject", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "op_type": { + "value": "cmpgt", + "control": { + "name": "Enum", + "items": [ + "add", + "sub", + "mul", + "div", + "mod", + "and", + "or", + "xor", + "shr", + "shl", + "cmpge", + "cmple", + "cmpgt", + "cmplt", + "cmpne", + "cmpeq", + "land", + "lor", + "pos", + "neg", + "inv", + "not", + "atan2", + "pow", + "max", + "min", + "fmod", + "dot", + "cross", + "distance", + "length", + "normalize", + "abs", + "sqrt", + "sin", + "cos", + "tan", + "asin", + "acos", + "atan", + "exp", + "log", + "floor", + "ceil", + "toint", + "tofloat", + "anytrue", + "alltrue", + "copy", + "copyr" + ] + }, + "type": "enum add sub mul div mod and or xor shr shl cmpge cmple cmpgt cmplt cmpne cmpeq land lor pos neg inv not atan2 pow max min fmod dot cross distance length normalize abs sqrt sin cos tan asin acos atan exp log floor ceil toint tofloat anytrue alltrue copy copyr" + } + }, + "outputs": { + "ret": { + "type": "NumericObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -12300.0, + -2000.0 + ], + "options": [] + }, + "c4a7beca-BeginFor": { + "name": "BeginFor", + "inputs": { + "count": { + "link": "Erode_Smooth_Slump_Flow:47973fcc-IfElse:[node]/outputs/result", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "SRC": { + "link": "Erode_Smooth_Slump_Flow:329a68f9-ParticlesWrangle:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "index": { + "type": "int" + }, + "FOR": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -11300.0, + -3500.0 + ], + "options": [] + }, + "255dc438-EndFor": { + "name": "EndFor", + "inputs": { + "FOR": { + "link": "Erode_Smooth_Slump_Flow:c4a7beca-BeginFor:[node]/outputs/FOR", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": "Erode_Smooth_Slump_Flow:6d73b1ea-erode_smooth_flow:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + -8400.0, + -3400.0 + ], + "options": [] + }, + "8cc53caf-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 1.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "Flow Smooth Rate", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -11300.0, + -5200.0 + ], + "options": [] + }, + "717d21e8-NumericInt": { + "name": "NumericInt", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "value": { + "value": -1, + "control": { + "name": "Integer" + }, + "type": "int" + } + }, + "outputs": { + "value": { + "type": "int" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -12300.0, + -2400.0 + ], + "options": [] + }, + "47973fcc-IfElse": { + "name": "IfElse", + "inputs": { + "true": { + "link": "Erode_Smooth_Slump_Flow:4395470e-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "false": { + "link": "Erode_Smooth_Slump_Flow:717d21e8-NumericInt:[node]/outputs/value", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "cond": { + "link": "Erode_Smooth_Slump_Flow:7b07dc0b-NumericOperator:[node]/outputs/ret", + "type": "bool", + "default-value": null, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "result": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -11300.0, + -2700.0 + ], + "options": [] + }, + "f8089341-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 1.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "Spread Rate", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -23700.0, + -6800.0 + ], + "options": [] + }, + "382fca08-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "Erode_Smooth_Slump_Flow:eefa9f70-ZSParticlesWrangler:[node]/outputs/ZSParticles", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": "Erode_Smooth_Slump_Flow:5d78fdbe-EndFor:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -17200.0, + -4200.0 + ], + "options": [] + }, + "a4e3458b-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "Erode_Smooth_Slump_Flow:fa5db75b-CopyAllUserData:[node]/outputs/dst", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -21500.0, + -3800.0 + ], + "options": [] + }, + "81a48cbc-PointsToZSParticles2": { + "name": "PointsToZSParticles2", + "inputs": { + "prim": { + "link": "Erode_Smooth_Slump_Flow:bed70c9f-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "add_customed_attr": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "selected_custom_attr_tags": { + "link": null, + "type": "string", + "default-value": "_height _material flowdir write_back_material", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "ZSParticles": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -23300.0, + -3800.0 + ], + "options": [] + }, + "fa5db75b-CopyAllUserData": { + "name": "CopyAllUserData", + "inputs": { + "dst": { + "link": "Erode_Smooth_Slump_Flow:81a48cbc-PointsToZSParticles2:[node]/outputs/ZSParticles", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "src": { + "link": "Erode_Smooth_Slump_Flow:bed70c9f-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "dst": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -22400.0, + -3500.0 + ], + "options": [] + }, + "cc6ad2b0-zs_tumble_material_v1": { + "name": "zs_tumble_material_v1", + "inputs": { + "zs_HeightField": { + "link": "Erode_Smooth_Slump_Flow:a4e3458b-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "write_back_material_layer": { + "link": null, + "type": "string", + "default-value": "write_back_material", + "control": { + "name": "String" + } + }, + "openborder": { + "link": "Erode_Smooth_Slump_Flow:9468254b-SubInput:[node]/outputs/port", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "repose_angle": { + "link": "Erode_Smooth_Slump_Flow:fbc4ad9f-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 15.0, + "control": { + "name": "Float" + } + }, + "flow_rate": { + "link": "Erode_Smooth_Slump_Flow:f8089341-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "height_factor": { + "link": "Erode_Smooth_Slump_Flow:c4fa57d2-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "entrainmentrate": { + "link": "Erode_Smooth_Slump_Flow:6412d855-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": "Erode_Smooth_Slump_Flow:e0f6b5cf-BeginFor:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "zs_HeightField": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -19800.0, + -4200.0 + ], + "options": [] + }, + "eefa9f70-ZSParticlesWrangler": { + "name": "ZSParticlesWrangler", + "inputs": { + "ZSParticles": { + "link": "Erode_Smooth_Slump_Flow:cc6ad2b0-zs_tumble_material_v1:[node]/outputs/zs_HeightField", + "type": "ZenoParticles", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_material = @write_back_material", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "ZSParticles": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -18900.0, + -4200.0 + ], + "options": [] + }, + "9d8f1099-UpdatePrimitiveAttrFromZSParticles": { + "name": "UpdatePrimitiveAttrFromZSParticles", + "inputs": { + "ZSParticles": { + "link": "Erode_Smooth_Slump_Flow:d5f282ca-UpdatePrimitiveAttrFromZSParticles:[node]/outputs/ZSParticles", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "attr": { + "value": "flowdir", + "control": { + "name": "String" + }, + "type": "string" + }, + "location": { + "value": "vert", + "control": { + "name": "Enum", + "items": [ + "vert", + "quad" + ] + }, + "type": "enum vert quad" + }, + "type": { + "value": "vec3f", + "control": { + "name": "Enum", + "items": [ + "float", + "vec3f" + ] + }, + "type": "enum float vec3f" + } + }, + "outputs": { + "ZSParticles": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -16500.0, + -3200.0 + ], + "options": [] + }, + "b594fab7-UpdatePrimitiveAttrFromZSParticles": { + "name": "UpdatePrimitiveAttrFromZSParticles", + "inputs": { + "ZSParticles": { + "link": "Erode_Smooth_Slump_Flow:382fca08-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "attr": { + "value": "_height", + "control": { + "name": "String" + }, + "type": "string" + }, + "location": { + "value": "vert", + "control": { + "name": "Enum", + "items": [ + "vert", + "quad" + ] + }, + "type": "enum vert quad" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec3f" + ] + }, + "type": "enum float vec3f" + } + }, + "outputs": { + "ZSParticles": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -16500.0, + -4200.0 + ], + "options": [] + }, + "d5f282ca-UpdatePrimitiveAttrFromZSParticles": { + "name": "UpdatePrimitiveAttrFromZSParticles", + "inputs": { + "ZSParticles": { + "link": "Erode_Smooth_Slump_Flow:b594fab7-UpdatePrimitiveAttrFromZSParticles:[node]/outputs/ZSParticles", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "attr": { + "value": "_material", + "control": { + "name": "String" + }, + "type": "string" + }, + "location": { + "value": "vert", + "control": { + "name": "Enum", + "items": [ + "vert", + "quad" + ] + }, + "type": "enum vert quad" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec3f" + ] + }, + "type": "enum float vec3f" + } + }, + "outputs": { + "ZSParticles": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -16500.0, + -3700.0 + ], + "options": [] + }, + "a6cfd38e-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "Erode_Smooth_Slump_Flow:feaf0fa9-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": null, + "type": "string", + "default-value": "_height", + "control": { + "name": "String" + } + }, + "targetName": { + "link": "Erode_Smooth_Slump_Flow:b454782a-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "_material", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -14300.0, + -4200.0 + ], + "options": [] + }, + "50ce565e-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "Erode_Smooth_Slump_Flow:dc4767b4-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": "Erode_Smooth_Slump_Flow:b454782a-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "_height", + "control": { + "name": "String" + } + }, + "targetName": { + "link": null, + "type": "string", + "default-value": "_height", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -25100.0, + -3800.0 + ], + "options": [] + }, + "b454782a-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "height", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Height Layer Name", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -18600.0, + -7100.0 + ], + "options": [] + }, + "3b23a5ea-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "Erode_Smooth_Slump_Flow:1750c69c-IfElse:[node]/outputs/result", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@mask = @_flow", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -2400.0, + -4400.0 + ], + "options": [] + }, + "7ade4592-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": true, + "control": { + "name": "Boolean" + }, + "type": "bool" + }, + "name": { + "value": "Copy Flow to Mask", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "bool", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1800.0, + -3400.0 + ], + "options": [] + }, + "8e96f3c0-IfElse": { + "name": "IfElse", + "inputs": { + "true": { + "link": "Erode_Smooth_Slump_Flow:ce3c9aa8-PrimitiveDelAttrs:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "false": { + "link": "Erode_Smooth_Slump_Flow:1750c69c-IfElse:[node]/outputs/result", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "cond": { + "link": "Erode_Smooth_Slump_Flow:7ade4592-SubInput:[node]/outputs/port", + "type": "bool", + "default-value": null, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "result": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -700.0, + -3800.0 + ], + "options": [] + }, + "ce3c9aa8-PrimitiveDelAttrs": { + "name": "PrimitiveDelAttrs", + "inputs": { + "prim": { + "link": "Erode_Smooth_Slump_Flow:3b23a5ea-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "invert": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "names": { + "link": null, + "type": "string", + "default-value": "_flow", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1600.0, + -4400.0 + ], + "options": [] + }, + "3fb20a9b-ExtractPrimitiveFromZSParticles": { + "name": "ExtractPrimitiveFromZSParticles", + "inputs": { + "ZSParticles": { + "link": "Erode_Smooth_Slump_Flow:9d8f1099-UpdatePrimitiveAttrFromZSParticles:[node]/outputs/ZSParticles", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -15300.0, + -3200.0 + ], + "options": [] + } + }, + "view_rect": {} + }, + "HF_Erode": { + "nodes": { + "24663051-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "HF_Erode:491ca97-Erode_Slump_Debris:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3900.0, + 300.0 + ], + "options": [] + }, + "28dc9a45-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "HF_Erode:33d33400-IfElse:[node]/outputs/result", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -10700.0, + 300.0 + ], + "options": [] + }, + "2ea48b32-BeginFor": { + "name": "BeginFor", + "inputs": { + "count": { + "link": "HF_Erode:298b636d-SubInput:[node]/outputs/port", + "type": "int", + "default-value": 3, + "control": { + "name": "Integer" + } + }, + "SRC": { + "link": "HF_Erode:28dc9a45-Route:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "index": { + "type": "int" + }, + "FOR": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -10000.0, + 1500.0 + ], + "options": [] + }, + "2fbab73c-PrintNumeric": { + "name": "PrintNumeric", + "inputs": { + "value": { + "link": "HF_Erode:2ea48b32-BeginFor:[node]/outputs/index", + "type": "NumericObject", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": "HF_Erode:e4698be8-PrintNumeric:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "hint": { + "value": "------------------------------- current step ", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "value": { + "type": "NumericObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -4500.0, + -200.0 + ], + "options": [] + }, + "34ccb339-Erode_Precipitation": { + "name": "Erode_Precipitation", + "inputs": { + "SRC": { + "link": "HF_Erode:2fbab73c-PrintNumeric:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "amount": { + "link": "HF_Erode:576c385b-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 0.20000000298023225, + "control": { + "name": "Float" + } + }, + "seed": { + "link": "HF_Erode:2fbab73c-PrintNumeric:[node]/outputs/value", + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "HeightField": { + "link": "HF_Erode:26cded1a-Erode_Slump_Debris:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "density": { + "link": "HF_Erode:efb2985-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 0.05000000074505806, + "control": { + "name": "Float" + } + }, + "Water Layer Name": { + "link": "HF_Erode:47dcfb34-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "water", + "control": { + "name": "String" + } + }, + "Visual Water Enable": { + "link": "HF_Erode:ab1a02c7-SubInput:[node]/outputs/port", + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + -3700.0, + 300.0 + ], + "options": [] + }, + "350784f5-Erode_Precipitation": { + "name": "Erode_Precipitation", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "amount": { + "link": "HF_Erode:91a2572c-SubInput:[node]/outputs/port", + "type": "float", + "default-value": -0.014999999664723874, + "control": { + "name": "Float" + } + }, + "seed": { + "link": null, + "type": "float", + "default-value": 555.0, + "control": { + "name": "Float" + } + }, + "HeightField": { + "link": "HF_Erode:4b232181-Erode_Hydro:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "density": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "Water Layer Name": { + "link": "HF_Erode:47dcfb34-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "water", + "control": { + "name": "String" + } + }, + "Visual Water Enable": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + -1800.0, + 300.0 + ], + "options": [] + }, + "42155e37-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Erode:ff965c6e-Erode_Slump_Debris:[node]/outputs/HeightField", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_height_temp = @height + @debris", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2100.0, + 300.0 + ], + "options": [] + }, + "b7b1a6ca-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "HF_Erode:cf22d87d-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": "HF_Erode:cf2fa0b5-EndFor:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 500.0, + 300.0 + ], + "options": [] + }, + "cf22d87d-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "HF_Erode:350784f5-Erode_Precipitation:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -800.0, + 300.0 + ], + "options": [] + }, + "cf2fa0b5-EndFor": { + "name": "EndFor", + "inputs": { + "FOR": { + "link": "HF_Erode:2ea48b32-BeginFor:[node]/outputs/FOR", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": "HF_Erode:cf22d87d-Route:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + -300.0, + 1500.0 + ], + "options": [] + }, + "cd1be3e5-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "stability", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Stability Layer Name", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -13600.0, + -2100.0 + ], + "options": [] + }, + "7afd907e-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 4650.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "热侵蚀种子值", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -7500.0, + -3600.0 + ], + "options": [] + }, + "4a74e0ed-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 35.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "热侵蚀截止角", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -7500.0, + -3100.0 + ], + "options": [] + }, + "202cc3d8-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.699999988079071, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "热侵蚀风化率", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -7500.0, + -2100.0 + ], + "options": [] + }, + "45f0bdfc-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.029999999329447748, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "热侵蚀率", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -7500.0, + -2600.0 + ], + "options": [] + }, + "576c385b-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.20000000298023225, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "降水量", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -3700.0, + -2600.0 + ], + "options": [] + }, + "efb2985-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.05000000074505806, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "降水密度", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -3700.0, + -2100.0 + ], + "options": [] + }, + "91a2572c-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": -0.014999999664723874, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "蒸发率", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1800.0, + -2100.0 + ], + "options": [] + }, + "34f6b5f-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 12.34000015258789, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "水侵蚀种子值", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -2700.0, + -4100.0 + ], + "options": [] + }, + "4c11e27-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 70.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "河堤侵蚀角度", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -2700.0, + -2600.0 + ], + "options": [] + }, + "6990b7f7-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.4000000059604645, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "水侵蚀率", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -2700.0, + -3100.0 + ], + "options": [] + }, + "917b06f6-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.10000000149011612, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "水侵蚀溶解率", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -2700.0, + -2100.0 + ], + "options": [] + }, + "6554e7cc-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": null, + "control": { + "name": "Integer" + }, + "type": "int" + }, + "name": { + "value": "水侵蚀迭代次数", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "int", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -2700.0, + -3600.0 + ], + "options": [] + }, + "90e56e05-Erode_Thermal": { + "name": "Erode_Thermal", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "HF_Erode:7a3eca8c-Erode_Terrain_Stability:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "seed": { + "link": "HF_Erode:7afd907e-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 9676.7900390625, + "control": { + "name": "Float" + } + }, + "iterations": { + "link": null, + "type": "int", + "default-value": 10, + "control": { + "name": "Integer" + } + }, + "openborder": { + "link": null, + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "gridbias": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "cut_angle": { + "link": "HF_Erode:4a74e0ed-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 35.0, + "control": { + "name": "Float" + } + }, + "global_erosionrate": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "erosionrate": { + "link": "HF_Erode:45f0bdfc-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 0.029999999329447748, + "control": { + "name": "Float" + } + }, + "erodability": { + "link": null, + "type": "float", + "default-value": 0.4000000059604645, + "control": { + "name": "Float" + } + }, + "removalrate": { + "link": "HF_Erode:202cc3d8-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 0.699999988079071, + "control": { + "name": "Float" + } + }, + "maxdepth": { + "link": null, + "type": "float", + "default-value": 5.0, + "control": { + "name": "Float" + } + }, + "Layer Binding": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Height Layer Name": { + "link": "HF_Erode:8adad106-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "Debris Layer Name": { + "link": "HF_Erode:8793a339-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "debris", + "control": { + "name": "String" + } + }, + "Visual Enable": { + "link": "HF_Erode:52e5a21c-SubInput:[node]/outputs/port", + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + -7500.0, + 300.0 + ], + "options": [] + }, + "8793a339-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "debris", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Debris Layer Name", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -5300.0, + 6100.0 + ], + "options": [] + }, + "8adad106-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "height", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Height Layer Name", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -5300.0, + 5100.0 + ], + "options": [] + }, + "4b232181-Erode_Hydro": { + "name": "Erode_Hydro", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "HF_Erode:34ccb339-Erode_Precipitation:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "openborder": { + "link": null, + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "gridbias": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "seed": { + "link": "HF_Erode:34f6b5f-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "iterations": { + "link": "HF_Erode:6554e7cc-SubInput:[node]/outputs/port", + "type": "int", + "default-value": 40, + "control": { + "name": "Integer" + } + }, + "global_erosionrate": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "erodability": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "erosionrate": { + "link": "HF_Erode:6990b7f7-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 0.4000000059604645, + "control": { + "name": "Float" + } + }, + "bank_angle": { + "link": "HF_Erode:4c11e27-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 70.0, + "control": { + "name": "Float" + } + }, + "removalrate": { + "link": "HF_Erode:917b06f6-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 0.10000000149011612, + "control": { + "name": "Float" + } + }, + "max_debris_depth": { + "link": null, + "type": "float", + "default-value": 5.0, + "control": { + "name": "Float" + } + }, + "max_erodability_iteration": { + "link": null, + "type": "int", + "default-value": 5, + "control": { + "name": "Integer" + } + }, + "initial_erodability_factor": { + "link": null, + "type": "float", + "default-value": 0.5, + "control": { + "name": "Float" + } + }, + "slope_contribution_factor": { + "link": null, + "type": "float", + "default-value": 0.800000011920929, + "control": { + "name": "Float" + } + }, + "bed_erosionrate_factor": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "depositionrate": { + "link": null, + "type": "float", + "default-value": 0.009999999776482582, + "control": { + "name": "Float" + } + }, + "sedimentcap": { + "link": null, + "type": "float", + "default-value": 10.0, + "control": { + "name": "Float" + } + }, + "bank_erosionrate_factor": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "max_bank_bed_ratio": { + "link": null, + "type": "float", + "default-value": 0.5, + "control": { + "name": "Float" + } + }, + "quant_amt": { + "link": null, + "type": "float", + "default-value": 0.05000000074505806, + "control": { + "name": "Float" + } + }, + "Layer Binding": { + "property": "group-line", + "link": null, + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Height Layer Name": { + "link": "HF_Erode:8adad106-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "Water Layer Name": { + "link": "HF_Erode:47dcfb34-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "water", + "control": { + "name": "String" + } + }, + "Debris Layer Name": { + "link": "HF_Erode:8793a339-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "debris", + "control": { + "name": "String" + } + }, + "Sediment Layer Name": { + "link": "HF_Erode:764cc484-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "sediment", + "control": { + "name": "String" + } + }, + "Visual Material Enable": { + "link": "HF_Erode:ad37c79e-SubInput:[node]/outputs/port", + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + -2700.0, + 300.0 + ], + "options": [] + }, + "47dcfb34-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "water", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Water Layer Name", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -5300.0, + 5600.0 + ], + "options": [] + }, + "3a0b3b79-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": null, + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "高度场地形", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -13300.0, + 300.0 + ], + "options": [] + }, + "9ab9ed1f-SubOutput": { + "name": "SubOutput", + "inputs": { + "port": { + "link": "HF_Erode:3763729a-PrimitiveDelAttrs:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "", + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "高度场地形", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 6400.0, + 300.0 + ], + "options": [] + }, + "298b636d-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 10, + "control": { + "name": "Integer" + }, + "type": "int" + }, + "name": { + "value": "Freeze at Frame", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "int", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -10700.0, + -2100.0 + ], + "options": [] + }, + "aa8ede72-PrimitiveDelAttrs": { + "name": "PrimitiveDelAttrs", + "inputs": { + "prim": { + "link": "HF_Erode:24663051-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "invert": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "names": { + "link": null, + "type": "string", + "default-value": "_none _debris _height _height_temp _sediment _temp_debris _temp_height", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 4600.0, + 300.0 + ], + "options": [] + }, + "1eaa8f70-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": false, + "control": { + "name": "Boolean" + }, + "type": "bool" + }, + "name": { + "value": "初始化高度场地形", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "bool", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -12400.0, + 700.0 + ], + "options": [] + }, + "33d33400-IfElse": { + "name": "IfElse", + "inputs": { + "true": { + "link": "HF_Erode:c09ca8d8-HF_Erode_Init:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "false": { + "link": "HF_Erode:3a0b3b79-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "cond": { + "link": "HF_Erode:1eaa8f70-SubInput:[node]/outputs/port", + "type": "bool", + "default-value": null, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "result": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -11400.0, + 300.0 + ], + "options": [] + }, + "764cc484-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "sediment", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Sediment Layer Name", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -5300.0, + 6600.0 + ], + "options": [] + }, + "e4698be8-PrintNumeric": { + "name": "PrintNumeric", + "inputs": { + "value": { + "link": "HF_Erode:298b636d-SubInput:[node]/outputs/port", + "type": "NumericObject", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": "HF_Erode:26cded1a-Erode_Slump_Debris:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "hint": { + "value": "erode total steps ", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "value": { + "type": "NumericObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -5300.0, + -200.0 + ], + "options": [] + }, + "47c896bd-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": false, + "control": { + "name": "Boolean" + }, + "type": "bool" + }, + "name": { + "value": "Use Stability", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "bool", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -6400.0, + -3100.0 + ], + "options": [] + }, + "5c440333-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 10, + "control": { + "name": "Integer" + }, + "type": "int" + }, + "name": { + "value": "热侵蚀碎屑流淌迭代次数", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "int", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -6400.0, + -2600.0 + ], + "options": [] + }, + "d93a16d5-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 9676.7900390625, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "热侵蚀碎屑流淌种子值", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -6400.0, + -2100.0 + ], + "options": [] + }, + "c09ca8d8-HF_Erode_Init": { + "name": "HF_Erode_Init", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "HF_Erode:3a0b3b79-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Height Layer Name": { + "link": "HF_Erode:8adad106-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "Water Layer Name": { + "link": "HF_Erode:47dcfb34-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "water", + "control": { + "name": "String" + } + }, + "Debris Layer Name": { + "link": "HF_Erode:8793a339-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "debris", + "control": { + "name": "String" + } + }, + "Sediment Layer Name": { + "link": "HF_Erode:764cc484-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "sediment", + "control": { + "name": "String" + } + }, + "Stability Layer Name": { + "link": "HF_Erode:cd1be3e5-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "stability", + "control": { + "name": "String" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + -12400.0, + -200.0 + ], + "options": [] + }, + "7a3eca8c-Erode_Terrain_Stability": { + "name": "Erode_Terrain_Stability", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "HF_Erode:7867d79b-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Stability Layer Name": { + "link": "HF_Erode:cd1be3e5-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "stability", + "control": { + "name": "String" + } + }, + "Debris Layer Name": { + "link": "HF_Erode:8793a339-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "debris", + "control": { + "name": "String" + } + }, + "Sediment Layer Name": { + "link": "HF_Erode:764cc484-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "sediment", + "control": { + "name": "String" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + -8600.0, + 300.0 + ], + "options": [] + }, + "7867d79b-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "HF_Erode:28dc9a45-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": "HF_Erode:2ea48b32-BeginFor:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -9300.0, + 300.0 + ], + "options": [] + }, + "26cded1a-Erode_Slump_Debris": { + "name": "Erode_Slump_Debris", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "HF_Erode:90e56e05-Erode_Thermal:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "iterations": { + "link": "HF_Erode:5c440333-SubInput:[node]/outputs/port", + "type": "int", + "default-value": 10, + "control": { + "name": "Integer" + } + }, + "gridbias": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "seed": { + "link": "HF_Erode:d93a16d5-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "openborder": { + "link": null, + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "flow_rate": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "quant_amt": { + "link": null, + "type": "float", + "default-value": 0.25, + "control": { + "name": "Float" + } + }, + "repose_angle": { + "link": null, + "type": "float", + "default-value": 15.0, + "control": { + "name": "Float" + } + }, + "Visual Enable": { + "link": "HF_Erode:aa91823b-SubInput:[node]/outputs/port", + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Height Layer Name": { + "link": "HF_Erode:8adad106-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "Material Layer Name to Slump": { + "link": "HF_Erode:8793a339-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "material", + "control": { + "name": "String" + } + }, + "Use Stability": { + "link": "HF_Erode:47c896bd-SubInput:[node]/outputs/port", + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Stability Layer Name": { + "link": "HF_Erode:cd1be3e5-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + -6400.0, + 300.0 + ], + "options": [] + }, + "ff965c6e-Erode_Slump_Debris": { + "name": "Erode_Slump_Debris", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "HF_Erode:b7b1a6ca-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "iterations": { + "link": null, + "type": "int", + "default-value": 4, + "control": { + "name": "Integer" + } + }, + "gridbias": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "seed": { + "link": null, + "type": "float", + "default-value": 4650.0, + "control": { + "name": "Float" + } + }, + "openborder": { + "link": null, + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "flow_rate": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "quant_amt": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "repose_angle": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "Visual Enable": { + "link": "HF_Erode:8f90d600-SubInput:[node]/outputs/port", + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Height Layer Name": { + "link": "HF_Erode:8adad106-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "Material Layer Name to Slump": { + "link": "HF_Erode:8793a339-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "material", + "control": { + "name": "String" + } + }, + "Use Stability": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Stability Layer Name": { + "link": "HF_Erode:cd1be3e5-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + 1200.0, + 300.0 + ], + "options": [] + }, + "491ca97-Erode_Slump_Debris": { + "name": "Erode_Slump_Debris", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "HF_Erode:42155e37-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "iterations": { + "link": null, + "type": "int", + "default-value": 4, + "control": { + "name": "Integer" + } + }, + "gridbias": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "seed": { + "link": null, + "type": "float", + "default-value": 4655.0, + "control": { + "name": "Float" + } + }, + "openborder": { + "link": null, + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "flow_rate": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "quant_amt": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "repose_angle": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "Visual Enable": { + "link": "HF_Erode:71924f50-SubInput:[node]/outputs/port", + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Height Layer Name": { + "link": null, + "type": "string", + "default-value": "_height_temp", + "control": { + "name": "String" + } + }, + "Material Layer Name to Slump": { + "link": "HF_Erode:47dcfb34-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "material", + "control": { + "name": "String" + } + }, + "Use Stability": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Stability Layer Name": { + "link": "HF_Erode:cd1be3e5-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + 3000.0, + 300.0 + ], + "options": [] + }, + "71924f50-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": false, + "control": { + "name": "Boolean" + }, + "type": "bool" + }, + "name": { + "value": "Visualize Smooth Water", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "bool", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3000.0, + -1600.0 + ], + "options": [] + }, + "8f90d600-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": false, + "control": { + "name": "Boolean" + }, + "type": "bool" + }, + "name": { + "value": "Visualize Smooth Debris", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "bool", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1200.0, + -1600.0 + ], + "options": [] + }, + "ab1a02c7-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": false, + "control": { + "name": "Boolean" + }, + "type": "bool" + }, + "name": { + "value": "Visualize Rain Water", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "bool", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -3700.0, + -1600.0 + ], + "options": [] + }, + "ad37c79e-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": false, + "control": { + "name": "Boolean" + }, + "type": "bool" + }, + "name": { + "value": "Visualize Hydro Water", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "bool", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -2700.0, + -1600.0 + ], + "options": [] + }, + "52e5a21c-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": false, + "control": { + "name": "Boolean" + }, + "type": "bool" + }, + "name": { + "value": "Visualize Thermal Debris", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "bool", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -7500.0, + -1600.0 + ], + "options": [] + }, + "aa91823b-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": false, + "control": { + "name": "Boolean" + }, + "type": "bool" + }, + "name": { + "value": "Visualize Slump Debris", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "bool", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -6400.0, + -1600.0 + ], + "options": [] + }, + "3763729a-PrimitiveDelAttrs": { + "name": "PrimitiveDelAttrs", + "inputs": { + "prim": { + "link": "HF_Erode:aa8ede72-PrimitiveDelAttrs:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "invert": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "names": { + "link": null, + "type": "string", + "default-value": "stability", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 5500.0, + 300.0 + ], + "options": [] + } + }, + "view_rect": {} + }, + "Erode_Stability_Blur_Cuda": { + "nodes": { + "1aa86ae7-PrimitiveDelAttr": { + "name": "PrimitiveDelAttr", + "inputs": { + "prim": { + "link": "Erode_Stability_Blur_Cuda:81ce2531-PrimitiveDelAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "name": { + "value": "l_blurValue", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2478.39111328125, + 374.3404846191406 + ], + "options": [] + }, + "1c7be022-PrimitiveDelAttr": { + "name": "PrimitiveDelAttr", + "inputs": { + "prim": { + "link": "Erode_Stability_Blur_Cuda:6d3fd7ec-PrimitiveDelAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "name": { + "value": "rt_blurValue", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3678.39111328125, + 874.3405151367188 + ], + "options": [] + }, + "1e9bdd52-NumericFloat": { + "name": "NumericFloat", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "value": { + "value": 1.0, + "control": { + "name": "Float" + }, + "type": "float" + } + }, + "outputs": { + "value": { + "type": "float" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -12034.9404296875, + 1258.059326171875 + ], + "options": [] + }, + "23d779a4-GetUserData": { + "name": "GetUserData", + "inputs": { + "object": { + "link": "Erode_Stability_Blur_Cuda:a3d820f3-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "nx", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "data": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -7900.0, + -1400.0 + ], + "options": [] + }, + "24259a9f-BeginFor": { + "name": "BeginFor", + "inputs": { + "count": { + "link": "Erode_Stability_Blur_Cuda:f9a2fc2f-NumericOperator:[node]/outputs/ret", + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "SRC": { + "link": "Erode_Stability_Blur_Cuda:a3d820f3-Route:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "index": { + "type": "int" + }, + "FOR": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -9834.9404296875, + 958.0593872070313 + ], + "options": [] + }, + "276adb42-PrimitiveDelAttr": { + "name": "PrimitiveDelAttr", + "inputs": { + "prim": { + "link": "Erode_Stability_Blur_Cuda:be9fdccc-PrimitiveDelAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "name": { + "value": "is_bounded", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 6778.39111328125, + 574.3405151367188 + ], + "options": [] + }, + "2ca855b3-SubOutput": { + "name": "SubOutput", + "inputs": { + "port": { + "link": "Erode_Stability_Blur_Cuda:276adb42-PrimitiveDelAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": null, + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "HeightField", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 7547.50146484375, + 567.3546752929688 + ], + "options": [] + }, + "361fda7e-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "NINE_STENCIL", + "control": { + "name": "Enum", + "items": [ + "FIVE_STENCIL", + "NINE_STENCIL" + ] + }, + "type": "string" + }, + "name": { + "value": "Blur Mode", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -6600.0, + 700.0 + ], + "options": [] + }, + "368a167e-IfElse": { + "name": "IfElse", + "inputs": { + "true": { + "link": "Erode_Stability_Blur_Cuda:4be43cd2-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "false": { + "link": "Erode_Stability_Blur_Cuda:8db38b43-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "cond": { + "link": "Erode_Stability_Blur_Cuda:ba986189-SubInput:[node]/outputs/port", + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "result": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1247.5015869140626, + 367.3546447753906 + ], + "options": [] + }, + "4acde429-StringEqual": { + "name": "StringEqual", + "inputs": { + "lhs": { + "link": "Erode_Stability_Blur_Cuda:361fda7e-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "", + "control": { + "name": "String" + } + }, + "rhs": { + "link": null, + "type": "string", + "default-value": "FIVE_STENCIL", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "isEqual": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -5800.0, + 600.0 + ], + "options": [] + }, + "4be43cd2-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "Erode_Stability_Blur_Cuda:8db38b43-PrimCopyAttr:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@clr = @_blurValue * vec3(1,1,1)", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 247.5015869140625, + -332.6453552246094 + ], + "options": [] + }, + "4f97399f-SubCategory": { + "name": "SubCategory", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "name": { + "value": "wbStdGraph", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + -2427.57275390625, + 2498.509521484375 + ], + "options": [] + }, + "590126b8-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 20.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "Blur Radius", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -12834.9404296875, + 858.0593872070313 + ], + "options": [] + }, + "59106056-EndFor": { + "name": "EndFor", + "inputs": { + "FOR": { + "link": "Erode_Stability_Blur_Cuda:24259a9f-BeginFor:[node]/outputs/FOR", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": "Erode_Stability_Blur_Cuda:f6004662-ZSParticlesWrangler:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + -4100.0, + 1100.0 + ], + "options": [] + }, + "5b33c7c6-PrimitiveDelAttr": { + "name": "PrimitiveDelAttr", + "inputs": { + "prim": { + "link": "Erode_Stability_Blur_Cuda:cebe0ae0-PrimitiveDelAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "name": { + "value": "t_blurValue", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3078.39111328125, + 374.3404846191406 + ], + "options": [] + }, + "5f98ee0-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "Erode_Stability_Blur_Cuda:725f84e6-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -3334.940185546875, + -1741.940673828125 + ], + "options": [] + }, + "603ed695-NumericOperator": { + "name": "NumericOperator", + "inputs": { + "lhs": { + "link": "Erode_Stability_Blur_Cuda:590126b8-SubInput:[node]/outputs/port", + "type": "NumericObject", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "rhs": { + "link": null, + "type": "NumericObject", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "op_type": { + "value": "cmpge", + "control": { + "name": "Enum", + "items": [ + "add", + "sub", + "mul", + "div", + "mod", + "and", + "or", + "xor", + "shr", + "shl", + "cmpge", + "cmple", + "cmpgt", + "cmplt", + "cmpne", + "cmpeq", + "land", + "lor", + "pos", + "neg", + "inv", + "not", + "atan2", + "pow", + "max", + "min", + "fmod", + "dot", + "cross", + "distance", + "length", + "normalize", + "abs", + "sqrt", + "sin", + "cos", + "tan", + "asin", + "acos", + "atan", + "exp", + "log", + "floor", + "ceil", + "toint", + "tofloat", + "anytrue", + "alltrue", + "copy", + "copyr" + ] + }, + "type": "enum add sub mul div mod and or xor shr shl cmpge cmple cmpgt cmplt cmpne cmpeq land lor pos neg inv not atan2 pow max min fmod dot cross distance length normalize abs sqrt sin cos tan asin acos atan exp log floor ceil toint tofloat anytrue alltrue copy copyr" + } + }, + "outputs": { + "ret": { + "type": "NumericObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -12034.9404296875, + 1658.059326171875 + ], + "options": [] + }, + "6a6f52c4-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "Erode_Stability_Blur_Cuda:f6004662-ZSParticlesWrangler:[node]/outputs/ZSParticles", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": "Erode_Stability_Blur_Cuda:59106056-EndFor:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -3400.0, + 400.0 + ], + "options": [] + }, + "6d3fd7ec-PrimitiveDelAttr": { + "name": "PrimitiveDelAttr", + "inputs": { + "prim": { + "link": "Erode_Stability_Blur_Cuda:a24d3035-PrimitiveDelAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "name": { + "value": "lt_blurValue", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3678.39111328125, + 374.3404846191406 + ], + "options": [] + }, + "6e8b3fea-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "Erode_Stability_Blur_Cuda:b8c2b543-PrimMarkIndex:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@__id_z = floor(@__idx / $nx)\n@__id_x = @__idx - @__id_z * $nx\nx_start = @__id_x == 0\nx_end = @__id_x == ($nx - 1)\nz_start = @__id_z == 0\nz_end = @__id_z == ($nz - 1)\n@is_bounded = (x_start|x_end|z_start|z_end) ? 1 : 0", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": "Erode_Stability_Blur_Cuda:a1b73862-MakeDict:[node]/outputs/dict", + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -14820.46484375, + -1883.9052734375 + ], + "options": [] + }, + "725f84e6-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "Erode_Stability_Blur_Cuda:c6c7afe8-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -11634.9404296875, + -1741.940673828125 + ], + "options": [] + }, + "81ce2531-PrimitiveDelAttr": { + "name": "PrimitiveDelAttr", + "inputs": { + "prim": { + "link": "Erode_Stability_Blur_Cuda:b2564740-PrimitiveDelAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "name": { + "value": "_blurValue_new", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1878.3909912109376, + 874.3405151367188 + ], + "options": [] + }, + "826ec541-GetUserData": { + "name": "GetUserData", + "inputs": { + "object": { + "link": "Erode_Stability_Blur_Cuda:a3d820f3-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "nx", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "data": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -7900.0, + -300.0 + ], + "options": [] + }, + "8d8550f8-PrimitiveDelAttr": { + "name": "PrimitiveDelAttr", + "inputs": { + "prim": { + "link": "Erode_Stability_Blur_Cuda:1c7be022-PrimitiveDelAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "name": { + "value": "lb_blurValue", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 4278.39111328125, + 374.3404846191406 + ], + "options": [] + }, + "8db38b43-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "Erode_Stability_Blur_Cuda:93bed683-ExtractPrimitiveFromZSParticles:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": null, + "type": "string", + "default-value": "_blurValue", + "control": { + "name": "String" + } + }, + "targetName": { + "link": "Erode_Stability_Blur_Cuda:5f98ee0-Route:[node]/outputs/output", + "type": "string", + "default-value": "t", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -500.0, + 400.0 + ], + "options": [] + }, + "8fca65bc-GetUserData": { + "name": "GetUserData", + "inputs": { + "object": { + "link": "Erode_Stability_Blur_Cuda:b8c2b543-PrimMarkIndex:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "nx", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "data": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -16320.46484375, + -1483.9052734375 + ], + "options": [] + }, + "9bd7ca50-PrimitiveDelAttr": { + "name": "PrimitiveDelAttr", + "inputs": { + "prim": { + "link": "Erode_Stability_Blur_Cuda:aaf3ab60-PrimitiveDelAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "name": { + "value": "__id_x", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 5578.39111328125, + 574.3405151367188 + ], + "options": [] + }, + "a1b73862-MakeDict": { + "name": "MakeDict", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "nx": { + "property": "editable", + "link": "Erode_Stability_Blur_Cuda:8fca65bc-GetUserData:[node]/outputs/data", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "nz": { + "property": "editable", + "link": "Erode_Stability_Blur_Cuda:d26a824f-GetUserData:[node]/outputs/data", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "obj2": { + "property": "editable", + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "dict": { + "type": "dict" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -15520.46484375, + -1483.9052734375 + ], + "options": [], + "dict_keys": { + "inputs": [ + "nx", + "nz", + "obj2" + ], + "outputs": [] + } + }, + "a24d3035-PrimitiveDelAttr": { + "name": "PrimitiveDelAttr", + "inputs": { + "prim": { + "link": "Erode_Stability_Blur_Cuda:5b33c7c6-PrimitiveDelAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "name": { + "value": "b_blurValue", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3078.39111328125, + 874.3405151367188 + ], + "options": [] + }, + "a3d820f3-Route": { + "name": "Route", + "inputs": { + "input": { + "link": "Erode_Stability_Blur_Cuda:58f34d13-CopyAllUserData:[node]/outputs/dst", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "output": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -10600.0, + -800.0 + ], + "options": [] + }, + "aaf3ab60-PrimitiveDelAttr": { + "name": "PrimitiveDelAttr", + "inputs": { + "prim": { + "link": "Erode_Stability_Blur_Cuda:de025c45-PrimitiveDelAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "name": { + "value": "__idx", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 4978.39111328125, + 574.3405151367188 + ], + "options": [] + }, + "b2564740-PrimitiveDelAttr": { + "name": "PrimitiveDelAttr", + "inputs": { + "prim": { + "link": "Erode_Stability_Blur_Cuda:368a167e-IfElse:[node]/outputs/result", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "name": { + "value": "_blurValue", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1878.3909912109376, + 374.3404846191406 + ], + "options": [] + }, + "b8c2b543-PrimMarkIndex": { + "name": "PrimMarkIndex", + "inputs": { + "prim": { + "link": "Erode_Stability_Blur_Cuda:ebb8d0fd-SubInput:[node]/outputs/port", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "tagAttr": { + "link": null, + "type": "string", + "default-value": "__idx", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum int float", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "int", + "float" + ] + } + }, + "base": { + "link": null, + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "step": { + "link": null, + "type": "int", + "default-value": 1, + "control": { + "name": "Integer" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -17220.46484375, + -1883.9052734375 + ], + "options": [] + }, + "ba986189-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": false, + "control": { + "name": "Boolean" + }, + "type": "bool" + }, + "name": { + "value": "Visual Enable", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "bool", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 247.5015869140625, + 767.3546752929688 + ], + "options": [] + }, + "be9fdccc-PrimitiveDelAttr": { + "name": "PrimitiveDelAttr", + "inputs": { + "prim": { + "link": "Erode_Stability_Blur_Cuda:9bd7ca50-PrimitiveDelAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "name": { + "value": "__id_z", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 6178.39111328125, + 574.3405151367188 + ], + "options": [] + }, + "c6c7afe8-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "height", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Float Attr Name", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -13900.0, + -2200.0 + ], + "options": [] + }, + "cce8d793-IfElse": { + "name": "IfElse", + "inputs": { + "true": { + "link": "Erode_Stability_Blur_Cuda:590126b8-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "false": { + "link": "Erode_Stability_Blur_Cuda:1e9bdd52-NumericFloat:[node]/outputs/value", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "cond": { + "link": "Erode_Stability_Blur_Cuda:603ed695-NumericOperator:[node]/outputs/ret", + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "result": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -11234.9404296875, + 958.0593872070313 + ], + "options": [] + }, + "cebe0ae0-PrimitiveDelAttr": { + "name": "PrimitiveDelAttr", + "inputs": { + "prim": { + "link": "Erode_Stability_Blur_Cuda:1aa86ae7-PrimitiveDelAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "name": { + "value": "r_blurValue", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2478.39111328125, + 874.3405151367188 + ], + "options": [] + }, + "d26a824f-GetUserData": { + "name": "GetUserData", + "inputs": { + "object": { + "link": "Erode_Stability_Blur_Cuda:b8c2b543-PrimMarkIndex:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "nz", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "data": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -16320.46484375, + -983.9052124023438 + ], + "options": [] + }, + "d6ef2ffa-IfElse": { + "name": "IfElse", + "inputs": { + "true": { + "link": "Erode_Stability_Blur_Cuda:f17e7fc3-ZSParticlesWrangler:[node]/outputs/ZSParticles", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "false": { + "link": "Erode_Stability_Blur_Cuda:3c629932-ZSParticlesWrangler:[node]/outputs/ZSParticles", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "cond": { + "link": "Erode_Stability_Blur_Cuda:4acde429-StringEqual:[node]/outputs/isEqual", + "type": "bool", + "default-value": null, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "result": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -5800.0, + 0.0 + ], + "options": [] + }, + "d7aa0bb0-GetUserData": { + "name": "GetUserData", + "inputs": { + "object": { + "link": "Erode_Stability_Blur_Cuda:a3d820f3-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "nx", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "data": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -8500.0, + -1400.0 + ], + "options": [] + }, + "de025c45-PrimitiveDelAttr": { + "name": "PrimitiveDelAttr", + "inputs": { + "prim": { + "link": "Erode_Stability_Blur_Cuda:8d8550f8-PrimitiveDelAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "name": { + "value": "rb_blurValue", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 4278.39111328125, + 874.3405151367188 + ], + "options": [] + }, + "de69287e-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "Erode_Stability_Blur_Cuda:6e8b3fea-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": "Erode_Stability_Blur_Cuda:c6c7afe8-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "s", + "control": { + "name": "String" + } + }, + "targetName": { + "link": null, + "type": "string", + "default-value": "_blurValue", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -13100.0, + -900.0 + ], + "options": [] + }, + "e7eee943-GetUserData": { + "name": "GetUserData", + "inputs": { + "object": { + "link": "Erode_Stability_Blur_Cuda:a3d820f3-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "nx", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "data": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -8500.0, + -300.0 + ], + "options": [] + }, + "ebb8d0fd-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": null, + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "HeightField", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -17820.46484375, + -1883.9052734375 + ], + "options": [] + }, + "f9a2fc2f-NumericOperator": { + "name": "NumericOperator", + "inputs": { + "lhs": { + "link": "Erode_Stability_Blur_Cuda:cce8d793-IfElse:[node]/outputs/result", + "type": "NumericObject", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "rhs": { + "link": null, + "type": "NumericObject", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "op_type": { + "value": "toint", + "control": { + "name": "Enum", + "items": [ + "add", + "sub", + "mul", + "div", + "mod", + "and", + "or", + "xor", + "shr", + "shl", + "cmpge", + "cmple", + "cmpgt", + "cmplt", + "cmpne", + "cmpeq", + "land", + "lor", + "pos", + "neg", + "inv", + "not", + "atan2", + "pow", + "max", + "min", + "fmod", + "dot", + "cross", + "distance", + "length", + "normalize", + "abs", + "sqrt", + "sin", + "cos", + "tan", + "asin", + "acos", + "atan", + "exp", + "log", + "floor", + "ceil", + "toint", + "tofloat", + "anytrue", + "alltrue", + "copy", + "copyr" + ] + }, + "type": "enum add sub mul div mod and or xor shr shl cmpge cmple cmpgt cmplt cmpne cmpeq land lor pos neg inv not atan2 pow max min fmod dot cross distance length normalize abs sqrt sin cos tan asin acos atan exp log floor ceil toint tofloat anytrue alltrue copy copyr" + } + }, + "outputs": { + "ret": { + "type": "NumericObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -10734.9404296875, + 958.0593872070313 + ], + "options": [] + }, + "58f34d13-CopyAllUserData": { + "name": "CopyAllUserData", + "inputs": { + "dst": { + "link": "Erode_Stability_Blur_Cuda:74fa93c-PointsToZSParticles2:[node]/outputs/ZSParticles", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "src": { + "link": "Erode_Stability_Blur_Cuda:de69287e-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "dst": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -11400.0, + -800.0 + ], + "options": [] + }, + "feb871f6-ZSGather2DFiniteDifference": { + "name": "ZSGather2DFiniteDifference", + "inputs": { + "grid": { + "link": "Erode_Stability_Blur_Cuda:a3d820f3-Route:[node]/outputs/output", + "type": "ZSParticles", + "default-value": null, + "control": { + "name": "" + } + }, + "nx": { + "link": "Erode_Stability_Blur_Cuda:23d779a4-GetUserData:[node]/outputs/data", + "type": "int", + "default-value": 1, + "control": { + "name": "Integer" + } + }, + "ny": { + "link": "Erode_Stability_Blur_Cuda:d7aa0bb0-GetUserData:[node]/outputs/data", + "type": "int", + "default-value": 1, + "control": { + "name": "Integer" + } + }, + "channel": { + "link": null, + "type": "string", + "default-value": "_blurValue", + "control": { + "name": "String" + } + }, + "attrT": { + "link": null, + "type": "enum vec3 float", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "vec3", + "float" + ] + } + }, + "OpType": { + "link": null, + "type": "enum FIVE_STENCIL NINE_STENCIL", + "default-value": "NINE_STENCIL", + "control": { + "name": "Enum", + "items": [ + "FIVE_STENCIL", + "NINE_STENCIL" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "ZSParticles" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -8300.0, + -900.0 + ], + "options": [] + }, + "6e518bfb-ZSGather2DFiniteDifference": { + "name": "ZSGather2DFiniteDifference", + "inputs": { + "grid": { + "link": "Erode_Stability_Blur_Cuda:a3d820f3-Route:[node]/outputs/output", + "type": "ZSParticles", + "default-value": null, + "control": { + "name": "" + } + }, + "nx": { + "link": "Erode_Stability_Blur_Cuda:826ec541-GetUserData:[node]/outputs/data", + "type": "int", + "default-value": 1, + "control": { + "name": "Integer" + } + }, + "ny": { + "link": "Erode_Stability_Blur_Cuda:e7eee943-GetUserData:[node]/outputs/data", + "type": "int", + "default-value": 1, + "control": { + "name": "Integer" + } + }, + "channel": { + "link": null, + "type": "string", + "default-value": "_blurValue", + "control": { + "name": "String" + } + }, + "attrT": { + "link": null, + "type": "enum vec3 float", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "vec3", + "float" + ] + } + }, + "OpType": { + "link": null, + "type": "enum FIVE_STENCIL NINE_STENCIL", + "default-value": "NINE_STENCIL", + "control": { + "name": "Enum", + "items": [ + "FIVE_STENCIL", + "NINE_STENCIL" + ] + } + }, + "SRC": { + "link": "Erode_Stability_Blur_Cuda:24259a9f-BeginFor:[node]/outputs/DST", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "ZSParticles" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -8300.0, + 200.0 + ], + "options": [] + }, + "f17e7fc3-ZSParticlesWrangler": { + "name": "ZSParticlesWrangler", + "inputs": { + "ZSParticles": { + "link": "Erode_Stability_Blur_Cuda:feb871f6-ZSGather2DFiniteDifference:[node]/outputs/prim", + "type": "ZenoParticles", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_blurValue_new = @is_bounded ? @_blurValue : (@_blurValue + @l_blurValue + @r_blurValue + @t_blurValue + @b_blurValue) * 0.2", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "ZSParticles": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -6900.0, + -1300.0 + ], + "options": [] + }, + "3c629932-ZSParticlesWrangler": { + "name": "ZSParticlesWrangler", + "inputs": { + "ZSParticles": { + "link": "Erode_Stability_Blur_Cuda:6e518bfb-ZSGather2DFiniteDifference:[node]/outputs/prim", + "type": "ZenoParticles", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_blurValue_new = @is_bounded ? @_blurValue : (@_blurValue * 0.204 + (@l_blurValue + @r_blurValue + @t_blurValue + @b_blurValue) * 0.124 + (@lt_blurValue + @rt_blurValue + @lb_blurValue + @rb_blurValue) * 0.075)", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "ZSParticles": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -6900.0, + -200.0 + ], + "options": [] + }, + "f6004662-ZSParticlesWrangler": { + "name": "ZSParticlesWrangler", + "inputs": { + "ZSParticles": { + "link": "Erode_Stability_Blur_Cuda:d6ef2ffa-IfElse:[node]/outputs/result", + "type": "ZenoParticles", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_blurValue = @_blurValue_new", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "ZSParticles": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -5200.0, + 0.0 + ], + "options": [] + }, + "21dab5c0-UpdatePrimitiveAttrFromZSParticles": { + "name": "UpdatePrimitiveAttrFromZSParticles", + "inputs": { + "ZSParticles": { + "link": "Erode_Stability_Blur_Cuda:6a6f52c4-Route:[node]/outputs/output", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "attr": { + "value": "_blurValue", + "control": { + "name": "String" + }, + "type": "string" + }, + "location": { + "value": "vert", + "control": { + "name": "Enum", + "items": [ + "vert", + "quad" + ] + }, + "type": "enum vert quad" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec3f" + ] + }, + "type": "enum float vec3f" + } + }, + "outputs": { + "ZSParticles": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -2800.0, + 400.0 + ], + "options": [] + }, + "74fa93c-PointsToZSParticles2": { + "name": "PointsToZSParticles2", + "inputs": { + "prim": { + "link": "Erode_Stability_Blur_Cuda:de69287e-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "add_customed_attr": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "selected_custom_attr_tags": { + "link": null, + "type": "string", + "default-value": "_blurValue is_bounded", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "ZSParticles": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -12300.0, + -1100.0 + ], + "options": [] + }, + "93bed683-ExtractPrimitiveFromZSParticles": { + "name": "ExtractPrimitiveFromZSParticles", + "inputs": { + "ZSParticles": { + "link": "Erode_Stability_Blur_Cuda:21dab5c0-UpdatePrimitiveAttrFromZSParticles:[node]/outputs/ZSParticles", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1700.0, + 400.0 + ], + "options": [] + } + }, + "view_rect": {} + }, + "HF_Mask_by_Curvature": { + "nodes": { + "1f89712b-Gather2DFiniteDifference": { + "name": "Gather2DFiniteDifference", + "inputs": { + "grid": { + "link": "HF_Mask_by_Curvature:72d6f4a2-SubInput:[node]/outputs/port", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "nx": { + "link": "HF_Mask_by_Curvature:fea49a0e-GetUserData:[node]/outputs/data", + "type": "int", + "default-value": 500, + "control": { + "name": "Integer" + } + }, + "ny": { + "link": "HF_Mask_by_Curvature:fea49a0e-GetUserData:[node]/outputs/data", + "type": "int", + "default-value": 500, + "control": { + "name": "Integer" + } + }, + "channel": { + "link": null, + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "OpType": { + "value": "NINE_STENCIL", + "control": { + "name": "Enum", + "items": [ + "FIVE_STENCIL", + "NINE_STENCIL" + ] + }, + "type": "enum FIVE_STENCIL NINE_STENCIL" + }, + "attrT": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "vec3", + "float" + ] + }, + "type": "enum vec3 float" + } + }, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 903.6693115234375, + 313.61273193359377 + ], + "options": [] + }, + "257647a7-GetUserData": { + "name": "GetUserData", + "inputs": { + "object": { + "link": "HF_Mask_by_Curvature:72d6f4a2-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "scale", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "data": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 903.6693115234375, + 913.6127319335938 + ], + "options": [] + }, + "3728852b-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Mask_by_Curvature:e8301d3e-ParticlesWrangle:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_k = @_k < 0 ? (0 - @_k) : @_k\n@_k = fit(@_k, 0, $maxCurv, 0, 1)\n", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": { + "maxCurv": { + "link": "HF_Mask_by_Curvature:ad21d572-SubInput:[node]/outputs/port" + } + } + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3565.669189453125, + 218.61273193359376 + ], + "options": [] + }, + "3b5bf9f5-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "k", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Curvature Layer Name", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 5203.66943359375, + -186.38726806640626 + ], + "options": [] + }, + "42b5e9a-EvalCurveOnPrimAttr": { + "name": "EvalCurveOnPrimAttr", + "inputs": { + "prim": { + "link": "HF_Mask_by_Curvature:3728852b-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "attrName": { + "link": null, + "type": "string", + "default-value": "_k", + "control": { + "name": "String" + } + }, + "dstName": { + "link": null, + "type": "string", + "default-value": "_k", + "control": { + "name": "String" + } + }, + "curve": { + "link": "HF_Mask_by_Curvature:5eb58565-SubInput:[node]/outputs/port", + "type": "curve", + "default-value": { + "objectType": "curve", + "timeline": true, + "x": { + "range": { + "xFrom": 0.0, + "xTo": 1.0, + "yFrom": 0.0, + "yTo": 1.0 + }, + "nodes": [ + { + "x": 0.0, + "y": 0.0, + "left-handle": { + "x": 0.0, + "y": 0.0 + }, + "right-handle": { + "x": 0.0, + "y": 0.0 + }, + "type": "asym", + "lockX": false, + "lockY": false + }, + { + "x": 1.0, + "y": 1.0, + "left-handle": { + "x": 0.0, + "y": 0.0 + }, + "right-handle": { + "x": 0.0, + "y": 0.0 + }, + "type": "asym", + "lockX": false, + "lockY": false + } + ] + }, + "y": { + "range": { + "xFrom": 0.0, + "xTo": 1.0, + "yFrom": 0.0, + "yTo": 1.0 + }, + "nodes": [ + { + "x": 0.0, + "y": 0.5, + "left-handle": { + "x": 0.0, + "y": 0.0 + }, + "right-handle": { + "x": 0.0, + "y": 0.0 + }, + "type": "asym", + "lockX": false, + "lockY": false + }, + { + "x": 1.0, + "y": 0.5, + "left-handle": { + "x": 0.0, + "y": 0.0 + }, + "right-handle": { + "x": 0.0, + "y": 0.0 + }, + "type": "asym", + "lockX": false, + "lockY": false + } + ] + }, + "z": { + "range": { + "xFrom": 0.0, + "xTo": 1.0, + "yFrom": 0.0, + "yTo": 1.0 + }, + "nodes": [ + { + "x": 0.0, + "y": 1.0, + "left-handle": { + "x": 0.0, + "y": 0.0 + }, + "right-handle": { + "x": 0.0, + "y": 0.0 + }, + "type": "asym", + "lockX": false, + "lockY": false + }, + { + "x": 1.0, + "y": 0.0, + "left-handle": { + "x": 0.0, + "y": 0.0 + }, + "right-handle": { + "x": 0.0, + "y": 0.0 + }, + "type": "asym", + "lockX": false, + "lockY": false + } + ] + } + }, + "control": { + "name": "Curve" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 4365.66943359375, + 218.61273193359376 + ], + "options": [] + }, + "5eb58565-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": { + "objectType": "curve", + "timeline": true, + "x": { + "range": { + "xFrom": 0.0, + "xTo": 1.0, + "yFrom": 0.0, + "yTo": 1.0 + }, + "nodes": [ + { + "x": 0.0, + "y": 0.0, + "left-handle": { + "x": 0.0, + "y": 0.0 + }, + "right-handle": { + "x": 0.0, + "y": 0.0 + }, + "type": "asym", + "lockX": false, + "lockY": false + }, + { + "x": 1.0, + "y": 1.0, + "left-handle": { + "x": 0.0, + "y": 0.0 + }, + "right-handle": { + "x": 0.0, + "y": 0.0 + }, + "type": "asym", + "lockX": false, + "lockY": false + } + ] + } + }, + "control": { + "name": "Curve" + }, + "type": "curve" + }, + "name": { + "value": "Curvature Ramp", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "curve", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 4403.66943359375, + 713.6127319335938 + ], + "options": [] + }, + "6c8a3338-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "HF_Mask_by_Curvature:42b5e9a-EvalCurveOnPrimAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": null, + "type": "string", + "default-value": "_k", + "control": { + "name": "String" + } + }, + "targetName": { + "link": "HF_Mask_by_Curvature:3b5bf9f5-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 5203.66943359375, + 313.61273193359377 + ], + "options": [] + }, + "72d6f4a2-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": null, + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "HeightField", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 203.66929626464845, + 313.61273193359377 + ], + "options": [] + }, + "72ed06db-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Mask_by_Curvature:e8301d3e-ParticlesWrangle:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@kp = @k > 0 ? 2 * @k : 0\n@kn = @k < 0 ? 2 * (0 - @k) : 0", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3565.669189453125, + -681.3872680664063 + ], + "options": [] + }, + "a3f18942-SubOutput": { + "name": "SubOutput", + "inputs": { + "port": { + "link": "HF_Mask_by_Curvature:f86f274c-PrimitiveDelAttrs:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "", + "control": { + "name": "" + }, + "type": "" + }, + "name": { + "value": "HeightField", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 6803.66943359375, + 313.61273193359377 + ], + "options": [] + }, + "ad21d572-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 1.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "Max Curvature", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3503.669189453125, + 1213.61279296875 + ], + "options": [] + }, + "bf64bfad-NumericOperator": { + "name": "NumericOperator", + "inputs": { + "lhs": { + "link": "HF_Mask_by_Curvature:257647a7-GetUserData:[node]/outputs/data", + "type": "NumericObject", + "default-value": null, + "control": { + "name": "Float" + } + }, + "rhs": { + "link": "HF_Mask_by_Curvature:fea49a0e-GetUserData:[node]/outputs/data", + "type": "NumericObject", + "default-value": null, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "op_type": { + "value": "div", + "control": { + "name": "Enum", + "items": [ + "add", + "sub", + "mul", + "div", + "mod", + "and", + "or", + "xor", + "shr", + "shl", + "cmpge", + "cmple", + "cmpgt", + "cmplt", + "cmpne", + "cmpeq", + "land", + "lor", + "pos", + "neg", + "inv", + "not", + "atan2", + "pow", + "max", + "min", + "fmod", + "dot", + "cross", + "distance", + "length", + "normalize", + "abs", + "sqrt", + "sin", + "cos", + "tan", + "asin", + "acos", + "atan", + "exp", + "log", + "floor", + "ceil", + "toint", + "tofloat", + "anytrue", + "alltrue", + "copy", + "copyr" + ] + }, + "type": "enum add sub mul div mod and or xor shr shl cmpge cmple cmpgt cmplt cmpne cmpeq land lor pos neg inv not atan2 pow max min fmod dot cross distance length normalize abs sqrt sin cos tan asin acos atan exp log floor ceil toint tofloat anytrue alltrue copy copyr" + } + }, + "outputs": { + "ret": { + "type": "NumericObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1603.6693115234376, + 1113.61279296875 + ], + "options": [] + }, + "e8301d3e-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Mask_by_Curvature:1f89712b-Gather2DFiniteDifference:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "dx = (@rheight - @lheight) / (2 * $delta)\ndy = (@theight - @bheight) / (2 * $delta)\ndx2 = (@rheight - 2 * @height + @lheight) / ($delta * $delta)\ndy2 = (@theight - 2 * @height + @bheight) / ($delta * $delta)\ndxdy = (@rtheight + @lbheight - @ltheight - @rbheight) / (4 * $delta * $delta)\nabs_dh = sqrt(dx * dx + dy * dy)\n@_k = (dx * dx * dy2 - 2 * dx * dy * dxdy + dy * dy * dx2) / max((abs_dh * abs_dh * abs_dh), 0.00000001)\n", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": { + "delta": { + "link": "HF_Mask_by_Curvature:bf64bfad-NumericOperator:[node]/outputs/ret" + } + } + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2765.669189453125, + 218.61273193359376 + ], + "options": [] + }, + "f86f274c-PrimitiveDelAttrs": { + "name": "PrimitiveDelAttrs", + "inputs": { + "prim": { + "link": "HF_Mask_by_Curvature:6c8a3338-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "invert": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "names": { + "link": null, + "type": "string", + "default-value": "lheight rheight theight bheight ltheight rtheight lbheight rbheight _k", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 6003.66943359375, + 313.61273193359377 + ], + "options": [] + }, + "fea49a0e-GetUserData": { + "name": "GetUserData", + "inputs": { + "object": { + "link": "HF_Mask_by_Curvature:72d6f4a2-SubInput:[node]/outputs/port", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "key": { + "value": "nx", + "control": { + "name": "String" + }, + "type": "string" + } + }, + "outputs": { + "data": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 903.6693115234375, + 1413.61279296875 + ], + "options": [] + } + }, + "view_rect": {} + }, + "HF_Terrace": { + "nodes": { + "15c90f3-PrimitiveDelAttrs": { + "name": "PrimitiveDelAttrs", + "inputs": { + "prim": { + "link": "HF_Terrace:839547a0-HF_maskByFeature:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "invert": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "names": { + "link": null, + "type": "string", + "default-value": "_height", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1024.38134765625, + 413.89434814453127 + ], + "options": [] + }, + "1a5146fc-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "HF_Terrace:3ac2ac58-PrimitiveDelAttrs:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": "HF_Terrace:431c1ac9-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "s", + "control": { + "name": "String" + } + }, + "targetName": { + "link": null, + "type": "string", + "default-value": "_input_mask", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -12108.3564453125, + -629.5808715820313 + ], + "options": [] + }, + "26a4e883-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": -10.0, + "control": { + "name": "Float" + }, + "type": "string" + }, + "name": { + "value": "Min Height", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -15608.3564453125, + 1670.4190673828126 + ], + "options": [] + }, + "2edf865-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": false, + "control": { + "name": "Boolean" + }, + "type": "bool" + }, + "name": { + "value": "Use Mask Layer", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "bool", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -12008.3564453125, + 370.4190979003906 + ], + "options": [] + }, + "32765767-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 3, + "control": { + "name": "Integer" + }, + "type": "int" + }, + "name": { + "value": "Slop Mask Smoothing", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "int", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -7064.72998046875, + -2765.249267578125 + ], + "options": [] + }, + "39ecb75b-IfElse": { + "name": "IfElse", + "inputs": { + "true": { + "link": "HF_Terrace:79c6dc15-HF_Layer_Combine:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "false": { + "link": "HF_Terrace:3ac2ac58-PrimitiveDelAttrs:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "cond": { + "link": "HF_Terrace:2edf865-SubInput:[node]/outputs/port", + "type": "bool", + "default-value": null, + "control": { + "name": "Boolean" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "result": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -10808.3564453125, + 170.4191131591797 + ], + "options": [] + }, + "3ac2ac58-PrimitiveDelAttrs": { + "name": "PrimitiveDelAttrs", + "inputs": { + "prim": { + "link": "HF_Terrace:dcc18ef2-HF_maskByFeature:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "invert": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "names": { + "link": null, + "type": "string", + "default-value": "_height", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -12908.3564453125, + -229.5808868408203 + ], + "options": [] + }, + "3cea233b-EvalCurveOnPrimAttr": { + "name": "EvalCurveOnPrimAttr", + "inputs": { + "prim": { + "link": "HF_Terrace:b1d6b2ba-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "attrName": { + "link": null, + "type": "string", + "default-value": "height_01", + "control": { + "name": "String" + } + }, + "dstName": { + "link": null, + "type": "string", + "default-value": "height_01_step_ramp", + "control": { + "name": "String" + } + }, + "curve": { + "link": "HF_Terrace:839c8c4-SubInput:[node]/outputs/port", + "type": "curve", + "default-value": null, + "control": { + "name": "Curve" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -9080.806640625, + 979.0950927734375 + ], + "options": [] + }, + "431c1ac9-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "mask", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Mask", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -12908.3564453125, + -1029.5809326171876 + ], + "options": [] + }, + "4e249921-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Terrace:bd57f9cd-EvalCurveOnPrimAttr:[node]/outputs/prim", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "#h = floor( (@height - $offset ) / $scale ) * $scale + $offset\n#h = clamp(h, $minHeight ,$maxHeight)\n#@height += (h - @height)*@_height_mask\n\n@fade = (1 - $mask_threshold) * @_height_mask\nvscale = (1 - @height_01_step_ramp) * $scale\nh = min(@height, floor( (@height - $offset) / ($scale - vscale) ) * ($scale - vscale) + $offset)\nh = clamp(h, $minHeight ,$maxHeight)\n\n@height += @_height_mask > $min_mask ? (h - @height) * @fade * (1 - @height_01_fade_ramp) : 0\n", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": { + "minHeight": { + "link": "HF_Terrace:26a4e883-SubInput:[node]/outputs/port" + }, + "maxHeight": { + "link": "HF_Terrace:adf6375b-SubInput:[node]/outputs/port" + }, + "scale": { + "link": "HF_Terrace:a78eae55-SubInput:[node]/outputs/port" + }, + "offset": { + "link": "HF_Terrace:7be7b797-SubInput:[node]/outputs/port" + }, + "mask_threshold": { + "link": "HF_Terrace:a93981b8-SubInput:[node]/outputs/port" + }, + "min_mask": { + "link": "HF_Terrace:a94d9bf-SubInput:[node]/outputs/port" + } + } + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -7608.3564453125, + 970.4191284179688 + ], + "options": [] + }, + "500656ed-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 5.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "Mesa Max Slope", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -5300.0, + -100.0 + ], + "options": [] + }, + "614210cd-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "HF_Terrace:e4a94981-HF_Layer_Combine:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": null, + "type": "string", + "default-value": "_mesa", + "control": { + "name": "String" + } + }, + "targetName": { + "link": "HF_Terrace:db3784de-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "_height", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -3208.3564453125, + 470.4190979003906 + ], + "options": [] + }, + "622c2431-PrimitiveDelAttrs": { + "name": "PrimitiveDelAttrs", + "inputs": { + "prim": { + "link": "HF_Terrace:f6ee3930-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "invert": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "names": { + "link": null, + "type": "string", + "default-value": "_cliffs", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 3071.953125, + 262.4749755859375 + ], + "options": [] + }, + "653431eb-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": { + "objectType": "curve", + "timeline": true, + "x": { + "range": { + "xFrom": 0.0, + "xTo": 1.0, + "yFrom": 0.0, + "yTo": 1.0 + }, + "nodes": [ + { + "x": 0.0, + "y": 0.0, + "left-handle": { + "x": 0.0, + "y": 0.0 + }, + "right-handle": { + "x": 0.0, + "y": 0.0 + }, + "type": "asym", + "lockX": false, + "lockY": false + }, + { + "x": 1.0, + "y": 1.0, + "left-handle": { + "x": 0.0, + "y": 0.0 + }, + "right-handle": { + "x": 0.0, + "y": 0.0 + }, + "type": "asym", + "lockX": false, + "lockY": false + } + ] + } + }, + "control": { + "name": "Curve" + }, + "type": "curve" + }, + "name": { + "value": "Fade Ramp", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "curve", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -8308.3564453125, + 470.4190979003906 + ], + "options": [] + }, + "66110384-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "HF_Terrace:ea014dee-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": null, + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "targetName": { + "link": null, + "type": "string", + "default-value": "_height", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -15208.3564453125, + -229.5808868408203 + ], + "options": [] + }, + "687f37a6-PrimitiveDelAttrs": { + "name": "PrimitiveDelAttrs", + "inputs": { + "prim": { + "link": "HF_Terrace:693fe79f-HF_maskByFeature:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "invert": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "names": { + "link": null, + "type": "string", + "default-value": "_height", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -4608.3564453125, + 470.4190979003906 + ], + "options": [] + }, + "693fe79f-HF_maskByFeature": { + "name": "HF_maskByFeature", + "inputs": { + "HeightField": { + "link": "HF_Terrace:ec04ee99-Erode_Stability_Blur_Cuda:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "height_layer": { + "link": null, + "type": "string", + "default-value": "_height", + "control": { + "name": "String" + } + }, + "mask_layer": { + "link": null, + "type": "string", + "default-value": "_mesa", + "control": { + "name": "String" + } + }, + "smooth_radius": { + "link": null, + "type": "int", + "default-value": 1, + "control": { + "name": "Integer" + } + }, + "use_slope": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "min_slopeangle": { + "link": null, + "type": "float", + "default-value": -10.0, + "control": { + "name": "Float" + } + }, + "max_slopeangle": { + "link": "HF_Terrace:500656ed-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 5.0, + "control": { + "name": "Float" + } + }, + "use_direction": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "goal_angle": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "angle_spread": { + "link": null, + "type": "float", + "default-value": 30.0, + "control": { + "name": "Float" + } + }, + "use_height": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "min_height": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "max_height": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "HeightField": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -5308.3564453125, + 470.4190979003906 + ], + "options": [] + }, + "746b109c-PrimitiveDelAttrs": { + "name": "PrimitiveDelAttrs", + "inputs": { + "prim": { + "link": "HF_Terrace:614210cd-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "invert": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "names": { + "link": null, + "type": "string", + "default-value": "_mesa", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -2508.3564453125, + 470.4190979003906 + ], + "options": [] + }, + "79c6dc15-HF_Layer_Combine": { + "name": "HF_Layer_Combine", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "HF_Terrace:1a5146fc-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Input A Layer": { + "link": null, + "type": "string", + "default-value": "_height_mask", + "control": { + "name": "String" + } + }, + "Input B Layer": { + "link": null, + "type": "string", + "default-value": "_input_mask", + "control": { + "name": "String" + } + }, + "Combine Type": { + "link": null, + "type": "string", + "default-value": "Multiply ( A * B )", + "control": { + "name": "Enum", + "items": [ + "Replace ( B )", + "Add ( A + B )", + "Subtract ( A - B )", + "Diff ( abs( A - B ) )", + "Multiply ( A * B )", + "Max ( max( A, B ) )", + "Min ( min( A, B ) )", + "Blend ( A*( 1 - blend ) + B*blend )" + ] + } + }, + " Blend": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "Output C Layer": { + "link": null, + "type": "string", + "default-value": "_height_mask", + "control": { + "name": "String" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + -11508.3564453125, + -629.5808715820313 + ], + "options": [] + }, + "7be7b797-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "Step Offset", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -15608.3564453125, + 3170.419189453125 + ], + "options": [] + }, + "839547a0-HF_maskByFeature": { + "name": "HF_maskByFeature", + "inputs": { + "HeightField": { + "link": "HF_Terrace:c53fb1c7-Erode_Stability_Blur_Cuda:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "height_layer": { + "link": null, + "type": "string", + "default-value": "_height", + "control": { + "name": "String" + } + }, + "mask_layer": { + "link": null, + "type": "string", + "default-value": "_cliffs", + "control": { + "name": "String" + } + }, + "smooth_radius": { + "link": null, + "type": "int", + "default-value": 1, + "control": { + "name": "Integer" + } + }, + "use_slope": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "min_slopeangle": { + "link": "HF_Terrace:d8b46bbc-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 80.0, + "control": { + "name": "Float" + } + }, + "max_slopeangle": { + "link": null, + "type": "float", + "default-value": 90.0, + "control": { + "name": "Float" + } + }, + "use_direction": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "goal_angle": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "angle_spread": { + "link": null, + "type": "float", + "default-value": 30.0, + "control": { + "name": "Float" + } + }, + "use_height": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "min_height": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "max_height": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "HeightField": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 359.7067565917969, + 323.7421569824219 + ], + "options": [] + }, + "839c8c4-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": { + "objectType": "curve", + "timeline": true, + "x": { + "range": { + "xFrom": 0.0, + "xTo": 1.0, + "yFrom": 0.0, + "yTo": 1.0 + }, + "nodes": [ + { + "x": 0.0, + "y": 1.0, + "left-handle": { + "x": 0.0, + "y": 0.0 + }, + "right-handle": { + "x": 0.0, + "y": 0.0 + }, + "type": "asym", + "lockX": false, + "lockY": false + }, + { + "x": 1.0, + "y": 0.0, + "left-handle": { + "x": 0.0, + "y": 0.0 + }, + "right-handle": { + "x": 0.0, + "y": 0.0 + }, + "type": "asym", + "lockX": false, + "lockY": false + } + ] + } + }, + "control": { + "name": "Curve" + }, + "type": "curve" + }, + "name": { + "value": "Step Ramp", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "curve", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -9341.44140625, + 393.5010070800781 + ], + "options": [] + }, + "9dd133bc-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "cliffs", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Output Cliff Layer", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 1883.828369140625, + -129.6129608154297 + ], + "options": [] + }, + "a0baac39-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 3, + "control": { + "name": "Integer" + }, + "type": "int" + }, + "name": { + "value": "Smooth Edges", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "int", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 4000.0, + -200.0 + ], + "options": [] + }, + "a6d661a5-PrimitiveDelAttrs": { + "name": "PrimitiveDelAttrs", + "inputs": { + "prim": { + "link": "HF_Terrace:d51d3c8f-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "invert": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "names": { + "link": null, + "type": "string", + "default-value": "_height_mask _input_mask", + "control": { + "name": "String" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 6591.6435546875, + 470.4190979003906 + ], + "options": [] + }, + "a6fa305b-HF_Layer_Combine": { + "name": "HF_Layer_Combine", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "HF_Terrace:15c90f3-PrimitiveDelAttrs:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Input A Layer": { + "link": null, + "type": "string", + "default-value": "_height_mask", + "control": { + "name": "String" + } + }, + "Input B Layer": { + "link": null, + "type": "string", + "default-value": "_cliffs", + "control": { + "name": "String" + } + }, + "Combine Type": { + "link": null, + "type": "string", + "default-value": "Multiply ( A * B )", + "control": { + "name": "Enum", + "items": [ + "Replace ( B )", + "Add ( A + B )", + "Subtract ( A - B )", + "Diff ( abs( A - B ) )", + "Multiply ( A * B )", + "Max ( max( A, B ) )", + "Min ( min( A, B ) )", + "Blend ( A*( 1 - blend ) + B*blend )" + ] + } + }, + " Blend": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "Output C Layer": { + "link": null, + "type": "string", + "default-value": "cliffs", + "control": { + "name": "String" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + 1693.7196044921876, + 470.4190979003906 + ], + "options": [] + }, + "a78eae55-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": null, + "control": { + "name": "Float" + }, + "type": "string" + }, + "name": { + "value": "Step Size", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -15608.3564453125, + 2670.419189453125 + ], + "options": [] + }, + "a93981b8-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "Fade", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -9008.3564453125, + 2170.419189453125 + ], + "options": [] + }, + "a94d9bf-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 0.009999999776482582, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "Min Mask", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -9008.3564453125, + 2670.419189453125 + ], + "options": [] + }, + "adf6375b-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 150.0, + "control": { + "name": "Float" + }, + "type": "string" + }, + "name": { + "value": "Max Height", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -15608.3564453125, + 2170.419189453125 + ], + "options": [] + }, + "b1d6b2ba-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Terrace:39ecb75b-IfElse:[node]/outputs/result", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@height_01 = fit(@height, $minHeight, $maxHeight, 0, 1)\n\n\n\n\n\n", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": { + "minHeight": { + "link": "HF_Terrace:26a4e883-SubInput:[node]/outputs/port" + }, + "maxHeight": { + "link": "HF_Terrace:adf6375b-SubInput:[node]/outputs/port" + } + } + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -10108.3564453125, + 570.4191284179688 + ], + "options": [] + }, + "b1dc7f1e-SubOutput": { + "name": "SubOutput", + "inputs": { + "port": { + "link": "HF_Terrace:a6d661a5-PrimitiveDelAttrs:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "HeightField", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "DST": { + "type": "" + } + }, + "uipos": [ + 7300.0, + 400.0 + ], + "options": [] + }, + "bd57f9cd-EvalCurveOnPrimAttr": { + "name": "EvalCurveOnPrimAttr", + "inputs": { + "prim": { + "link": "HF_Terrace:3cea233b-EvalCurveOnPrimAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "attrName": { + "link": null, + "type": "string", + "default-value": "height_01", + "control": { + "name": "String" + } + }, + "dstName": { + "link": null, + "type": "string", + "default-value": "height_01_fade_ramp", + "control": { + "name": "String" + } + }, + "curve": { + "link": "HF_Terrace:653431eb-SubInput:[node]/outputs/port", + "type": "curve", + "default-value": null, + "control": { + "name": "Curve" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -8408.3564453125, + 970.4191284179688 + ], + "options": [] + }, + "c2cc8972-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": null, + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "HeightField", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -16608.357421875, + -229.5808868408203 + ], + "options": [] + }, + "d51d3c8f-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Terrace:5b8452e1-Erode_Stability_Blur_Cuda:[node]/outputs/HeightField", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@mask = @_height_mask\n@pos.y = @height", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 5791.6435546875, + 470.4190979003906 + ], + "options": [] + }, + "d8b46bbc-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": 60.0, + "control": { + "name": "Float" + }, + "type": "float" + }, + "name": { + "value": "Cliff Min Slope", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "float", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -197.1193084716797, + -56.1172981262207 + ], + "options": [] + }, + "db3784de-SubInput": { + "name": "SubInput", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": { + "defl": { + "value": "mesa", + "control": { + "name": "String" + }, + "type": "string" + }, + "name": { + "value": "Output Mesa Layer", + "control": { + "name": "String" + }, + "type": "string" + }, + "type": { + "value": "string", + "control": { + "name": "Enum", + "items": [ + "", + "int", + "bool", + "float", + "string", + "vec2f", + "vec2i", + "vec3f", + "vec3i", + "vec4f", + "vec4i", + "color", + "curve", + "list", + "dict" + ] + }, + "type": "string" + } + }, + "outputs": { + "port": { + "type": "" + }, + "hasValue": { + "type": "bool" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -3208.3564453125, + -29.580894470214845 + ], + "options": [] + }, + "dcc18ef2-HF_maskByFeature": { + "name": "HF_maskByFeature", + "inputs": { + "HeightField": { + "link": "HF_Terrace:9c42e8f0-Erode_Stability_Blur_Cuda:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "height_layer": { + "link": null, + "type": "string", + "default-value": "_height", + "control": { + "name": "String" + } + }, + "mask_layer": { + "link": null, + "type": "string", + "default-value": "_height_mask", + "control": { + "name": "String" + } + }, + "smooth_radius": { + "link": null, + "type": "int", + "default-value": 1, + "control": { + "name": "Integer" + } + }, + "use_slope": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "min_slopeangle": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "max_slopeangle": { + "link": null, + "type": "float", + "default-value": 90.0, + "control": { + "name": "Float" + } + }, + "use_direction": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "goal_angle": { + "link": null, + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "angle_spread": { + "link": null, + "type": "float", + "default-value": 30.0, + "control": { + "name": "Float" + } + }, + "use_height": { + "link": null, + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "min_height": { + "link": "HF_Terrace:26a4e883-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "max_height": { + "link": "HF_Terrace:adf6375b-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "HeightField": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -13708.3564453125, + -229.5808868408203 + ], + "options": [] + }, + "e4a94981-HF_Layer_Combine": { + "name": "HF_Layer_Combine", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "link": "HF_Terrace:687f37a6-PrimitiveDelAttrs:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Input A Layer": { + "link": null, + "type": "string", + "default-value": "_height_mask", + "control": { + "name": "String" + } + }, + "Input B Layer": { + "link": null, + "type": "string", + "default-value": "_mesa", + "control": { + "name": "String" + } + }, + "Combine Type": { + "link": null, + "type": "string", + "default-value": "Multiply ( A * B )", + "control": { + "name": "Enum", + "items": [ + "Replace ( B )", + "Add ( A + B )", + "Subtract ( A - B )", + "Diff ( abs( A - B ) )", + "Multiply ( A * B )", + "Max ( max( A, B ) )", + "Min ( min( A, B ) )", + "Blend ( A*( 1 - blend ) + B*blend )" + ] + } + }, + " Blend": { + "link": null, + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "Output C Layer": { + "link": null, + "type": "string", + "default-value": "mesa", + "control": { + "name": "String" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + -3908.3564453125, + 470.4190979003906 + ], + "options": [] + }, + "ea014dee-ParticlesWrangle": { + "name": "ParticlesWrangle", + "inputs": { + "prim": { + "link": "HF_Terrace:c2cc8972-SubInput:[node]/outputs/port", + "type": "PrimitiveObject", + "default-value": null, + "control": { + "name": "" + } + }, + "zfxCode": { + "link": null, + "type": "string", + "default-value": "@_mesa = 0\n@_cliffs = 0\n@_height_mask = 0", + "control": { + "name": "Multiline String" + } + }, + "params": { + "property": "dict-panel", + "dictlist-panel": { + "collasped": false, + "keys": {} + }, + "link": null, + "type": "dict", + "default-value": null, + "control": { + "name": "" + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "PrimitiveObject" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -16008.3564453125, + -229.5808868408203 + ], + "options": [] + }, + "f2c3ff36-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "HF_Terrace:4e249921-ParticlesWrangle:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": null, + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "targetName": { + "link": null, + "type": "string", + "default-value": "_height", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -6708.3564453125, + 470.4190979003906 + ], + "options": [] + }, + "f6ee3930-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "HF_Terrace:a6fa305b-HF_Layer_Combine:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": null, + "type": "string", + "default-value": "_cliffs", + "control": { + "name": "String" + } + }, + "targetName": { + "link": "HF_Terrace:9dd133bc-SubInput:[node]/outputs/port", + "type": "string", + "default-value": "_height", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + 2487.114501953125, + 280.4086608886719 + ], + "options": [] + }, + "fbe82cc9-PrimCopyAttr": { + "name": "PrimCopyAttr", + "inputs": { + "prim": { + "link": "HF_Terrace:746b109c-PrimitiveDelAttrs:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "sourceName": { + "link": null, + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "targetName": { + "link": null, + "type": "string", + "default-value": "_height", + "control": { + "name": "String" + } + }, + "type": { + "link": null, + "type": "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "default-value": "float", + "control": { + "name": "Enum", + "items": [ + "float", + "vec2f", + "vec3f", + "vec4f", + "int", + "vec2i", + "vec3i", + "vec4i" + ] + } + }, + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "prim": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "uipos": [ + -1700.0, + 400.0 + ], + "options": [] + }, + "9c42e8f0-Erode_Stability_Blur_Cuda": { + "name": "Erode_Stability_Blur_Cuda", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Blur Mode": { + "link": null, + "type": "string", + "default-value": "NINE_STENCIL", + "control": { + "name": "Enum", + "items": [ + "FIVE_STENCIL", + "NINE_STENCIL" + ] + } + }, + "Blur Radius": { + "link": "HF_Terrace:32765767-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 20.0, + "control": { + "name": "Float" + } + }, + "Visual Enable": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Float Attr Name": { + "link": null, + "type": "string", + "default-value": "_height", + "control": { + "name": "String" + } + }, + "HeightField": { + "link": "HF_Terrace:66110384-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + -14600.0, + -200.0 + ], + "options": [] + }, + "ec04ee99-Erode_Stability_Blur_Cuda": { + "name": "Erode_Stability_Blur_Cuda", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Blur Mode": { + "link": null, + "type": "string", + "default-value": "NINE_STENCIL", + "control": { + "name": "Enum", + "items": [ + "FIVE_STENCIL", + "NINE_STENCIL" + ] + } + }, + "Blur Radius": { + "link": "HF_Terrace:32765767-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 20.0, + "control": { + "name": "Float" + } + }, + "Visual Enable": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Float Attr Name": { + "link": null, + "type": "string", + "default-value": "_height", + "control": { + "name": "String" + } + }, + "HeightField": { + "link": "HF_Terrace:f2c3ff36-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + -6100.0, + 400.0 + ], + "options": [] + }, + "c53fb1c7-Erode_Stability_Blur_Cuda": { + "name": "Erode_Stability_Blur_Cuda", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Blur Mode": { + "link": null, + "type": "string", + "default-value": "NINE_STENCIL", + "control": { + "name": "Enum", + "items": [ + "FIVE_STENCIL", + "NINE_STENCIL" + ] + } + }, + "Blur Radius": { + "link": "HF_Terrace:32765767-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 20.0, + "control": { + "name": "Float" + } + }, + "Visual Enable": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Float Attr Name": { + "link": null, + "type": "string", + "default-value": "_height", + "control": { + "name": "String" + } + }, + "HeightField": { + "link": "HF_Terrace:fbe82cc9-PrimCopyAttr:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + -900.0, + 400.0 + ], + "options": [] + }, + "4f4d6096-Erode_Stability_Blur_Cuda": { + "name": "Erode_Stability_Blur_Cuda", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Blur Mode": { + "link": null, + "type": "string", + "default-value": "NINE_STENCIL", + "control": { + "name": "Enum", + "items": [ + "FIVE_STENCIL", + "NINE_STENCIL" + ] + } + }, + "Blur Radius": { + "link": "HF_Terrace:a0baac39-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 20.0, + "control": { + "name": "Float" + } + }, + "Visual Enable": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Float Attr Name": { + "link": null, + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "HeightField": { + "link": "HF_Terrace:622c2431-PrimitiveDelAttrs:[node]/outputs/prim", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + 3900.0, + 400.0 + ], + "options": [] + }, + "5b8452e1-Erode_Stability_Blur_Cuda": { + "name": "Erode_Stability_Blur_Cuda", + "inputs": { + "SRC": { + "link": null, + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Blur Mode": { + "link": null, + "type": "string", + "default-value": "NINE_STENCIL", + "control": { + "name": "Enum", + "items": [ + "FIVE_STENCIL", + "NINE_STENCIL" + ] + } + }, + "Blur Radius": { + "link": "HF_Terrace:a0baac39-SubInput:[node]/outputs/port", + "type": "float", + "default-value": 20.0, + "control": { + "name": "Float" + } + }, + "Visual Enable": { + "link": null, + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Float Attr Name": { + "link": null, + "type": "string", + "default-value": "_height_mask", + "control": { + "name": "String" + } + }, + "HeightField": { + "link": "HF_Terrace:4f4d6096-Erode_Stability_Blur_Cuda:[node]/outputs/HeightField", + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "uipos": [ + 4749.96484375, + 409.6221008300781 + ], + "options": [] + } + }, + "view_rect": {} + } + }, + "views": { + "timeline": { + "start-frame": 0, + "end-frame": 0, + "curr-frame": 0, + "always": false + } + }, + "descs": { + "AABBCollideDetect": { + "inputs": [ + [ + "vec3f", + "bminA", + "" + ], + [ + "vec3f", + "bmaxA", + "" + ], + [ + "vec3f", + "bminB", + "" + ], + [ + "vec3f", + "bmaxB", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "bool", + "overlap", + "" + ], + [ + "bool", + "AinsideB", + "" + ], + [ + "bool", + "BinsideA", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "math" + ] + }, + "AABBVoronoi": { + "inputs": [ + [ + "PrimitiveObject", + "particlesPrim", + "" + ], + [ + "vec3f", + "bboxMin", + "" + ], + [ + "vec3f", + "bboxMax", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "int", + "numRandPoints", + "64" + ], + [ + "bool", + "periodicX", + "0" + ], + [ + "bool", + "periodicY", + "0" + ], + [ + "bool", + "periodicZ", + "0" + ], + [ + "bool", + "triangulate", + "1" + ] + ], + "outputs": [ + [ + "ListObject", + "primList", + "" + ], + [ + "ListObject", + "neighList", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "cgmesh" + ] + }, + "AdaptiveRemeshing": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "int", + "iterations", + "10" + ], + [ + "float", + "max_length", + "" + ], + [ + "float", + "min_length", + "" + ], + [ + "float", + "approximation_tolerance", + "" + ], + [ + "string", + "line_pick_tag", + "line_selected" + ], + [ + "", + "marked_lines", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "AddVertID": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "primOut", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "AdjustParticleMaterial": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "float", + "E_hard", + "" + ], + [ + "float", + "E_soft", + "" + ], + [ + "float", + "nu_hard", + "" + ], + [ + "float", + "nu_soft", + "" + ], + [ + "float", + "end_hard", + "" + ], + [ + "float", + "end_soft", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "enum x y z", + "orientation", + "y" + ] + ], + "outputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "AppendList": { + "inputs": [ + [ + "", + "list", + "" + ], + [ + "", + "object", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "list", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "list" + ] + }, + "ApplyBoundaryOnVertices": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "ZSBoundary", + "" + ], + [ + "float", + "dt", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "ApplyBoundaryOnZSGrid": { + "inputs": [ + [ + "", + "ZSPartition", + "" + ], + [ + "", + "ZSGrid", + "" + ], + [ + "", + "ZSBoundary", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "ApplyGridBoundaryOnZSGrid": { + "inputs": [ + [ + "", + "ZSPartition", + "" + ], + [ + "", + "ZSGrid", + "" + ], + [ + "", + "BoundaryZSPartition", + "" + ], + [ + "", + "BoundaryZSGrid", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "enum sticky slip separate", + "type", + "sticky" + ] + ], + "outputs": [ + [ + "", + "ZSGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "ApplyWindImpulseOnZSGrid": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "ZSVelField", + "" + ], + [ + "", + "ZSPartition", + "" + ], + [ + "", + "ZSGrid", + "" + ], + [ + "float", + "windDrag", + "" + ], + [ + "float", + "windDensity", + "" + ], + [ + "float", + "dt", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "Assign": { + "inputs": [ + [ + "", + "dst", + "" + ], + [ + "", + "src", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "dst", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "lifecycle" + ] + }, + "AssignActByMSTag": { + "inputs": [ + [ + "", + "CV", + "" + ], + [ + "", + "ACT_LIST", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "CV", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Hercules" + ] + }, + "AssignUniformAffineToPrim": { + "inputs": [ + [ + "", + "quat", + "" + ], + [ + "", + "trans", + "" + ], + [ + "", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "AutoGenMuscleFibers": { + "inputs": [ + [ + "", + "Orient", + "" + ], + [ + "", + "Muscle", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "primOut", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Hercules" + ] + }, + "BVHNearestAttr": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "primNei", + "" + ], + [ + "string", + "bvhIdTag", + "bvh_id" + ], + [ + "string", + "bvhWeightTag", + "bvh_ws" + ], + [ + "string", + "bvhAttrTag", + "bvh_attr" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "BVHNearestPos": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "primNei", + "" + ], + [ + "string", + "bvhIdTag", + "bvh_id" + ], + [ + "string", + "bvhWeightTag", + "bvh_ws" + ], + [ + "string", + "bvhPosTag", + "bvh_pos" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "BecomeRtInst": { + "inputs": [ + [ + "", + "object", + "" + ], + [ + "bool", + "isInst", + "1" + ], + [ + "string", + "instID", + "Inst1" + ], + [ + "enum XYZ YXZ YZX ZYX ZXY XZY", + "onbType", + "XYZ" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "object", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "shader" + ] + }, + "BeginFor": { + "inputs": [ + [ + "int", + "count", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "int", + "index", + "" + ], + [ + "", + "FOR", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "control" + ] + }, + "BeginForEach": { + "inputs": [ + [ + "", + "list", + "" + ], + [ + "", + "accumate", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "object", + "" + ], + [ + "", + "accumate", + "" + ], + [ + "int", + "index", + "" + ], + [ + "", + "FOR", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "control" + ] + }, + "BeginSubstep": { + "inputs": [ + [ + "float", + "total_dt", + "" + ], + [ + "float", + "min_scale", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "FOR", + "" + ], + [ + "float", + "elapsed_time", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "control" + ] + }, + "BindCV2BoneGeos": { + "inputs": [ + [ + "", + "BoneGeos", + "" + ], + [ + "", + "CV_MESH", + "" + ], + [ + "float", + "Dx", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "CV_OUT", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Hercules" + ] + }, + "BindLight": { + "inputs": [ + [ + "", + "object", + "" + ], + [ + "bool", + "islight", + "1" + ], + [ + "bool", + "invertdir", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "object", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "shader" + ] + }, + "BindMSToCV": { + "inputs": [ + [ + "", + "MS_MESH", + "" + ], + [ + "", + "CV", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "CV", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Hercules" + ] + }, + "BindMaterial": { + "inputs": [ + [ + "", + "object", + "" + ], + [ + "string", + "mtlid", + "Mat1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "object", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "shader" + ] + }, + "BindRtInst": { + "inputs": [ + [ + "", + "object", + "" + ], + [ + "string", + "instID", + "Inst1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "object", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "shader" + ] + }, + "Blackboard": { + "inputs": [], + "params": [], + "outputs": [], + "categories": [ + "layout" + ] + }, + "Blend": { + "inputs": [ + [ + "", + "Foreground", + "" + ], + [ + "", + "Background", + "" + ], + [ + "", + "Mask", + "" + ], + [ + "enum Normal Add Subtract Multiply Max(Lighten) Min(Darken) Overlay Screen SoftLight Difference Divide Average", + "Blending Mode", + "Normal" + ], + [ + "float", + "Mask Opacity", + "" + ], + [ + "float", + "Foreground Opacity", + "" + ], + [ + "float", + "Background Opacity", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "comp" + ] + }, + "BoundingBoxFitInto": { + "inputs": [ + [ + "vec3f", + "bminSrc", + "" + ], + [ + "vec3f", + "bmaxSrc", + "" + ], + [ + "vec3f", + "bminDst", + "" + ], + [ + "vec3f", + "bmaxDst", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "vec3f", + "translation", + "" + ], + [ + "vec3f", + "bminTrans", + "" + ], + [ + "vec3f", + "bmaxTrans", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "BreakFor": { + "inputs": [ + [ + "", + "FOR", + "" + ], + [ + "bool", + "breaks", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "DST", + "" + ] + ], + "categories": [ + "control" + ] + }, + "BuildLapaceOperator": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "elmView", + "" + ], + [ + "", + "integrator", + "" + ], + [ + "", + "skin", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "res", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "BuildPrimitiveBvh": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "float", + "thickness", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "enum auto point line tri quad", + "prim_type", + "auto" + ] + ], + "outputs": [ + [ + "LBvh", + "lbvh", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zenofx" + ] + }, + "BuildPrimitiveSequence": { + "inputs": [ + [ + "", + "ZSPrimitiveSequence", + "" + ], + [ + "float", + "framedt", + "" + ], + [ + "", + "ZSParticles", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSPrimitiveSequence", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "BuildSurfFacetTetraNeighboring": { + "inputs": [ + [ + "", + "zsparticles", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "zsparticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "BuildSurfaceHalfEdgeStructure": { + "inputs": [ + [ + "", + "zsparticles", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "zsparticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "BuildTetrahedraHalfFacet": { + "inputs": [ + [ + "", + "zsparticles", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "zsparticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "CVConvertColor": { + "inputs": [ + [ + "CVImageObject", + "image", + "" + ], + [ + "enum BGR2GRAY GRAY2BGR BGR2RGB BGR2BGRA BGRA2BGR BGR2HSV HSV2BGR ", + "mode", + "GRAY2BGR" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "CVImageObject", + "resimage", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "opencv" + ] + }, + "CVDoOneStep": { + "inputs": [ + [ + "", + "CV", + "" + ], + [ + "", + "CUR_SKIN", + "" + ], + [ + "", + "MS_SIGNAL", + "" + ], + [ + "int", + "MaxNewtonIters", + "10" + ], + [ + "int", + "MaxLineSearch", + "10" + ], + [ + "float", + "accuracy", + "" + ], + [ + "", + "FrameNum", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "CV", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Hercules" + ] + }, + "CVDoOneStepFast": { + "inputs": [ + [ + "", + "CV", + "" + ], + [ + "int", + "MaxNewtonIters", + "100" + ], + [ + "int", + "MaxLineSearch", + "10" + ], + [ + "", + "FrameNum", + "" + ], + [ + "", + "CUR_SKIN", + "" + ], + [ + "float", + "accuracy", + "" + ], + [ + "", + "MS_SIGNAL", + "" + ], + [ + "float", + "rel_epsilon", + "" + ], + [ + "int", + "window_size", + "5" + ], + [ + "", + "LaplaceOp", + "" + ], + [ + "", + "init_guess", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "CV", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Hercules" + ] + }, + "CVGetImageSize": { + "inputs": [ + [ + "CVImageObject", + "image", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "int", + "width", + "" + ], + [ + "int", + "height", + "" + ], + [ + "int", + "channels", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "opencv" + ] + }, + "CVImageBlend": { + "inputs": [ + [ + "CVImageObject", + "image1", + "" + ], + [ + "CVImageObject", + "image2", + "" + ], + [ + "float", + "factor", + "" + ], + [ + "bool", + "inverse", + "0" + ], + [ + "bool", + "is255", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "CVImageObject", + "resimage", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "opencv" + ] + }, + "CVImageBlit": { + "inputs": [ + [ + "CVImageObject", + "image", + "" + ], + [ + "CVImageObject", + "srcImage", + "" + ], + [ + "int", + "X0", + "0" + ], + [ + "int", + "Y0", + "0" + ], + [ + "bool", + "centered", + "0" + ], + [ + "optional CVImageObject", + "mask", + "" + ], + [ + "bool", + "isAlphaMask", + "1" + ], + [ + "bool", + "is255", + "1" + ], + [ + "bool", + "inplace", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "CVImageObject", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "opencv" + ] + }, + "CVImageCrop": { + "inputs": [ + [ + "CVImageObject", + "srcimage", + "" + ], + [ + "int", + "X0", + "0" + ], + [ + "int", + "Y0", + "0" + ], + [ + "int", + "DX", + "32" + ], + [ + "int", + "DY", + "32" + ], + [ + "bool", + "is255", + "1" + ], + [ + "bool", + "deepCopy", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "CVImageObject", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "opencv" + ] + }, + "CVImageDivide": { + "inputs": [ + [ + "CVImageObject", + "image", + "" + ], + [ + "float", + "factor", + "" + ], + [ + "bool", + "inverse", + "0" + ], + [ + "bool", + "is255", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "CVImageObject", + "resimage", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "opencv" + ] + }, + "CVImageDrawPoly": { + "inputs": [ + [ + "CVImageObject", + "image", + "" + ], + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "vec3f", + "color", + "" + ], + [ + "PrimitiveObject", + "points", + "" + ], + [ + "int", + "linewidth", + "0" + ], + [ + "bool", + "inplace", + "0" + ], + [ + "bool", + "batched", + "0" + ], + [ + "bool", + "antialias", + "0" + ], + [ + "bool", + "is255", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "CVImageObject", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "opencv" + ] + }, + "CVImageFillColor": { + "inputs": [ + [ + "CVImageObject", + "image", + "" + ], + [ + "optional CVImageObject", + "mask", + "" + ], + [ + "bool", + "is255", + "1" + ], + [ + "vec3f", + "color", + "" + ], + [ + "bool", + "inplace", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "CVImageObject", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "opencv" + ] + }, + "CVImageFillGrad": { + "inputs": [ + [ + "CVImageObject", + "image", + "" + ], + [ + "float", + "angle", + "" + ], + [ + "float", + "scale", + "" + ], + [ + "float", + "offset", + "" + ], + [ + "bool", + "is255", + "1" + ], + [ + "vec3f", + "color1", + "" + ], + [ + "vec3f", + "color2", + "" + ], + [ + "bool", + "inplace", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "CVImageObject", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "opencv" + ] + }, + "CVImageGrayscale": { + "inputs": [ + [ + "CVImageObject", + "image", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "CVImageObject", + "resimage", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "opencv" + ] + }, + "CVImageInvert": { + "inputs": [ + [ + "CVImageObject", + "image", + "" + ], + [ + "bool", + "is255", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "CVImageObject", + "resimage", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "opencv" + ] + }, + "CVImageMaskedAssign": { + "inputs": [ + [ + "CVImageObject", + "image", + "" + ], + [ + "CVImageObject", + "srcImage", + "" + ], + [ + "optional CVImageObject", + "mask", + "" + ], + [ + "bool", + "is255", + "1" + ], + [ + "bool", + "inplace", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "CVImageObject", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "opencv" + ] + }, + "CVImageMultiply": { + "inputs": [ + [ + "CVImageObject", + "image", + "" + ], + [ + "float", + "factor", + "" + ], + [ + "bool", + "inverse", + "0" + ], + [ + "bool", + "is255", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "CVImageObject", + "resimage", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "opencv" + ] + }, + "CVImagePutText": { + "inputs": [ + [ + "CVImageObject", + "image", + "" + ], + [ + "string", + "text", + "Hello, World" + ], + [ + "int", + "X0", + "0" + ], + [ + "int", + "Y0", + "0" + ], + [ + "bool", + "is255", + "1" + ], + [ + "vec3f", + "color", + "" + ], + [ + "float", + "scale", + "" + ], + [ + "int", + "thickness", + "1" + ], + [ + "int", + "fontFace", + "0" + ], + [ + "bool", + "antialias", + "0" + ], + [ + "bool", + "inplace", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "CVImageObject", + "resimage", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "opencv" + ] + }, + "CVImageRead": { + "inputs": [ + [ + "readpath", + "path", + "" + ], + [ + "enum RGB GRAY RGBA UNCHANGED", + "mode", + "RGB" + ], + [ + "bool", + "is255", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "CVImageObject", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "opencv" + ] + }, + "CVImageSepRGB": { + "inputs": [ + [ + "CVImageObject", + "imageRGB", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "CVImageObject", + "imageR", + "" + ], + [ + "CVImageObject", + "imageG", + "" + ], + [ + "CVImageObject", + "imageB", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "opencv" + ] + }, + "CVImageShow": { + "inputs": [ + [ + "CVImageObject", + "image", + "" + ], + [ + "string", + "title", + "imshow" + ], + [ + "bool", + "waitKey", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "DST", + "" + ] + ], + "categories": [ + "opencv" + ] + }, + "CVImageSubtract": { + "inputs": [ + [ + "CVImageObject", + "image1", + "" + ], + [ + "CVImageObject", + "image2", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "CVImageObject", + "resimage", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "opencv" + ] + }, + "CVMakeImage": { + "inputs": [ + [ + "int", + "width", + "512" + ], + [ + "int", + "height", + "512" + ], + [ + "enum RGB GRAY RGBA", + "mode", + "RGB" + ], + [ + "bool", + "whiteBg", + "0" + ], + [ + "bool", + "is255", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "CVImageObject", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "opencv" + ] + }, + "CVSepAlpha": { + "inputs": [ + [ + "CVImageObject", + "imageRGBA", + "" + ], + [ + "bool", + "alphaAsGray", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "CVImageObject", + "imageRGB", + "" + ], + [ + "CVImageObject", + "imageAlpha", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "opencv" + ] + }, + "CVWaitKey": { + "inputs": [ + [ + "int", + "delay", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "bool", + "hasPressed", + "" + ], + [ + "int", + "keyCode", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "opencv" + ] + }, + "CacheLastFrameBegin": { + "inputs": [ + [ + "", + "input", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "linkFrom", + "" + ], + [ + "", + "lastFrame", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "CacheLastFrameEnd": { + "inputs": [ + [ + "", + "linkTo", + "" + ], + [ + "", + "updateCache", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "output", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "CachePrimitive": { + "inputs": [ + [ + "", + "inPrim", + "" + ], + [ + "", + "frameNum", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "dir", + "/tmp/cache" + ], + [ + "bool", + "ignore", + "0" + ], + [ + "string", + "prefix", + "" + ] + ], + "outputs": [ + [ + "", + "outPrim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "CacheToDisk": { + "inputs": [ + [ + "", + "object", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "cachebasedir", + "" + ] + ], + "outputs": [ + [ + "", + "object", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "lifecycle" + ] + }, + "CacheVDBGrid": { + "inputs": [ + [ + "", + "inGrid", + "" + ], + [ + "", + "frameNum", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "dir", + "/tmp/cache" + ], + [ + "bool", + "ignore", + "0" + ], + [ + "bool", + "mute", + "0" + ], + [ + "string", + "prefix", + "" + ] + ], + "outputs": [ + [ + "", + "outGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "CachedByKey": { + "inputs": [ + [ + "", + "input", + "" + ], + [ + "", + "key", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "output", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "control" + ] + }, + "CachedIf": { + "inputs": [ + [ + "", + "input", + "" + ], + [ + "", + "keepCache", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "output", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "control" + ] + }, + "CachedOnce": { + "inputs": [ + [ + "", + "input", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "output", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "control" + ] + }, + "CalcCameraUp": { + "inputs": [ + [ + "vec3f", + "refUp", + "" + ], + [ + "vec3f", + "pos", + "" + ], + [ + "vec3f", + "target", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "vec3f", + "pos", + "" + ], + [ + "vec3f", + "up", + "" + ], + [ + "vec3f", + "view", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "shader" + ] + }, + "CalcDirectionFromAngle": { + "inputs": [ + [ + "float", + "angle", + "" + ], + [ + "enum XY YX YZ ZY ZX XZ", + "plane", + "XY" + ], + [ + "float", + "length", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "vec3f", + "direction", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "math" + ] + }, + "CameraEval": { + "inputs": [ + [ + "", + "frameid", + "" + ], + [ + "", + "nodelist", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "CameraObject", + "camera", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FBX" + ] + }, + "CameraNode": { + "inputs": [ + [ + "vec3f", + "pos", + "" + ], + [ + "vec3f", + "up", + "" + ], + [ + "vec3f", + "view", + "" + ], + [ + "float", + "fov", + "" + ], + [ + "float", + "aperture", + "" + ], + [ + "float", + "focalPlaneDistance", + "" + ], + [ + "string", + "other", + "" + ], + [ + "int", + "frame", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "CameraObject", + "camera", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FBX" + ] + }, + "CihouMayaCameraFov": { + "inputs": [ + [ + "enum Horizontal Vertical", + "fit_gate", + "Horizontal" + ], + [ + "float", + "focL", + "" + ], + [ + "float", + "fw", + "" + ], + [ + "float", + "fh", + "" + ], + [ + "float", + "nx", + "" + ], + [ + "float", + "ny", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "float", + "fov", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FBX" + ] + }, + "Clone": { + "inputs": [ + [ + "", + "object", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "newObject", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "lifecycle" + ] + }, + "CombineVDB": { + "inputs": [ + [ + "", + "FieldA", + "" + ], + [ + "", + "FieldB", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "float", + "MultiplierA", + "" + ], + [ + "float", + "MultiplierB", + "" + ], + [ + "enum CSGUnion CSGIntersection CSGDifference Add Mul Replace A_Sample_B", + "OpType", + "CSGUnion" + ], + [ + "bool", + "writeBack", + "0" + ] + ], + "outputs": [ + [ + "", + "FieldOut", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "openvdb" + ] + }, + "CompBlur": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "int", + "strength", + "5" + ], + [ + "vec3f", + "kerneltop", + "" + ], + [ + "vec3f", + "kernelmid", + "" + ], + [ + "vec3f", + "kernelbot", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "comp" + ] + }, + "CompExtractChanel": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "enum R G B A", + "channel", + "R" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "comp" + ] + }, + "CompExtractChanel_gray": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "bool", + "RGB", + "0" + ], + [ + "bool", + "R", + "0" + ], + [ + "bool", + "G", + "0" + ], + [ + "bool", + "B", + "0" + ], + [ + "bool", + "A", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "CompImport": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "string", + "attrName", + "" + ], + [ + "bool", + "Remap", + "0" + ], + [ + "vec2f", + "RemapRange", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "comp" + ] + }, + "CompMixChanel": { + "inputs": [ + [ + "", + "R", + "" + ], + [ + "", + "G", + "" + ], + [ + "", + "B", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "comp" + ] + }, + "ComposeSdfVelField": { + "inputs": [ + [ + "", + "ZSSdfField", + "" + ], + [ + "", + "ZSVelField", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSLevelSet", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "Composite": { + "inputs": [ + [ + "", + "Foreground", + "" + ], + [ + "", + "Background", + "" + ], + [ + "", + "Mask1", + "" + ], + [ + "", + "Mask2", + "" + ], + [ + "enum Over Under Atop Inside Outside Screen Add Subtract Multiply Divide Diff Min Max Average Xor Alpha !Alpha", + "Compmode", + "Over" + ], + [ + "enum R G B A", + "Mask1mode", + "R" + ], + [ + "enum R G B A", + "Mask2mode", + "R" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "comp" + ] + }, + "ComputeAverageEdgeLength": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "NumericObject", + "average_edge_length", + "" + ], + [ + "NumericObject", + "minimum_edge_length", + "" + ], + [ + "NumericObject", + "maximum_edge_length", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zs_query" + ] + }, + "ComputeNodalRotationCenter": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "primNei", + "" + ], + [ + "", + "lbvh", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "attr_prefix", + "sw" + ], + [ + "float", + "sigma", + "" + ] + ], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "ComputeNodalVolume": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "primOut", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "ComputeParticleBeta": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "ZSPartition", + "" + ], + [ + "", + "ZSBoundary(Grid)", + "" + ], + [ + "", + "dt", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "ComputeParticleVolume": { + "inputs": [ + [ + "ZenoParticles", + "ZSParticles", + "" + ], + [ + "ZenoGrid", + "ZSGrid", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "ZenoParticles", + "ZSParticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "ComputePrimitiveSequenceVelocity": { + "inputs": [ + [ + "", + "prim0", + "" + ], + [ + "", + "prim1", + "" + ], + [ + "float", + "dt", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "ComputeVonMises": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "int", + "by_log1p(base10)", + "1" + ] + ], + "outputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "ConfigConstitutiveModel": { + "inputs": [ + [ + "float", + "dx", + "" + ], + [ + "float", + "ppc", + "" + ], + [ + "float", + "density", + "" + ], + [ + "enum fcr nhk stvk snhk", + "type", + "fcr" + ], + [ + "enum none arap", + "aniso", + "none" + ], + [ + "enum none nadp navm nacc", + "plasticity", + "none" + ], + [ + "float", + "E", + "" + ], + [ + "float", + "nu", + "" + ], + [ + "DictObject:NumericObject", + "params", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSModel", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "ConstructBendingSprings": { + "inputs": [ + [ + "", + "ZSSurfPrim", + "" + ], + [ + "float", + "bending_stiffness", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "enum vertex element angle", + "type", + "element" + ] + ], + "outputs": [ + [ + "", + "ZSSpringPrim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "CopyAllUserData": { + "inputs": [ + [ + "", + "dst", + "" + ], + [ + "", + "src", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "dst", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "lifecycle" + ] + }, + "CreateBezierCurve": { + "inputs": [ + [ + "list", + "CustomPoints", + "" + ], + [ + "prim", + "SamplePoints", + "" + ], + [ + "float", + "precision", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "SampleAttr", + "" + ], + [ + "string", + "SampleTag", + "" + ], + [ + "enum Bezier", + "Type", + "Bezier" + ] + ], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "curev", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "create" + ] + }, + "CreateCameraMatrix": { + "inputs": [ + [ + "vec3f", + "top", + "" + ], + [ + "vec3f", + "mid", + "" + ], + [ + "vec3f", + "bot", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "matrix", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "image" + ] + }, + "CreateCircle": { + "inputs": [ + [ + "int", + "segments", + "32" + ], + [ + "float", + "r", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "CreateCone": { + "inputs": [ + [ + "vec3f", + "position", + "" + ], + [ + "vec3f", + "scaleSize", + "" + ], + [ + "float", + "radius", + "" + ], + [ + "float", + "height", + "" + ], + [ + "int", + "lons", + "32" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "create" + ] + }, + "CreateCube": { + "inputs": [ + [ + "vec3f", + "position", + "" + ], + [ + "vec3f", + "scaleSize", + "" + ], + [ + "vec3f", + "rotate", + "" + ], + [ + "bool", + "hasNormal", + "0" + ], + [ + "bool", + "hasVertUV", + "0" + ], + [ + "bool", + "isFlipFace", + "0" + ], + [ + "int", + "div_w", + "2" + ], + [ + "int", + "div_h", + "2" + ], + [ + "int", + "div_d", + "2" + ], + [ + "float", + "size", + "" + ], + [ + "bool", + "quads", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "create" + ] + }, + "CreateCylinder": { + "inputs": [ + [ + "vec3f", + "position", + "" + ], + [ + "vec3f", + "scaleSize", + "" + ], + [ + "float", + "radius", + "" + ], + [ + "float", + "height", + "" + ], + [ + "int", + "lons", + "32" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "create" + ] + }, + "CreateDisk": { + "inputs": [ + [ + "vec3f", + "position", + "" + ], + [ + "vec3f", + "scaleSize", + "" + ], + [ + "vec3f", + "rotate", + "" + ], + [ + "bool", + "hasNormal", + "0" + ], + [ + "bool", + "hasVertUV", + "0" + ], + [ + "bool", + "isFlipFace", + "0" + ], + [ + "float", + "radius", + "" + ], + [ + "int", + "divisions", + "32" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "create" + ] + }, + "CreateImage": { + "inputs": [ + [ + "vec3f", + "RGB", + "" + ], + [ + "int", + "width", + "1024" + ], + [ + "int", + "height", + "1024" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "create" + ] + }, + "CreatePlane": { + "inputs": [ + [ + "vec3f", + "position", + "" + ], + [ + "vec3f", + "scaleSize", + "" + ], + [ + "vec3f", + "rotate", + "" + ], + [ + "bool", + "hasNormal", + "0" + ], + [ + "bool", + "hasVertUV", + "0" + ], + [ + "bool", + "isFlipFace", + "0" + ], + [ + "float", + "size", + "" + ], + [ + "int", + "rows", + "1" + ], + [ + "int", + "columns", + "1" + ], + [ + "bool", + "quads", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "create" + ] + }, + "CreatePoint": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "float", + "x", + "" + ], + [ + "float", + "y", + "" + ], + [ + "float", + "z", + "" + ] + ], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "create" + ] + }, + "CreatePrimCurve": { + "inputs": [ + [ + "prim", + "inputPoints", + "" + ], + [ + "float", + "precision", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "enum Bezier", + "Type", + "Bezier" + ] + ], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primCurve" + ] + }, + "CreateSphere": { + "inputs": [ + [ + "vec3f", + "position", + "" + ], + [ + "vec3f", + "scaleSize", + "" + ], + [ + "float", + "radius", + "" + ], + [ + "vec3f", + "rotate", + "" + ], + [ + "bool", + "hasNormal", + "0" + ], + [ + "bool", + "hasVertUV", + "0" + ], + [ + "bool", + "isFlipFace", + "0" + ], + [ + "int", + "rows", + "12" + ], + [ + "int", + "columns", + "24" + ], + [ + "bool", + "quads", + "0" + ], + [ + "bool", + "SphereRT", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "create" + ] + }, + "CreateTorus": { + "inputs": [ + [ + "vec3f", + "position", + "" + ], + [ + "vec3f", + "rotate", + "" + ], + [ + "float", + "MajorRadius", + "" + ], + [ + "float", + "MinorRadius", + "" + ], + [ + "bool", + "hasNormal", + "0" + ], + [ + "bool", + "hasVertUV", + "0" + ], + [ + "int", + "MajorSegment", + "48" + ], + [ + "int", + "MinorSegment", + "12" + ], + [ + "bool", + "quads", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "create" + ] + }, + "CreateTube": { + "inputs": [ + [ + "vec3f", + "position", + "" + ], + [ + "vec3f", + "scaleSize", + "" + ], + [ + "vec3f", + "rotate", + "" + ], + [ + "bool", + "hasNormal", + "0" + ], + [ + "bool", + "hasVertUV", + "0" + ], + [ + "bool", + "isFlipFace", + "0" + ], + [ + "float", + "radius1", + "" + ], + [ + "float", + "radius2", + "" + ], + [ + "float", + "height", + "" + ], + [ + "int", + "rows", + "3" + ], + [ + "int", + "columns", + "12" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "create" + ] + }, + "CurveOrientation": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "string", + "dirName", + "dir" + ], + [ + "string", + "tanName", + "tan" + ], + [ + "string", + "bitanName", + "bitan" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "Curvemap": { + "inputs": [ + [ + "", + "curvemap", + "" + ], + [ + "", + "value", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "res", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "DefaultBoneColor": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "color", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Hercules" + ] + }, + "DefaultFleshColor": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "FleshColor", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Hercules" + ] + }, + "DefaultSkinColor": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "SkinColor", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Hercules" + ] + }, + "DefineMS": { + "inputs": [ + [ + "", + "SCALE", + "" + ], + [ + "", + "TRANS", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "MS", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Hercules" + ] + }, + "DeformCVByInterpolator": { + "inputs": [ + [ + "", + "CV", + "" + ], + [ + "", + "CUR_SKIN", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "CV", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Hercules" + ] + }, + "DegreetoRad": { + "inputs": [ + [ + "float", + "degree", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "float", + "radian", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "math" + ] + }, + "DelUserData": { + "inputs": [ + [ + "", + "object", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "key", + "" + ] + ], + "outputs": [ + [ + "", + "DST", + "" + ] + ], + "categories": [ + "lifecycle" + ] + }, + "DictEraseItem": { + "inputs": [ + [ + "DictObject", + "dict", + "" + ], + [ + "string", + "key", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "DictObject", + "dict", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "WBTest" + ] + }, + "DictGetItem": { + "inputs": [ + [ + "DictObject", + "dict", + "" + ], + [ + "string", + "key", + "" + ], + [ + "IObject", + "defl", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "zany", + "object", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "dict" + ] + }, + "DictGetKeyList": { + "inputs": [ + [ + "DictObject", + "dict", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "ListObject", + "keys", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "dict" + ] + }, + "DictHasKey": { + "inputs": [ + [ + "DictObject", + "dict", + "" + ], + [ + "string", + "key", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "bool", + "hasKey", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "dict" + ] + }, + "DictSetItem": { + "inputs": [ + [ + "DictObject", + "dict", + "" + ], + [ + "string", + "key", + "" + ], + [ + "zany", + "object", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "DictObject", + "dict", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "dict" + ] + }, + "DictSize": { + "inputs": [ + [ + "DictObject", + "dict", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "int", + "size", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "dict" + ] + }, + "DictUnion": { + "inputs": [ + [ + "DictObject", + "dict1", + "" + ], + [ + "DictObject", + "dict2", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "DictObject", + "dict", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "dict" + ] + }, + "DynamicNumber": { + "inputs": [ + [ + "", + "frame", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "enum 100 10 1 0.1 0.01 0.001", + "speed", + "1" + ], + [ + "enum clamp zero cycle", + "type", + "clamp" + ], + [ + "floatslider", + "w", + "0" + ], + [ + "floatslider", + "x", + "0" + ], + [ + "floatslider", + "y", + "0" + ], + [ + "floatslider", + "z", + "0" + ] + ], + "outputs": [ + [ + "", + "vec3", + "" + ], + [ + "", + "x", + "" + ], + [ + "", + "y", + "" + ], + [ + "", + "z", + "" + ], + [ + "", + "w", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "EmbedPrimitiveBvh": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "float", + "thickness", + "" + ], + [ + "enum point line tri quad", + "prim_type", + "auto" + ], + [ + "string", + "bvh_tag", + "bvh" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zs_accel" + ] + }, + "EmbedPrimitiveSpatialHash": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "float", + "side_length", + "" + ], + [ + "float", + "thickness", + "" + ], + [ + "enum point line tri quad", + "prim_type", + "auto" + ], + [ + "string", + "spatial_hash_tag", + "sh" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zs_accel" + ] + }, + "EmbedPrimitiveToVolumeMesh": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "vmesh", + "" + ], + [ + "", + "fitting_in", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "EmbedZsgGraph": { + "inputs": [ + [ + "readpath", + "zsgPath", + "" + ], + [ + "dict", + "argsDict", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "dict", + "retsDict", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "subgraph" + ] + }, + "EmptyDict": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "DictObject", + "dict", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "dict" + ] + }, + "EmptyList": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "list", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "list" + ] + }, + "EndFor": { + "inputs": [ + [ + "", + "FOR", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "DST", + "" + ] + ], + "categories": [ + "control" + ] + }, + "EndForEach": { + "inputs": [ + [ + "", + "object", + "" + ], + [ + "", + "list", + "" + ], + [ + "", + "accumate", + "" + ], + [ + "bool", + "accept", + "1" + ], + [ + "", + "FOR", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "bool", + "doConcat", + "0" + ] + ], + "outputs": [ + [ + "", + "list", + "" + ], + [ + "", + "droppedList", + "" + ], + [ + "", + "accumate", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "control" + ] + }, + "EnqueueLevelSetSequence": { + "inputs": [ + [ + "", + "ZSLevelSetSequence", + "" + ], + [ + "", + "ZSLevelSet", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSLevelSetSequence", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "Erode_Granular_Slump_Flow": { + "inputs": { + "SRC": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField 高度场地形": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Slump 崩解滑塌形成流网": { + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Slump Iterations 崩解滑塌迭代次数": { + "type": "int", + "default-value": 200, + "control": { + "name": "Integer" + } + }, + "Seed 随机种子值": { + "type": "float", + "default-value": 1234.0, + "control": { + "name": "Float" + } + }, + "Gridbias 流动偏置": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "Open Border 开放边界": { + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "Quantization 流量": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "Flow Rate 流网扩张": { + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "Repose Angle 水土保持坡度": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "Smooth Flow 平滑流场": { + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Flow Smooth Iterations 流场平滑迭代次数": { + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "Flow Smooth Rate 流场平滑程度": { + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "Layer Binding 层绑定": { + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Height Layer Name": { + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "Material to Slump 崩解滑塌层": { + "type": "string", + "default-value": "water", + "control": { + "name": "String" + } + }, + "Stability Mask 碎屑稳固层": { + "type": "string", + "default-value": "none", + "control": { + "name": "String" + } + }, + "Output Flow 输出流": { + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Copy Flow to Mask 流拷贝到 Mask 层": { + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "Visual Flow 可视化流": { + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Visual Flow Enable 打开流场可视化效果": { + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField 高度场地形": { + "type": "" + } + }, + "categories": [ + "subgraph" + ], + "is_subgraph": true + }, + "Erode_Hydro": { + "inputs": { + "SRC": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "openborder": { + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "gridbias": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "seed": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "iterations": { + "type": "int", + "default-value": 40, + "control": { + "name": "Integer" + } + }, + "global_erosionrate": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "erodability": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "erosionrate": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "bank_angle": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "removalrate": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "max_debris_depth": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "max_erodability_iteration": { + "type": "int", + "default-value": 5, + "control": { + "name": "Integer" + } + }, + "initial_erodability_factor": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "slope_contribution_factor": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "bed_erosionrate_factor": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "depositionrate": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "sedimentcap": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "bank_erosionrate_factor": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "max_bank_bed_ratio": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "quant_amt": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "Layer Binding": { + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Height Layer Name": { + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "Water Layer Name": { + "type": "string", + "default-value": "water", + "control": { + "name": "String" + } + }, + "Debris Layer Name": { + "type": "string", + "default-value": "debris", + "control": { + "name": "String" + } + }, + "Sediment Layer Name": { + "type": "string", + "default-value": "sediment", + "control": { + "name": "String" + } + }, + "Visual Material Enable": { + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "categories": [ + "subgraph" + ], + "is_subgraph": true + }, + "Erode_Precipitation": { + "inputs": { + "SRC": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "amount": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "seed": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "HeightField": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "density": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "Water Layer Name": { + "type": "string", + "default-value": "water", + "control": { + "name": "String" + } + }, + "Visual Water Enable": { + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "categories": [ + "subgraph" + ], + "is_subgraph": true + }, + "Erode_Slump_Debris": { + "inputs": { + "SRC": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "iterations": { + "type": "int", + "default-value": 10, + "control": { + "name": "Integer" + } + }, + "gridbias": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "seed": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "openborder": { + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "flow_rate": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "quant_amt": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "repose_angle": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "Visual Enable": { + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Height Layer Name": { + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "Material Layer Name to Slump": { + "type": "string", + "default-value": "material", + "control": { + "name": "String" + } + }, + "Use Stability": { + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Stability Layer Name": { + "type": "string", + "default-value": "stability", + "control": { + "name": "String" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "categories": [ + "subgraph" + ], + "is_subgraph": true + }, + "Erode_Smooth_Slump_Flow": { + "inputs": { + "SRC": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Spread Iterations": { + "type": "int", + "default-value": 100, + "control": { + "name": "Integer" + } + }, + "Spread Rate": { + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "Repose Angle": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "Height Factor": { + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "Entrainment Rate": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "Allow Material Outflow": { + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "HeightField": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Flow Smooth Rate": { + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "Material to Slump": { + "type": "string", + "default-value": "debris", + "control": { + "name": "String" + } + }, + "Flow Smooth Iterations": { + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "Height Layer Name": { + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "Visual Material Enable": { + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Add Material to Bedrock": { + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "Copy Flow to Mask": { + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "categories": [ + "subgraph" + ], + "is_subgraph": true + }, + "Erode_Stability_Blur_Cuda": { + "inputs": { + "SRC": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Blur Mode": { + "type": "string", + "default-value": "NINE_STENCIL", + "control": { + "name": "Enum", + "items": [ + "FIVE_STENCIL", + "NINE_STENCIL" + ] + } + }, + "Blur Radius": { + "type": "float", + "default-value": 20.0, + "control": { + "name": "Float" + } + }, + "Visual Enable": { + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Float Attr Name": { + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "HeightField": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "categories": [ + "subgraph" + ], + "is_subgraph": true + }, + "Erode_Terrain_Stability": { + "inputs": { + "SRC": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Stability Layer Name": { + "type": "string", + "default-value": "stability", + "control": { + "name": "String" + } + }, + "Debris Layer Name": { + "type": "string", + "default-value": "debris", + "control": { + "name": "String" + } + }, + "Sediment Layer Name": { + "type": "string", + "default-value": "sediment", + "control": { + "name": "String" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "categories": [ + "subgraph" + ], + "is_subgraph": true + }, + "Erode_Thermal": { + "inputs": { + "SRC": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "seed": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "iterations": { + "type": "int", + "default-value": 10, + "control": { + "name": "Integer" + } + }, + "openborder": { + "type": "int", + "default-value": 0, + "control": { + "name": "Integer" + } + }, + "gridbias": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "cut_angle": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "global_erosionrate": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "erosionrate": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "erodability": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "removalrate": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "maxdepth": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "Layer Binding": { + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Height Layer Name": { + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "Debris Layer Name": { + "type": "string", + "default-value": "debris", + "control": { + "name": "String" + } + }, + "Visual Enable": { + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "categories": [ + "subgraph" + ], + "is_subgraph": true + }, + "EstimateCameraMatrix": { + "inputs": [ + [ + "", + "image1", + "" + ], + [ + "", + "image2", + "" + ], + [ + "float", + "depth", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "EvalCurve": { + "inputs": [ + [ + "float", + "value", + "" + ], + [ + "curve", + "curve", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "float", + "value", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "curve" + ] + }, + "EvalCurveOnPrimAttr": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "string", + "attrName", + "tmp" + ], + [ + "string", + "dstName", + "" + ], + [ + "curve", + "curve", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "curve" + ] + }, + "EvalElmDeformationField": { + "inputs": [ + [ + "", + "shape", + "" + ], + [ + "", + "shapeElmView", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "shapeElmView", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "EvalFBXAnim": { + "inputs": [ + [ + "", + "frameid", + "" + ], + [ + "", + "data", + "" + ], + [ + "", + "animinfo", + "" + ], + [ + "", + "nodetree", + "" + ], + [ + "", + "bonetree", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "bool", + "evalBlendShape", + "0" + ], + [ + "enum TRUE FALSE", + "interAnimData", + "TRUE" + ], + [ + "bool", + "printAnimData", + "0" + ], + [ + "enum FROM_MAYA DEFAULT", + "unit", + "FROM_MAYA" + ], + [ + "bool", + "writeData", + "0" + ] + ], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "camera", + "" + ], + [ + "", + "light", + "" + ], + [ + "", + "matName", + "" + ], + [ + "", + "meshName", + "" + ], + [ + "", + "pathName", + "" + ], + [ + "", + "bsPrimsOrigin", + "" + ], + [ + "list", + "bsPrims", + "" + ], + [ + "", + "transDict", + "" + ], + [ + "", + "quatDict", + "" + ], + [ + "", + "scaleDict", + "" + ], + [ + "", + "writeData", + "" + ], + [ + "", + "visibility", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FBX" + ] + }, + "ExchangeFBXData": { + "inputs": [ + [ + "", + "d", + "" + ], + [ + "", + "animinfo", + "" + ], + [ + "", + "nodetree", + "" + ], + [ + "", + "bonetree", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "enum DATA DATAS MATS", + "dType", + "DATA" + ] + ], + "outputs": [ + [ + "", + "d", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FBX" + ] + }, + "ExpandZSPartition": { + "inputs": [ + [ + "", + "ZSPartition", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "int", + "extent", + "2" + ], + [ + "int", + "offset", + "0" + ] + ], + "outputs": [ + [ + "", + "ZSPartition", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "ExportFBX": { + "inputs": [ + [ + "string", + "custom_command", + "" + ], + [ + "string", + "extra_param", + " -b=5" + ], + [ + "string", + "abcpath", + "" + ], + [ + "string", + "fbxpath", + "" + ], + [ + "string", + "outpath", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "result", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FBX" + ] + }, + "ExportObjPrimitive": { + "inputs": [ + [ + "writepath", + "path", + "" + ], + [ + "", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "ExportVDBGrid": { + "inputs": [ + [ + "", + "data", + "" + ], + [ + "", + "path", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "ExportZpmPrimitive": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "writepath", + "path", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "ExtendList": { + "inputs": [ + [ + "", + "list1", + "" + ], + [ + "", + "list2", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "list", + "list1", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "list" + ] + }, + "ExtractAxis": { + "inputs": [ + [ + "AxisObject", + "math", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "vec3f", + "origin", + "" + ], + [ + "vec3f", + "axisX", + "" + ], + [ + "vec3f", + "axisY", + "" + ], + [ + "vec3f", + "axisZ", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "math" + ] + }, + "ExtractCameraData": { + "inputs": [ + [ + "string", + "key", + "camera1" + ], + [ + "", + "camobject", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "pos", + "" + ], + [ + "", + "up", + "" + ], + [ + "", + "view", + "" + ], + [ + "", + "focL", + "" + ], + [ + "", + "haov", + "" + ], + [ + "", + "waov", + "" + ], + [ + "", + "hfov", + "" + ], + [ + "", + "filmW", + "" + ], + [ + "", + "filmH", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FBX" + ] + }, + "ExtractDict": { + "inputs": [ + [ + "DictObject", + "dict", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "DST", + "" + ] + ], + "categories": [ + "dict" + ] + }, + "ExtractFBXData": { + "inputs": [ + [ + "FBXData", + "data", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "IVertices", + "vertices", + "" + ], + [ + "IIndices", + "indices", + "" + ], + [ + "IMaterial", + "material", + "" + ], + [ + "IBoneOffset", + "boneOffset", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FBX" + ] + }, + "ExtractLegacyDict": { + "inputs": [ + [ + "DictObject", + "dict", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "ExtractList": { + "inputs": [ + [ + "", + "list", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "DST", + "" + ] + ], + "categories": [ + "list" + ] + }, + "ExtractMatData": { + "inputs": [ + [ + "", + "data", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "list", + "datas", + "" + ], + [ + "", + "matName", + "" + ], + [ + "list", + "texLists", + "" + ], + [ + "dict", + "texMaps", + "" + ], + [ + "dict", + "matValues", + "" + ], + [ + "dict", + "texUvs", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FBX" + ] + }, + "ExtractMatDict": { + "inputs": [ + [ + "IMaterial", + "material", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "mats", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FBX" + ] + }, + "ExtractMatName": { + "inputs": [ + [ + "", + "material", + "" + ], + [ + "", + "key", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "name", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FBX" + ] + }, + "ExtractMatTexList": { + "inputs": [ + [ + "IMaterial", + "material", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "texLists", + "" + ], + [ + "", + "name", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FBX" + ] + }, + "ExtractMeshSurface": { + "inputs": [ + [ + "quad (tet) mesh", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "enum all point edge surface", + "op", + "all" + ] + ], + "outputs": [ + [ + "mesh with surface topos", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "ExtractPrimitiveFromZSParticles": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "ExtractSurfaceMeshByTag": { + "inputs": [ + [ + "", + "volume", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "primSurf", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "ExtractTetEdges": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "PBD" + ] + }, + "FLIPGetEnvironArgs": { + "inputs": [ + [ + "", + "environArgs", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "dt", + "" + ], + [ + "", + "portion", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FLIP" + ] + }, + "FLIPMakeAbsorber": { + "inputs": [ + [ + "", + "AbsorbSDF", + "" + ], + [ + "", + "isEnabled", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "Absorber", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FLIP" + ] + }, + "FLIPMakeCollider": { + "inputs": [ + [ + "", + "StaticSDF", + "" + ], + [ + "", + "dynamicPrim", + "" + ], + [ + "", + "dx", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "Collider", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FLIP" + ] + }, + "FLIPMakeEmitter": { + "inputs": [ + [ + "", + "EmitSDF", + "" + ], + [ + "", + "VelGrid", + "" + ], + [ + "", + "isEnabled", + "" + ], + [ + "", + "VelInit", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "Emitter", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FLIP" + ] + }, + "FLIPMakeEnviron": { + "inputs": [ + [ + "", + "Collider", + "" + ], + [ + "", + "Emitter", + "" + ], + [ + "", + "Absorber", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "Environ", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FLIP" + ] + }, + "FLIPMakeParticles": { + "inputs": [ + [ + "", + "TankSDF", + "" + ], + [ + "", + "dx", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "Particles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FLIP" + ] + }, + "FLIPSimTemplate": { + "inputs": [ + [ + "", + "Velocity", + "" + ], + [ + "", + "Collision", + "" + ], + [ + "", + "PostAdvVel", + "" + ], + [ + "", + "Pressure", + "" + ], + [ + "", + "CollisionVel", + "" + ], + [ + "", + "DynEmitter", + "" + ], + [ + "", + "ifEmit", + "" + ], + [ + "", + "Particles", + "" + ], + [ + "", + "VelocityWeights", + "" + ], + [ + "", + "dx", + "" + ], + [ + "", + "ExtractedLiquidSDF", + "" + ], + [ + "", + "Gravity", + "" + ], + [ + "", + "CellFWeight", + "" + ], + [ + "", + "Divergence", + "" + ], + [ + "", + "LiquidSDF", + "" + ], + [ + "", + "dt", + "" + ], + [ + "", + "DynEmitterVelVolume", + "" + ], + [ + "", + "DynEmitterVelInit", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "Particles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FLIPSolver" + ] + }, + "FastClothSystemForceField": { + "inputs": [ + [ + "", + "ZSFastClothSystem", + "" + ], + [ + "", + "ZSLevelSet", + "" + ], + [ + "float", + "wind_drag", + "" + ], + [ + "float", + "wind_density", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSFastClothSystem", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "FileReadString": { + "inputs": [ + [ + "readpath", + "path", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "string", + "str", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "string" + ] + }, + "FileWriteString": { + "inputs": [ + [ + "string", + "str", + "" + ], + [ + "writepath", + "path", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "DST", + "" + ] + ], + "categories": [ + "string" + ] + }, + "FlashRender": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "end", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zelloWorld" + ] + }, + "FleshDynamicStepping": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "kinematic_boundary", + "" + ], + [ + "", + "gravity", + "" + ], + [ + "", + "Acts", + "" + ], + [ + "", + "driven_boudary", + "" + ], + [ + "", + "kinematics", + "" + ], + [ + "int", + "max_newton_iters", + "5" + ], + [ + "float", + "cg_res", + "" + ], + [ + "string", + "driven_tag", + "bone_bw" + ], + [ + "float", + "driven_weight", + "" + ], + [ + "string", + "muscle_id_tag", + "ms_id_tag" + ], + [ + "float", + "cstiffness", + "" + ], + [ + "float", + "in_collisionEps", + "" + ], + [ + "float", + "out_collisionEps", + "" + ], + [ + "float", + "kineCstiffness", + "" + ], + [ + "float", + "kine_inCollisionEps", + "" + ], + [ + "float", + "kine_outCollisionEps", + "" + ], + [ + "float", + "dt", + "" + ], + [ + "float", + "newton_res", + "" + ], + [ + "float", + "kd_alpha", + "" + ], + [ + "float", + "kd_beta", + "" + ], + [ + "float", + "kd_theta", + "" + ], + [ + "float", + "aniso_strength", + "" + ], + [ + "float", + "binderStiffness", + "" + ], + [ + "float", + "planeConsStiffness", + "" + ], + [ + "bool", + "use_plane_constraint", + "0" + ], + [ + "bool", + "use_binder_constraint", + "0" + ], + [ + "bool", + "use_self_collision", + "0" + ], + [ + "bool", + "use_sticky_condition", + "0" + ], + [ + "bool", + "with_kinematic_potential", + "0" + ], + [ + "bool", + "use_kinematics_collision", + "0" + ], + [ + "bool", + "use_anisotropic_jiggling", + "0" + ], + [ + "bool", + "preserve_newton_step", + "0" + ], + [ + "int", + "nm_record_newton_step", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "binderInversionTag", + "binder_inversion" + ], + [ + "string", + "binderTag", + "binder_tag" + ], + [ + "string", + "binderThicknessTag", + "binder_thickness" + ], + [ + "int", + "max_cg_iters", + "1000" + ], + [ + "string", + "planeConsBaryTag", + "planeConsBaryTag" + ], + [ + "string", + "planeConsIDTag", + "planeConsIDTag" + ], + [ + "string", + "planeConsNrmTag", + "planeConsNrmTag" + ], + [ + "string", + "planeConsPosTag", + "planeConsPosTag" + ], + [ + "bool", + "use_line_search", + "0" + ] + ], + "outputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "FollowUpReferencePrimitive": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "PrimitiveObject", + "ref_surf_prim", + "" + ], + [ + "string", + "idTag", + "bvh_id" + ], + [ + "string", + "weightTag", + "bvh_ws" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zs_geom" + ] + }, + "FuncBegin": { + "inputs": [ + [ + "", + "extraArgs", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "args", + "" + ], + [ + "", + "FUNC", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "control" + ] + }, + "FuncCall": { + "inputs": [ + [ + "FunctionObject", + "function", + "" + ], + [ + "FunctionObject", + "args", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "FunctionObject", + "rets", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "control" + ] + }, + "FuncCallInDict": { + "inputs": [ + [ + "DictObject", + "funcDict", + "" + ], + [ + "bool", + "mayNotFound", + "1" + ], + [ + "string", + "dictKey", + "" + ], + [ + "DictObject", + "args", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "DictObject", + "rets", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "control" + ] + }, + "FuncEnd": { + "inputs": [ + [ + "", + "rets", + "" + ], + [ + "", + "FUNC", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "function", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "control" + ] + }, + "FuncSimpleBegin": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "arg", + "" + ], + [ + "", + "FUNC", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "control" + ] + }, + "FuncSimpleCall": { + "inputs": [ + [ + "FunctionObject", + "function", + "" + ], + [ + "IObject", + "arg", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "IObject", + "ret", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "control" + ] + }, + "FuncSimpleCallInDict": { + "inputs": [ + [ + "DictObject", + "funcDict", + "" + ], + [ + "string", + "dictKey", + "" + ], + [ + "IObject", + "arg", + "" + ], + [ + "bool", + "mayNotFound", + "1" + ], + [ + "IObject", + "notFoundRet", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "bool", + "isFound", + "" + ], + [ + "IObject", + "ret", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "control" + ] + }, + "FuncSimpleEnd": { + "inputs": [ + [ + "", + "ret", + "" + ], + [ + "", + "FUNC", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "function", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "control" + ] + }, + "Gather2DFiniteDifference": { + "inputs": [ + [ + "PrimitiveObject", + "grid", + "" + ], + [ + "int", + "nx", + "1" + ], + [ + "int", + "ny", + "1" + ], + [ + "string", + "channel", + "pos" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "enum FIVE_STENCIL NINE_STENCIL", + "OpType", + "FIVE_STENCIL" + ], + [ + "enum vec3 float", + "attrT", + "float" + ] + ], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zenofx" + ] + }, + "GenerateHairs": { + "inputs": [ + [ + "PrimitiveObject", + "points", + "" + ], + [ + "PrimitiveObject", + "guide_lines", + "" + ], + [ + "bool", + "interpAttrs", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zs_hair" + ] + }, + "GenerateSpectrum": { + "inputs": [ + [ + "", + "real_ocean", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Ocean" + ] + }, + "GenericFLIPSolver": { + "inputs": [ + [ + "float", + "dt", + "" + ], + [ + "float", + "dx", + "" + ], + [ + "vec3f", + "gravity", + "" + ], + [ + "", + "InitSDF", + "" + ], + [ + "", + "EmitSDF", + "" + ], + [ + "", + "EmitVelGrid", + "" + ], + [ + "vec3f", + "EmitVelValue", + "" + ], + [ + "bool", + "EmitEnabled", + "0" + ], + [ + "", + "StaticCollideSDF", + "" + ], + [ + "", + "DynamicCollidePrim", + "" + ], + [ + "", + "AbsorbSDF", + "" + ], + [ + "bool", + "AbsorbEnabled", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "Particles", + "" + ], + [ + "", + "LiquidSDF", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FLIP" + ] + }, + "GetAZLetters": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "AToZ", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zelloWorld" + ] + }, + "GetCurveControlPoint": { + "inputs": [ + [ + "curve", + "curve", + "" + ], + [ + "string", + "key", + "x" + ], + [ + "int", + "index", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "float", + "point_x", + "" + ], + [ + "float", + "point_y", + "" + ], + [ + "vec2f", + "left_handler", + "" + ], + [ + "vec2f", + "right_handler", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "curve" + ] + }, + "GetFrameNum": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "FrameNum", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "frame" + ] + }, + "GetFramePortion": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "FramePortion", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "frame" + ] + }, + "GetFrameTime": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "time", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "frame" + ] + }, + "GetFrameTimeElapsed": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "time", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "frame" + ] + }, + "GetPerlinNoise": { + "inputs": [ + [ + "vec3f", + "vec3", + "" + ], + [ + "", + "seed", + "" + ], + [ + "float", + "freq", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "noise", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "noise" + ] + }, + "GetRigidSamplePos": { + "inputs": [ + [ + "", + "RigidObject", + "" + ], + [ + "", + "localGeo", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "wsPrim", + "" + ], + [ + "", + "MassCenter", + "" + ], + [ + "", + "Rotation", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Rigid" + ] + }, + "GetTetMeshElementView": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "elmView", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "GetTime": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "time", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "frame" + ] + }, + "GetUserData": { + "inputs": [ + [ + "", + "object", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "key", + "" + ] + ], + "outputs": [ + [ + "", + "data", + "" + ], + [ + "bool", + "hasValue", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "lifecycle" + ] + }, + "GetUserData2": { + "inputs": [ + [ + "", + "object", + "" + ], + [ + "string", + "key", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "data", + "" + ], + [ + "bool", + "hasValue", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "lifecycle" + ] + }, + "GetVDBBound": { + "inputs": [ + [ + "", + "vdbGrid", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "vec3f", + "bmin", + "" + ], + [ + "vec3f", + "bmax", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "openvdb" + ] + }, + "GetVDBPoints": { + "inputs": [ + [ + "", + "grid", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "pars", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "GetVDBPointsDroplets": { + "inputs": [ + [ + "", + "grid", + "" + ], + [ + "", + "sdf", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "openvdb" + ] + }, + "GetVDBVoxelSize": { + "inputs": [ + [ + "", + "vdbGrid", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "dx", + "" + ], + [ + "", + "dy", + "" + ], + [ + "", + "dz", + "" + ], + [ + "", + "dxyz", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "openvdb" + ] + }, + "Grid2DSample": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "PrimitiveObject", + "sampleGrid", + "" + ], + [ + "int", + "nx", + "1" + ], + [ + "int", + "ny", + "1" + ], + [ + "float", + "h", + "" + ], + [ + "vec3f", + "bmin", + "" + ], + [ + "string", + "channel", + "*" + ], + [ + "string", + "sampleBy", + "pos" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zenofx" + ] + }, + "Grid2DSample_M": { + "inputs": [ + [ + "PrimitiveObject", + "grid", + "" + ], + [ + "PrimitiveObject", + "grid2", + "" + ], + [ + "int", + "nx", + "1" + ], + [ + "int", + "ny", + "1" + ], + [ + "float", + "h", + "" + ], + [ + "vec3f", + "bmin", + "" + ], + [ + "string", + "channel", + "pos" + ], + [ + "string", + "sampleBy", + "pos" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "enum vec3 float", + "attrT", + "float" + ] + ], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "WBTest" + ] + }, + "Group": { + "inputs": [], + "params": [], + "outputs": [], + "categories": [ + "layout" + ] + }, + "HDRSky": { + "inputs": [ + [ + "bool", + "enable", + "1" + ], + [ + "readpath", + "path", + "" + ], + [ + "float", + "rotation", + "" + ], + [ + "vec3f", + "rotation3d", + "" + ], + [ + "float", + "strength", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "HDRSky", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "shader" + ] + }, + "HF_Blur_OpenCV": { + "inputs": { + "SRC": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Float Attr Name": { + "type": "string", + "default-value": "mask", + "control": { + "name": "String" + } + }, + "Blur Type": { + "type": "string", + "default-value": "blur", + "control": { + "name": "Enum", + "items": [ + "blur", + "erode", + "dilate" + ] + } + }, + "Blur Radius": { + "type": "int", + "default-value": 50, + "control": { + "name": "Integer" + } + }, + "Weight Name": { + "type": "string", + "default-value": "weight", + "control": { + "name": "String" + } + }, + "Clone": { + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + } + }, + "params": {}, + "outputs": { + "HeightField": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "categories": [ + "subgraph" + ], + "is_subgraph": true + }, + "HF_Creation": { + "inputs": { + "SRC": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Terrain Position": { + "type": "vec3f", + "default-value": [ + 0.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Terrain Resolution": { + "type": "int", + "default-value": 1000, + "control": { + "name": "Integer" + } + }, + "Terrain Scale": { + "type": "float", + "default-value": 1000.0, + "control": { + "name": "Float" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "categories": [ + "subgraph" + ], + "is_subgraph": true + }, + "HF_Curl_Noise": { + "inputs": { + "SRC": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Noise Offset": { + "type": "vec3f", + "default-value": [ + 125.0, + 125.0, + 12879.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Noise Element Size": { + "type": "float", + "default-value": 500.0, + "control": { + "name": "Float" + } + }, + "Noise Amp": { + "type": "float", + "default-value": 20.0, + "control": { + "name": "Float" + } + }, + "Noise Octaves": { + "type": "float", + "default-value": 8.0, + "control": { + "name": "Float" + } + }, + "Noise Roughness": { + "type": "float", + "default-value": 1.2000000476837159, + "control": { + "name": "Float" + } + }, + "Mask": { + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Use Mask": { + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Mask Layer": { + "type": "string", + "default-value": "mask", + "control": { + "name": "String" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "categories": [ + "subgraph" + ], + "is_subgraph": true + }, + "HF_Erode": { + "inputs": { + "SRC": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "高度场地形": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Freeze at Frame": { + "type": "int", + "default-value": 10, + "control": { + "name": "Integer" + } + }, + "热侵蚀": { + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "热侵蚀种子值": { + "type": "float", + "default-value": 4650.0, + "control": { + "name": "Float" + } + }, + "热侵蚀率": { + "type": "float", + "default-value": 0.029999999329447748, + "control": { + "name": "Float" + } + }, + "热侵蚀风化率": { + "type": "float", + "default-value": 0.699999988079071, + "control": { + "name": "Float" + } + }, + "热侵蚀截止角": { + "type": "float", + "default-value": 35.0, + "control": { + "name": "Float" + } + }, + "热侵蚀碎屑流淌种子值": { + "type": "float", + "default-value": 9676.7900390625, + "control": { + "name": "Float" + } + }, + "热侵蚀碎屑流淌迭代次数": { + "type": "int", + "default-value": 10, + "control": { + "name": "Integer" + } + }, + "Use Stability": { + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "降水": { + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "降水量": { + "type": "float", + "default-value": 0.20000000298023225, + "control": { + "name": "Float" + } + }, + "降水密度": { + "type": "float", + "default-value": 0.05000000074505806, + "control": { + "name": "Float" + } + }, + "蒸发率": { + "type": "float", + "default-value": -0.014999999664723874, + "control": { + "name": "Float" + } + }, + "水侵蚀": { + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "水侵蚀种子值": { + "type": "float", + "default-value": 12.34000015258789, + "control": { + "name": "Float" + } + }, + "水侵蚀迭代次数": { + "type": "int", + "default-value": null, + "control": { + "name": "Integer" + } + }, + "水侵蚀率": { + "type": "float", + "default-value": 0.4000000059604645, + "control": { + "name": "Float" + } + }, + "河堤侵蚀角度": { + "type": "float", + "default-value": 70.0, + "control": { + "name": "Float" + } + }, + "水侵蚀溶解率": { + "type": "float", + "default-value": 0.10000000149011612, + "control": { + "name": "Float" + } + }, + "层绑定": { + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Height Layer Name": { + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "Water Layer Name": { + "type": "string", + "default-value": "water", + "control": { + "name": "String" + } + }, + "Debris Layer Name": { + "type": "string", + "default-value": "debris", + "control": { + "name": "String" + } + }, + "Sediment Layer Name": { + "type": "string", + "default-value": "sediment", + "control": { + "name": "String" + } + }, + "Stability Layer Name": { + "type": "string", + "default-value": "stability", + "control": { + "name": "String" + } + }, + "初始化高度场地形": { + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Visualize Enable": { + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Visualize Thermal Debris": { + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Visualize Slump Debris": { + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Visualize Hydro Water": { + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Visualize Rain Water": { + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Visualize Smooth Debris": { + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Visualize Smooth Water": { + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "高度场地形": { + "type": "" + } + }, + "categories": [ + "subgraph" + ], + "is_subgraph": true + }, + "HF_Erode_Init": { + "inputs": { + "SRC": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Height Layer Name": { + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "Water Layer Name": { + "type": "string", + "default-value": "water", + "control": { + "name": "String" + } + }, + "Debris Layer Name": { + "type": "string", + "default-value": "debris", + "control": { + "name": "String" + } + }, + "Sediment Layer Name": { + "type": "string", + "default-value": "sediment", + "control": { + "name": "String" + } + }, + "Stability Layer Name": { + "type": "string", + "default-value": "stability", + "control": { + "name": "String" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "categories": [ + "subgraph" + ], + "is_subgraph": true + }, + "HF_Layer_Combine": { + "inputs": { + "SRC": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Input A Layer": { + "type": "string", + "default-value": "a", + "control": { + "name": "String" + } + }, + "Input B Layer": { + "type": "string", + "default-value": "b", + "control": { + "name": "String" + } + }, + "Combine Type": { + "type": "string", + "default-value": "Replace ( B )", + "control": { + "name": "Enum", + "items": [ + "Replace ( B )", + "Add ( A + B )", + "Subtract ( A - B )", + "Diff ( abs( A - B ) )", + "Multiply ( A * B )", + "Max ( max( A, B ) )", + "Min ( min( A, B ) )", + "Blend ( A*( 1 - blend ) + B*blend )" + ] + } + }, + " Blend": { + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "Output C Layer": { + "type": "string", + "default-value": "c", + "control": { + "name": "String" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "categories": [ + "subgraph" + ], + "is_subgraph": true + }, + "HF_Mask_by_Curvature": { + "inputs": { + "SRC": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Curvature Layer Name": { + "type": "string", + "default-value": "k", + "control": { + "name": "String" + } + }, + "Curvature Ramp": { + "type": "curve", + "default-value": { + "objectType": "curve", + "timeline": false, + "x": { + "range": { + "xFrom": 0.0, + "xTo": 1.0, + "yFrom": 0.0, + "yTo": 1.0 + }, + "nodes": [ + { + "x": 0.0, + "y": 0.0, + "left-handle": { + "x": 0.0, + "y": 0.0 + }, + "right-handle": { + "x": 0.0, + "y": 0.0 + }, + "type": "asym", + "lockX": false, + "lockY": false + }, + { + "x": 1.0, + "y": 1.0, + "left-handle": { + "x": 0.0, + "y": 0.0 + }, + "right-handle": { + "x": 0.0, + "y": 0.0 + }, + "type": "asym", + "lockX": false, + "lockY": false + } + ] + } + }, + "control": { + "name": "Curve" + } + }, + "Max Curvature": { + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "categories": [ + "subgraph" + ], + "is_subgraph": true + }, + "HF_Mask_by_Object": { + "inputs": { + "SRC": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Prim Input": { + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "HeightField": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Geo to Build Mask From": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Masking": { + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Masking By Geometry": { + "type": "string", + "default-value": "Either Side", + "control": { + "name": "Enum", + "items": [ + "Either Side", + "Above HeightField", + "Below HeightField" + ] + } + }, + "Invert Mask": { + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Max Distance": { + "type": "float", + "default-value": 1000.0, + "control": { + "name": "Float" + } + }, + "Mask Layer": { + "type": "string", + "default-value": "mask", + "control": { + "name": "String" + } + }, + "Blur": { + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Blur Type": { + "type": "string", + "default-value": "OpenCV Blur", + "control": { + "name": "Enum", + "items": [ + "OpenCV Blur", + "Zeno Blur" + ] + } + }, + " Zeno Blur Method": { + "type": "string", + "default-value": "FIVE_STENCIL", + "control": { + "name": "Enum", + "items": [ + "FIVE_STENCIL", + "NINE_STENCIL" + ] + } + }, + "Blur Radius": { + "type": "int", + "default-value": 50, + "control": { + "name": "Integer" + } + }, + "Blur Weight": { + "type": "string", + "default-value": "weight", + "control": { + "name": "String" + } + }, + "Combine Mask ( B ) with Existing ( A )": { + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Combine Type": { + "type": "string", + "default-value": "Replace ( B )", + "control": { + "name": "Enum", + "items": [ + "Replace ( B )", + "Add ( A + B )", + "Subtract ( A - B )", + "Diff ( abs( A - B ) )", + "Multiply ( A * B )", + "Max ( max( A, B ) )", + "Min ( min( A, B ) )", + "Blend ( A*( 1 - blend ) + B*blend )" + ] + } + }, + " Blend": { + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + } + }, + "params": {}, + "outputs": { + "HeightField": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "categories": [ + "subgraph" + ], + "is_subgraph": true + }, + "HF_MaxMin_Value": { + "inputs": { + "SRC": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Height Layer Name": { + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "categories": [ + "subgraph" + ], + "is_subgraph": true + }, + "HF_Noise_Analytic_2D": { + "inputs": { + "SRC": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "offset": { + "type": "vec3f", + "default-value": [ + 0.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "roughness": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "maxOctaves": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "elementSize": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "prim": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "H": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "scale": { + "type": "vec3f", + "default-value": [ + 0.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "lacunarity": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "amp": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "steps": { + "type": "int", + "default-value": 2, + "control": { + "name": "Integer" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "prim": { + "type": "" + } + }, + "categories": [ + "subgraph" + ], + "is_subgraph": true + }, + "HF_Noise_Core": { + "inputs": { + "SRC": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Noise Basic Setting": { + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Center Noise": { + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "Amplitude": { + "type": "vec3f", + "default-value": [ + 500.0, + 500.0, + 500.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Element Size": { + "type": "vec3f", + "default-value": [ + 500.0, + 500.0, + 500.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Scale": { + "type": "vec3f", + "default-value": [ + 1.0, + 1.0, + 1.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Offset": { + "type": "vec3f", + "default-value": [ + 0.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Noise Advanced Setting": { + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Noise Type": { + "type": "string", + "default-value": "perlin", + "control": { + "name": "Enum", + "items": [ + "perlin", + "simplex", + "worley" + ] + } + }, + " Worley Offset": { + "type": "vec3f", + "default-value": [ + 0.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + " Worley F1-F2 Type": { + "type": "string", + "default-value": "F1", + "control": { + "name": "Enum", + "items": [ + "F1", + "F2-F1" + ] + } + }, + " Worley Distance Type": { + "type": "string", + "default-value": "Euclidean", + "control": { + "name": "Enum", + "items": [ + "Euclidean", + "Chebyshev", + "Manhattan" + ] + } + }, + "Fractal Type": { + "type": "string", + "default-value": "hybridTerrain", + "control": { + "name": "Enum", + "items": [ + "fBm", + "hybridTerrain", + "ridgedTerrain" + ] + } + }, + " Max Octaves": { + "type": "float", + "default-value": 8.0, + "control": { + "name": "Float" + } + }, + " Roughness": { + "type": "float", + "default-value": 0.5, + "control": { + "name": "Float" + } + }, + " Lacunarity": { + "type": "float", + "default-value": 2.0, + "control": { + "name": "Float" + } + }, + " Persistence": { + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + " H": { + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + " Gain": { + "type": "float", + "default-value": 0.5, + "control": { + "name": "Float" + } + }, + " Bias": { + "type": "float", + "default-value": 0.800000011920929, + "control": { + "name": "Float" + } + }, + "Post Processing": { + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Fold Enable": { + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Fold Gain": { + "type": "float", + "default-value": 0.5, + "control": { + "name": "Float" + } + }, + "Distortion": { + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Distort Enable": { + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Distortion Amp": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "Distortion Freq": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + } + }, + "params": {}, + "outputs": { + "HeightField": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "categories": [ + "subgraph" + ], + "is_subgraph": true + }, + "HF_Project": { + "inputs": { + "SRC": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Project Target Prim": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Project Dir": { + "type": "string", + "default-value": "Above HeightField", + "control": { + "name": "Enum", + "items": [ + "Above HeightField", + "Below HeightField" + ] + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "categories": [ + "subgraph" + ], + "is_subgraph": true + }, + "HF_Resample": { + "inputs": { + "SRC": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Blur_Raius": { + "type": "int", + "default-value": 5, + "control": { + "name": "Integer" + } + }, + "Resolution": { + "type": "int", + "default-value": 1000, + "control": { + "name": "Integer" + } + }, + "HeightField": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "categories": [ + "subgraph" + ], + "is_subgraph": true + }, + "HF_Terrace": { + "inputs": { + "SRC": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Min Height": { + "type": "float", + "default-value": -10.0, + "control": { + "name": "Float" + } + }, + "Use Mask Layer": { + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Slop Mask Smoothing": { + "type": "int", + "default-value": 3, + "control": { + "name": "Integer" + } + }, + "Mask": { + "type": "string", + "default-value": "mask", + "control": { + "name": "String" + } + }, + "Mesa Max Slope": { + "type": "float", + "default-value": 5.0, + "control": { + "name": "Float" + } + }, + "Fade Ramp": { + "type": "curve", + "default-value": { + "objectType": "curve", + "timeline": true, + "x": { + "range": { + "xFrom": 0.0, + "xTo": 1.0, + "yFrom": 0.0, + "yTo": 1.0 + }, + "nodes": [ + { + "x": 0.0, + "y": 0.0, + "left-handle": { + "x": 0.0, + "y": 0.0 + }, + "right-handle": { + "x": 0.0, + "y": 0.0 + }, + "type": "asym", + "lockX": false, + "lockY": false + }, + { + "x": 1.0, + "y": 1.0, + "left-handle": { + "x": 0.0, + "y": 0.0 + }, + "right-handle": { + "x": 0.0, + "y": 0.0 + }, + "type": "asym", + "lockX": false, + "lockY": false + } + ] + } + }, + "control": { + "name": "Curve" + } + }, + "Step Offset": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "Step Ramp": { + "type": "curve", + "default-value": { + "objectType": "curve", + "timeline": true, + "x": { + "range": { + "xFrom": 0.0, + "xTo": 1.0, + "yFrom": 0.0, + "yTo": 1.0 + }, + "nodes": [ + { + "x": 0.0, + "y": 1.0, + "left-handle": { + "x": 0.0, + "y": 0.0 + }, + "right-handle": { + "x": 0.0, + "y": 0.0 + }, + "type": "asym", + "lockX": false, + "lockY": false + }, + { + "x": 1.0, + "y": 0.0, + "left-handle": { + "x": 0.0, + "y": 0.0 + }, + "right-handle": { + "x": 0.0, + "y": 0.0 + }, + "type": "asym", + "lockX": false, + "lockY": false + } + ] + } + }, + "control": { + "name": "Curve" + } + }, + "Output Cliff Layer": { + "type": "string", + "default-value": "cliffs", + "control": { + "name": "String" + } + }, + "Smooth Edges": { + "type": "int", + "default-value": 3, + "control": { + "name": "Integer" + } + }, + "Step Size": { + "type": "float", + "default-value": null, + "control": { + "name": "Float" + } + }, + "Fade": { + "type": "float", + "default-value": 0.0, + "control": { + "name": "Float" + } + }, + "Min Mask": { + "type": "float", + "default-value": 0.009999999776482582, + "control": { + "name": "Float" + } + }, + "Max Height": { + "type": "float", + "default-value": 150.0, + "control": { + "name": "Float" + } + }, + "HeightField": { + "type": "string", + "default-value": null, + "control": { + "name": "String" + } + }, + "Cliff Min Slope": { + "type": "float", + "default-value": 60.0, + "control": { + "name": "Float" + } + }, + "Output Mesa Layer": { + "type": "string", + "default-value": "mesa", + "control": { + "name": "String" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "categories": [ + "subgraph" + ], + "is_subgraph": true + }, + "HF_Terrain_Noise": { + "inputs": { + "SRC": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Noise Apply Layer": { + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "Noise Type": { + "type": "string", + "default-value": "perlin", + "control": { + "name": "Enum", + "items": [ + "perlin", + "simplex", + "worley" + ] + } + }, + "Fractal Type": { + "type": "string", + "default-value": "hybridTerrain", + "control": { + "name": "Enum", + "items": [ + "fBm", + "hybridTerrain", + "ridgedTerrain" + ] + } + }, + "Noise Offset": { + "type": "vec3f", + "default-value": [ + 600.0, + 0.0, + 1200.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Noise Element Size": { + "type": "vec3f", + "default-value": [ + 0.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Noise Amp": { + "type": "vec3f", + "default-value": [ + 500.0, + 500.0, + 500.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Noise Octaves": { + "type": "float", + "default-value": 8.0, + "control": { + "name": "Float" + } + }, + "Noise Roughness": { + "type": "float", + "default-value": 0.5, + "control": { + "name": "Float" + } + }, + "Mask": { + "type": "group-line", + "default-value": null, + "control": { + "name": "group-line" + } + }, + "Use Mask": { + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Mask Layer": { + "type": "string", + "default-value": "mask", + "control": { + "name": "String" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "categories": [ + "subgraph" + ], + "is_subgraph": true + }, + "HF_Visual_Mask": { + "inputs": { + "SRC": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Clone HF for Visualize": { + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "Mask Name": { + "type": "string", + "default-value": "mask", + "control": { + "name": "String" + } + }, + "Reset Base Color": { + "type": "bool", + "default-value": true, + "control": { + "name": "Boolean" + } + }, + "Visualize Color": { + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + } + }, + "params": {}, + "outputs": { + "HeightField": { + "type": "" + }, + "DST": { + "type": "" + } + }, + "categories": [ + "subgraph" + ], + "is_subgraph": true + }, + "HF_Visualize": { + "inputs": { + "SRC": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "HeightField": { + "type": "", + "default-value": null, + "control": { + "name": "" + } + }, + "Final Color Scale": { + "type": "float", + "default-value": 1.0, + "control": { + "name": "Float" + } + }, + "Heatmap": { + "type": "color", + "default-value": null, + "control": { + "name": "Color" + } + }, + "Revert Heatmap": { + "type": "bool", + "default-value": false, + "control": { + "name": "Boolean" + } + }, + "Height Layer Name": { + "type": "string", + "default-value": "height", + "control": { + "name": "String" + } + }, + "Layer_1": { + "type": "string", + "default-value": "Layer_1", + "control": { + "name": "String" + } + }, + "Color_1": { + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_2": { + "type": "string", + "default-value": "Layer_2", + "control": { + "name": "String" + } + }, + "Color_2": { + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_3": { + "type": "string", + "default-value": "Layer_3", + "control": { + "name": "String" + } + }, + "Color_3": { + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_4": { + "type": "string", + "default-value": "Layer_4", + "control": { + "name": "String" + } + }, + "Color_4": { + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_5": { + "type": "string", + "default-value": "Layer_5", + "control": { + "name": "String" + } + }, + "Color_5": { + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_6": { + "type": "string", + "default-value": "Layer_6", + "control": { + "name": "String" + } + }, + "Color_6": { + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_7": { + "type": "string", + "default-value": "Layer_7", + "control": { + "name": "String" + } + }, + "Color_7": { + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_8": { + "type": "string", + "default-value": "Layer_8", + "control": { + "name": "String" + } + }, + "Color_8": { + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + }, + "Layer_9": { + "type": "string", + "default-value": "Layer_9", + "control": { + "name": "String" + } + }, + "Color_9": { + "type": "vec3f", + "default-value": [ + 1.0, + 0.0, + 0.0 + ], + "control": { + "name": "Float Vector 3" + } + } + }, + "params": {}, + "outputs": { + "DST": { + "type": "" + }, + "HeightField": { + "type": "" + } + }, + "categories": [ + "subgraph" + ], + "is_subgraph": true + }, + "HF_maskByFeature": { + "inputs": [ + [ + "", + "HeightField", + "" + ], + [ + "string", + "height_layer", + "height" + ], + [ + "string", + "mask_layer", + "mask" + ], + [ + "int", + "smooth_radius", + "1" + ], + [ + "bool", + "use_slope", + "0" + ], + [ + "float", + "min_slopeangle", + "" + ], + [ + "float", + "max_slopeangle", + "" + ], + [ + "bool", + "use_direction", + "0" + ], + [ + "float", + "goal_angle", + "" + ], + [ + "float", + "angle_spread", + "" + ], + [ + "bool", + "use_height", + "0" + ], + [ + "float", + "min_height", + "" + ], + [ + "float", + "max_height", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "HeightField", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "erode" + ] + }, + "HeatmapFromImage": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "int", + "startPos", + "0" + ], + [ + "int", + "endPos", + "-1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "heatmap", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "visualize" + ] + }, + "HeightStarPattern": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "float", + "rotate", + "" + ], + [ + "float", + "anglerandom", + "" + ], + [ + "float", + "shapesize", + "" + ], + [ + "float", + "posjitter", + "" + ], + [ + "float", + "sharpness", + "" + ], + [ + "float", + "starness", + "" + ], + [ + "int", + "sides", + "5" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "erode" + ] + }, + "HelperMute": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "NOTE", + "Dont-use-this-node-directly" + ] + ], + "outputs": [ + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "HelperOnce": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "NOTE", + "Dont-use-this-node-directly" + ] + ], + "outputs": [ + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "INTERN_PreViewVDB": { + "inputs": [ + [ + "", + "arg0", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ret0", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "IPCSystemClothBinding": { + "inputs": [ + [ + "", + "ZSIPCSystem", + "" + ], + [ + "", + "ZSLevelSet", + "" + ], + [ + "bool", + "hard_constraint", + "1" + ], + [ + "float", + "dist_cap", + "" + ], + [ + "float", + "rest_length", + "" + ], + [ + "float", + "strength", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSIPCSystem", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "IPCSystemForceField": { + "inputs": [ + [ + "", + "ZSIPCSystem", + "" + ], + [ + "", + "ZSLevelSet", + "" + ], + [ + "float", + "wind_drag", + "" + ], + [ + "float", + "wind_density", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSIPCSystem", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "IfElse": { + "inputs": [ + [ + "", + "true", + "" + ], + [ + "", + "false", + "" + ], + [ + "bool", + "cond", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "result", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "control" + ] + }, + "Image3DAnalyze": { + "inputs": [ + [ + "", + "image1", + "" + ], + [ + "", + "image2", + "" + ], + [ + "bool", + "visualize", + "0" + ], + [ + "bool", + "visualize2", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "image" + ] + }, + "ImageAddAlpha": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "", + "mask", + "" + ], + [ + "enum alpha gray_black gray_white", + "maskmode", + "alpha" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "image" + ] + }, + "ImageBilateralBlur": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "int", + "diameter", + "10" + ], + [ + "float", + "sigmaColor", + "" + ], + [ + "float", + "sigmaSpace", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "image" + ] + }, + "ImageBlur": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "float", + "xsize", + "" + ], + [ + "float", + "ysize", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "image" + ] + }, + "ImageColor": { + "inputs": [ + [ + "vec3f", + "Color", + "" + ], + [ + "vec2i", + "Size", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "image" + ] + }, + "ImageCut": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "enum normal mirror", + "tilemode", + "normal" + ], + [ + "int", + "rows", + "2" + ], + [ + "int", + "cols", + "2" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "deprecated", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "image" + ] + }, + "ImageDelAlpha": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "image" + ] + }, + "ImageDelColor": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "vec3f", + "high_threshold", + "" + ], + [ + "vec3f", + "low_threshold", + "" + ], + [ + "enum transparent black white", + "background", + "transparent" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "image" + ] + }, + "ImageDilate": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "float", + "strength", + "" + ], + [ + "int", + "kernel_width", + "3" + ], + [ + "int", + "kernel_height", + "3" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "image" + ] + }, + "ImageEdgeDetect": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "enum zeno_gray zeno_threshold sobel_gray sobel_threshold roberts_gray roberts_threshold prewitt_gray prewitt_threshold canny_gray canny_threshold", + "mode", + "sobel_gray" + ], + [ + "float", + "threshold", + "" + ], + [ + "float", + "maxThreshold", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "image" + ] + }, + "ImageEdgeDetectCanny": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "enum canny_gray canny_threshold", + "mode", + "canny_gray" + ], + [ + "float", + "threshold1", + "" + ], + [ + "float", + "threshold2", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "image" + ] + }, + "ImageEdgeDetectDIY": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "enum diy_gray diy_threshold", + "mode", + "diy_gray" + ], + [ + "vec3f", + "kerneltop", + "" + ], + [ + "vec3f", + "kernelmid", + "" + ], + [ + "vec3f", + "kernelbot", + "" + ], + [ + "float", + "threshold", + "" + ], + [ + "float", + "maxThreshold", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "ImageEdgeDetectMarr": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "float", + "kernelDiameter", + "" + ], + [ + "float", + "sigma", + "" + ], + [ + "float", + "threshold", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "image" + ] + }, + "ImageEdgeDetectPrewitt": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "enum prewitt_gray prewitt_threshold", + "mode", + "prewitt_gray" + ], + [ + "float", + "threshold", + "" + ], + [ + "float", + "maxThreshold", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "image" + ] + }, + "ImageEdgeDetectRoberts": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "enum roberts_gray roberts_threshold", + "mode", + "roberts_gray" + ], + [ + "float", + "threshold", + "" + ], + [ + "float", + "maxThreshold", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "image" + ] + }, + "ImageEdgeDetectSobel": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "enum sobel_gray sobel_threshold", + "mode", + "sobel_gray" + ], + [ + "float", + "threshold", + "" + ], + [ + "float", + "maxThreshold", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "image" + ] + }, + "ImageEdit": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "vec2f", + "Size", + "" + ], + [ + "enum RGBA RGB RA GA BA R G B A", + "RGBA", + "RGB" + ], + [ + "vec3f", + "RGBLevel", + "" + ], + [ + "float", + "Saturation", + "" + ], + [ + "float", + "Luminace", + "" + ], + [ + "float", + "ContrastRatio", + "" + ], + [ + "bool", + "Gray", + "0" + ], + [ + "bool", + "Invert", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "image" + ] + }, + "ImageEditContrast": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "float", + "ContrastRatio", + "" + ], + [ + "float", + "ContrastCenter", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "image" + ] + }, + "ImageEditHSV": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "enum default edit red orange yellow green cyan blue purple ", + "Hue", + "edit" + ], + [ + "float", + "H", + "" + ], + [ + "float", + "S", + "" + ], + [ + "float", + "V", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "image" + ] + }, + "ImageEditInvert": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "image" + ] + }, + "ImageEditRGB": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "enum RGB R G B", + "RGB", + "RGB" + ], + [ + "float", + "R", + "" + ], + [ + "float", + "G", + "" + ], + [ + "float", + "B", + "" + ], + [ + "bool", + "Gray", + "0" + ], + [ + "bool", + "Invert", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "image" + ] + }, + "ImageEditSaturation": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "float", + "Saturation", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "image" + ] + }, + "ImageErode": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "int", + "strength", + "1" + ], + [ + "int", + "kernel_width", + "3" + ], + [ + "int", + "kernel_height", + "3" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "image" + ] + }, + "ImageExtractColor": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "vec3f", + "high_threshold", + "" + ], + [ + "vec3f", + "low_threshold", + "" + ], + [ + "enum transparent black white", + "background", + "transparent" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "image" + ] + }, + "ImageFeatureDetectORB": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "bool", + "visualize", + "1" + ], + [ + "float", + "nFeatures", + "" + ], + [ + "float", + "scaleFactor", + "" + ], + [ + "float", + "edgeThreshold", + "" + ], + [ + "float", + "patchSize", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "image" + ] + }, + "ImageFeatureDetectSIFT": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "bool", + "visualize", + "1" + ], + [ + "float", + "nFeatures", + "" + ], + [ + "float", + "nOctaveLayers", + "" + ], + [ + "float", + "contrastThreshold", + "" + ], + [ + "float", + "edgeThreshold", + "" + ], + [ + "float", + "sigma", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "image" + ] + }, + "ImageFeatureMatch": { + "inputs": [ + [ + "", + "image1", + "" + ], + [ + "", + "image2", + "" + ], + [ + "float", + "maxMatchDistance", + "" + ], + [ + "bool", + "perspectiveMatrix", + "1" + ], + [ + "bool", + "fundamentalMatrix", + "0" + ], + [ + "bool", + "essentialMatrix", + "1" + ], + [ + "bool", + "homographyMatrix", + "0" + ], + [ + "bool", + "visualize", + "1" + ], + [ + "bool", + "stitch", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "image" + ] + }, + "ImageFlip": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "bool", + "flipX", + "0" + ], + [ + "bool", + "flipY", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "image" + ] + }, + "ImageFlipVertical": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "comp" + ] + }, + "ImageFloatGaussianBlur": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "comp" + ] + }, + "ImageGaussianBlur": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "int", + "kernelsize", + "5" + ], + [ + "float", + "sigmaX", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "image" + ] + }, + "ImageGetSize": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "int", + "width", + "" + ], + [ + "int", + "height", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "image" + ] + }, + "ImageGray": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "enum average luminace", + "mode", + "average" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "image" + ] + }, + "ImageHSV2RGB": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "image" + ] + }, + "ImageLevels": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "vec2f", + "Input Levels", + "" + ], + [ + "float", + "gamma", + "" + ], + [ + "vec2f", + "Output Levels", + "" + ], + [ + "enum RGB R G B", + "channel", + "RGB" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "image" + ] + }, + "ImageMatting": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "", + "mask", + "" + ], + [ + "enum origin deleteblack deletewhite", + "imagemode", + "origin" + ], + [ + "enum gray_black gray_white black white alpha", + "maskmode", + "gray_black" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "image" + ] + }, + "ImageMedianBlur": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "int", + "kernelSize", + "5" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "image" + ] + }, + "ImageRGB2HSV": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "image" + ] + }, + "ImageResize": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "int", + "width", + "1024" + ], + [ + "int", + "height", + "1024" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "image" + ] + }, + "ImageRotate": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "float", + "rotate", + "" + ], + [ + "bool", + "alpha", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "image" + ] + }, + "ImageShape": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "int", + "rows", + "2" + ], + [ + "int", + "cols", + "2" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "ImageStitching": { + "inputs": [ + [ + "", + "image1", + "" + ], + [ + "", + "image2", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "image" + ] + }, + "ImageTile": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "enum normal mirror", + "tilemode", + "normal" + ], + [ + "int", + "rows", + "2" + ], + [ + "int", + "cols", + "2" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "image" + ] + }, + "ImageToNormalMap": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "float", + "strength", + "" + ], + [ + "bool", + "InvertR", + "0" + ], + [ + "bool", + "InvertG", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "image" + ] + }, + "ImportObjPrimitive": { + "inputs": [ + [ + "readpath", + "path", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "ImportVDBGrid": { + "inputs": [ + [ + "", + "path", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "type", + "" + ] + ], + "outputs": [ + [ + "", + "data", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "ImportZpmPrimitive": { + "inputs": [ + [ + "readpath", + "path", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "IntegrateFrameTime": { + "inputs": [ + [ + "", + "desired_dt", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "float", + "min_scale", + "" + ] + ], + "outputs": [ + [ + "", + "actual_dt", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "frame" + ] + }, + "InterpolateElmAttrib": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "elmView", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "attrName", + "RENAME ME" + ], + [ + "enum float vec3f", + "attrType", + "float" + ] + ], + "outputs": [ + [ + "", + "elmView", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "InterpolateEmbedPrimByCV": { + "inputs": [ + [ + "", + "CV", + "" + ], + [ + "", + "embedPrim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "embedPrim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Hercules" + ] + }, + "InterpolateEmbedPrimitive": { + "inputs": [ + [ + "", + "skin", + "" + ], + [ + "", + "volume", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "res", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "IsList": { + "inputs": [ + [ + "", + "list", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "result", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "list" + ] + }, + "IslandVoronoi": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "primList", + "" + ], + [ + "", + "neighList", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "Jiggle": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "float", + "jiggleStiffness", + "" + ], + [ + "float", + "jiggleDamping", + "" + ], + [ + "float", + "jiggleRate", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "LightNode": { + "inputs": [ + [ + "vec3f", + "position", + "" + ], + [ + "vec3f", + "scale", + "" + ], + [ + "vec3f", + "rotate", + "" + ], + [ + "vec4f", + "quaternion", + "" + ], + [ + "vec3f", + "color", + "" + ], + [ + "float", + "intensity", + "" + ], + [ + "bool", + "islight", + "1" + ], + [ + "bool", + "invertdir", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "shader" + ] + }, + "LineAddVert": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "vert", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "LineCarve": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "float", + "insertU", + "" + ], + [ + "bool", + "cut", + "0" + ], + [ + "bool", + "cut insert to end", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "LineResample": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "int", + "segments", + "3" + ], + [ + "", + "PrimSampler", + "" + ], + [ + "string", + "SampleBy", + "t" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "ListGetItem": { + "inputs": [ + [ + "", + "list", + "" + ], + [ + "int", + "index", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "object", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "list" + ] + }, + "ListLength": { + "inputs": [ + [ + "", + "list", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "length", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "list" + ] + }, + "LiveMeshNode": { + "inputs": [ + [ + "", + "frameid", + "" + ], + [ + "string", + "vertSrc", + "" + ], + [ + "bool", + "outDict", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prims", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FBX" + ] + }, + "MaintainSpatialAccelerator": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "float", + "thickness", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "Make1DLinePrimitive": { + "inputs": [ + [ + "int", + "n", + "2" + ], + [ + "vec3f", + "direction", + "" + ], + [ + "float", + "scale", + "" + ], + [ + "vec3f", + "origin", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "enum X Y Z", + "Direction", + "X" + ], + [ + "bool", + "hasLines", + "1" + ], + [ + "bool", + "isCentered", + "0" + ] + ], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "Make2DGridPrimitive": { + "inputs": [ + [ + "int", + "nx", + "2" + ], + [ + "int", + "ny", + "0" + ], + [ + "vec3f", + "sizeX", + "" + ], + [ + "vec3f", + "sizeY", + "" + ], + [ + "float", + "scale", + "" + ], + [ + "vec3f", + "origin", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "enum XZ XY YZ", + "Direction", + "XZ" + ], + [ + "bool", + "hasFaces", + "1" + ], + [ + "bool", + "hasUV", + "0" + ], + [ + "bool", + "isCentered", + "0" + ] + ], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "Make3DGridPointsInAABB": { + "inputs": [ + [ + "int", + "nx", + "4" + ], + [ + "int", + "ny", + "0" + ], + [ + "int", + "nz", + "0" + ], + [ + "vec3f", + "bmin", + "" + ], + [ + "vec3f", + "bmax", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "bool", + "isStaggered", + "1" + ] + ], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "Make3DGridPrimitive": { + "inputs": [ + [ + "int", + "nx", + "2" + ], + [ + "int", + "ny", + "0" + ], + [ + "int", + "nz", + "0" + ], + [ + "vec3f", + "sizeX", + "" + ], + [ + "vec3f", + "sizeY", + "" + ], + [ + "vec3f", + "sizeZ", + "" + ], + [ + "float", + "scale", + "" + ], + [ + "vec3f", + "origin", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "bool", + "isCentered", + "0" + ] + ], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "MakeAxis": { + "inputs": [ + [ + "vec3f", + "origin", + "" + ], + [ + "vec3f", + "axisX", + "" + ], + [ + "vec3f", + "axisY", + "" + ], + [ + "vec3f", + "axisZ", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "enum off X Y Z", + "normalize", + "off" + ] + ], + "outputs": [ + [ + "AxisObject", + "math", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "math" + ] + }, + "MakeBoxPrimitive": { + "inputs": [ + [ + "float", + "size_x", + "" + ], + [ + "float", + "size_y", + "" + ], + [ + "float", + "size_z", + "" + ], + [ + "vec3f", + "origin", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "bool", + "use_quads", + "0" + ] + ], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "MakeCVInterpolator": { + "inputs": [ + [ + "", + "EmbedPrim", + "" + ], + [ + "", + "CV", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "CV", + "" + ], + [ + "", + "EmbedPrim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Hercules" + ] + }, + "MakeCamera": { + "inputs": [ + [ + "vec3f", + "pos", + "" + ], + [ + "vec3f", + "up", + "" + ], + [ + "vec3f", + "view", + "" + ], + [ + "float", + "near", + "" + ], + [ + "float", + "far", + "" + ], + [ + "float", + "fov", + "" + ], + [ + "float", + "aperture", + "" + ], + [ + "float", + "focalPlaneDistance", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "CameraObject", + "camera", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "shader" + ] + }, + "MakeClothSystem": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "ZSBoundaryPrimitives", + "" + ], + [ + "int", + "est_num_cps", + "1000000" + ], + [ + "bool", + "with_contact", + "1" + ], + [ + "bool", + "contact_with_ee", + "1" + ], + [ + "bool", + "contact_with_self", + "1" + ], + [ + "float", + "dt", + "" + ], + [ + "float", + "dHat", + "" + ], + [ + "float", + "aug_coeff", + "" + ], + [ + "float", + "pn_rel", + "" + ], + [ + "float", + "cg_rel", + "" + ], + [ + "float", + "gd_step", + "" + ], + [ + "float", + "collision_weight", + "" + ], + [ + "float", + "avg_edge_len", + "" + ], + [ + "int", + "pn_iter_cap", + "1000" + ], + [ + "int", + "cg_iter_cap", + "1000" + ], + [ + "float", + "gravity", + "" + ], + [ + "int", + "K", + "72" + ], + [ + "int", + "IDyn", + "2" + ], + [ + "float", + "BC_stiffness", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSClothSystem", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "MakeCuOcean": { + "inputs": [ + [ + "int", + "WaveExponent", + "8" + ], + [ + "float", + "depth", + "" + ], + [ + "float", + "chop", + "" + ], + [ + "float", + "gravity", + "" + ], + [ + "float", + "windDir", + "" + ], + [ + "float", + "timeScale", + "" + ], + [ + "float", + "patchSize", + "" + ], + [ + "float", + "speed", + "" + ], + [ + "float", + "timeshift", + "" + ], + [ + "float", + "amp", + "" + ], + [ + "int", + "seed", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "gpuOcean", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Ocean" + ] + }, + "MakeCubePrimitive": { + "inputs": [ + [ + "", + "spacing", + "" + ], + [ + "", + "nx", + "" + ], + [ + "", + "ny", + "" + ], + [ + "", + "nz", + "" + ], + [ + "", + "origin", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "MakeCurve": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "curve", + "curve", + "" + ] + ], + "outputs": [ + [ + "curve", + "curve", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "curve" + ] + }, + "MakeCurvemap": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "float", + "input_max", + "" + ], + [ + "float", + "input_min", + "" + ], + [ + "float", + "output_max", + "" + ], + [ + "float", + "output_min", + "" + ] + ], + "outputs": [ + [ + "", + "curvemap", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "MakeDampingForceModel": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "DampForceModel", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "MakeDict": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "DictObject", + "dict", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "dict" + ] + }, + "MakeDummy": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "dummy", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "layout" + ] + }, + "MakeElasticForceModel": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "enum HyperElastic Fiberic BSplineModel Stvk", + "ForceModel", + "HyperElastic" + ], + [ + "float", + "aniso_strength", + "" + ] + ], + "outputs": [ + [ + "", + "ElasticModel", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "MakeFEMIntegrator": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "elasto", + "" + ], + [ + "", + "visco", + "" + ], + [ + "float", + "dt", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "enum BE QS EBQS SDQS", + "integType", + "QS" + ] + ], + "outputs": [ + [ + "", + "FEMIntegrator", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "MakeFEMPrimitive": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "float", + "Stiffness", + "" + ], + [ + "float", + "VolumePreserve", + "" + ], + [ + "float", + "ExamShapeCoeff", + "" + ], + [ + "float", + "EmbedShapeCoeff", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "femmesh", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "MakeFLIPWorld": { + "inputs": [ + [ + "", + "dx", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "World", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FLIP" + ] + }, + "MakeGCTest": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "int", + "value", + "42" + ] + ], + "outputs": [ + [ + "", + "value", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "debug" + ] + }, + "MakeHeatmap": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "int", + "nres", + "1024" + ] + ], + "outputs": [ + [ + "", + "heatmap", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "visualize" + ] + }, + "MakeIPCSystem": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "ZSBoundaryPrimitives", + "" + ], + [ + "int", + "est_num_cps", + "1000000" + ], + [ + "bool", + "with_ground", + "0" + ], + [ + "bool", + "with_contact", + "1" + ], + [ + "bool", + "with_mollification", + "1" + ], + [ + "bool", + "contact_with_ee", + "1" + ], + [ + "bool", + "contact_with_self", + "1" + ], + [ + "float", + "dt", + "" + ], + [ + "float", + "dHat", + "" + ], + [ + "vec3f", + "ground_normal", + "" + ], + [ + "float", + "epsv", + "" + ], + [ + "float", + "kappa0", + "" + ], + [ + "int", + "fric_iter_cap", + "2" + ], + [ + "float", + "fric_mu", + "" + ], + [ + "float", + "aug_coeff", + "" + ], + [ + "float", + "pn_rel", + "" + ], + [ + "float", + "cg_rel", + "" + ], + [ + "int", + "pn_iter_cap", + "1000" + ], + [ + "int", + "cg_iter_cap", + "1000" + ], + [ + "int", + "ccd_iter_cap", + "20000" + ], + [ + "float", + "gravity", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSIPCSystem", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "MakeInstancing": { + "inputs": [ + [ + "int", + "amount", + "1" + ], + [ + "list", + "modelMatrices", + "" + ], + [ + "float", + "deltaTime", + "" + ], + [ + "list", + "timeList", + "" + ], + [ + "list", + "framePrims", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "instancing", + "inst", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "shader" + ] + }, + "MakeLight": { + "inputs": [ + [ + "vec3f", + "lightDir", + "" + ], + [ + "float", + "intensity", + "" + ], + [ + "vec3f", + "shadowTint", + "" + ], + [ + "float", + "lightHight", + "" + ], + [ + "float", + "shadowSoftness", + "" + ], + [ + "vec3f", + "lightColor", + "" + ], + [ + "float", + "lightScale", + "" + ], + [ + "bool", + "isEnabled", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "LightObject", + "light", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "shader" + ] + }, + "MakeList": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "list", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "list" + ] + }, + "MakeLocalSys": { + "inputs": [ + [ + "vec3f", + "front", + "" + ], + [ + "vec3f", + "up", + "" + ], + [ + "vec3f", + "right", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "LocalSys", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "math" + ] + }, + "MakeMultilineString": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "multiline_string", + "value", + "" + ] + ], + "outputs": [ + [ + "string", + "value", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "string" + ] + }, + "MakeOrthonormalBase": { + "inputs": [ + [ + "vec3f", + "normal", + "" + ], + [ + "vec3f", + "tangent", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "vec3f", + "normal", + "" + ], + [ + "vec3f", + "tangent", + "" + ], + [ + "vec3f", + "bitangent", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "math" + ] + }, + "MakePBDSystem": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "float", + "dt", + "" + ], + [ + "vec3f", + "ext_force", + "" + ], + [ + "int", + "iter_cap", + "100" + ], + [ + "float", + "edge_compliance", + "" + ], + [ + "float", + "volume_compliance", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSPBDSystem", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "PBD" + ] + }, + "MakePointPrimitive": { + "inputs": [ + [ + "", + "vec3", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "MakePrimitive": { + "inputs": [ + [ + "int", + "size", + "0" + ], + [ + "string", + "points", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "MakePrimitiveFromList": { + "inputs": [ + [ + "ListObject", + "list", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "MakeRapidClothSystem": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "ZSBoundaryPrimitives", + "" + ], + [ + "int", + "spmat_cps", + "1000000" + ], + [ + "int", + "est_num_cps", + "100000" + ], + [ + "int", + "bvh_front_cps", + "10000000" + ], + [ + "int", + "max_vert_cons", + "32" + ], + [ + "bool", + "with_contact", + "1" + ], + [ + "bool", + "contact_with_ee", + "1" + ], + [ + "bool", + "contact_with_self", + "1" + ], + [ + "float", + "dt", + "" + ], + [ + "float", + "aug_coeff", + "" + ], + [ + "float", + "cg_rel", + "" + ], + [ + "float", + "lcp_tol", + "" + ], + [ + "int", + "pn_iter_cap", + "3" + ], + [ + "int", + "cg_iter_cap", + "200" + ], + [ + "int", + "lcp_cap", + "256" + ], + [ + "float", + "gravity", + "" + ], + [ + "int", + "collision_iters", + "512" + ], + [ + "float", + "delta", + "" + ], + [ + "float", + "edge_violation_ratio", + "" + ], + [ + "bool", + "enable_SL", + "1" + ], + [ + "float", + "stepping_limit", + "" + ], + [ + "float", + "term_thresh", + "" + ], + [ + "float", + "BC_stiffness", + "" + ], + [ + "bool", + "enable_excl_edges", + "0" + ], + [ + "float", + "repulsion_coef", + "" + ], + [ + "float", + "repulsion_range", + "" + ], + [ + "float", + "sync_dist_thresh", + "" + ], + [ + "bool", + "enable_degenerated_dist", + "1" + ], + [ + "bool", + "enable_dist_constraint", + "1" + ], + [ + "bool", + "enable_friction", + "0" + ], + [ + "float", + "cloth_fric_coef", + "" + ], + [ + "float", + "boundary_fric_coef", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSClothSystem", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "MakeReadPath": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "readpath", + "path", + "" + ] + ], + "outputs": [ + [ + "string", + "path", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "string" + ] + }, + "MakeSample1dLine": { + "inputs": [ + [ + "int", + "n", + "1" + ], + [ + "float", + "scale", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "line", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "MakeShaderUniform": { + "inputs": [ + [ + "int", + "size", + "512" + ], + [ + "", + "uniformDict", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "shader" + ] + }, + "MakeSmallDict": { + "inputs": [ + [ + "string", + "key0", + "" + ], + [ + "IObject", + "obj0", + "" + ], + [ + "string", + "key1", + "" + ], + [ + "IObject", + "obj1", + "" + ], + [ + "string", + "key2", + "" + ], + [ + "IObject", + "obj2", + "" + ], + [ + "string", + "key3", + "" + ], + [ + "IObject", + "obj3", + "" + ], + [ + "string", + "key4", + "" + ], + [ + "IObject", + "obj4", + "" + ], + [ + "string", + "key5", + "" + ], + [ + "IObject", + "obj5", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "dict", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "dict" + ] + }, + "MakeSmallList": { + "inputs": [ + [ + "", + "obj0", + "" + ], + [ + "", + "obj1", + "" + ], + [ + "", + "obj2", + "" + ], + [ + "", + "obj3", + "" + ], + [ + "", + "obj4", + "" + ], + [ + "", + "obj5", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "bool", + "doConcat", + "1" + ] + ], + "outputs": [ + [ + "", + "list", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "list" + ] + }, + "MakeString": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "value", + "" + ] + ], + "outputs": [ + [ + "string", + "value", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "string" + ] + }, + "MakeTexture2D": { + "inputs": [ + [ + "readpath", + "path", + "" + ], + [ + "", + "heatmap", + "" + ], + [ + "enum REPEAT MIRRORED_REPEAT CLAMP_TO_EDGE CLAMP_TO_BORDER", + "wrapS", + "REPEAT" + ], + [ + "enum REPEAT MIRRORED_REPEAT CLAMP_TO_EDGE CLAMP_TO_BORDER", + "wrapT", + "REPEAT" + ], + [ + "enum NEAREST LINEAR NEAREST_MIPMAP_NEAREST LINEAR_MIPMAP_NEAREST NEAREST_MIPMAP_LINEAR LINEAR_MIPMAP_LINEAR", + "minFilter", + "LINEAR" + ], + [ + "enum NEAREST LINEAR NEAREST_MIPMAP_NEAREST LINEAR_MIPMAP_NEAREST NEAREST_MIPMAP_LINEAR LINEAR_MIPMAP_LINEAR", + "magFilter", + "LINEAR" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "texture", + "tex", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "shader" + ] + }, + "MakeTextureVDB": { + "inputs": [ + [ + "readpath", + "path", + "" + ], + [ + "string", + "channel", + "0" + ], + [ + "enum Fp32 Fp16 Fp8 Fp4", + "type", + "Fp32" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "texture", + "tex", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "shader" + ] + }, + "MakeUnifiedIPCSystem": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "ZSBoundaryPrimitives", + "" + ], + [ + "int", + "est_num_cps", + "1000000" + ], + [ + "bool", + "with_ground", + "0" + ], + [ + "bool", + "with_contact", + "1" + ], + [ + "bool", + "with_mollification", + "1" + ], + [ + "bool", + "contact_with_ee", + "1" + ], + [ + "bool", + "contact_with_self", + "1" + ], + [ + "float", + "dt", + "" + ], + [ + "float", + "dHat", + "" + ], + [ + "vec3f", + "ground_normal", + "" + ], + [ + "float", + "epsv", + "" + ], + [ + "float", + "kappa0", + "" + ], + [ + "int", + "fric_iter_cap", + "2" + ], + [ + "float", + "fric_mu", + "" + ], + [ + "float", + "aug_coeff", + "" + ], + [ + "float", + "pn_rel", + "" + ], + [ + "float", + "cg_rel", + "" + ], + [ + "int", + "pn_iter_cap", + "1000" + ], + [ + "int", + "cg_iter_cap", + "1000" + ], + [ + "int", + "ccd_iter_cap", + "20000" + ], + [ + "float", + "gravity", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSUnifiedIPCSystem", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "MakeVDBGrid": { + "inputs": [ + [ + "float", + "Dx", + "" + ], + [ + "float", + "background", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "name", + "" + ], + [ + "enum vertex Centered Staggered", + "structure", + "Centered" + ], + [ + "enum float float3 int int3 points", + "type", + "float" + ] + ], + "outputs": [ + [ + "", + "data", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "openvdb" + ] + }, + "MakeVisualAABBPrimitive": { + "inputs": [ + [ + "float", + "dx", + "" + ], + [ + "vec3f", + "boundMin", + "" + ], + [ + "vec3f", + "boundMax", + "" + ], + [ + "int", + "OpenTop", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "enum points edges trifaces quadfaces", + "type", + "edges" + ] + ], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "visualize" + ] + }, + "MakeWritePath": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "writepath", + "path", + "" + ] + ], + "outputs": [ + [ + "string", + "path", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "string" + ] + }, + "MakeZSBuckets": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "numeric:float", + "radius", + "" + ], + [ + "numeric:float", + "radiusMin", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSIndexBuckets", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "MakeZSGrid": { + "inputs": [ + [ + "float", + "dx", + "" + ], + [ + "string", + "transfer", + "apic" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "MakeZSLBvh": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "numeric:float", + "radius", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSLBvh", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "MakeZSLevelSet": { + "inputs": [ + [ + "float", + "dx", + "" + ], + [ + "", + "aux", + "" + ], + [ + "enum unknown apic flip aflip boundary", + "transfer", + "unknown" + ], + [ + "enum cellcentered collocated staggered const_velocity", + "category", + "cellcentered" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSLevelSet", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "SOP" + ] + }, + "MakeZSPartition": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSPartition", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "MakeZSString": { + "inputs": [ + [ + "", + "fmt_str", + "" + ], + [ + "", + "frameid", + "" + ], + [ + "", + "stepid", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "str", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "SOP" + ] + }, + "MarkEmbeddedInterior": { + "inputs": [ + [ + "", + "MarkInterior", + "" + ], + [ + "", + "Volume", + "" + ], + [ + "float", + "Dx", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "primOut", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Hercules" + ] + }, + "MarkSelfIntersectionRegion": { + "inputs": [ + [ + "", + "zsparticles", + "" + ], + [ + "string", + "markTag", + "markTag" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "zsparticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "MaskByCurvature": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "float", + "max_curvature", + "" + ], + [ + "float", + "min_curvature", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "erode" + ] + }, + "MaskEdit": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "int", + "rows", + "2" + ], + [ + "int", + "cols", + "2" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "MatTranspose": { + "inputs": [ + [ + "", + "mat", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "transposeMat", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "math" + ] + }, + "MeshToSDF": { + "inputs": [ + [ + "", + "mesh", + "" + ], + [ + "float", + "Dx", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "enum vertex cell", + "type", + "vertex" + ], + [ + "float", + "voxel_size", + "" + ] + ], + "outputs": [ + [ + "", + "sdf", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "MocDictAsOutput": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "DictObject", + "dict", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "dict2" + ] + }, + "MomentumTransfer2DFiniteDifference": { + "inputs": [ + [ + "PrimitiveObject", + "grid", + "" + ], + [ + "int", + "nx", + "1" + ], + [ + "int", + "ny", + "1" + ], + [ + "string", + "channel", + "d" + ], + [ + "string", + "add_channel", + "d" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "enum FIVE_STENCIL NINE_STENCIL", + "OpType", + "FIVE_STENCIL" + ], + [ + "enum vec3 float", + "attrT", + "float" + ] + ], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zenofx" + ] + }, + "MoveAssign": { + "inputs": [ + [ + "", + "dst", + "" + ], + [ + "", + "src", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "dst", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "lifecycle" + ] + }, + "MoveClone": { + "inputs": [ + [ + "", + "object", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "newObject", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "lifecycle" + ] + }, + "MoveDelete": { + "inputs": [ + [ + "", + "object", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "DST", + "" + ] + ], + "categories": [ + "lifecycle" + ] + }, + "MoveTowards": { + "inputs": [ + [ + "", + "ZSBoundaryPrimitive", + "" + ], + [ + "float", + "framedt", + "" + ], + [ + "", + "ZSParticles", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSBoundaryPrimitive", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "MultiMakeDict": { + "inputs": [ + [ + "DictObject", + "dict", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "dict", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "dict" + ] + }, + "MultiMakeList": { + "inputs": [ + [ + "list", + "list", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "list", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "list" + ] + }, + "Noise_gabor_2d": { + "inputs": [ + [ + "", + "prim_2DGrid", + "" + ], + [ + "string", + "posLikeAttrName", + "pos" + ], + [ + "float", + "a_", + "" + ], + [ + "float", + "frequency", + "" + ], + [ + "float", + "Orientation", + "" + ], + [ + "int", + "impulses_per_kernel", + "64" + ], + [ + "bool", + "isotropic", + "0" + ], + [ + "float", + "offset", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "attrName", + "noise" + ] + ], + "outputs": [ + [ + "", + "prim_2DGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "erode" + ] + }, + "NumRandom": { + "inputs": [ + [ + "vec3f", + "dir", + "" + ], + [ + "float", + "base", + "" + ], + [ + "float", + "scale", + "" + ], + [ + "int", + "seed", + "-1" + ], + [ + "enum scalar01 scalar11 cube01 cube11 plane01 plane11 disk cylinder ball semiball sphere semisphere", + "randType", + "scalar01" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "int", + "value", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "numeric" + ] + }, + "NumRandomFloat": { + "inputs": [ + [ + "int", + "seed", + "-1" + ], + [ + "float", + "valmin", + "" + ], + [ + "float", + "valmax", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "float", + "value", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "numeric" + ] + }, + "NumRandomInt": { + "inputs": [ + [ + "int", + "seed", + "-1" + ], + [ + "int", + "valmin", + "0" + ], + [ + "int", + "valmax", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "int", + "value", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "numeric" + ] + }, + "NumRandomSeedCombine": { + "inputs": [ + [ + "int", + "x", + "0" + ], + [ + "int", + "y", + "0" + ], + [ + "int", + "z", + "0" + ], + [ + "int", + "w", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "int", + "seed", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "numeric" + ] + }, + "NumericCounter": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "int", + "count", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "numeric" + ] + }, + "NumericEval": { + "inputs": [ + [ + "string", + "zfxCode", + "" + ], + [ + "enum float vec3f int string", + "resType", + "float" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "float", + "result", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "numeric" + ] + }, + "NumericFloat": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "float", + "value", + "" + ] + ], + "outputs": [ + [ + "float", + "value", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "numeric" + ] + }, + "NumericInt": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "int", + "value", + "0" + ] + ], + "outputs": [ + [ + "int", + "value", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "numeric" + ] + }, + "NumericIntVec2": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "int", + "x", + "0" + ], + [ + "int", + "y", + "0" + ] + ], + "outputs": [ + [ + "vec2i", + "vec2", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "numeric" + ] + }, + "NumericIntVec3": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "int", + "x", + "0" + ], + [ + "int", + "y", + "0" + ], + [ + "int", + "z", + "0" + ] + ], + "outputs": [ + [ + "vec3i", + "vec3", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "numeric" + ] + }, + "NumericIntVec4": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "float", + "w", + "" + ], + [ + "float", + "x", + "" + ], + [ + "float", + "y", + "" + ], + [ + "float", + "z", + "" + ] + ], + "outputs": [ + [ + "vec4f", + "vec4", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "numeric" + ] + }, + "NumericInterpolation": { + "inputs": [ + [ + "NumericObject", + "src", + "" + ], + [ + "NumericObject", + "srcMin", + "" + ], + [ + "NumericObject", + "srcMax", + "" + ], + [ + "NumericObject", + "dstMin", + "" + ], + [ + "NumericObject", + "dstMax", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "bool", + "isClamped", + "0" + ] + ], + "outputs": [ + [ + "NumericObject", + "dst", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "numeric" + ] + }, + "NumericOperator": { + "inputs": [ + [ + "NumericObject", + "lhs", + "" + ], + [ + "NumericObject", + "rhs", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "enum add sub mul div mod and or xor shr shl cmpge cmple cmpgt cmplt cmpne cmpeq land lor pos neg inv not atan2 pow max min fmod dot cross distance length normalize abs sqrt sin cos tan asin acos atan exp log floor ceil toint tofloat anytrue alltrue copy copyr", + "op_type", + "add" + ] + ], + "outputs": [ + [ + "NumericObject", + "ret", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "numeric" + ] + }, + "NumericRandom": { + "inputs": [ + [ + "float", + "scale", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "int", + "dim", + "1" + ], + [ + "bool", + "symmetric", + "0" + ] + ], + "outputs": [ + [ + "NumericObject", + "value", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "NumericRandomInt": { + "inputs": [ + [ + "int", + "min", + "0" + ], + [ + "int", + "max", + "65536" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "int", + "value", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "NumericRangeList": { + "inputs": [ + [ + "int", + "start", + "0" + ], + [ + "int", + "end", + "1" + ], + [ + "int", + "skip", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "list", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "list" + ] + }, + "NumericVec2": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "float", + "x", + "" + ], + [ + "float", + "y", + "" + ] + ], + "outputs": [ + [ + "vec2f", + "vec2", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "numeric" + ] + }, + "NumericVec3": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "float", + "x", + "" + ], + [ + "float", + "y", + "" + ], + [ + "float", + "z", + "" + ] + ], + "outputs": [ + [ + "vec3f", + "vec3", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "numeric" + ] + }, + "NumericVec4": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "float", + "w", + "" + ], + [ + "float", + "x", + "" + ], + [ + "float", + "y", + "" + ], + [ + "float", + "z", + "" + ] + ], + "outputs": [ + [ + "vec4f", + "vec4", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "numeric" + ] + }, + "NumericWrangle": { + "inputs": [ + [ + "DictObject:NumericObject", + "params", + "" + ], + [ + "string", + "zfxCode", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "DictObject:NumericObject", + "result", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zenofx" + ] + }, + "ObjTimeShift": { + "inputs": [ + [ + "IObject", + "obj", + "" + ], + [ + "int", + "offset", + "1" + ], + [ + "ListObject", + "customList", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "IObject", + "obj", + "" + ], + [ + "IObject", + "prevObj", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "OceanCompute": { + "inputs": [ + [ + "", + "grid", + "" + ], + [ + "float", + "time", + "" + ], + [ + "float", + "depth", + "" + ], + [ + "float", + "dt", + "" + ], + [ + "", + "ocean_FFT", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "OceanData", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Ocean" + ] + }, + "OceanCuCompute": { + "inputs": [ + [ + "", + "grid", + "" + ], + [ + "float", + "time", + "" + ], + [ + "float", + "depth", + "" + ], + [ + "float", + "dt", + "" + ], + [ + "", + "ocean_FFT", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "OceanData", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Ocean" + ] + }, + "OrthonormalBase": { + "inputs": [ + [ + "vec3f", + "normal", + "" + ], + [ + "vec3f", + "tangent", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "vec3f", + "normal", + "" + ], + [ + "vec3f", + "tangent", + "" + ], + [ + "vec3f", + "bitangent", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "math" + ] + }, + "PackNumericIntVec2": { + "inputs": [ + [ + "int", + "x", + "0" + ], + [ + "int", + "y", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "vec2i", + "vec2", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "numeric" + ] + }, + "PackNumericVec": { + "inputs": [ + [ + "float", + "x", + "" + ], + [ + "float", + "y", + "" + ], + [ + "float", + "z", + "" + ], + [ + "float", + "w", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "enum float vec2f vec3f vec4f", + "type", + "vec3f" + ] + ], + "outputs": [ + [ + "", + "vec", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "numeric" + ] + }, + "PackNumericVecInt": { + "inputs": [ + [ + "int", + "x", + "0" + ], + [ + "int", + "y", + "0" + ], + [ + "int", + "z", + "0" + ], + [ + "int", + "w", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "enum int vec2i vec3i vec4i", + "type", + "vec3i" + ] + ], + "outputs": [ + [ + "", + "veci", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "numeric" + ] + }, + "ParamFileParser": { + "inputs": [ + [ + "", + "formatList", + "" + ], + [ + "writepath", + "configFilePath", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "DictObject", + "params", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "string" + ] + }, + "ParamFormat": { + "inputs": [ + [ + "string", + "name", + "" + ], + [ + "enum float vec2f vec3f vec4f int vec2i vec3i vec4i string", + "type", + "string" + ], + [ + "string", + "defaultValue", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "format", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "string" + ] + }, + "ParameterizeLine": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "ParticleAsVoxels": { + "inputs": [ + [ + "VDBGrid", + "vdbGrid", + "" + ], + [ + "string", + "Attr", + "" + ], + [ + "", + "particles", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "oGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "visualize" + ] + }, + "ParticleCluster": { + "inputs": [ + [ + "PrimitiveObject", + "pars", + "" + ], + [ + "float", + "dist", + "" + ], + [ + "float", + "uv_dist", + "" + ], + [ + "string", + "cluster_tag", + "cluster_index" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "pars", + "" + ], + [ + "NumericObject", + "num_clusters", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zs_geom" + ] + }, + "ParticleParticleWrangle": { + "inputs": [ + [ + "PrimitiveObject", + "prim1", + "" + ], + [ + "PrimitiveObject", + "prim2", + "" + ], + [ + "string", + "zfxCode", + "" + ], + [ + "DictObject:NumericObject", + "params", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zenofx" + ] + }, + "ParticleSegmentation": { + "inputs": [ + [ + "PrimitiveObject", + "pars", + "" + ], + [ + "float", + "dist", + "" + ], + [ + "float", + "uv_dist", + "" + ], + [ + "string", + "segment_tag", + "segment_index" + ], + [ + "int", + "post_process_cnt", + "0" + ], + [ + "bool", + "paint_color", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "pars", + "" + ], + [ + "NumericObject", + "num_segments", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zs_geom" + ] + }, + "ParticleToLevelSet": { + "inputs": [ + [ + "", + "Particles", + "" + ], + [ + "float", + "Radius", + "" + ], + [ + "float", + "Dx", + "" + ], + [ + "string", + "rname", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "SurfaceSDF", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "openvdb" + ] + }, + "ParticlesBuildBvh": { + "inputs": [ + [ + "PrimitiveObject", + "primNei", + "" + ], + [ + "float", + "radius", + "" + ], + [ + "float", + "radiusMin", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "LBvh", + "lbvh", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zenofx" + ] + }, + "ParticlesBuildHashGrid": { + "inputs": [ + [ + "PrimitiveObject", + "primNei", + "" + ], + [ + "numeric:float", + "radius", + "" + ], + [ + "numeric:float", + "radiusMin", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "hashgrid", + "hashGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zenofx" + ] + }, + "ParticlesMaskedWrangle": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "string", + "zfxCode", + "" + ], + [ + "DictObject:NumericObject", + "params", + "" + ], + [ + "string", + "maskAttr", + "mask" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zenofx" + ] + }, + "ParticlesNeighborBvhWrangle": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "PrimitiveObject", + "primNei", + "" + ], + [ + "LBvh", + "lbvh", + "" + ], + [ + "bool", + "is_box", + "1" + ], + [ + "string", + "zfxCode", + "" + ], + [ + "DictObject:NumericObject", + "params", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zenofx" + ] + }, + "ParticlesNeighborBvhWrangleSorted": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "PrimitiveObject", + "primNei", + "" + ], + [ + "LBvh", + "lbvh", + "" + ], + [ + "bool", + "is_box", + "1" + ], + [ + "int", + "limit", + "-1" + ], + [ + "string", + "zfxCode", + "" + ], + [ + "DictObject:NumericObject", + "params", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zenofx" + ] + }, + "ParticlesNeighborWrangle": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "PrimitiveObject", + "primNei", + "" + ], + [ + "HashGrid", + "hashGrid", + "" + ], + [ + "string", + "zfxCode", + "" + ], + [ + "DictObject:NumericObject", + "params", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zenofx" + ] + }, + "ParticlesToSegments": { + "inputs": [ + [ + "", + "particles", + "" + ], + [ + "float", + "dt", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "dir_chanel", + "" + ] + ], + "outputs": [ + [ + "", + "seg", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "ParticlesTwoWrangle": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "PrimitiveObject", + "prim2", + "" + ], + [ + "string", + "zfxCode", + "" + ], + [ + "DictObject:NumericObject", + "params", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zenofx" + ] + }, + "ParticlesWrangle": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "string", + "zfxCode", + "" + ], + [ + "DictObject:NumericObject", + "params", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zenofx" + ] + }, + "PixarOrthonormalBase": { + "inputs": [ + [ + "vec3f", + "normal", + "" + ], + [ + "vec3f", + "tangent", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "vec3f", + "normal", + "" + ], + [ + "vec3f", + "tangent", + "" + ], + [ + "vec3f", + "bitangent", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "math" + ] + }, + "PlaneProjectPrimitive2DAABB": { + "inputs": [ + [ + "", + "origin", + "" + ], + [ + "", + "normal", + "" + ], + [ + "", + "tangent", + "" + ], + [ + "", + "bitangent", + "" + ], + [ + "", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "boundMin2D", + "" + ], + [ + "", + "boundMax2D", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "math" + ] + }, + "PointsToZSParticles": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "bool", + "add_customed_attr", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "conversion" + ] + }, + "PointsToZSParticles2": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "bool", + "add_customed_attr", + "1" + ], + [ + "string", + "selected_custom_attr_tags", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "conversion" + ] + }, + "PoissonDiskSample": { + "inputs": [ + [ + "", + "VDBGrid", + "" + ], + [ + "float", + "dx", + "" + ], + [ + "float", + "ppc", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "path", + "" + ] + ], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "PolyReduceLite": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "int", + "iterations", + "100" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zs_geom" + ] + }, + "PortalIn": { + "inputs": [ + [ + "", + "port", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "name", + "RenameMe!" + ] + ], + "outputs": [ + [ + "", + "DST", + "" + ] + ], + "categories": [ + "layout" + ] + }, + "PortalOut": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "name", + "RenameMe!" + ] + ], + "outputs": [ + [ + "", + "port", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "layout" + ] + }, + "PrimAttrInterp": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "PrimitiveObject", + "prim2", + "" + ], + [ + "string", + "attr", + "" + ], + [ + "float", + "factor", + "" + ], + [ + "string", + "facAttr", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimAttribBlur": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "enum line tri", + "primType", + "tri" + ], + [ + "string", + "attributes", + "ratio" + ], + [ + "enum float vec3f ", + "attributesType", + "float" + ], + [ + "bool", + "useEdgeLengthWeight", + "0" + ], + [ + "int", + "blurringIterations", + "0" + ], + [ + "enum laplacian VolumePreserving custom", + "mode", + "laplacian" + ], + [ + "float", + "stepSize", + "" + ], + [ + "float", + "cutoffFrequency", + "" + ], + [ + "float", + "evenStepSize", + "" + ], + [ + "float", + "oddStepSize", + "" + ], + [ + "string", + "weightAttributes", + "weight" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primCurve" + ] + }, + "PrimBarycentricInterp": { + "inputs": [ + [ + "", + "Particles", + "" + ], + [ + "", + "MeshPrim", + "" + ], + [ + "string", + "triIdTag", + "bvh_id" + ], + [ + "string", + "weightTag", + "bvh_ws" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "Particles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimBend": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "vec3f", + "tangent", + "" + ], + [ + "vec3f", + "direction", + "" + ], + [ + "float", + "angle", + "" + ], + [ + "float", + "limitMin", + "" + ], + [ + "float", + "limitMax", + "" + ], + [ + "float", + "midPoint", + "" + ], + [ + "float", + "biasDir", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimBoundingBox": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "float", + "extraBound", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "vec3f", + "bmin", + "" + ], + [ + "vec3f", + "bmax", + "" + ], + [ + "vec3f", + "center", + "" + ], + [ + "vec3f", + "radius", + "" + ], + [ + "vec3f", + "diameter", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimCalcCentroid": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "enum Volume Area Vertex BoundBox", + "method", + "Volume" + ], + [ + "float", + "density", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "vec3f", + "centroid", + "" + ], + [ + "float", + "mass", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimCheckTagInRange": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "string", + "tagAttr", + "index" + ], + [ + "int", + "beg", + "0" + ], + [ + "int", + "end", + "0" + ], + [ + "bool", + "endExcluded", + "0" + ], + [ + "int", + "modularBy", + "0" + ], + [ + "int", + "trueVal", + "1" + ], + [ + "int", + "falseVal", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimColorByTag": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "string", + "tagAttr", + "tag" + ], + [ + "string", + "clrAttr", + "clr" + ], + [ + "int", + "seed", + "-1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "visualize" + ] + }, + "PrimConnectBridge": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "string", + "edgeIndAttr", + "tag" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimConnectSkin": { + "inputs": [ + [ + "ListObject", + "primList", + "" + ], + [ + "bool", + "isCloseRing", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimConnectTape": { + "inputs": [ + [ + "PrimitiveObject", + "prim1", + "" + ], + [ + "PrimitiveObject", + "prim2", + "" + ], + [ + "enum quads lines none", + "faceType", + "quads" + ], + [ + "bool", + "isCloseRing", + "0" + ], + [ + "string", + "edgeMaskAttr", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimCopyAttr": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "string", + "sourceName", + "s" + ], + [ + "string", + "targetName", + "t" + ], + [ + "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "type", + "float" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "erode" + ] + }, + "PrimCurvature": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "bool", + "curvature", + "0" + ], + [ + "bool", + "gaussianCurvature", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimCurvature2": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "enum object image", + "type", + "object" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "PrimCurveDir": { + "inputs": [ + [ + "", + "prim_curve", + "" + ], + [ + "string", + "dirName", + "nrm" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim_curve", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primCurve" + ] + }, + "PrimCurveFromVerts": { + "inputs": [ + [ + "", + "primVerts", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "primCurve", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primCurve" + ] + }, + "PrimDecodeUVs": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "PrimDualMesh": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "bool", + "polygonate", + "1" + ], + [ + "bool", + "keepBounds", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimDuplicate": { + "inputs": [ + [ + "PrimitiveObject", + "parsPrim", + "" + ], + [ + "PrimitiveObject", + "meshPrim", + "" + ], + [ + "string", + "dirAttr", + "" + ], + [ + "string", + "tanAttr", + "" + ], + [ + "string", + "radAttr", + "" + ], + [ + "enum XYZ YXZ YZX ZYX ZXY XZY", + "onbType", + "XYZ" + ], + [ + "float", + "radius", + "" + ], + [ + "bool", + "copyParsAttr", + "1" + ], + [ + "bool", + "copyMeshAttr", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimDuplicateConnLines": { + "inputs": [ + [ + "PrimitiveObject", + "parsPrim", + "" + ], + [ + "PrimitiveObject", + "meshPrim", + "" + ], + [ + "string", + "dirAttr", + "" + ], + [ + "string", + "tanAttr", + "" + ], + [ + "string", + "radAttr", + "" + ], + [ + "enum XYZ YXZ YZX ZYX ZXY XZY", + "onbType", + "XYZ" + ], + [ + "float", + "radius", + "" + ], + [ + "bool", + "copyParsAttr", + "1" + ], + [ + "bool", + "copyMeshAttr", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimEdgeBound": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "bool", + "removeFaces", + "1" + ], + [ + "bool", + "killDeadVerts", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimExtrude": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "string", + "maskAttr", + "" + ], + [ + "float", + "extrude", + "" + ], + [ + "float", + "inset", + "" + ], + [ + "vec3f", + "offset", + "" + ], + [ + "string", + "sourceMaskAttrO", + "" + ], + [ + "bool", + "delOldFaces", + "1" + ], + [ + "bool", + "autoFindEdges", + "1" + ], + [ + "bool", + "averagedExtrude", + "1" + ], + [ + "bool", + "flipOldFaces", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimFacesAttrToVerts": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "enum lines tris quads polys", + "faceType", + "tris" + ], + [ + "string", + "faceAttr", + "tmp" + ], + [ + "string", + "vertAttr", + "tmp" + ], + [ + "float", + "deflVal", + "" + ], + [ + "enum sum average min max", + "method", + "average" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimFacesCenterAsVerts": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "enum faces lines", + "faceType", + "faces" + ], + [ + "bool", + "copyFaceAttrs", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimFillAttr": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "string", + "attr", + "rad" + ], + [ + "enum float vec3f int", + "type", + "float" + ], + [ + "float", + "value", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimFillColor": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "vec3f", + "value", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimFilter": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "string", + "tagAttr", + "tag" + ], + [ + "string", + "revampAttrO", + "" + ], + [ + "int", + "tagValue", + "0" + ], + [ + "bool", + "isInversed", + "1" + ], + [ + "enum verts faces", + "method", + "verts" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimFlattenTris": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimFlipFaces": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimFloatAttrToInt": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "string", + "attr", + "tag" + ], + [ + "string", + "attrOut", + "tag" + ], + [ + "float", + "divisor", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimForceTrail": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "PrimitiveObject", + "trailPrim", + "" + ], + [ + "string", + "forceAttr", + "force" + ], + [ + "float", + "attractForce", + "" + ], + [ + "float", + "driftForce", + "" + ], + [ + "", + "attractUDFCurve", + "" + ], + [ + "", + "driftCoordCurve", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimGenerateONB": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "string", + "dirAttr", + "nrm" + ], + [ + "string", + "tanAttrOut", + "tang" + ], + [ + "string", + "bitanAttrOut", + "bitang" + ], + [ + "bool", + "writebackDir", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimGetAttr": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "string", + "name", + "index" + ], + [ + "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "type", + "int" + ], + [ + "enum vert tri", + "method", + "tri" + ], + [ + "int", + "index", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "value", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "erode" + ] + }, + "PrimGetTrisSize": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "int", + "TrisSize", + "0" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "WBTest" + ] + }, + "PrimHasAttr": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "string", + "attrName", + "attr_x" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "hasAttr", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "erode" + ] + }, + "PrimIntAttrToFloat": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "string", + "attr", + "tag" + ], + [ + "string", + "attrOut", + "tag" + ], + [ + "float", + "divisor", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimKillDeadVerts": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimLineGenerateONB": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "string", + "dirAttrOut", + "dir" + ], + [ + "string", + "tanAttrOut", + "tang" + ], + [ + "string", + "bitanAttrOut", + "bitang" + ], + [ + "bool", + "lineSort", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimLoopUVsToVerts": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimMarkClose": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "float", + "distance", + "" + ], + [ + "string", + "tagAttr", + "weld" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimMarkIndex": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "string", + "tagAttr", + "index" + ], + [ + "enum int float", + "type", + "int" + ], + [ + "int", + "base", + "0" + ], + [ + "int", + "step", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimMarkIsland": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "string", + "tagAttr", + "tag" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimMarkSameIf": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "string", + "tagAttrIn", + "index" + ], + [ + "int", + "tagValueIs", + "0" + ], + [ + "string", + "tagAttrOut", + "weld" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimMarkTrisIdx": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "string", + "idxName", + "index" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "WBTest" + ] + }, + "PrimMatchUVLine": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "prim2", + "" + ], + [ + "string", + "uvAttr", + "tmp" + ], + [ + "string", + "uvAttr2", + "tmp" + ], + [ + "bool", + "copyOtherAttrs", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimMerge": { + "inputs": [ + [ + "list", + "listPrim", + "" + ], + [ + "string", + "tagAttr", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "primitive", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimPerlinNoise": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "string", + "inAttr", + "pos" + ], + [ + "string", + "outAttr", + "tmp" + ], + [ + "float", + "scale", + "" + ], + [ + "float", + "detail", + "" + ], + [ + "float", + "roughness", + "" + ], + [ + "float", + "disortion", + "" + ], + [ + "vec3f", + "offset", + "" + ], + [ + "float", + "average", + "" + ], + [ + "float", + "strength", + "" + ], + [ + "enum float vec3f", + "outType", + "float" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimPointTris": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "int", + "pointID", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "list", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "WBTest" + ] + }, + "PrimProject": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "PrimitiveObject", + "targetPrim", + "" + ], + [ + "string", + "nrmAttr", + "nrm" + ], + [ + "float", + "offset", + "" + ], + [ + "float", + "limit", + "" + ], + [ + "enum front back both", + "allowDir", + "both" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimQuadsLotSubdivision": { + "inputs": [ + [ + "", + "input_quads_model", + "" + ], + [ + "int", + "num", + "1" + ], + [ + "bool", + "row_or_columns", + "0" + ], + [ + "bool", + "random_rc", + "0" + ], + [ + "int", + "random_seed", + "1" + ], + [ + "bool", + "rcrc", + "1" + ], + [ + "bool", + "first_second_same", + "1" + ], + [ + "int", + "same_seed", + "1" + ], + [ + "float", + "min_offset", + "" + ], + [ + "float", + "max_offset", + "" + ], + [ + "float", + "first_edge_minoffset", + "" + ], + [ + "float", + "first_edge_maxoffset", + "" + ], + [ + "int", + "first_seed", + "1" + ], + [ + "float", + "second_edge_minoffset", + "" + ], + [ + "float", + "second_edge_maxoffset", + "" + ], + [ + "int", + "second_seed", + "1" + ], + [ + "bool", + "add_attr", + "0" + ], + [ + "string", + "tag_attr", + "tag" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "output", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimRandomize": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "string", + "attr", + "tmp" + ], + [ + "string", + "dirAttr", + "" + ], + [ + "string", + "seedAttr", + "" + ], + [ + "float", + "base", + "" + ], + [ + "float", + "scale", + "" + ], + [ + "int", + "seed", + "-1" + ], + [ + "enum scalar01 scalar11 cube01 cube11 plane01 plane11 disk cylinder ball semiball sphere semisphere", + "randType", + "scalar01" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimSample": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "sampledObject", + "" + ], + [ + "string", + "srcChannel", + "uv" + ], + [ + "string", + "dstChannel", + "clr" + ], + [ + "float", + "remapMin", + "" + ], + [ + "float", + "remapMax", + "" + ], + [ + "enum REPEAT CLAMP_TO_EDGE CLAMP_TO_BORDER", + "wrap", + "REPEAT" + ], + [ + "vec3f", + "borderColor", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "outPrim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimSample1D": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "heatmap", + "" + ], + [ + "string", + "srcChannel", + "rho" + ], + [ + "string", + "dstChannel", + "clr" + ], + [ + "float", + "remapMin", + "" + ], + [ + "float", + "remapMax", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "outPrim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimSample2D": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "PrimitiveObject", + "image", + "" + ], + [ + "string", + "uvChannel", + "uv" + ], + [ + "enum vertex tris loopsuv", + "uvSource", + "vertex" + ], + [ + "string", + "targetChannel", + "clr" + ], + [ + "float", + "remapMin", + "" + ], + [ + "float", + "remapMax", + "" + ], + [ + "enum REPEAT CLAMP_TO_EDGE CLAMP_TO_BORDER", + "wrap", + "REPEAT" + ], + [ + "enum nearest linear", + "filter", + "nearest" + ], + [ + "vec3f", + "borderColor", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "outPrim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimSample3D": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "vdbGrid", + "" + ], + [ + "string", + "srcChannel", + "pos" + ], + [ + "string", + "dstChannel", + "clr" + ], + [ + "float", + "remapMin", + "" + ], + [ + "float", + "remapMax", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "outPrim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimScale": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "vec3f", + "scale", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimScatter": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "enum tris lines", + "type", + "tris" + ], + [ + "string", + "denAttr", + "" + ], + [ + "float", + "density", + "" + ], + [ + "float", + "minRadius", + "" + ], + [ + "bool", + "interpAttrs", + "1" + ], + [ + "int", + "seed", + "-1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "parsPrim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimSepTriangles": { + "inputs": [ + [ + "primitive", + "prim", + "" + ], + [ + "bool", + "smoothNormal", + "1" + ], + [ + "bool", + "keepTriFaces", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "primitive", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimSetAttr": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "int", + "value", + "0" + ], + [ + "string", + "name", + "index" + ], + [ + "enum float vec2f vec3f vec4f int vec2i vec3i vec4i", + "type", + "int" + ], + [ + "enum vert tri", + "method", + "tri" + ], + [ + "int", + "index", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "erode" + ] + }, + "PrimSimplifyTag": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "string", + "tagAttr", + "tag" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimSmooth": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimSplit": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimSprayParticles": { + "inputs": [ + [ + "", + "TrianglePrim", + "" + ], + [ + "float", + "Dx", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "particlesPrim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimSuperFormula": { + "inputs": [ + [ + "int", + "segments", + "1000" + ], + [ + "float", + "scale", + "" + ], + [ + "float", + "a", + "" + ], + [ + "float", + "b", + "" + ], + [ + "float", + "m", + "" + ], + [ + "float", + "n1", + "" + ], + [ + "float", + "n2", + "" + ], + [ + "float", + "n3", + "" + ], + [ + "bool", + "hasLines", + "1" + ], + [ + "bool", + "close", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "output", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimToList": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "enum verts points lines tris quads polys loops", + "type", + "verts" + ], + [ + "string", + "attr", + "pos" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "list", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimToVDBPointDataGrid": { + "inputs": [ + [ + "", + "ParticleGeo", + "" + ], + [ + "float", + "Dx", + "" + ], + [ + "", + "vdbPoints", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "Particles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "openvdb" + ] + }, + "PrimTranslate": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "vec3f", + "offset", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimTriPoints": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "int", + "trisID", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "points", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "WBTest" + ] + }, + "PrimTwist": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "vec3f", + "origin", + "" + ], + [ + "vec3f", + "direction", + "" + ], + [ + "", + "tangent", + "" + ], + [ + "float", + "angle", + "" + ], + [ + "float", + "limitMin", + "" + ], + [ + "float", + "limitMax", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimUVEdgeDuplicate": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "bool", + "writeUVToVertex", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimUVVertsToLoopsuv": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimUnmerge": { + "inputs": [ + [ + "primitive", + "prim", + "" + ], + [ + "string", + "tagAttr", + "tag" + ], + [ + "bool", + "preSimplify", + "0" + ], + [ + "enum verts faces", + "method", + "verts" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "list", + "listPrim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimUpdateFromList": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "enum verts points lines tris quads polys loops", + "type", + "verts" + ], + [ + "string", + "attr", + "pos" + ], + [ + "", + "list", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimVertsAttrToFaces": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "enum lines tris quads polys", + "faceType", + "tris" + ], + [ + "string", + "vertAttr", + "tmp" + ], + [ + "string", + "faceAttr", + "tmp" + ], + [ + "enum sum average min max", + "method", + "average" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimWeld": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "string", + "tagAttr", + "weld" + ], + [ + "enum oneof average", + "method", + "oneof" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimWireframe": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "bool", + "removeFaces", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimitiveAddAttr": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "fillValue", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "name", + "clr" + ], + [ + "string", + "pybisgreat", + "DEPRECATED! USE PrimFillAttr INSTEAD" + ], + [ + "enum float float3", + "type", + "float3" + ] + ], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "PrimitiveAttrFit": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "PrimitiveObject", + "refPrim", + "" + ], + [ + "string", + "attrNameSrc", + "pos" + ], + [ + "string", + "attrNameDst", + "pos" + ], + [ + "string", + "refAttrNameSrc", + "pos" + ], + [ + "string", + "refAttrNameDst", + "pos" + ], + [ + "float", + "limitMin", + "" + ], + [ + "float", + "limitMax", + "" + ], + [ + "enum X Y Z", + "axisSrc", + "X" + ], + [ + "enum X Y Z", + "axisDst", + "Y" + ], + [ + "enum X Y Z", + "refAxisSrc", + "X" + ], + [ + "enum X Y Z", + "refAxisDst", + "Y" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "bool", + "autoMinMax", + "1" + ], + [ + "bool", + "autoSort", + "1" + ] + ], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimitiveAttrPicker": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "enum point line triangle", + "mode", + "point" + ], + [ + "string", + "newAttr", + "" + ], + [ + "float", + "attrVal", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "selected", + "" + ] + ], + "outputs": [ + [ + "", + "list", + "" + ], + [ + "PrimitiveObject", + "outPrim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimitiveBFS": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "int", + "vert_index", + "0" + ], + [ + "int", + "level_index", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zs_query" + ] + }, + "PrimitiveBent": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "vec3f", + "origin", + "" + ], + [ + "vec3f", + "tangent", + "" + ], + [ + "vec3f", + "direction", + "" + ], + [ + "float", + "angle", + "" + ], + [ + "float", + "limitMin", + "" + ], + [ + "float", + "limitMax", + "" + ], + [ + "float", + "midPoint", + "" + ], + [ + "float", + "biasDir", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "bool", + "useOrigin", + "0" + ] + ], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "PrimitiveBinaryOp": { + "inputs": [ + [ + "", + "primA", + "" + ], + [ + "", + "primB", + "" + ], + [ + "", + "primOut", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "attrA", + "pos" + ], + [ + "string", + "attrB", + "pos" + ], + [ + "string", + "attrOut", + "pos" + ], + [ + "string", + "op", + "copyA" + ] + ], + "outputs": [ + [ + "", + "primOut", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "PrimitiveBooleanOp": { + "inputs": [ + [ + "", + "primA", + "" + ], + [ + "", + "primB", + "" + ], + [ + "NumericObject", + "faceAttrA", + "" + ], + [ + "NumericObject", + "faceAttrB", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "bool", + "calcAnyFrom", + "0" + ], + [ + "bool", + "doMeshFix", + "0" + ], + [ + "string", + "faceAttrName", + "" + ], + [ + "enum Union Intersect Minus RevMinus XOR Resolve", + "op_type", + "Union" + ] + ], + "outputs": [ + [ + "", + "primC", + "" + ], + [ + "bool", + "anyFromA", + "" + ], + [ + "bool", + "anyFromB", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "cgmesh" + ] + }, + "PrimitiveBoundingBox": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "float", + "exWidth", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "vec3f", + "bmin", + "" + ], + [ + "vec3f", + "bmax", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimitiveCalcCentroid": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "enum Volume Area Vertex", + "method", + "Volume" + ] + ], + "outputs": [ + [ + "vec3f", + "centroid", + "" + ], + [ + "float", + "totalArea", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "PrimitiveCalcNormal": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "string", + "nrmAttr", + "nrm" + ], + [ + "bool", + "flip", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimitiveCalcVelocity": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "float", + "dt", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimitiveClearConnect": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "enum edges faces tris quads polys points all", + "type", + "all" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimitiveClip": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "vec3f", + "origin", + "" + ], + [ + "vec3f", + "direction", + "" + ], + [ + "float", + "distance", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "bool", + "reverse", + "0" + ] + ], + "outputs": [ + [ + "PrimitiveObject", + "outPrim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimitiveColorByHeatmap": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "attrName2", + "" + ], + [ + "", + "heatmap", + "" + ], + [ + "float", + "min", + "" + ], + [ + "float", + "max", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "attrName", + "rho" + ] + ], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "PrimitiveColoring": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zs_query" + ] + }, + "PrimitiveConnectedComponents": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "ListObject", + "prim_islands", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zs_geom" + ] + }, + "PrimitiveCurvemap": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "curvemap", + "" + ], + [ + "string", + "attrName", + "pos" + ], + [ + "int", + "sourceX", + "0" + ], + [ + "int", + "sourceY", + "1" + ], + [ + "int", + "sourceZ", + "2" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimitiveDelAttr": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "name", + "nrm" + ] + ], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimitiveDelAttrs": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "bool", + "invert", + "0" + ], + [ + "string", + "names", + "name_1 name_2" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "erode" + ] + }, + "PrimitiveDuplicate": { + "inputs": [ + [ + "", + "meshPrim", + "" + ], + [ + "", + "particlesPrim", + "" + ], + [ + "float", + "uniScale", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "bool", + "attrFromMesh", + "1" + ], + [ + "bool", + "attrFromParticles", + "1" + ], + [ + "string", + "scaleByAttr", + "" + ] + ], + "outputs": [ + [ + "", + "outPrim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "PrimitiveFaceToEdges": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "bool", + "clearFaces", + "1" + ] + ], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "PrimitiveFarSimpleLines": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimitiveFillAttr": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "NumericObject", + "value", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "attrName", + "pos" + ], + [ + "enum float float3 none", + "attrType", + "none" + ] + ], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "PrimitiveFilterByAttr": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "NumericObject", + "value", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "enum cmpgt cmplt cmpge cmple cmpeq cmpne", + "acceptIf", + "cmpgt" + ], + [ + "string", + "attrName", + "rad" + ], + [ + "bool", + "mockTopos", + "1" + ], + [ + "enum any all", + "vecSelType", + "all" + ] + ], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimitiveFlipPoly": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "primOut", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "PrimitiveFuse": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "float", + "proximity_theshold", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zs_geom" + ] + }, + "PrimitiveGetAttrValue": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "int", + "index", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "name", + "pos" + ], + [ + "enum float float3", + "type", + "float3" + ] + ], + "outputs": [ + [ + "", + "value", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimitiveGetFaceCount": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "size", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimitiveGetSize": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "size", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimitiveHalfBinaryOp": { + "inputs": [ + [ + "", + "primA", + "" + ], + [ + "", + "valueB", + "" + ], + [ + "", + "primOut", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "attrA", + "pos" + ], + [ + "string", + "attrOut", + "pos" + ], + [ + "string", + "op", + "copyA" + ] + ], + "outputs": [ + [ + "", + "primOut", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "PrimitiveHasUV": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "NumericObject", + "has_uv", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zs_query" + ] + }, + "PrimitiveInterpSubframe": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "float", + "portion", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimitiveLineDistance": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "string", + "resAttr", + "len" + ], + [ + "int", + "start", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimitiveLineSimpleLink": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimitiveLineSolidify": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "int", + "count", + "4" + ], + [ + "float", + "radius", + "" + ], + [ + "string", + "radiusAttr", + "" + ], + [ + "bool", + "isTri", + "1" + ], + [ + "bool", + "sealEnd", + "1" + ], + [ + "bool", + "closeRing", + "0" + ], + [ + "bool", + "lineSort", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimitiveLineSort": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "bool", + "reversed", + "0" + ] + ], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimitiveLineify": { + "inputs": [ + [ + "primitive", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "bool", + "from_poly", + "1" + ], + [ + "bool", + "with_uv", + "1" + ] + ], + "outputs": [ + [ + "primitive", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimitiveListBoolOp": { + "inputs": [ + [ + "", + "primA", + "" + ], + [ + "", + "primListB", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "DEPRECATED", + "" + ], + [ + "bool", + "assignAttrs", + "1" + ], + [ + "bool", + "calcAnyFrom", + "0" + ], + [ + "bool", + "doMeshFix", + "1" + ], + [ + "string", + "faceAttrName", + "" + ], + [ + "bool", + "noNullMesh", + "1" + ], + [ + "enum Union Intersect Minus RevMinus XOR Resolve", + "op_type", + "Union" + ] + ], + "outputs": [ + [ + "", + "primList", + "" + ], + [ + "", + "lutList", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "cgmesh" + ] + }, + "PrimitiveMarkIslands": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "string", + "island_tag", + "island_index" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zs_geom" + ] + }, + "PrimitiveMerge": { + "inputs": [ + [ + "", + "listPrim", + "" + ], + [ + "", + "dst", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "PrimitiveMeshingFix": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "primFixed", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "cgmesh" + ] + }, + "PrimitiveMix": { + "inputs": [ + [ + "", + "primA", + "" + ], + [ + "", + "primB", + "" + ], + [ + "", + "primOut", + "" + ], + [ + "", + "coef", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "attrA", + "pos" + ], + [ + "string", + "attrB", + "pos" + ], + [ + "string", + "attrOut", + "pos" + ] + ], + "outputs": [ + [ + "", + "primOut", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "PrimitiveNearSimpleLines": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimitivePerlinNoiseAttr": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "seed", + "" + ], + [ + "float", + "freq", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "attrName", + "noise" + ], + [ + "enum float float3", + "attrType", + "float3" + ] + ], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "noise" + ] + }, + "PrimitivePolygonate": { + "inputs": [ + [ + "primitive", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "bool", + "with_uv", + "1" + ] + ], + "outputs": [ + [ + "primitive", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimitivePrintAttr": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "attrName", + "pos" + ] + ], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "PrimitiveProject": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "PrimitiveObject", + "targetPrim", + "" + ], + [ + "string", + "nrmAttr", + "nrm" + ], + [ + "float", + "limit", + "" + ], + [ + "string", + "distTag", + "dist" + ], + [ + "float", + "threshold", + "" + ], + [ + "enum closest farthest", + "side", + "farthest" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zs_query" + ] + }, + "PrimitiveRandomAttr": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "NumericObject", + "min", + "" + ], + [ + "NumericObject", + "max", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "attrName", + "pos" + ], + [ + "enum float float3", + "attrType", + "" + ] + ], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "PrimitiveRandomizeAttr": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "attrName", + "pos" + ], + [ + "enum float float3", + "attrType", + "float3" + ], + [ + "float", + "max", + "" + ], + [ + "float", + "maxY", + "" + ], + [ + "float", + "maxZ", + "" + ], + [ + "float", + "min", + "" + ], + [ + "float", + "minY", + "" + ], + [ + "float", + "minZ", + "" + ] + ], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "PrimitiveReduction": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "attr", + "pos" + ], + [ + "enum avg max min absmax", + "op", + "avg" + ] + ], + "outputs": [ + [ + "", + "result", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimitiveReorder": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "bool", + "order_vertices", + "0" + ], + [ + "bool", + "order_tris", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zs_geom" + ] + }, + "PrimitiveResize": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "size", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimitiveScale": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "vec3f", + "origin", + "" + ], + [ + "vec3f", + "axis", + "" + ], + [ + "float", + "scale", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimitiveScatter": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "int", + "npoints", + "100" + ], + [ + "int", + "seed", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "enum tris lines", + "type", + "tris" + ] + ], + "outputs": [ + [ + "PrimitiveObject", + "points", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimitiveSetAttrValue": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "int", + "index", + "0" + ], + [ + "float", + "value", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "name", + "pos" + ], + [ + "enum float float3", + "type", + "float3" + ] + ], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimitiveSimpleLines": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimitiveSimplePoints": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimitiveSimpleQuads": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimitiveSimpleTris": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimitiveSplitEdges": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "PrimitiveToSDF": { + "inputs": [ + [ + "", + "PrimitiveMesh", + "" + ], + [ + "float", + "Dx", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "enum vertex cell", + "type", + "vertex" + ] + ], + "outputs": [ + [ + "", + "sdf", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "openvdb" + ] + }, + "PrimitiveTraceTrail": { + "inputs": [ + [ + "PrimitiveObject", + "parsPrim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "trailPrim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimitiveTransform": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "enum world bboxCenter", + "pivot", + "world" + ], + [ + "vec3f", + "translation", + "" + ], + [ + "vec3f", + "eulerXYZ", + "" + ], + [ + "vec4f", + "quatRotation", + "" + ], + [ + "vec3f", + "scaling", + "" + ], + [ + "vec3f", + "shear", + "" + ], + [ + "", + "Matrix", + "" + ], + [ + "", + "preTransform", + "" + ], + [ + "", + "local", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "outPrim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimitiveTriangulate": { + "inputs": [ + [ + "primitive", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "bool", + "from_poly", + "1" + ], + [ + "bool", + "from_quads", + "1" + ], + [ + "bool", + "has_lines", + "1" + ], + [ + "bool", + "with_uv", + "1" + ] + ], + "outputs": [ + [ + "primitive", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "PrimitiveTwist": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "vec3f", + "origin", + "" + ], + [ + "vec3f", + "direction", + "" + ], + [ + "", + "tangent", + "" + ], + [ + "float", + "angle", + "" + ], + [ + "float", + "limitMin", + "" + ], + [ + "float", + "limitMax", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "PrimitiveUnaryOp": { + "inputs": [ + [ + "", + "primA", + "" + ], + [ + "", + "primOut", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "attrA", + "pos" + ], + [ + "string", + "attrOut", + "pos" + ], + [ + "string", + "op", + "copy" + ] + ], + "outputs": [ + [ + "", + "primOut", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "PrimitiveVoronoi": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "particlesPrim", + "" + ], + [ + "int", + "numParticles", + "64" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "DEPRECATED", + "use VoronoiFracture instead!" + ] + ], + "outputs": [ + [ + "", + "primList", + "" + ], + [ + "", + "neighList", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "PrimitiveWireframe": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "bool", + "removeFaces", + "1" + ] + ], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "PrintMessage": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "message", + "hello-stdout" + ] + ], + "outputs": [ + [ + "", + "DST", + "" + ] + ], + "categories": [ + "debug" + ] + }, + "PrintMessageStdErr": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "message", + "hello-stderr" + ] + ], + "outputs": [ + [ + "", + "DST", + "" + ] + ], + "categories": [ + "debug" + ] + }, + "PrintNumeric": { + "inputs": [ + [ + "NumericObject", + "value", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "hint", + "PrintNumeric" + ] + ], + "outputs": [ + [ + "NumericObject", + "value", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "numeric" + ] + }, + "PrintString": { + "inputs": [ + [ + "string", + "str", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "DST", + "" + ] + ], + "categories": [ + "string" + ] + }, + "ProceduralSky": { + "inputs": [ + [ + "vec2f", + "sunLightDir", + "" + ], + [ + "float", + "sunLightSoftness", + "" + ], + [ + "float", + "sunLightIntensity", + "" + ], + [ + "float", + "colorTemperatureMix", + "" + ], + [ + "float", + "colorTemperature", + "" + ], + [ + "vec2f", + "windDir", + "" + ], + [ + "float", + "timeStart", + "" + ], + [ + "float", + "timeSpeed", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ProceduralSky", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "shader" + ] + }, + "ProjectAndNormalize": { + "inputs": [ + [ + "vec3f", + "vec", + "" + ], + [ + "enum XY YX YZ ZY ZX XZ", + "plane", + "XY" + ], + [ + "float", + "directionScale", + "" + ], + [ + "float", + "lengthScale", + "" + ], + [ + "float", + "heightScale", + "" + ], + [ + "float", + "heightOffset", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "vec3f", + "direction", + "" + ], + [ + "float", + "length", + "" + ], + [ + "float", + "height", + "" + ], + [ + "float", + "phase", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "math" + ] + }, + "PushOutZSParticles": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "ZSLevelSet", + "" + ], + [ + "float", + "dis", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "QuatAngleAxis": { + "inputs": [ + [ + "float", + "angle(D)", + "" + ], + [ + "vec3f", + "axis", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "vec4f", + "quat", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "quat" + ] + }, + "QuatGetAngle": { + "inputs": [ + [ + "vec4f", + "quat", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "float", + "angle(D)", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "quat" + ] + }, + "QuatGetAxis": { + "inputs": [ + [ + "vec4f", + "quat", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "vec3f", + "axis", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "quat" + ] + }, + "QuatRotBetweenVectors": { + "inputs": [ + [ + "vec3f", + "start", + "" + ], + [ + "vec3f", + "dest", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "vec4f", + "quat", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "quat" + ] + }, + "QuatRotate": { + "inputs": [ + [ + "vec4f", + "quat", + "" + ], + [ + "vec3f", + "vec3", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "vec3f", + "vec3", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "quat" + ] + }, + "QueryClosestPrimitive": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "prim", + "targetPrim", + "" + ], + [ + "string", + "idTag", + "bvh_id" + ], + [ + "string", + "distTag", + "bvh_dist" + ], + [ + "string", + "weightTag", + "bvh_ws" + ], + [ + "string", + "bvh_tag", + "bvh" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "NumericObject", + "primid", + "" + ], + [ + "NumericObject", + "bvh_primid", + "" + ], + [ + "NumericObject", + "dist", + "" + ], + [ + "PrimitiveObject", + "bvh_prim", + "" + ], + [ + "PrimitiveObject", + "segment", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zs_query" + ] + }, + "QueryNearestPoints": { + "inputs": [ + [ + "PrimitiveObject", + "points", + "" + ], + [ + "PrimitiveObject", + "target_prim", + "" + ], + [ + "string", + "idTag", + "bvh_id" + ], + [ + "string", + "distTag", + "bvh_dist" + ], + [ + "string", + "closestPointTag", + "cp" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "points", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "query" + ] + }, + "QueryNearestPrimitive": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "LBvh", + "lbvh", + "" + ], + [ + "string", + "idTag", + "bvh_id" + ], + [ + "string", + "distTag", + "bvh_dist" + ], + [ + "string", + "closestPointTag", + "cp" + ], + [ + "string", + "weightTag", + "bvh_ws" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "NumericObject", + "primid", + "" + ], + [ + "NumericObject", + "bvh_primid", + "" + ], + [ + "NumericObject", + "dist", + "" + ], + [ + "PrimitiveObject", + "bvh_prim", + "" + ], + [ + "PrimitiveObject", + "segment", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zenofx" + ] + }, + "QueryNearestPrimitiveWithinGroup": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "LBvh", + "lbvh", + "" + ], + [ + "string", + "groupTag", + "island_index" + ], + [ + "string", + "idTag", + "bvh_id" + ], + [ + "string", + "distTag", + "bvh_dist" + ], + [ + "string", + "closestPointTag", + "cp" + ], + [ + "string", + "weightTag", + "bvh_ws" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "NumericObject", + "primid", + "" + ], + [ + "NumericObject", + "bvh_primid", + "" + ], + [ + "NumericObject", + "dist", + "" + ], + [ + "PrimitiveObject", + "bvh_prim", + "" + ], + [ + "PrimitiveObject", + "segment", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zenofx" + ] + }, + "RadtoDegree": { + "inputs": [ + [ + "float", + "radian", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "float", + "degree", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "math" + ] + }, + "RasterizeRigid": { + "inputs": [ + [ + "", + "RigidList", + "" + ], + [ + "", + "localPrim", + "" + ], + [ + "", + "localPos", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "outSDF", + "" + ], + [ + "", + "outPrim", + "" + ], + [ + "", + "BCVel", + "" + ], + [ + "", + "end", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Rigid" + ] + }, + "ReCenterPrim": { + "inputs": [ + [ + "", + "PrimIn", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "MassCenter", + "" + ], + [ + "", + "RecenteredPrim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "ReadCustomVAT": { + "inputs": [ + [ + "", + "frameid", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "readpath", + "path", + "" + ] + ], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "ReadFBXPrim": { + "inputs": [ + [ + "readpath", + "path", + "" + ], + [ + "readpath", + "hintPath", + "-1" + ], + [ + "bool", + "generate", + "0" + ], + [ + "float", + "offset", + "" + ], + [ + "DictObject", + "visibility", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "bool", + "indepData", + "0" + ], + [ + "bool", + "primitive", + "0" + ], + [ + "bool", + "printTree", + "0" + ], + [ + "bool", + "triangulate", + "0" + ], + [ + "enum ENABLE DISABLE", + "udim", + "DISABLE" + ] + ], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "data", + "" + ], + [ + "dict", + "datas", + "" + ], + [ + "dict", + "mats", + "" + ], + [ + "", + "animinfo", + "" + ], + [ + "", + "nodetree", + "" + ], + [ + "", + "bonetree", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FBX" + ] + }, + "ReadGLTF": { + "inputs": [ + [ + "readpath", + "path", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "ReadImageFile": { + "inputs": [ + [ + "readpath", + "path", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "comp" + ] + }, + "ReadImageFromVideo": { + "inputs": [ + [ + "readpath", + "path", + "" + ], + [ + "int", + "frame", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "image" + ] + }, + "ReadLightFromFile": { + "inputs": [ + [ + "readpath", + "path", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "posList", + "" + ], + [ + "", + "rotList", + "" + ], + [ + "", + "sclList", + "" + ], + [ + "", + "colList", + "" + ], + [ + "", + "intList", + "" + ], + [ + "", + "expList", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FBX" + ] + }, + "ReadObjPrim": { + "inputs": [ + [ + "readpath", + "path", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "bool", + "triangulate", + "1" + ] + ], + "outputs": [ + [ + "primitive", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "ReadObjPrimitive": { + "inputs": [ + [ + "readpath", + "path", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "ReadObjPrimitiveDict": { + "inputs": [ + [ + "readpath", + "path", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "dict", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "ReadTiffFile": { + "inputs": [ + [ + "readpath", + "path", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "ReadVATFile": { + "inputs": [ + [ + "readpath", + "path", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "ReadVDB": { + "inputs": [ + [ + "readpath", + "path", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "data", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "openvdb" + ] + }, + "ReadVDBGrid": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "readpath", + "path", + "" + ], + [ + "string", + "type", + "" + ] + ], + "outputs": [ + [ + "", + "data", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "ReadVTKMesh": { + "inputs": [ + [ + "readpath", + "path", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "int", + "view_interior", + "0" + ] + ], + "outputs": [ + [ + "primitive", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "ReadVtkMesh": { + "inputs": [ + [ + "readpath", + "path", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "primitive", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "RefineMeshParticles": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "float", + "dx", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "RefitPrimitiveBvh": { + "inputs": [ + [ + "LBvh", + "lbvh", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "LBvh", + "lbvh", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zenofx" + ] + }, + "RepelPoints": { + "inputs": [ + [ + "PrimitiveObject", + "points", + "" + ], + [ + "", + "vdb_collider", + "" + ], + [ + "float", + "sep_dist", + "" + ], + [ + "int", + "max_iter", + "100" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zs_hair" + ] + }, + "ResampleVDBGrid": { + "inputs": [ + [ + "", + "resampleTo", + "" + ], + [ + "", + "resampleFrom", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "resampleTo", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "openvdb" + ] + }, + "ResizeList": { + "inputs": [ + [ + "", + "list", + "" + ], + [ + "int", + "newSize", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "list", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "list" + ] + }, + "RetrievePrimitiveFromZSParticles": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "RetrieveRigidTransform": { + "inputs": [ + [ + "", + "refObj", + "" + ], + [ + "", + "newObj", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "quat", + "" + ], + [ + "", + "trans", + "" + ], + [ + "", + "mat", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "RigidGetForce": { + "inputs": [ + [ + "", + "RigidList", + "" + ], + [ + "", + "Pressure", + "" + ], + [ + "", + "CellFWeight", + "" + ], + [ + "", + "LiquidSDF", + "" + ], + [ + "", + "localPos", + "" + ], + [ + "", + "dt", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "samplePos", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Rigid" + ] + }, + "RigidMakeCompoundShape": { + "inputs": [ + [ + "", + "shapeList", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "compShape", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Rigid" + ] + }, + "RigidMakeConstraint": { + "inputs": [ + [ + "", + "obj1", + "" + ], + [ + "", + "obj2", + "" + ], + [ + "float", + "breakThres", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "constraint", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Rigid" + ] + }, + "RigidMakeMaterial": { + "inputs": [ + [ + "float", + "friction", + "" + ], + [ + "float", + "dampAng", + "" + ], + [ + "float", + "dampLin", + "" + ], + [ + "float", + "restitution", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "material", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Rigid" + ] + }, + "RigidMakeObject": { + "inputs": [ + [ + "", + "shape", + "" + ], + [ + "vec3f", + "origin", + "" + ], + [ + "vec4f", + "rotation", + "" + ], + [ + "float", + "mass", + "" + ], + [ + "", + "material", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "object", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Rigid" + ] + }, + "RigidMakeObjectFragments": { + "inputs": [ + [ + "", + "primList", + "" + ], + [ + "", + "neighList", + "" + ], + [ + "float", + "breakThres", + "" + ], + [ + "float", + "mass", + "" + ], + [ + "", + "material", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "objectList", + "" + ], + [ + "", + "constrList", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Rigid" + ] + }, + "RigidMakeShape": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "enum convex decomp sphere box", + "type", + "convex" + ], + [ + "float", + "margin", + "" + ], + [ + "bool", + "recentered", + "1" + ], + [ + "bool", + "auto_mass", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "shape", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Rigid" + ] + }, + "RigidMakeWorld": { + "inputs": [ + [ + "vec3f", + "gravity", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "world", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Rigid" + ] + }, + "RigidObjectListToPrimitive": { + "inputs": [ + [ + "", + "objList", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "mergedPrim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Rigid" + ] + }, + "RigidObjectToPrimitive": { + "inputs": [ + [ + "", + "object", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Rigid" + ] + }, + "RigidRecenterPrim": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "outPrim", + "" + ], + [ + "vec3f", + "origin", + "" + ], + [ + "vec3f", + "mass", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Rigid" + ] + }, + "RigidStepWorld": { + "inputs": [ + [ + "", + "world", + "" + ], + [ + "", + "objList", + "" + ], + [ + "", + "consList", + "" + ], + [ + "int", + "steps", + "10" + ], + [ + "float", + "dt", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "world", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Rigid" + ] + }, + "RigidTransformPrimitve": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "quat", + "" + ], + [ + "", + "trans", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "primOut", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "Route": { + "inputs": [ + [ + "", + "input", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "output", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "layout" + ] + }, + "SDFAdvect": { + "inputs": [ + [ + "", + "InoutSDF", + "" + ], + [ + "", + "VecField", + "" + ], + [ + "float", + "TimeStep", + "" + ], + [ + "enum Order_1 Order_2 Order_3 Order_5_WENO Order_5_HJ_WENO", + "SpatialScheme", + "Order_5_HJ_WENO" + ], + [ + "enum Explicit_Euler Order_2_Runge_Kuta Order_3_Runge_Kuta", + "TemporalScheme", + "Order_2_Runge_Kuta" + ], + [ + "int", + "RenormalizeStep", + "3" + ], + [ + "enum Order_1 Order_2 Order_3 Order_5_WENO Order_5_HJ_WENO", + "TrackerSpatialScheme", + "Order_5_HJ_WENO" + ], + [ + "enum Explicit_Euler Order_2_Runge_Kuta Order_3_Runge_Kuta", + "TrackerTemporalScheme", + "Explicit_Euler" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "InoutSDF", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "openvdb" + ] + }, + "SDFScatterPoints": { + "inputs": [ + [ + "", + "SDF", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "Points", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "openvdb" + ] + }, + "SDFToFog": { + "inputs": [ + [ + "", + "SDF", + "" + ], + [ + "bool", + "inplace", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "oSDF", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "openvdb" + ] + }, + "SDFToPoly": { + "inputs": [ + [ + "", + "SDF", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "float", + "adaptivity", + "" + ], + [ + "bool", + "allowQuads", + "0" + ], + [ + "float", + "isoValue", + "" + ] + ], + "outputs": [ + [ + "", + "Mesh", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "SDFToPrim": { + "inputs": [ + [ + "", + "SDF", + "" + ], + [ + "float", + "isoValue", + "" + ], + [ + "float", + "adaptivity", + "" + ], + [ + "bool", + "allowQuads", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "openvdb" + ] + }, + "SDFToPrimitive": { + "inputs": [ + [ + "", + "SDF", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "float", + "adaptivity", + "" + ], + [ + "bool", + "allowQuads", + "0" + ], + [ + "float", + "isoValue", + "" + ] + ], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "SampleVDBToPrimitive": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "vdbGrid", + "" + ], + [ + "string", + "sampleBy", + "pos" + ], + [ + "string", + "primAttr", + "sdf" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "enum Clamp Periodic", + "SampleType", + "Clamp" + ] + ], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "openvdb" + ] + }, + "ScalarFieldAnalyzer": { + "inputs": [ + [ + "", + "InVDB", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "enum Gradient Curvature Laplacian ClosestPoint", + "Operator", + "Gradient" + ] + ], + "outputs": [ + [ + "", + "OutVDB", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "openvdb" + ] + }, + "ScalePrimitiveAlongNormal": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "float", + "dis", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "SetFrameTime": { + "inputs": [ + [ + "", + "time", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "DST", + "" + ] + ], + "categories": [ + "frame" + ] + }, + "SetInstancing": { + "inputs": [ + [ + "primitive", + "prim", + "" + ], + [ + "instancing", + "inst", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "primitive", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "shader" + ] + }, + "SetIsBCFromPrim": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "MappingPrim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "SetMaterial": { + "inputs": [ + [ + "primitive", + "prim", + "" + ], + [ + "material", + "mtl", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "primitive", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "SetMatrix": { + "inputs": [ + [ + "", + "dst", + "" + ], + [ + "", + "src", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "DST", + "" + ] + ], + "categories": [ + "math" + ] + }, + "SetPrimInvisible": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "bool", + "invisible", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "out", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "shader" + ] + }, + "SetRandomSeed": { + "inputs": [ + [ + "", + "routeIn", + "" + ], + [ + "int", + "seed", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "routeOut", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "SetUserData": { + "inputs": [ + [ + "", + "object", + "" + ], + [ + "", + "data", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "key", + "" + ] + ], + "outputs": [ + [ + "", + "object", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "lifecycle" + ] + }, + "SetVDBGridClass": { + "inputs": [ + [ + "", + "grid", + "" + ], + [ + "enum UNKNOWN LEVEL_SET FOG_VOLUME STAGGERED", + "VDBGridClass", + "LEVEL_SET" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "grid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "openvdb" + ] + }, + "SetVDBGridName": { + "inputs": [ + [ + "", + "grid", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "name", + "density" + ] + ], + "outputs": [ + [ + "", + "grid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "openvdb" + ] + }, + "SetVDBPointDataGrid": { + "inputs": [ + [ + "", + "ParticleGeo", + "" + ], + [ + "float", + "Dx", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "float", + "dx", + "" + ] + ], + "outputs": [ + [ + "", + "Particles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "ShaderBinaryMath": { + "inputs": [ + [ + "float", + "in1", + "" + ], + [ + "float", + "in2", + "" + ], + [ + "enum add sub mul div mod pow atan2 min max dot cross distance safepower", + "op", + "add" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "float", + "out", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "shader" + ] + }, + "ShaderBlendMode": { + "inputs": [ + [ + "float", + "base", + "" + ], + [ + "float", + "blend", + "" + ], + [ + "float", + "opacity", + "" + ], + [ + "enum add average colorBurn colorDodge darken difference exclusion glow hardLight hardMix lighten linearBurn linearDodge linearLight multiply negation normal overlay phoenix pinLight reflect screen softLight subtract vividLight", + "mode", + "normal" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "shader", + "out", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "shader" + ] + }, + "ShaderCihouUnrealEngine": { + "inputs": [ + [ + "MaterialObject", + "mtl", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "string", + "code", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "shader" + ] + }, + "ShaderCustomFunc": { + "inputs": [ + [ + "string", + "args", + "vec3 arg1, vec3 arg2" + ], + [ + "enum float vec2 vec3 vec4", + "rettype", + "vec3" + ], + [ + "string", + "code", + "return arg1 + arg2;" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "ShaderCustomFuncObject", + "func", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "shader" + ] + }, + "ShaderExtractVec": { + "inputs": [ + [ + "vec3f", + "vec", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "float", + "x", + "" + ], + [ + "float", + "y", + "" + ], + [ + "float", + "z", + "" + ], + [ + "float", + "w", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "shader" + ] + }, + "ShaderFillVec": { + "inputs": [ + [ + "float", + "in", + "" + ], + [ + "enum float vec2 vec3 vec4", + "type", + "vec3" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "vec4f", + "out", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "shader" + ] + }, + "ShaderFinalize": { + "inputs": [ + [ + "float", + "base", + "" + ], + [ + "vec3f", + "basecolor", + "" + ], + [ + "float", + "metallic", + "" + ], + [ + "float", + "roughness", + "" + ], + [ + "float", + "specular", + "" + ], + [ + "float", + "subsurface", + "" + ], + [ + "float", + "thickness", + "" + ], + [ + "vec3f", + "sssParam", + "" + ], + [ + "vec3f", + "sssColor", + "" + ], + [ + "float", + "specularTint", + "" + ], + [ + "float", + "anisotropic", + "" + ], + [ + "float", + "anisoRotation", + "" + ], + [ + "float", + "sheen", + "" + ], + [ + "float", + "sheenTint", + "" + ], + [ + "float", + "clearcoat", + "" + ], + [ + "float", + "clearcoatGloss", + "" + ], + [ + "float", + "clearcoatRoughness", + "" + ], + [ + "float", + "clearcoatIOR", + "" + ], + [ + "float", + "specTrans", + "" + ], + [ + "float", + "ior", + "" + ], + [ + "float", + "flatness", + "" + ], + [ + "float", + "scatterDistance", + "" + ], + [ + "float", + "scatterStep", + "" + ], + [ + "float", + "thin", + "" + ], + [ + "float", + "doubleSide", + "" + ], + [ + "vec3f", + "normal", + "" + ], + [ + "float", + "displacement", + "" + ], + [ + "float", + "smoothness", + "" + ], + [ + "float", + "emissionIntensity", + "" + ], + [ + "vec3f", + "emission", + "" + ], + [ + "vec3f", + "reflectance", + "" + ], + [ + "float", + "opacity", + "" + ], + [ + "string", + "commonCode", + "" + ], + [ + "string", + "extensionsCode", + "" + ], + [ + "string", + "mtlid", + "Mat1" + ], + [ + "list", + "tex2dList", + "" + ], + [ + "list", + "tex3dList", + "" + ], + [ + "float", + "vol_depth", + "" + ], + [ + "float", + "vol_extinction", + "" + ], + [ + "vec3f", + "vol_sample_albedo", + "" + ], + [ + "float", + "vol_sample_anisotropy", + "" + ], + [ + "float", + "vol_sample_density", + "" + ], + [ + "vec3f", + "vol_sample_emission", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "enum GLSL HLSL", + "backend", + "GLSL" + ] + ], + "outputs": [ + [ + "MaterialObject", + "mtl", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "shader" + ] + }, + "ShaderHsvAdjust": { + "inputs": [ + [ + "vec3f", + "color", + "" + ], + [ + "vec3f", + "amount", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "out", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "shader" + ] + }, + "ShaderInputAttr": { + "inputs": [ + [ + "enum pos clr nrm uv tang bitang NoL LoV N T L V H reflectance fresnel instPos instNrm instUv instClr instTang attrs.localPosLazy() attrs.uniformPosLazy()", + "attr", + "pos" + ], + [ + "enum float vec2 vec3 vec4", + "type", + "vec3" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "shader", + "out", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "shader" + ] + }, + "ShaderInvokeFunc": { + "inputs": [ + [ + "ShaderCustomFuncObject", + "func", + "" + ], + [ + "list", + "args", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "shader", + "out", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "shader" + ] + }, + "ShaderLinearFit": { + "inputs": [ + [ + "float", + "in", + "" + ], + [ + "float", + "inMin", + "" + ], + [ + "float", + "inMax", + "" + ], + [ + "float", + "outMin", + "" + ], + [ + "float", + "outMax", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "bool", + "clamped", + "0" + ] + ], + "outputs": [ + [ + "float", + "out", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "shader" + ] + }, + "ShaderMakeVec": { + "inputs": [ + [ + "float", + "x", + "" + ], + [ + "float", + "y", + "" + ], + [ + "float", + "z", + "" + ], + [ + "float", + "w", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "vec4f", + "out", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "ShaderNormalMap": { + "inputs": [ + [ + "vec3f", + "normalTexel", + "" + ], + [ + "float", + "scale", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "vec3f", + "out", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "shader" + ] + }, + "ShaderPackVec": { + "inputs": [ + [ + "shader", + "x", + "" + ], + [ + "shader", + "y", + "" + ], + [ + "shader", + "z", + "" + ], + [ + "shader", + "w", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "vec4f", + "out", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "ShaderPackVector": { + "inputs": [ + [ + "float", + "x", + "" + ], + [ + "float", + "y", + "" + ], + [ + "float", + "z", + "" + ], + [ + "float", + "w", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "enum float vec2 vec3 vec4", + "type", + "vec3" + ] + ], + "outputs": [ + [ + "", + "out", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "shader" + ] + }, + "ShaderReduceVec": { + "inputs": [ + [ + "vec3f", + "in", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "enum average sum", + "op", + "average" + ] + ], + "outputs": [ + [ + "float", + "out", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "shader" + ] + }, + "ShaderTernaryMath": { + "inputs": [ + [ + "float", + "in1", + "" + ], + [ + "float", + "in2", + "" + ], + [ + "float", + "in3", + "" + ], + [ + "enum mix clamp smoothstep add3", + "op", + "mix" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "float", + "out", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "shader" + ] + }, + "ShaderTexture2D": { + "inputs": [ + [ + "int", + "texId", + "0" + ], + [ + "", + "coord", + "" + ], + [ + "vec2f", + "uvtiling", + "" + ], + [ + "enum float vec2 vec3 vec4", + "type", + "vec3" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "shader", + "out", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "shader" + ] + }, + "ShaderTexture3D": { + "inputs": [ + [ + "int", + "texId", + "0" + ], + [ + "vec3f", + "coord", + "" + ], + [ + "enum World Local", + "space", + "World" + ], + [ + "enum vec2", + "type", + "vec2" + ], + [ + "enum Closest Trilinear Triquadratic Tricubic", + "method", + "Trilinear" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "shader", + "out", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "shader" + ] + }, + "ShaderUnaryMath": { + "inputs": [ + [ + "float", + "in1", + "" + ], + [ + "enum copy neg abs sqrt inversesqrt exp log sin cos tan asin acos atan degrees radians sinh cosh tanh asinh acosh atanh round roundEven floor ceil trunc sign step length normalize hsvToRgb rgbToHsv luminance", + "op", + "sqrt" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "float", + "out", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "shader" + ] + }, + "ShaderUniformAttr": { + "inputs": [ + [ + "int", + "idx", + "0" + ], + [ + "enum float vec2 vec3 vec4", + "type", + "vec3" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "shader", + "out", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "shader" + ] + }, + "ShaderVecConvert": { + "inputs": [ + [ + "float", + "in", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "enum vec2 vec3 vec4", + "type", + "vec3" + ] + ], + "outputs": [ + [ + "", + "out", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "shader" + ] + }, + "SimplifyVoroNeighborList": { + "inputs": [ + [ + "ListObject", + "neighList", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "ListObject", + "newNeighList", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "cgmesh" + ] + }, + "SlicePlaneForPrimitive": { + "inputs": [ + [ + "", + "origin", + "" + ], + [ + "", + "normal", + "" + ], + [ + "", + "primIn", + "" + ], + [ + "", + "resolution", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "primPlane", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "math" + ] + }, + "SmoothLiquidSDF": { + "inputs": [ + [ + "", + "inParticles", + "" + ], + [ + "Dx", + "0.04", + "" + ], + [ + "", + "DxScale", + "" + ], + [ + "", + "voxelScale", + "" + ], + [ + "", + "dropletScale", + "" + ], + [ + "", + "influenceScale", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "inoutSDF", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FLIP" + ] + }, + "SolveFEM": { + "inputs": [ + [ + "", + "integrator", + "" + ], + [ + "", + "shape", + "" + ], + [ + "", + "elmView", + "" + ], + [ + "", + "skin", + "" + ], + [ + "int", + "maxNRIters", + "10" + ], + [ + "int", + "maxBTLs", + "10" + ], + [ + "float", + "ArmijoCoeff", + "" + ], + [ + "float", + "CurvatureCoeff", + "" + ], + [ + "float", + "BTL_shrinkingRate", + "" + ], + [ + "float", + "epsilon", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "shape", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "SolveFEMFast": { + "inputs": [ + [ + "", + "integrator", + "" + ], + [ + "", + "shape", + "" + ], + [ + "", + "elmView", + "" + ], + [ + "", + "laplaceOp", + "" + ], + [ + "", + "skin", + "" + ], + [ + "int", + "maxNRIters", + "10" + ], + [ + "int", + "maxBTLs", + "10" + ], + [ + "float", + "ArmijoCoeff", + "" + ], + [ + "float", + "CurvatureCoeff", + "" + ], + [ + "float", + "BTL_shrinkingRate", + "" + ], + [ + "float", + "epsilon", + "" + ], + [ + "float", + "rel_epsilon", + "" + ], + [ + "int", + "window_size", + "5" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "shape", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "SolveShallowWaterHeight": { + "inputs": [ + [ + "", + "SWGrid", + "" + ], + [ + "float", + "dt", + "" + ], + [ + "string", + "height_attr", + "height" + ], + [ + "string", + "u_attr", + "u" + ], + [ + "string", + "w_attr", + "w" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "SWGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Eulerian" + ] + }, + "SolveShallowWaterMomentum": { + "inputs": [ + [ + "", + "SWGrid", + "" + ], + [ + "float", + "dt", + "" + ], + [ + "float", + "gravity", + "" + ], + [ + "string", + "terrain_attr", + "terrain" + ], + [ + "string", + "height_attr", + "height" + ], + [ + "string", + "u_attr", + "u" + ], + [ + "string", + "w_attr", + "w" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "SWGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Eulerian" + ] + }, + "SpawnGuidelines": { + "inputs": [ + [ + "PrimitiveObject", + "points", + "" + ], + [ + "string", + "normalTag", + "nrm" + ], + [ + "float", + "length", + "" + ], + [ + "int", + "segments", + "5" + ], + [ + "", + "vdb_collider", + "" + ], + [ + "float", + "sep_dist", + "" + ], + [ + "int", + "max_iter", + "100" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "guide_lines", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zs_hair" + ] + }, + "SpdlogErrorMessage": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "message", + "error from spdlog!" + ] + ], + "outputs": [ + [ + "", + "DST", + "" + ] + ], + "categories": [ + "debug" + ] + }, + "SpdlogInfoMessage": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "message", + "hello from spdlog!" + ] + ], + "outputs": [ + [ + "", + "DST", + "" + ] + ], + "categories": [ + "debug" + ] + }, + "SpringSystemTimeStepping": { + "inputs": [ + [ + "", + "ZSSprings", + "" + ], + [ + "float", + "dt", + "" + ], + [ + "", + "Accel", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSSprings", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "StepClothSystem": { + "inputs": [ + [ + "", + "ZSClothSystem", + "" + ], + [ + "int", + "num_substeps", + "1" + ], + [ + "float", + "dt", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSClothSystem", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "StepFLIPWorld": { + "inputs": [ + [ + "", + "World", + "" + ], + [ + "", + "Particles", + "" + ], + [ + "", + "Environ", + "" + ], + [ + "", + "gravity", + "" + ], + [ + "", + "dt", + "" + ], + [ + "", + "min_scale", + "" + ], + [ + "", + "dt_scale", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "World", + "" + ], + [ + "", + "Particles", + "" + ], + [ + "", + "LiquidSDF", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FLIP" + ] + }, + "StepGuidelines": { + "inputs": [ + [ + "PrimitiveObject", + "guide_lines", + "" + ], + [ + "PrimitiveObject", + "boundary_prim", + "" + ], + [ + "string", + "weightTag", + "bvh_ws" + ], + [ + "string", + "idTag", + "bvh_id" + ], + [ + "float", + "dt", + "" + ], + [ + "int", + "num_substeps", + "1" + ], + [ + "", + "vdb_collider", + "" + ], + [ + "float", + "sep_dist", + "" + ], + [ + "int", + "collision_iters", + "5" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "guide_lines", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zs_hair" + ] + }, + "StepIPCSystem": { + "inputs": [ + [ + "", + "ZSIPCSystem", + "" + ], + [ + "int", + "num_substeps", + "1" + ], + [ + "float", + "dt", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSIPCSystem", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "StepPBDSystem": { + "inputs": [ + [ + "", + "ZSPBDSystem", + "" + ], + [ + "float", + "dt", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSPBDSystem", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "PBD" + ] + }, + "StepRapidClothSystem": { + "inputs": [ + [ + "", + "ZSRapidClothSystem", + "" + ], + [ + "int", + "num_substeps", + "1" + ], + [ + "float", + "dt", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSRapidClothSystem", + "" + ], + [ + "", + "visPrim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "StepUnifiedIPCSystem": { + "inputs": [ + [ + "", + "ZSUnifiedIPCSystem", + "" + ], + [ + "int", + "num_substeps", + "1" + ], + [ + "float", + "dt", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSUnifiedIPCSystem", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "StepZSBoundary": { + "inputs": [ + [ + "", + "ZSBoundary", + "" + ], + [ + "float", + "dt", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSBoundary", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "StringEqual": { + "inputs": [ + [ + "string", + "lhs", + "" + ], + [ + "string", + "rhs", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "bool", + "isEqual", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "string" + ] + }, + "StringEval": { + "inputs": [ + [ + "string", + "zfxCode", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "string", + "result", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zenofx" + ] + }, + "StringFormat": { + "inputs": [ + [ + "string", + "str", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "string", + "str", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "StringFormatNumStr": { + "inputs": [ + [ + "string", + "str", + "{}" + ], + [ + "", + "num_str", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "string", + "str", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "string" + ] + }, + "StringFormatNumber": { + "inputs": [ + [ + "string", + "str", + "{}" + ], + [ + "", + "number", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "string", + "str", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "StringToNumber": { + "inputs": [ + [ + "enum float int", + "type", + "all" + ], + [ + "string", + "str", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "num_str", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "string" + ] + }, + "SubCategory": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "name", + "subgraph" + ] + ], + "outputs": [ + [ + "", + "DST", + "" + ] + ], + "categories": [ + "subgraph" + ] + }, + "SubInput": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "defl", + "" + ], + [ + "string", + "name", + "input1" + ], + [ + "string", + "type", + "" + ] + ], + "outputs": [ + [ + "", + "port", + "" + ], + [ + "bool", + "hasValue", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "subgraph" + ] + }, + "SubLine": { + "inputs": [ + [ + "", + "line", + "" + ], + [ + "NumericObject", + "value", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "enum cmpgt cmplt cmpge cmple cmpeq cmpne", + "acceptIf", + "cmpgt" + ], + [ + "string", + "attrName", + "rad" + ], + [ + "enum any all", + "vecSelType", + "all" + ] + ], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "SubOutput": { + "inputs": [ + [ + "", + "port", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "defl", + "" + ], + [ + "string", + "name", + "output1" + ], + [ + "string", + "type", + "" + ] + ], + "outputs": [ + [ + "", + "DST", + "" + ] + ], + "categories": [ + "subgraph" + ] + }, + "SubstepDt": { + "inputs": [ + [ + "", + "FOR", + "" + ], + [ + "float", + "desired_dt", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "float", + "actual_dt", + "" + ], + [ + "float", + "portion", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "control" + ] + }, + "SubstepFLIPWorld": { + "inputs": [ + [ + "", + "World", + "" + ], + [ + "", + "Particles", + "" + ], + [ + "", + "gravity", + "" + ], + [ + "", + "Collider", + "" + ], + [ + "", + "dt", + "" + ], + [ + "", + "Emitter", + "" + ], + [ + "", + "Absorber", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "World", + "" + ], + [ + "", + "Particles", + "" + ], + [ + "", + "LiquidSDF", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FLIP" + ] + }, + "SurfacePointsInterpolation": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "string", + "attrTag", + "pos" + ], + [ + "string", + "weightTag", + "" + ], + [ + "string", + "indexTag", + "" + ], + [ + "PrimitiveObject", + "ref_prim", + "" + ], + [ + "string", + "refAttrTag", + "pos" + ], + [ + "bool", + "vert_exclusion", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zs_geom" + ] + }, + "SurfaceToSprings": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "SyncPrimitiveAttributes": { + "inputs": [ + [ + "", + "prim1", + "" + ], + [ + "", + "prim2", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim1", + "" + ], + [ + "", + "prim2", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "TargetCamera": { + "inputs": [ + [ + "vec3f", + "pos", + "" + ], + [ + "vec3f", + "refUp", + "" + ], + [ + "vec3f", + "target", + "" + ], + [ + "float", + "near", + "" + ], + [ + "float", + "far", + "" + ], + [ + "float", + "fov", + "" + ], + [ + "float", + "aperture", + "" + ], + [ + "float", + "focalPlaneDistance", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "CameraObject", + "camera", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "shader" + ] + }, + "TestRayBox": { + "inputs": [ + [ + "", + "ray_origin", + "" + ], + [ + "", + "ray_dir", + "" + ], + [ + "", + "box_min", + "" + ], + [ + "", + "box_max", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "predicate", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "ToBoundaryParticles": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "prim_tris", + "" + ], + [ + "float", + "dx", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "ToBoundaryPrimitive": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "ToTrackerParticles": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "ToView": { + "inputs": [ + [ + "", + "object", + "" + ], + [ + "bool", + "isStatic", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "object", + "" + ], + [ + "string", + "viewid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "layout" + ] + }, + "ToZSBoundary": { + "inputs": [ + [ + "", + "ZSLevelSet", + "" + ], + [ + "", + "translation", + "" + ], + [ + "", + "translation_rate", + "" + ], + [ + "", + "scale", + "" + ], + [ + "", + "scale_rate", + "" + ], + [ + "", + "ypr_angles", + "" + ], + [ + "string", + "type", + "sticky" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSBoundary", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "ToZSCloth": { + "inputs": [ + [ + "", + "ZSModel", + "" + ], + [ + "", + "prim", + "" + ], + [ + "float", + "stiffness_shear", + "" + ], + [ + "float", + "stiffness_normal", + "" + ], + [ + "float", + "friction_angle", + "" + ], + [ + "float", + "damping_coeff", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "ToZSLevelSet": { + "inputs": [ + [ + "", + "VDBGrid", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "path", + "" + ] + ], + "outputs": [ + [ + "", + "ZSLevelSet", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "ToZSParticles": { + "inputs": [ + [ + "", + "ZSModel", + "" + ], + [ + "", + "prim", + "" + ], + [ + "int", + "category", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "ToZSSprings": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "float", + "density", + "" + ], + [ + "float", + "thickness", + "" + ], + [ + "float", + "stiffness", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Mesh" + ] + }, + "ToZSStrands": { + "inputs": [ + [ + "", + "ZSModel", + "" + ], + [ + "strand", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "strand on gpu", + "ZSParticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "ToZSSurfaceMesh": { + "inputs": [ + [ + "", + "ZSModel", + "" + ], + [ + "surf (tri) mesh", + "prim", + "" + ], + [ + "float", + "rest_shape_scaling", + "" + ], + [ + "bool", + "high_precision", + "0" + ], + [ + "bool", + "with_bending", + "0" + ], + [ + "DictObject", + "params", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "trimesh on gpu", + "ZSParticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "ToZSTetrahedra": { + "inputs": [ + [ + "", + "ZSModel", + "" + ], + [ + "quad (tet) mesh", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "int", + "add_customed_attr", + "0" + ] + ], + "outputs": [ + [ + "tetmesh on gpu", + "ZSParticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "ToZSTriMesh": { + "inputs": [ + [ + "surf (tri) mesh", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "int", + "add_customed_attr", + "0" + ] + ], + "outputs": [ + [ + "trimesh on gpu", + "ZSParticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "TraceOneStep": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "dt", + "" + ], + [ + "", + "size", + "" + ], + [ + "", + "steps", + "" + ], + [ + "", + "maxlength", + "" + ], + [ + "", + "vecField", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "openvdb" + ] + }, + "TracePositionOneStep": { + "inputs": [ + [ + "", + "primData", + "" + ], + [ + "", + "primStart", + "" + ], + [ + "string", + "lineTag", + "lineID" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "primVis", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "visualize" + ] + }, + "TransformPrimitive": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "vec3f", + "translation", + "" + ], + [ + "vec3f", + "eulerXYZ", + "" + ], + [ + "vec4f", + "quatRotation", + "" + ], + [ + "vec3f", + "scaling", + "" + ], + [ + "vec3f", + "shear", + "" + ], + [ + "", + "Matrix", + "" + ], + [ + "", + "preTransform", + "" + ], + [ + "", + "local", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "outPrim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "TransformVDB": { + "inputs": [ + [ + "", + "VDBGrid", + "" + ], + [ + "vec3f", + "translation", + "" + ], + [ + "vec3f", + "eulerXYZ", + "" + ], + [ + "vec3f", + "scaling", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "VDBGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "openvdb" + ] + }, + "TransformZSLevelSet": { + "inputs": [ + [ + "", + "ZSLevelSet", + "" + ], + [ + "", + "translation", + "" + ], + [ + "", + "eulerXYZ", + "" + ], + [ + "", + "scaling", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSLevelSet", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "TrianglePrimSubdiv": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "int", + "iters", + "2" + ], + [ + "string", + "face_inherit", + "" + ], + [ + "string", + "face_avg_edge", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "TrianglesWrangle": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "string", + "zfxCode", + "" + ], + [ + "DictObject:NumericObject", + "params", + "" + ], + [ + "enum points lines tris quads loops polys", + "faceType", + "tris" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zenofx" + ] + }, + "TriggerAbortSignal": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "DST", + "" + ] + ], + "categories": [ + "debug" + ] + }, + "TriggerDivideZero": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "DST", + "" + ] + ], + "categories": [ + "debug" + ] + }, + "TriggerException": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "message", + "exception occurred!" + ] + ], + "outputs": [ + [ + "", + "DST", + "" + ] + ], + "categories": [ + "debug" + ] + }, + "TriggerExitProcess": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "int", + "status", + "-1" + ] + ], + "outputs": [ + [ + "", + "DST", + "" + ] + ], + "categories": [ + "debug" + ] + }, + "TriggerSegFault": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "DST", + "" + ] + ], + "categories": [ + "debug" + ] + }, + "TriggerViewportFault": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "debug" + ] + }, + "UVProjectFromPlane": { + "inputs": [ + [ + "PrimitiveObject", + "prim", + "" + ], + [ + "PrimitiveObject", + "refPlane", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "PrimitiveObject", + "outPrim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "UnifiedIPCSystemClothBinding": { + "inputs": [ + [ + "", + "ZSUnifiedIPCSystem", + "" + ], + [ + "", + "ZSLevelSet", + "" + ], + [ + "bool", + "boundary_wise", + "0" + ], + [ + "bool", + "hard_constraint", + "1" + ], + [ + "float", + "dist_cap", + "" + ], + [ + "float", + "rest_length", + "" + ], + [ + "float", + "strength", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSUnifiedIPCSystem", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "UnifiedIPCSystemForceField": { + "inputs": [ + [ + "", + "ZSUnifiedIPCSystem", + "" + ], + [ + "", + "ZSLevelSet", + "" + ], + [ + "float", + "wind_drag", + "" + ], + [ + "float", + "wind_density", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSUnifiedIPCSystem", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "UnifiedIPCSystemMarkExclusion": { + "inputs": [ + [ + "", + "ZSUnifiedIPCSystem", + "" + ], + [ + "", + "ZSLevelSet", + "" + ], + [ + "bool", + "clear_mark", + "0" + ], + [ + "bool", + "include_object", + "0" + ], + [ + "bool", + "include_boundary", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSUnifiedIPCSystem", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "UniformRemeshing": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "int", + "iterations", + "10" + ], + [ + "float", + "edge_length", + "" + ], + [ + "bool", + "use_min_length", + "0" + ], + [ + "string", + "line_pick_tag", + "line_selected" + ], + [ + "", + "marked_lines", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "UnpackNumericVec": { + "inputs": [ + [ + "vec3f", + "vec", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "float", + "X", + "" + ], + [ + "float", + "Y", + "" + ], + [ + "float", + "Z", + "" + ], + [ + "float", + "W", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "numeric" + ] + }, + "UpdateCurveControlPoint": { + "inputs": [ + [ + "curve", + "curve", + "" + ], + [ + "string", + "key", + "x" + ], + [ + "int", + "index", + "0" + ], + [ + "optional float", + "point_x", + "" + ], + [ + "optional float", + "point_y", + "" + ], + [ + "optional vec2f", + "left_handler", + "" + ], + [ + "optional vec2f", + "right_handler", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "curve", + "curve", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "curve" + ] + }, + "UpdateCurveCycleType": { + "inputs": [ + [ + "curve", + "curve", + "" + ], + [ + "string", + "key", + "x" + ], + [ + "enum CLAMP CYCLE MIRROR", + "type", + "CLAMP" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "curve", + "curve", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "curve" + ] + }, + "UpdateCurveXYRange": { + "inputs": [ + [ + "curve", + "curve", + "" + ], + [ + "string", + "key", + "x" + ], + [ + "optional float", + "x_from", + "" + ], + [ + "optional float", + "x_to", + "" + ], + [ + "optional float", + "y_from", + "" + ], + [ + "optional float", + "y_to", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "curve", + "curve", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "curve" + ] + }, + "UpdateDx": { + "inputs": [ + [ + "", + "real_ocean", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Ocean" + ] + }, + "UpdateHeightmap": { + "inputs": [ + [ + "", + "real_ocean", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Ocean" + ] + }, + "UpdateLevelSetSequence": { + "inputs": [ + [ + "", + "ZSLevelSetSequence", + "" + ], + [ + "", + "dt", + "" + ], + [ + "", + "alpha", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSLevelSetSequence", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "UpdatePrimitiveAttrFromZSParticles": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "attr", + "x" + ], + [ + "enum vert quad", + "location", + "vert" + ], + [ + "enum float vec3f", + "type", + "float" + ] + ], + "outputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "UpdatePrimitiveFromZSParticles": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "UpdateSurfTrisProjectTag": { + "inputs": [ + [ + "", + "zsparticles", + "" + ], + [ + "bool", + "only_update_valid_tag", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "dstTag", + "dstTag" + ], + [ + "string", + "srcTag", + "srcTag" + ] + ], + "outputs": [ + [ + "", + "zsparticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "UpdateTargetFromMapping": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "TargetPrim", + "" + ], + [ + "", + "MappingPrim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "UpdateZSGrid": { + "inputs": [ + [ + "float", + "gravity", + "" + ], + [ + "", + "ZSPartition", + "" + ], + [ + "", + "ZSGrid", + "" + ], + [ + "", + "dt", + "" + ], + [ + "", + "Accel", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSGrid", + "" + ], + [ + "", + "MaxVelSqr", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "UpdateZSPrimitiveSequence": { + "inputs": [ + [ + "", + "ZSPrimitiveSequence", + "" + ], + [ + "float", + "stepdt", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSPrimitiveSequence", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "VDBAddPerlinNoise": { + "inputs": [ + [ + "", + "inoutSDF", + "" + ], + [ + "float", + "strength", + "" + ], + [ + "float", + "scale", + "" + ], + [ + "vec3f", + "scaling", + "" + ], + [ + "vec3f", + "translation", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "inoutSDF", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "VDBAddTurbulentNoise": { + "inputs": [ + [ + "", + "inoutSDF", + "" + ], + [ + "float", + "strength", + "" + ], + [ + "float", + "scale", + "" + ], + [ + "vec3f", + "scaling", + "" + ], + [ + "vec3f", + "translation", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "inoutSDF", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "openvdb" + ] + }, + "VDBChangeBackground": { + "inputs": [ + [ + "", + "grid", + "" + ], + [ + "float", + "background", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "grid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "openvdb" + ] + }, + "VDBCreateLevelsetSphere": { + "inputs": [ + [ + "float", + "Dx", + "" + ], + [ + "float", + "radius", + "" + ], + [ + "vec3f", + "center", + "" + ], + [ + "float", + "half_width", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "data", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "openvdb" + ] + }, + "VDBDeactivate": { + "inputs": [ + [ + "", + "Field", + "" + ], + [ + "", + "Mask", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "DST", + "" + ] + ], + "categories": [ + "openvdb" + ] + }, + "VDBDilateTopo": { + "inputs": [ + [ + "", + "inField", + "" + ], + [ + "int", + "layers", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "oField", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "openvdb" + ] + }, + "VDBErodeSDF": { + "inputs": [ + [ + "", + "inoutSDF", + "" + ], + [ + "float", + "depth", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "inoutSDF", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "openvdb" + ] + }, + "VDBExplosiveTurbulentNoise": { + "inputs": [ + [ + "", + "inoutSDF", + "" + ], + [ + "float", + "strength", + "" + ], + [ + "float", + "scale", + "" + ], + [ + "vec3f", + "scaling", + "" + ], + [ + "vec3f", + "translation", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "float", + "FBM_EvalPersist", + "" + ], + [ + "float", + "FBM_Lacunarity", + "" + ], + [ + "int", + "FBM_Octaves", + "5" + ], + [ + "float", + "FBM_Persistence", + "" + ], + [ + "float", + "FBM_WarpPersist", + "" + ], + [ + "float", + "FBM_WarpPrimary", + "" + ], + [ + "float", + "FBM_WarpSecond", + "" + ], + [ + "float", + "Speed", + "" + ], + [ + "float", + "UVScale", + "" + ] + ], + "outputs": [ + [ + "", + "inoutSDF", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "openvdb" + ] + }, + "VDBFillActiveVoxels": { + "inputs": [ + [ + "", + "grid", + "" + ], + [ + "NumericObject", + "fillValue", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "grid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "openvdb" + ] + }, + "VDBGetBackground": { + "inputs": [ + [ + "", + "grid", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "float", + "background", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "openvdb" + ] + }, + "VDBInvertSDF": { + "inputs": [ + [ + "", + "grid", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "grid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "openvdb" + ] + }, + "VDBLeafAsParticles": { + "inputs": [ + [ + "", + "vdbGrid", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "primPars", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "visualize" + ] + }, + "VDBPerlinNoise": { + "inputs": [ + [ + "", + "inoutSDF", + "" + ], + [ + "float", + "scale", + "" + ], + [ + "vec3f", + "scale3d", + "" + ], + [ + "float", + "detail", + "" + ], + [ + "float", + "roughness", + "" + ], + [ + "float", + "disortion", + "" + ], + [ + "vec3f", + "offset", + "" + ], + [ + "float", + "average", + "" + ], + [ + "float", + "strength", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "inoutSDF", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "openvdb" + ] + }, + "VDBPointScatter": { + "inputs": [ + [ + "", + "grid", + "" + ], + [ + "int", + "count", + "4" + ], + [ + "float", + "spread", + "" + ], + [ + "int", + "seed", + "-1" + ], + [ + "enum Fog SDF", + "gridtype", + "Fog" + ], + [ + "enum PerVoxel Total", + "counttype", + "PerVoxel" + ], + [ + "enum Uniform NonUniform", + "method", + "Uniform" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "points", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "openvdb" + ] + }, + "VDBPointsToPrimitive": { + "inputs": [ + [ + "", + "grid", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "openvdb" + ] + }, + "VDBPruneFootprint": { + "inputs": [ + [ + "", + "grid", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "grid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "openvdb" + ] + }, + "VDBRenormalizeSDF": { + "inputs": [ + [ + "", + "inoutSDF", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "int", + "dilateIters", + "0" + ], + [ + "int", + "iterations", + "4" + ], + [ + "enum 1oUpwind", + "method", + "1oUpwind" + ] + ], + "outputs": [ + [ + "", + "inoutSDF", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "openvdb" + ] + }, + "VDBSmooth": { + "inputs": [ + [ + "", + "inoutVDB", + "" + ], + [ + "enum Mean Gaussian Median", + "type", + "Gaussian" + ], + [ + "int", + "width", + "1" + ], + [ + "int", + "iterations", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "inoutVDB", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "openvdb" + ] + }, + "VDBSmoothSDF": { + "inputs": [ + [ + "", + "inoutSDF", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "DEPRECATED", + "Use VDBSmooth Instead" + ], + [ + "int", + "iterations", + "1" + ], + [ + "int", + "width", + "1" + ] + ], + "outputs": [ + [ + "", + "inoutSDF", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "VDBTopoCopy": { + "inputs": [ + [ + "", + "grid", + "" + ], + [ + "", + "topo", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "grid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "openvdb" + ] + }, + "VDBTouchAABBRegion": { + "inputs": [ + [ + "", + "grid", + "" + ], + [ + "vec3f", + "bmin", + "" + ], + [ + "vec3f", + "bmax", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "grid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "openvdb" + ] + }, + "VDBVisualize": { + "inputs": [ + [ + "", + "grid", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "visualPrim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "visualize" + ] + }, + "VDBVoxelAsParticles": { + "inputs": [ + [ + "", + "vdbGrid", + "" + ], + [ + "string", + "valToAttr", + "sdf" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "bool", + "asStaggers", + "1" + ], + [ + "bool", + "hasInactive", + "0" + ] + ], + "outputs": [ + [ + "", + "primPars", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "visualize" + ] + }, + "VDBWrangle": { + "inputs": [ + [ + "VDBGrid", + "grid", + "" + ], + [ + "string", + "zfxCode", + "" + ], + [ + "enum true false", + "ModifyActive", + "false" + ], + [ + "enum true false", + "ChangeBackground", + "false" + ], + [ + "DictObject:NumericObject", + "params", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "VDBGrid", + "grid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zenofx" + ] + }, + "VdbSlice": { + "inputs": [ + [ + "", + "vdbGrid", + "" + ], + [ + "", + "channelName", + "" + ], + [ + "", + "origin", + "" + ], + [ + "", + "normal", + "" + ], + [ + "", + "resolution", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "slicePrim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "visualize" + ] + }, + "VectorFieldAnalyzer": { + "inputs": [ + [ + "", + "InVDB", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "enum Divergence Curl Magnitude Normalize", + "Operator", + "Divergence" + ] + ], + "outputs": [ + [ + "", + "OutVDB", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "openvdb" + ] + }, + "ViewCVFiber": { + "inputs": [ + [ + "", + "CV", + "" + ], + [ + "float", + "dt", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "fiber", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Hercules" + ] + }, + "ViewCurrentMesh": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "vec3", + "trans", + "" + ], + [ + "vec3", + "scale", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "mesh", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Hercules" + ] + }, + "ViewCurrentParticles": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "float", + "radius", + "" + ], + [ + "vec3", + "color", + "" + ], + [ + "vec3", + "scale", + "" + ], + [ + "vec3", + "trans", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "nodes", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Hercules" + ] + }, + "ViewMuscleFiber": { + "inputs": [ + [ + "", + "Muscle", + "" + ], + [ + "float", + "dt", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "fiber", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Hercules" + ] + }, + "VisPrimAttrValue_Modify": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "string", + "attrName", + "pos" + ], + [ + "float", + "scale", + "" + ], + [ + "int", + "precision", + "3" + ], + [ + "bool", + "includeSelf", + "0" + ], + [ + "bool", + "dotDecoration", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "outPrim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "WBTest" + ] + }, + "VisVec3Attribute": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "string", + "name", + "vel" + ], + [ + "bool", + "normalize", + "1" + ], + [ + "float", + "lengthScale", + "" + ], + [ + "vec3f", + "color", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "primVis", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "visualize" + ] + }, + "VisualTetrahedraHalfFacet": { + "inputs": [ + [ + "", + "zsparticles", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "halfFacet_vis", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "VisualZSDynamicBinder": { + "inputs": [ + [ + "", + "zsparticles", + "" + ], + [ + "", + "kboundary", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "binder_tag", + "binderTag" + ] + ], + "outputs": [ + [ + "", + "binder_vis", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "VisualizeClosestIntersectingTris": { + "inputs": [ + [ + "", + "zsparticles", + "" + ], + [ + "", + "kboundary", + "" + ], + [ + "float", + "nrm_scale", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "project_idx_tag", + "project_idx_tag" + ] + ], + "outputs": [ + [ + "", + "closest_vis", + "" + ], + [ + "", + "normal_vis", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "VisualizeClosestTris": { + "inputs": [ + [ + "", + "zsparticles", + "" + ], + [ + "", + "kboundary", + "" + ], + [ + "float", + "nrm_scale", + "" + ], + [ + "float", + "force_scale", + "" + ], + [ + "float", + "kin_out_collision_eps", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "project_idx_tag", + "project_idx_tag" + ] + ], + "outputs": [ + [ + "", + "closest_vis", + "" + ], + [ + "", + "normal_vis", + "" + ], + [ + "", + "force_vis", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "VisualizeCollision2": { + "inputs": [ + [ + "", + "zsparticles", + "" + ], + [ + "float", + "out_collisionEps", + "" + ], + [ + "float", + "in_collisionEps", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "tris_vis", + "" + ], + [ + "", + "points_vis", + "" + ], + [ + "", + "lines_vis", + "" + ], + [ + "", + "flood_vis", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "VisualizeCollisionCell": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "float", + "collisionEps", + "" + ], + [ + "float", + "nrm_offset", + "" + ], + [ + "float", + "offset_ratio", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "ceNrmTag", + "nrm" + ] + ], + "outputs": [ + [ + "", + "collision_cell", + "" + ], + [ + "", + "ccell_tangent", + "" + ], + [ + "", + "ccell_normal", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "VisualizeInterpolator": { + "inputs": [ + [ + "interpolator", + "zsvolume", + "" + ], + [ + "string", + "interpolator_name", + "skin" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "visual bcw", + "bcw_vis", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "VisualizeIntersections": { + "inputs": [ + [ + "", + "zsparticles", + "" + ], + [ + "", + "kinematics", + "" + ], + [ + "bool", + "use_zsparticles_interior", + "1" + ], + [ + "bool", + "use_kinematic_interior", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "flood_dynamic", + "" + ], + [ + "", + "flood_kinematic", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "VisualizeIntersections2": { + "inputs": [ + [ + "", + "zsparticles", + "" + ], + [ + "", + "kinematics", + "" + ], + [ + "float", + "out_collisionEps", + "" + ], + [ + "float", + "in_collisionEps", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "flood_dynamic", + "" + ], + [ + "", + "flood_kinematic", + "" + ], + [ + "", + "cspt_vis", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "VisualizeIntersections3": { + "inputs": [ + [ + "", + "zsparticles", + "" + ], + [ + "", + "kinematic", + "" + ], + [ + "float", + "out_collisionEps", + "" + ], + [ + "float", + "in_collisionEps", + "" + ], + [ + "bool", + "collide_from_exterior", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "flood_dynamic", + "" + ], + [ + "", + "flood_kinematic", + "" + ], + [ + "", + "cspt_vis", + "" + ], + [ + "", + "cspt_tri_vis", + "" + ], + [ + "", + "intersect_edges", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "VisualizeKineCollision": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "KinematicSurf", + "" + ], + [ + "float", + "in_collisionEps", + "" + ], + [ + "float", + "out_collisionEps", + "" + ], + [ + "float", + "scale", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "colPointFacePairVis", + "" + ], + [ + "", + "colConnVis", + "" + ], + [ + "", + "FPNodalForceVis", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "VisualizeOneRingNeighbors": { + "inputs": [ + [ + "", + "zsparticles", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "pn_prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "VisualizeSelfIntersections": { + "inputs": [ + [ + "", + "zsparticles", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "st_ring_vis", + "" + ], + [ + "", + "st_facet_rest_vis", + "" + ], + [ + "", + "st_facet_vis", + "" + ], + [ + "", + "flood_region", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "VisualizeSurfaceBinder": { + "inputs": [ + [ + "", + "zssurf", + "" + ], + [ + "", + "kboundary", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "binder_tag", + "binderTag" + ], + [ + "float", + "scale", + "" + ] + ], + "outputs": [ + [ + "", + "binder_vis", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "VisualizeSurfaceEdgeNormal": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "float", + "offset", + "" + ] + ], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "VisualizeSurfaceMesh": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "xtag", + "x" + ] + ], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "VisualizeSurfaceNormal": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "float", + "offset", + "" + ] + ], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "VolumeAdvect": { + "inputs": [ + [ + "", + "InField", + "" + ], + [ + "", + "VecField", + "" + ], + [ + "float", + "TimeStep", + "" + ], + [ + "int", + "SubSteps", + "1" + ], + [ + "enum SemiLagrangian MidPoint RK3 RK4 MacCormack BFECC", + "Integrator", + "BFECC" + ], + [ + "enum None Clamp Revert", + "Limiter", + "Revert" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "extend", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "openvdb" + ] + }, + "VolumeToFEMMesh": { + "inputs": [ + [ + "", + "CV_MESH", + "" + ], + [ + "", + "MS_MESH", + "" + ], + [ + "float", + "Stiffness", + "" + ], + [ + "float", + "SkinDrivenCoeff", + "" + ], + [ + "float", + "VolumePreserve", + "" + ], + [ + "float", + "ExamShapeCoeff", + "" + ], + [ + "", + "ElasticModel", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "CV", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Hercules" + ] + }, + "VoronoiFracture": { + "inputs": [ + [ + "PrimitiveObject", + "meshPrim", + "" + ], + [ + "PrimitiveObject", + "particlesPrim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "bool", + "doMeshFix", + "0" + ], + [ + "bool", + "doMeshFix2", + "1" + ], + [ + "int", + "numRandPoints", + "256" + ], + [ + "bool", + "periodicX", + "0" + ], + [ + "bool", + "periodicY", + "0" + ], + [ + "bool", + "periodicZ", + "0" + ] + ], + "outputs": [ + [ + "ListObject", + "primList", + "" + ], + [ + "ListObject", + "neighList", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "cgmesh" + ] + }, + "WBPrimBend": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "int", + "Limit Deformation", + "1" + ], + [ + "int", + "Symmetric Deformation", + "0" + ], + [ + "float", + "Bend Angle (degree)", + "" + ], + [ + "vec3f", + "Up Vector", + "" + ], + [ + "vec3f", + "Capture Origin", + "" + ], + [ + "vec3f", + "Capture Direction", + "" + ], + [ + "float", + "Capture Length", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "WriteCustomVAT": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "frameid", + "" + ], + [ + "bool", + "UnrealEngine", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "int", + "frameEnd", + "100" + ], + [ + "int", + "frameStart", + "0" + ], + [ + "writepath", + "path", + "" + ] + ], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "WriteImageFile": { + "inputs": [ + [ + "", + "image", + "" + ], + [ + "writepath", + "path", + "" + ], + [ + "enum png jpg exr pfm", + "type", + "png" + ], + [ + "", + "mask", + "" + ], + [ + "bool", + "gamma", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "image", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "comp" + ] + }, + "WriteObjPrim": { + "inputs": [ + [ + "primitive", + "prim", + "" + ], + [ + "writepath", + "path", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "bool", + "polygonate", + "1" + ] + ], + "outputs": [ + [ + "primitive", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "WriteObjPrimitive": { + "inputs": [ + [ + "writepath", + "path", + "" + ], + [ + "", + "prim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "WritePrimToCSV": { + "inputs": [ + [ + "primitive", + "prim", + "" + ], + [ + "writepath", + "path", + "" + ], + [ + "enum verts points lines tris quads loops polys", + "type", + "verts" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "primitive", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "WriteVDB": { + "inputs": [ + [ + "", + "data", + "" + ], + [ + "writepath", + "path", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "DST", + "" + ] + ], + "categories": [ + "openvdb" + ] + }, + "WriteVDBGrid": { + "inputs": [ + [ + "", + "data", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "writepath", + "path", + "" + ] + ], + "outputs": [ + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "WriteVTKMesh": { + "inputs": [ + [ + "primitive", + "prim", + "" + ], + [ + "writepath", + "path", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "int", + "outCellAttr", + "0" + ], + [ + "int", + "outVertAttr", + "0" + ] + ], + "outputs": [ + [ + "primitive", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "WriteZSParticles": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "string", + "path", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "ZSAdvectionScheme": { + "inputs": [ + [ + "enum Stencil Semi-Lagrangian MacCormack BFECC", + "Scheme", + "MacCormack" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "Scheme", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Eulerian" + ] + }, + "ZSAppendAttribute": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "float", + "fill", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "attr", + "attr" + ], + [ + "int", + "attr_dim", + "1" + ], + [ + "enum particle quadature", + "type", + "particle" + ] + ], + "outputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "ZSApplyAffineTransform": { + "inputs": [ + [ + "", + "zsparticles", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "defGradientTag", + "F" + ], + [ + "string", + "defShapeTag", + "x" + ], + [ + "string", + "defTransTag", + "b" + ], + [ + "string", + "restShapeTag", + "X" + ], + [ + "string", + "skipTag", + "skipTag" + ] + ], + "outputs": [ + [ + "", + "zsparticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "ZSBoundaryPrimitiveToZSGrid": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "ZSPartition", + "" + ], + [ + "", + "ZSGrid", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "ZSCalSurfaceCollisionCell": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "ceNrmTag", + "nrm" + ] + ], + "outputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "ZSCalcSurfaceNormal": { + "inputs": [ + [ + "", + "zsparticles", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "int", + "nm_smooth_iters", + "0" + ] + ], + "outputs": [ + [ + "", + "zsparticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "ZSCheckGather2DFiniteDifference": { + "inputs": [ + [ + "PrimitiveObject", + "grid", + "" + ], + [ + "ZSParticles", + "ZSParticles", + "" + ], + [ + "int", + "nx", + "1" + ], + [ + "int", + "ny", + "1" + ], + [ + "string", + "channel", + "pos" + ], + [ + "enum vec3 float", + "attrT", + "float" + ], + [ + "enum FIVE_STENCIL NINE_STENCIL", + "OpType", + "FIVE_STENCIL" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "ZSParticles", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zenofx" + ] + }, + "ZSCheckPrimAttribs": { + "inputs": [ + [ + "PrimitiveObject", + "grid", + "" + ], + [ + "ZSParticles", + "ZSParticles", + "" + ], + [ + "ListObject", + "attribs", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "ZSParticles", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zenofx" + ] + }, + "ZSCombineSparseGrid": { + "inputs": [ + [ + "", + "GridA", + "" + ], + [ + "", + "GridB", + "" + ], + [ + "string", + "SDFAttribute", + "sdf" + ], + [ + "enum CSGUnion CSGIntersection CSGSubtract", + "OpType", + "CSGUnion" + ], + [ + "bool", + "WriteBack", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "Grid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Eulerian" + ] + }, + "ZSComputeBaryCentricWeights": { + "inputs": [ + [ + "interpolator", + "zsvolume", + "" + ], + [ + "embed surf", + "zssurf", + "" + ], + [ + "int", + "mark_elm", + "0" + ], + [ + "int", + "nmCpns", + "1" + ], + [ + "string", + "tag", + "skin" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "bvh_channel", + "x" + ], + [ + "float", + "bvh_thickness", + "" + ], + [ + "int", + "fitting_in", + "1" + ] + ], + "outputs": [ + [ + "interpolator on gpu", + "zsvolume", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "ZSDeformEmbedPrim": { + "inputs": [ + [ + "", + "zsvolume", + "" + ], + [ + "embed primitive", + "zssurf", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "deformField", + "F" + ], + [ + "string", + "inAttr", + "V" + ], + [ + "string", + "outAttr", + "v" + ], + [ + "string", + "tag", + "skin_bw" + ] + ], + "outputs": [ + [ + "embed primitive", + "zssurf", + "" + ], + [ + "", + "zsvolume", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "ZSDoSkinning": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "Qs", + "" + ], + [ + "", + "Ts", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "enum LBS DQS CoRs", + "algorithm", + "DQS" + ], + [ + "string", + "inAttr", + "x" + ], + [ + "string", + "outAttr", + "x" + ], + [ + "string", + "weight_channel", + "sw" + ] + ], + "outputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "ZSDynamicSurfaceBind": { + "inputs": [ + [ + "", + "zsparticles", + "" + ], + [ + "", + "kboundary", + "" + ], + [ + "float", + "outCollisionEps", + "" + ], + [ + "float", + "dt", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "binder_tag", + "binderTag" + ], + [ + "string", + "force_tag", + "forceTag" + ], + [ + "string", + "inversion_tag", + "inversionTag" + ], + [ + "string", + "thickness_tag", + "thicknessTag" + ] + ], + "outputs": [ + [ + "", + "zsparticles", + "" + ], + [ + "", + "kboundary", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "ZSEvalAffineTransform": { + "inputs": [ + [ + "", + "zsparticles", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "defGradientTag", + "F" + ], + [ + "string", + "defShapeTag", + "x" + ], + [ + "string", + "defTransTag", + "b" + ], + [ + "string", + "restShapeTag", + "X" + ] + ], + "outputs": [ + [ + "", + "zsparticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "ZSEvalGradientField": { + "inputs": [ + [ + "", + "field", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "btag", + "btag" + ], + [ + "string", + "gtag", + "gradT" + ], + [ + "int", + "normalize", + "0" + ], + [ + "int", + "skip_boundary", + "0" + ], + [ + "string", + "tag", + "T" + ] + ], + "outputs": [ + [ + "", + "field", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "ZSExtendSparseGrid": { + "inputs": [ + [ + "", + "SparseGrid", + "" + ], + [ + "int", + "layers", + "1" + ], + [ + "bool", + "multigrid", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "SparseGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Eulerian" + ] + }, + "ZSGather2DFiniteDifference": { + "inputs": [ + [ + "ZSParticles", + "grid", + "" + ], + [ + "int", + "nx", + "1" + ], + [ + "int", + "ny", + "1" + ], + [ + "string", + "channel", + "pos" + ], + [ + "enum vec3 float", + "attrT", + "float" + ], + [ + "enum FIVE_STENCIL NINE_STENCIL", + "OpType", + "FIVE_STENCIL" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "ZSParticles", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zenofx" + ] + }, + "ZSGaussianNeighborQuadatureSampler": { + "inputs": [ + [ + "", + "source", + "" + ], + [ + "", + "dest", + "" + ], + [ + "int", + "use_append", + "0" + ], + [ + "float", + "radius", + "" + ], + [ + "float", + "mark", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "attr", + "attr" + ], + [ + "string", + "mark_tag", + "mark_tag" + ], + [ + "float", + "sigma", + "" + ], + [ + "string", + "weight_tag", + "weight_tag" + ], + [ + "string", + "xtag", + "x" + ] + ], + "outputs": [ + [ + "", + "dest", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "ZSGaussianSampler": { + "inputs": [ + [ + "", + "source", + "" + ], + [ + "", + "dest", + "" + ], + [ + "float", + "thickness", + "" + ], + [ + "float", + "sigma", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "dstAttr", + "dstAttr" + ], + [ + "enum vert quad", + "dstType", + "vert" + ], + [ + "string", + "markTag", + "bou_tag" + ], + [ + "float", + "markValue", + "" + ], + [ + "string", + "srcAttr", + "srcAttr" + ], + [ + "enum vert quad", + "srcType", + "vert" + ] + ], + "outputs": [ + [ + "", + "dest", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "ZSGetUserData": { + "inputs": [ + [ + "", + "object", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "key", + "" + ] + ], + "outputs": [ + [ + "", + "data", + "" + ], + [ + "bool", + "hasValue", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "lifecycle" + ] + }, + "ZSGrid2DSample": { + "inputs": [ + [ + "ZenoParticles", + "grid", + "" + ], + [ + "int", + "nx", + "1" + ], + [ + "int", + "ny", + "1" + ], + [ + "float", + "h", + "" + ], + [ + "vec3f", + "bmin", + "" + ], + [ + "string", + "channel", + "pos" + ], + [ + "string", + "sampleBy", + "pos" + ], + [ + "enum vec3 float", + "attrT", + "float" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "ZenoParticles", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zenofx" + ] + }, + "ZSGridAppendAttribute": { + "inputs": [ + [ + "", + "SparseGrid", + "" + ], + [ + "string", + "Attribute", + "" + ], + [ + "int", + "ChannelNumber", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "SparseGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Eulerian" + ] + }, + "ZSGridAssignAttribute": { + "inputs": [ + [ + "", + "Grid", + "" + ], + [ + "", + "SourceGrid", + "" + ], + [ + "string", + "Attribute", + "" + ], + [ + "bool", + "Staggered", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "Grid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Eulerian" + ] + }, + "ZSGridCurlNoise": { + "inputs": [ + [ + "", + "SparseGrid", + "" + ], + [ + "string", + "GridAttribute", + "v" + ], + [ + "bool", + "staggered", + "1" + ], + [ + "enum replace accumulate", + "OpType", + "accumulate" + ], + [ + "vec3f", + "Frequency", + "" + ], + [ + "vec3f", + "Offset", + "" + ], + [ + "float", + "Roughness", + "" + ], + [ + "int", + "Turbulence", + "4" + ], + [ + "float", + "Amplitude", + "" + ], + [ + "vec3f", + "MeanNoise", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "SparseGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Eulerian" + ] + }, + "ZSGridExtrapolateAttr": { + "inputs": [ + [ + "", + "Grid", + "" + ], + [ + "string", + "Attribute", + "" + ], + [ + "bool", + "Staggered", + "0" + ], + [ + "string", + "SDFAttrName", + "sdf" + ], + [ + "enum both positive negative", + "Direction", + "positive" + ], + [ + "int", + "Iterations", + "5" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "Grid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Eulerian" + ] + }, + "ZSGridFromZSPartition": { + "inputs": [ + [ + "", + "ZSPartition", + "" + ], + [ + "", + "ZSGrid", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "ZSGridPerlinNoise": { + "inputs": [ + [ + "", + "SparseGrid", + "" + ], + [ + "string", + "GridAttribute", + "v" + ], + [ + "enum replace accumulate", + "OpType", + "accumulate" + ], + [ + "vec3f", + "Frequency", + "" + ], + [ + "vec3f", + "Offset", + "" + ], + [ + "float", + "Roughness", + "" + ], + [ + "int", + "Turbulence", + "4" + ], + [ + "float", + "Amplitude", + "" + ], + [ + "float", + "Attenuation", + "" + ], + [ + "vec3f", + "MeanNoise", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "SparseGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Eulerian" + ] + }, + "ZSGridReduction": { + "inputs": [ + [ + "", + "SparseGrid", + "" + ], + [ + "string", + "Attribute", + "" + ], + [ + "enum max min average", + "Operation", + "max" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "Value", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Eulerian" + ] + }, + "ZSGridToZSParticle": { + "inputs": [ + [ + "", + "ZSGrid", + "" + ], + [ + "", + "ZSPartition", + "" + ], + [ + "", + "ZSParticles", + "" + ], + [ + "", + "dt", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "ZSGridTopoCopy": { + "inputs": [ + [ + "", + "Grid", + "" + ], + [ + "", + "TopologyGrid", + "" + ], + [ + "bool", + "multigrid", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "Grid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Eulerian" + ] + }, + "ZSGridTopoUnion": { + "inputs": [ + [ + "", + "Grid", + "" + ], + [ + "", + "TopologyGrid", + "" + ], + [ + "bool", + "multigrid", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "Grid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Eulerian" + ] + }, + "ZSGridVoxelSize": { + "inputs": [ + [ + "", + "SparseGrid", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "dx", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Eulerian" + ] + }, + "ZSInterpolateEmbedAttr": { + "inputs": [ + [ + "", + "source", + "" + ], + [ + "", + "dest", + "" + ], + [ + "string", + "bcw_tag", + "skin_bw" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "dstAttr", + "x" + ], + [ + "string", + "srcAttr", + "x" + ], + [ + "enum p2p q2p", + "strategy", + "p2p" + ] + ], + "outputs": [ + [ + "", + "dest", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "ZSInterpolateEmbedPrim": { + "inputs": [ + [ + "", + "zsvolume", + "" + ], + [ + "embed primitive", + "zssurf", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "inAttr", + "x" + ], + [ + "string", + "outAttr", + "x" + ], + [ + "string", + "tag", + "skin_bw" + ] + ], + "outputs": [ + [ + "embed primitive", + "zssurf", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "ZSIsotropicTensionField": { + "inputs": [ + [ + "", + "zssurf", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "def_channel", + "x" + ], + [ + "string", + "ref_channel", + "X" + ], + [ + "string", + "tension_channel", + " tension" + ] + ], + "outputs": [ + [ + "", + "zssurf", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "ZSJiggle": { + "inputs": [ + [ + "", + "zsvolume", + "" + ], + [ + "float", + "jiggleDamping", + "" + ], + [ + "float", + "jiggleRate", + "" + ], + [ + "float", + "jiggleScale", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "curJiggleTag", + "cj" + ], + [ + "string", + "drivenTag", + "x" + ], + [ + "string", + "jiggleWeightTag", + "jw" + ], + [ + "string", + "preJiggleTag", + "pj" + ], + [ + "string", + "prePreJiggleTag", + "ppj" + ] + ], + "outputs": [ + [ + "", + "zsvolume", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "ZSLevelSetToVDBGrid": { + "inputs": [ + [ + "", + "ZSLevelSet", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "VDBFloatGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "ZSMaintainSparseGrid": { + "inputs": [ + [ + "", + "SparseGrid", + "" + ], + [ + "enum rho sdf", + "Attribute", + "rho" + ], + [ + "bool", + "refit", + "1" + ], + [ + "int", + "layers", + "2" + ], + [ + "bool", + "multigrid", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "SparseGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Eulerian" + ] + }, + "ZSMakeDenseSDF": { + "inputs": [ + [ + "float", + "dx", + "" + ], + [ + "int", + "nx", + "128" + ], + [ + "int", + "ny", + "128" + ], + [ + "int", + "nz", + "128" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "Grid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "ZSMakeSparseGrid": { + "inputs": [ + [ + "string", + "Attribute", + "" + ], + [ + "float", + "Dx", + "" + ], + [ + "float", + "background", + "" + ], + [ + "enum scalar vector3", + "type", + "scalar" + ], + [ + "enum cell-centered vertex-centered", + "structure", + "cell-centered" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "Grid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Eulerian" + ] + }, + "ZSManifoldCheck": { + "inputs": [ + [ + "", + "zsparticles", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "is_manifold", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "ZSMarkInvertedTet": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "bool", + "append", + "0" + ] + ], + "outputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "ZSMarkIsland": { + "inputs": [ + [ + "", + "zsparticles", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "mark_tag", + "mark_tag" + ] + ], + "outputs": [ + [ + "", + "zsparticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "ZSMarkSurfaceMesh": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "string", + "tagName", + "RENAMEME" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "ZSMomentumTransfer2DFiniteDifference": { + "inputs": [ + [ + "ZenoParticles", + "grid", + "" + ], + [ + "int", + "nx", + "1" + ], + [ + "int", + "ny", + "1" + ], + [ + "string", + "channel", + "d" + ], + [ + "string", + "add_channel", + "d" + ], + [ + "enum vec3 float", + "attrT", + "float" + ], + [ + "enum FIVE_STENCIL NINE_STENCIL", + "OpType", + "FIVE_STENCIL" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "ZenoParticles", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zenofx" + ] + }, + "ZSMultiGridAppendAttribute": { + "inputs": [ + [ + "", + "SparseGrid", + "" + ], + [ + "string", + "Attribute", + "" + ], + [ + "int", + "ChannelNumber", + "1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "SparseGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Eulerian" + ] + }, + "ZSNSAdvectDiffuse": { + "inputs": [ + [ + "", + "NSGrid", + "" + ], + [ + "", + "dt", + "" + ], + [ + "float", + "Density", + "" + ], + [ + "float", + "Viscosity", + "" + ], + [ + "enum Stencil Semi-Lagrangian MacCormack BFECC", + "Scheme", + "MacCormack" + ], + [ + "bool", + "Reflection", + "0" + ], + [ + "vec3f", + "WindVelocity", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "NSGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Eulerian" + ] + }, + "ZSNSCutCellWeight": { + "inputs": [ + [ + "", + "NSGrid", + "" + ], + [ + "", + "SolidSDF", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "NSGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Eulerian" + ] + }, + "ZSNSExternalForce": { + "inputs": [ + [ + "", + "NSGrid", + "" + ], + [ + "", + "dt", + "" + ], + [ + "string", + "ForceAttribute", + "" + ], + [ + "vec3f", + "Gravity", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "NSGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Eulerian" + ] + }, + "ZSNSNaiveSolidWall": { + "inputs": [ + [ + "", + "NSGrid", + "" + ], + [ + "", + "SolidSDF", + "" + ], + [ + "", + "SolidVel", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "NSGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Eulerian" + ] + }, + "ZSNSPressureProject": { + "inputs": [ + [ + "", + "NSGrid", + "" + ], + [ + "", + "SolidSDF", + "" + ], + [ + "", + "dt", + "" + ], + [ + "float", + "Density", + "" + ], + [ + "float", + "Tolerance", + "" + ], + [ + "int", + "MaxIterations", + "10" + ], + [ + "bool", + "hasDivergence", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "NSGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Eulerian" + ] + }, + "ZSNavierStokesDt": { + "inputs": [ + [ + "", + "NSGrid", + "" + ], + [ + "float", + "Density", + "" + ], + [ + "float", + "Viscosity", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "dt", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Eulerian" + ] + }, + "ZSNormalizeVectorField": { + "inputs": [ + [ + "", + "field", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "attr", + "attr" + ], + [ + "enum vertex quad", + "type", + "vertex" + ] + ], + "outputs": [ + [ + "", + "field", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "ZSParticleNeighborBvhWrangler": { + "inputs": [ + [ + "ZenoParticles", + "ZSParticles", + "" + ], + [ + "ZenoParticles", + "ZSNeighborParticles", + "" + ], + [ + "ZenoLinearBvh", + "ZSLBvh", + "" + ], + [ + "string", + "zfxCode", + "" + ], + [ + "bool", + "is_box", + "1" + ], + [ + "DictObject:NumericObject", + "params", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zswrangle" + ] + }, + "ZSParticleNeighborWrangler": { + "inputs": [ + [ + "ZenoParticles", + "ZSParticles", + "" + ], + [ + "ZenoParticles", + "ZSNeighborParticles", + "" + ], + [ + "ZenoIndexBuckets", + "ZSIndexBuckets", + "" + ], + [ + "string", + "zfxCode", + "" + ], + [ + "bool", + "is_box", + "1" + ], + [ + "DictObject:NumericObject", + "params", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zswrangle" + ] + }, + "ZSParticleParticleWrangler": { + "inputs": [ + [ + "ZenoParticles", + "ZSParticles", + "" + ], + [ + "ZenoParticles", + "ZSNeighborParticles", + "" + ], + [ + "string", + "zfxCode", + "" + ], + [ + "DictObject:NumericObject", + "params", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zswrangle" + ] + }, + "ZSParticleToZSGrid": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "ZSPartition", + "" + ], + [ + "", + "ZSGrid", + "" + ], + [ + "", + "dt", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "ZSParticlesFixVertices": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "ZSLevelSet", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "DST", + "" + ] + ], + "categories": [ + "FEM" + ] + }, + "ZSParticlesToPrimitiveObject": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "ZSParticlesTwoWrangler": { + "inputs": [ + [ + "ZenoParticles", + "ZSParticles", + "" + ], + [ + "ZenoParticles", + "ZSParticles2", + "" + ], + [ + "string", + "zfxCode", + "" + ], + [ + "DictObject:NumericObject", + "params", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zswrangle" + ] + }, + "ZSParticlesWrangler": { + "inputs": [ + [ + "ZenoParticles", + "ZSParticles", + "" + ], + [ + "string", + "zfxCode", + "" + ], + [ + "DictObject:NumericObject", + "params", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zswrangle" + ] + }, + "ZSPartitionForZSParticles": { + "inputs": [ + [ + "", + "ZSPartition", + "" + ], + [ + "", + "ZSGrid", + "" + ], + [ + "", + "ZSParticles", + "" + ], + [ + "float", + "ppb", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "enum force cache", + "strategy", + "force" + ] + ], + "outputs": [ + [ + "", + "ZSPartition", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "ZSPoissonDiskSample": { + "inputs": [ + [ + "", + "ZSLevelSet", + "" + ], + [ + "float", + "dx", + "" + ], + [ + "float", + "ppc", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "path", + "" + ] + ], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "ZSPrimitiveReduction": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "string", + "attr", + "pos" + ], + [ + "enum avg max min absmax", + "op", + "avg" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "result", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "primitive" + ] + }, + "ZSPrimitiveToSparseGrid": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "SparseGrid", + "" + ], + [ + "string", + "ParticleAttribute", + "" + ], + [ + "string", + "GridAttribute", + "" + ], + [ + "enum replace-all replace-local accumulate", + "OpType", + "replace-all" + ], + [ + "enum linear quadratic cubic delta2 delta3 delta4", + "Kernel", + "quadratic" + ], + [ + "bool", + "staggered", + "0" + ], + [ + "bool", + "initialize", + "1" + ], + [ + "bool", + "normalize", + "1" + ], + [ + "bool", + "activateBlock", + "0" + ], + [ + "bool", + "activateMultiGrid", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "SparseGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Eulerian" + ] + }, + "ZSRenormalizeSDF": { + "inputs": [ + [ + "", + "Grid", + "" + ], + [ + "string", + "SDFAttrName", + "sdf" + ], + [ + "int", + "iterations", + "10" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "Grid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Eulerian" + ] + }, + "ZSRetrieveVectorField": { + "inputs": [ + [ + "", + "field", + "" + ], + [ + "", + "heatmap", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "color_tag", + "color_tag" + ], + [ + "string", + "gtag", + "vec_field" + ], + [ + "enum quad tri vert", + "location", + "quad" + ], + [ + "float", + "scale", + "" + ], + [ + "string", + "xtag", + "x" + ] + ], + "outputs": [ + [ + "", + "vec_field", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "ZSReturnMapping": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "MPM" + ] + }, + "ZSSampleEmbedTagField": { + "inputs": [ + [ + "", + "volume", + "" + ], + [ + "embed tag field", + "tag_field", + "" + ], + [ + "default value", + "default", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "interpolate_tag", + "bws" + ], + [ + "string", + "outAttr", + " vec_field" + ], + [ + "string", + "sampleAttr", + "vec_field" + ], + [ + "enum element vert", + "type", + "element" + ] + ], + "outputs": [ + [ + "out volume", + "volume", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "ZSSampleEmbedVectorField": { + "inputs": [ + [ + "", + "volume", + "" + ], + [ + "embed vec field", + "vec_field", + "" + ], + [ + "default value", + "default", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "bcw_channel", + "bcw" + ], + [ + "string", + "outAttr", + " vec_field" + ], + [ + "string", + "sampleAttr", + "vec_field" + ], + [ + "enum element vert", + "type", + "element" + ] + ], + "outputs": [ + [ + "out volume", + "volume", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "ZSSampleQuadratureAttr2Vert": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "attr", + "attr" + ], + [ + "string", + "bou_tag", + "btag" + ], + [ + "int", + "skip_bou", + "0" + ], + [ + "string", + "wtag", + "vol" + ] + ], + "outputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "ZSSampleVertAttr2Quadrature": { + "inputs": [ + [ + "", + "field", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "attr", + "attr" + ] + ], + "outputs": [ + [ + "", + "field", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "ZSSetupSkinningWeight": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "weight_dim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "float", + "filter_threshold", + "" + ], + [ + "string", + "prefix", + "RENAME_ME" + ], + [ + "int", + "preserve_dim", + "5" + ] + ], + "outputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "ZSSmokeBuoyancy": { + "inputs": [ + [ + "", + "NSGrid", + "" + ], + [ + "", + "dt", + "" + ], + [ + "vec3f", + "Gravity", + "" + ], + [ + "float", + "DensityCoef", + "" + ], + [ + "float", + "TemperatureCoef", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "NSGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Eulerian" + ] + }, + "ZSSolveBiHarmonicEqua": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "tag", + "T" + ] + ], + "outputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "ZSSolveLaplacian": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "float", + "accuracy", + "" + ], + [ + "string", + "btag", + "btag" + ], + [ + "int", + "degree", + "1" + ], + [ + "string", + "tag", + "T" + ] + ], + "outputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "ZSSolveShallowWaterHeight": { + "inputs": [ + [ + "", + "SWGrid", + "" + ], + [ + "float", + "dt", + "" + ], + [ + "string", + "height_attr", + "height" + ], + [ + "string", + "u_attr", + "u" + ], + [ + "string", + "w_attr", + "w" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "SWGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Eulerian" + ] + }, + "ZSSolveShallowWaterMomentum": { + "inputs": [ + [ + "", + "SWGrid", + "" + ], + [ + "float", + "dt", + "" + ], + [ + "float", + "gravity", + "" + ], + [ + "string", + "terrain_attr", + "terrain" + ], + [ + "string", + "height_attr", + "height" + ], + [ + "string", + "u_attr", + "u" + ], + [ + "string", + "w_attr", + "w" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "SWGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Eulerian" + ] + }, + "ZSSparseGridToPrimitive": { + "inputs": [ + [ + "", + "SparseGrid", + "" + ], + [ + "", + "ZSParticles", + "" + ], + [ + "string", + "GridAttribute", + "" + ], + [ + "string", + "ParticleAttribute", + "" + ], + [ + "enum replace accumulate", + "OpType", + "replace" + ], + [ + "enum linear quadratic cubic delta2 delta3 delta4", + "Kernel", + "quadratic" + ], + [ + "bool", + "staggered", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Eulerian" + ] + }, + "ZSSparseGridToVDB": { + "inputs": [ + [ + "", + "SparseGrid", + "" + ], + [ + "string", + "Attribute", + "" + ], + [ + "enum UNKNOWN LEVEL_SET FOG_VOLUME STAGGERED", + "VDBGridClass", + "LEVEL_SET" + ], + [ + "string", + "VDBGridName", + "SparseGrid" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "VDB", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Eulerian" + ] + }, + "ZSSurfaceBind": { + "inputs": [ + [ + "", + "zssurf", + "" + ], + [ + "", + "kboundary", + "" + ], + [ + "float", + "kinInColEps", + "" + ], + [ + "float", + "kinOutColEps", + "" + ], + [ + "float", + "align_angle_cosin", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "bool", + "align_direction", + "1" + ], + [ + "string", + "binder_tag", + "binderTag" + ], + [ + "string", + "inversion_tag", + "inversionTag" + ], + [ + "string", + "mark_tag", + "markTag" + ], + [ + "int", + "max_nm_binders", + "4" + ], + [ + "string", + "thickness_tag", + "thicknessTag" + ] + ], + "outputs": [ + [ + "", + "zssurf", + "" + ], + [ + "", + "kboundary", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "ZSSurfaceClosestIntersectingTris": { + "inputs": [ + [ + "", + "zsparticles", + "" + ], + [ + "", + "kboundary", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "bool", + "align_direction", + "1" + ], + [ + "string", + "project_idx_tag", + "project_idx_tag" + ] + ], + "outputs": [ + [ + "", + "zsparticles", + "" + ], + [ + "", + "kboundary", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "ZSSurfaceClosestPoints": { + "inputs": [ + [ + "", + "zsparticles", + "" + ], + [ + "", + "kboundary", + "" + ], + [ + "float", + "kinInColEps", + "" + ], + [ + "float", + "kinOutColEps", + "" + ], + [ + "float", + "align_angle_cosin", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "bool", + "align_direction", + "1" + ], + [ + "string", + "project_bary_tag", + "project_bary_tag" + ], + [ + "string", + "project_idx_tag", + "project_idx_tag" + ], + [ + "string", + "project_nrm_tag", + "project_nrm_tag" + ], + [ + "string", + "project_pos_tag", + "project_pos_tag" + ] + ], + "outputs": [ + [ + "", + "zsparticles", + "" + ], + [ + "", + "kboundary", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "ZSSurfaceClosestPointsGrp": { + "inputs": [ + [ + "", + "zsparticles", + "" + ], + [ + "", + "kboundary", + "" + ], + [ + "float", + "kinInColEps", + "" + ], + [ + "float", + "kinOutColEps", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "bool", + "align_direction", + "1" + ], + [ + "string", + "project_idx_tag", + "project_idx_tag" + ], + [ + "string", + "project_nrm_tag", + "project_nrm_tag" + ], + [ + "string", + "project_pos_tag", + "project_pos_tag" + ] + ], + "outputs": [ + [ + "", + "zsparticles", + "" + ], + [ + "", + "kboundary", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "ZSSurfaceClosestTris": { + "inputs": [ + [ + "", + "zsparticles", + "" + ], + [ + "", + "kboundary", + "" + ], + [ + "float", + "kinInColEps", + "" + ], + [ + "float", + "kinOutColEps", + "" + ], + [ + "float", + "align_angle_cosin", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "bool", + "align_direction", + "1" + ], + [ + "string", + "project_idx_tag", + "project_idx_tag" + ] + ], + "outputs": [ + [ + "", + "zsparticles", + "" + ], + [ + "", + "kboundary", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "ZSTileVectorWrangler": { + "inputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "string", + "zfxCode", + "" + ], + [ + "DictObject:NumericObject", + "params", + "" + ], + [ + "enum vert element auto", + "target", + "auto" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSParticles", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zswrangle" + ] + }, + "ZSTracerAdvectDiffuse": { + "inputs": [ + [ + "", + "NSGrid", + "" + ], + [ + "", + "dt", + "" + ], + [ + "bool", + "Density", + "1" + ], + [ + "bool", + "Temperature", + "1" + ], + [ + "bool", + "Fuel", + "0" + ], + [ + "enum Stencil Semi-Lagrangian MacCormack BFECC", + "Scheme", + "MacCormack" + ], + [ + "float", + "FuelSpeedScale", + "" + ], + [ + "float", + "Diffusion", + "" + ], + [ + "vec3f", + "WindVelocity", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "NSGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Eulerian" + ] + }, + "ZSTracerEmission": { + "inputs": [ + [ + "", + "NSGrid", + "" + ], + [ + "", + "EmitterSDF", + "" + ], + [ + "bool", + "hasEmitterVel", + "0" + ], + [ + "", + "EmitterVel", + "" + ], + [ + "bool", + "fromObjBoundary", + "0" + ], + [ + "bool", + "Density", + "1" + ], + [ + "float", + "DensityAmount", + "" + ], + [ + "bool", + "Temperature", + "1" + ], + [ + "float", + "TemperatureAmount", + "" + ], + [ + "bool", + "Fuel", + "0" + ], + [ + "float", + "FuelAmount", + "" + ], + [ + "bool", + "AddNoise", + "0" + ], + [ + "float", + "NoiseAmpPercent", + "" + ], + [ + "float", + "SwirlSize", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "NSGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Eulerian" + ] + }, + "ZSVDBToNavierStokesGrid": { + "inputs": [ + [ + "", + "VDB", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "NSGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Eulerian" + ] + }, + "ZSVDBToSparseGrid": { + "inputs": [ + [ + "", + "VDB", + "" + ], + [ + "", + "SparseGrid", + "" + ], + [ + "string", + "Attribute", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "SparseGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Eulerian" + ] + }, + "ZSVisualizeClosestPoints": { + "inputs": [ + [ + "", + "zsparticles", + "" + ], + [ + "", + "kboundary", + "" + ], + [ + "float", + "nrm_scale", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "project_idx_tag", + "project_idx_tag" + ], + [ + "string", + "project_nrm_tag", + "project_nrm_tag" + ], + [ + "string", + "project_pos_tag", + "project_pos_tag" + ] + ], + "outputs": [ + [ + "", + "closest_vis", + "" + ], + [ + "", + "normal_vis", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "ZSGeometry" + ] + }, + "ZSVolumeCombustion": { + "inputs": [ + [ + "", + "NSGrid", + "" + ], + [ + "", + "dt", + "" + ], + [ + "float", + "IgnitionTemperature", + "" + ], + [ + "float", + "BurnSpeed", + "" + ], + [ + "float", + "DensityEmitAmount", + "" + ], + [ + "float", + "TemperatureEmitAmount", + "" + ], + [ + "float", + "VolumeExpansion", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "NSGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Eulerian" + ] + }, + "ZSVolumeWrangler": { + "inputs": [ + [ + "", + "ZSGrid", + "" + ], + [ + "string", + "zfxCode", + "" + ], + [ + "DictObject:NumericObject", + "params", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "ZSGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zswrangle" + ] + }, + "ZipListAsDict": { + "inputs": [ + [ + "ListObject", + "keys", + "" + ], + [ + "ListObject", + "values", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "DictObject", + "dict", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "dict" + ] + }, + "addRigid": { + "inputs": [ + [ + "", + "Primitive", + "" + ], + [ + "", + "Transform", + "" + ], + [ + "", + "mass", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "RigidObject", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "Rigid" + ] + }, + "erode_domainWarping_v1": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "float", + "fbmH", + "" + ], + [ + "float", + "fbmFrequence", + "" + ], + [ + "float", + "fbmAmplitude", + "" + ], + [ + "int", + "fbmNumOctaves", + "4" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "attrName", + "noise" + ], + [ + "enum float float3", + "attrType", + "float" + ] + ], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "erode" + ] + }, + "erode_domainWarping_v2": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "float", + "fbmH", + "" + ], + [ + "float", + "fbmFrequence", + "" + ], + [ + "float", + "fbmAmplitude", + "" + ], + [ + "int", + "fbmNumOctaves", + "4" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "attrName", + "noise" + ], + [ + "enum float float3", + "attrType", + "float" + ] + ], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "erode" + ] + }, + "erode_hybridMultifractal_v1": { + "inputs": [ + [ + "", + "prim_2DGrid", + "" + ], + [ + "float", + "H", + "" + ], + [ + "float", + "lacunarity", + "" + ], + [ + "float", + "octaves", + "" + ], + [ + "float", + "offset", + "" + ], + [ + "float", + "scale", + "" + ], + [ + "float", + "persistence", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "attrName", + "hybrid" + ], + [ + "enum float float3", + "attrType", + "float" + ] + ], + "outputs": [ + [ + "", + "prim_2DGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "erode" + ] + }, + "erode_hybridMultifractal_v2": { + "inputs": [ + [ + "", + "prim_2DGrid", + "" + ], + [ + "float", + "H", + "" + ], + [ + "float", + "lacunarity", + "" + ], + [ + "float", + "octaves", + "" + ], + [ + "float", + "offset", + "" + ], + [ + "float", + "scale", + "" + ], + [ + "float", + "persistence", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "attrName", + "hybrid" + ], + [ + "enum float float3", + "attrType", + "float" + ] + ], + "outputs": [ + [ + "", + "prim_2DGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "erode" + ] + }, + "erode_hybridMultifractal_v3": { + "inputs": [ + [ + "", + "prim_2DGrid", + "" + ], + [ + "float", + "H", + "" + ], + [ + "float", + "lacunarity", + "" + ], + [ + "float", + "octaves", + "" + ], + [ + "float", + "offset", + "" + ], + [ + "float", + "scale", + "" + ], + [ + "float", + "persistence", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "attrName", + "hybrid" + ], + [ + "enum float float3", + "attrType", + "float" + ] + ], + "outputs": [ + [ + "", + "prim_2DGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "erode" + ] + }, + "erode_noise_analytic_simplex_2d": { + "inputs": [ + [ + "", + "prim_2DGrid", + "" + ], + [ + "string", + "posLikeAttrName", + "pos" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "attrName", + "analyticNoise" + ] + ], + "outputs": [ + [ + "", + "prim_2DGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "erode" + ] + }, + "erode_noise_perlin": { + "inputs": [ + [ + "", + "prim_2DGrid", + "" + ], + [ + "string", + "vec3fAttrName", + "pos" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "attrName", + "noise" + ], + [ + "enum float float3", + "attrType", + "float" + ] + ], + "outputs": [ + [ + "", + "prim_2DGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "erode" + ] + }, + "erode_noise_simplex": { + "inputs": [ + [ + "", + "prim_2DGrid", + "" + ], + [ + "string", + "posLikeAttrName", + "pos" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "attrName", + "noise" + ], + [ + "enum float float3", + "attrType", + "float" + ] + ], + "outputs": [ + [ + "", + "prim_2DGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "erode" + ] + }, + "erode_noise_sparse_convolution": { + "inputs": [ + [ + "", + "prim_2DGrid", + "" + ], + [ + "string", + "posLikeAttrName", + "pos" + ], + [ + "int", + "pulsenum", + "3" + ], + [ + "int", + "griddist", + "2" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "attrName", + "noise" + ], + [ + "enum float float3", + "attrType", + "float" + ] + ], + "outputs": [ + [ + "", + "prim_2DGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "erode" + ] + }, + "erode_noise_worley": { + "inputs": [ + [ + "", + "prim_2DGrid", + "" + ], + [ + "vec3f", + "seed", + "" + ], + [ + "string", + "posLikeAttrName", + "pos" + ], + [ + "float", + "celljitter", + "" + ], + [ + "enum Euclidean Chebyshev Manhattan", + "distType", + "Euclidean" + ], + [ + "enum F1 F2-F1", + "fType", + "F1" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "attrName", + "noise" + ], + [ + "enum float float3", + "attrType", + "float" + ] + ], + "outputs": [ + [ + "", + "prim_2DGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "erode" + ] + }, + "erode_rand_color": { + "inputs": [ + [ + "int", + "iterations", + "0" + ], + [ + "int", + "iter", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "list", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "erode" + ] + }, + "erode_rand_dir": { + "inputs": [ + [ + "int", + "iterations", + "0" + ], + [ + "int", + "iter", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "list", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "erode" + ] + }, + "erode_smooth_flow": { + "inputs": [ + [ + "", + "prim_2DGrid", + "" + ], + [ + "float", + "smoothRate", + "" + ], + [ + "string", + "flowName", + "flow" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim_2DGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "erode" + ] + }, + "erode_terrainHiMeLo": { + "inputs": [ + [ + "", + "prim_2DGrid", + "" + ], + [ + "string", + "attrName", + "fbm" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim_2DGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "erode" + ] + }, + "erode_tumble_material_erosion": { + "inputs": [ + [ + "", + "prim_2DGrid", + "" + ], + [ + "ListObject", + "perm", + "" + ], + [ + "ListObject", + "p_dirs", + "" + ], + [ + "ListObject", + "x_dirs", + "" + ], + [ + "float", + "seed", + "" + ], + [ + "int", + "iterations", + "0" + ], + [ + "int", + "iter", + "0" + ], + [ + "int", + "i", + "0" + ], + [ + "int", + "openborder", + "0" + ], + [ + "float", + "maxdepth", + "" + ], + [ + "float", + "global_erosionrate", + "" + ], + [ + "float", + "erosionrate", + "" + ], + [ + "float", + "cutangle", + "" + ], + [ + "string", + "cutangle_mask_layer", + "cutangle_mask" + ], + [ + "float", + "erodability", + "" + ], + [ + "string", + "erodability_mask_layer", + "erodability_mask" + ], + [ + "float", + "removalrate", + "" + ], + [ + "string", + "removalrate_mask_layer", + "removalrate_mask" + ], + [ + "float", + "gridbias", + "" + ], + [ + "string", + "gridbias_mask_layer", + "gridbias_mask" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim_2DGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "erode" + ] + }, + "erode_tumble_material_v0": { + "inputs": [ + [ + "", + "prim_2DGrid", + "" + ], + [ + "ListObject", + "perm", + "" + ], + [ + "ListObject", + "p_dirs", + "" + ], + [ + "ListObject", + "x_dirs", + "" + ], + [ + "float", + "seed", + "" + ], + [ + "int", + "iterations", + "0" + ], + [ + "int", + "iter", + "0" + ], + [ + "int", + "i", + "0" + ], + [ + "int", + "openborder", + "0" + ], + [ + "float", + "maxdepth", + "" + ], + [ + "float", + "global_erosionrate", + "" + ], + [ + "float", + "erosionrate", + "" + ], + [ + "float", + "cutangle", + "" + ], + [ + "string", + "cutangle_mask_layer", + "cutangle_mask" + ], + [ + "float", + "erodability", + "" + ], + [ + "string", + "erodability_mask_layer", + "erodability_mask" + ], + [ + "float", + "removalrate", + "" + ], + [ + "string", + "removalrate_mask_layer", + "removalrate_mask" + ], + [ + "float", + "gridbias", + "" + ], + [ + "string", + "gridbias_mask_layer", + "gridbias_mask" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim_2DGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "erode" + ] + }, + "erode_tumble_material_v1": { + "inputs": [ + [ + "", + "HeightField", + "" + ], + [ + "string", + "write_back_material_layer", + "write_back_material" + ], + [ + "int", + "openborder", + "0" + ], + [ + "float", + "repose_angle", + "" + ], + [ + "float", + "flow_rate", + "" + ], + [ + "float", + "height_factor", + "" + ], + [ + "float", + "entrainmentrate", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "HeightField", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "erode" + ] + }, + "erode_tumble_material_v2": { + "inputs": [ + [ + "", + "HeightField", + "" + ], + [ + "string", + "stabilitymask", + "_stability" + ], + [ + "ListObject", + "perm", + "" + ], + [ + "ListObject", + "p_dirs", + "" + ], + [ + "ListObject", + "x_dirs", + "" + ], + [ + "float", + "seed", + "" + ], + [ + "int", + "iterations", + "0" + ], + [ + "int", + "iter", + "0" + ], + [ + "int", + "i", + "0" + ], + [ + "int", + "openborder", + "0" + ], + [ + "float", + "gridbias", + "" + ], + [ + "float", + "repose_angle", + "" + ], + [ + "float", + "quant_amt", + "" + ], + [ + "float", + "flow_rate", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "HeightField", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "erode" + ] + }, + "erode_tumble_material_v3": { + "inputs": [ + [ + "", + "prim_2DGrid", + "" + ], + [ + "string", + "stabilitymask", + "_stability" + ], + [ + "ListObject", + "perm", + "" + ], + [ + "ListObject", + "p_dirs", + "" + ], + [ + "ListObject", + "x_dirs", + "" + ], + [ + "float", + "seed", + "" + ], + [ + "int", + "iterations", + "0" + ], + [ + "int", + "iter", + "0" + ], + [ + "int", + "i", + "0" + ], + [ + "int", + "openborder", + "0" + ], + [ + "float", + "gridbias", + "" + ], + [ + "float", + "repose_angle", + "" + ], + [ + "float", + "quant_amt", + "" + ], + [ + "float", + "flow_rate", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim_2DGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "erode" + ] + }, + "erode_tumble_material_v4": { + "inputs": [ + [ + "", + "prim_2DGrid", + "" + ], + [ + "ListObject", + "perm", + "" + ], + [ + "ListObject", + "p_dirs", + "" + ], + [ + "ListObject", + "x_dirs", + "" + ], + [ + "float", + "seed", + "" + ], + [ + "int", + "iterations", + "40" + ], + [ + "int", + "iter", + "0" + ], + [ + "int", + "i", + "0" + ], + [ + "int", + "openborder", + "0" + ], + [ + "float", + "gridbias", + "" + ], + [ + "float", + "global_erosionrate", + "" + ], + [ + "float", + "erodability", + "" + ], + [ + "float", + "erosionrate", + "" + ], + [ + "float", + "bank_angle", + "" + ], + [ + "float", + "removalrate", + "" + ], + [ + "float", + "max_debris_depth", + "" + ], + [ + "int", + "max_erodability_iteration", + "5" + ], + [ + "float", + "initial_erodability_factor", + "" + ], + [ + "float", + "slope_contribution_factor", + "" + ], + [ + "float", + "bed_erosionrate_factor", + "" + ], + [ + "float", + "depositionrate", + "" + ], + [ + "float", + "sedimentcap", + "" + ], + [ + "float", + "bank_erosionrate_factor", + "" + ], + [ + "float", + "max_bank_bed_ratio", + "" + ], + [ + "float", + "quant_amt", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim_2DGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "erode" + ] + }, + "erode_value2cond": { + "inputs": [ + [ + "", + "prim_2DGrid", + "" + ], + [ + "float", + "value", + "" + ], + [ + "float", + "seed", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim_2DGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "erode" + ] + }, + "erode_voronoi": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "featurePrim", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [ + [ + "string", + "attrName", + "voronoi" + ] + ], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "erode" + ] + }, + "makeUV": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "makeXYZ": { + "inputs": [ + [ + "", + "input1", + "" + ], + [ + "", + "input2", + "" + ], + [ + "", + "input3", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "output1", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "normalize": { + "inputs": [ + [ + "", + "input1", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "output1", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "deprecated" + ] + }, + "str2num": { + "inputs": [ + [ + "enum float int", + "type", + "int" + ], + [ + "string", + "str", + "0" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "num", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "WBTest" + ] + }, + "testPoly1": { + "inputs": [ + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "WBTest" + ] + }, + "testPoly2": { + "inputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "list", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "WBTest" + ] + }, + "zelloWorld": { + "inputs": [ + [ + "", + "string", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "3Dword", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "zelloWorld" + ] + }, + "zs_HF_maskByFeature": { + "inputs": [ + [ + "", + "HeightField", + "" + ], + [ + "string", + "height_layer", + "height" + ], + [ + "string", + "mask_layer", + "mask" + ], + [ + "int", + "smooth_radius", + "1" + ], + [ + "bool", + "use_slope", + "0" + ], + [ + "float", + "min_slopeangle", + "" + ], + [ + "float", + "max_slopeangle", + "" + ], + [ + "bool", + "use_direction", + "0" + ], + [ + "float", + "goal_angle", + "" + ], + [ + "float", + "angle_spread", + "" + ], + [ + "bool", + "use_height", + "0" + ], + [ + "float", + "min_height", + "" + ], + [ + "float", + "max_height", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "HeightField", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "erode" + ] + }, + "zs_erode_smooth_flow": { + "inputs": [ + [ + "", + "prim_2DGrid", + "" + ], + [ + "float", + "smoothRate", + "" + ], + [ + "string", + "flowName", + "flow" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim_2DGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "erode" + ] + }, + "zs_erode_tumble_material_v0": { + "inputs": [ + [ + "", + "prim_2DGrid", + "" + ], + [ + "ListObject", + "perm", + "" + ], + [ + "ListObject", + "p_dirs", + "" + ], + [ + "ListObject", + "x_dirs", + "" + ], + [ + "float", + "seed", + "" + ], + [ + "int", + "iterations", + "0" + ], + [ + "int", + "iter", + "0" + ], + [ + "int", + "i", + "0" + ], + [ + "int", + "openborder", + "0" + ], + [ + "float", + "gridbias", + "" + ], + [ + "float", + "cut_angle", + "" + ], + [ + "float", + "global_erosionrate", + "" + ], + [ + "float", + "erosionrate", + "" + ], + [ + "float", + "erodability", + "" + ], + [ + "float", + "removalrate", + "" + ], + [ + "float", + "maxdepth", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim_2DGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "erode" + ] + }, + "zs_erode_tumble_material_v2": { + "inputs": [ + [ + "", + "prim_2DGrid", + "" + ], + [ + "string", + "stabilitymask", + "_stability" + ], + [ + "ListObject", + "perm", + "" + ], + [ + "ListObject", + "p_dirs", + "" + ], + [ + "ListObject", + "x_dirs", + "" + ], + [ + "float", + "seed", + "" + ], + [ + "int", + "iterations", + "0" + ], + [ + "int", + "iter", + "0" + ], + [ + "int", + "i", + "0" + ], + [ + "int", + "openborder", + "0" + ], + [ + "float", + "gridbias", + "" + ], + [ + "float", + "repose_angle", + "" + ], + [ + "float", + "quant_amt", + "" + ], + [ + "float", + "flow_rate", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim_2DGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "erode" + ] + }, + "zs_erode_tumble_material_v3": { + "inputs": [ + [ + "", + "prim_2DGrid", + "" + ], + [ + "string", + "stabilitymask", + "_stability" + ], + [ + "ListObject", + "perm", + "" + ], + [ + "ListObject", + "p_dirs", + "" + ], + [ + "ListObject", + "x_dirs", + "" + ], + [ + "float", + "seed", + "" + ], + [ + "int", + "iterations", + "0" + ], + [ + "int", + "iter", + "0" + ], + [ + "int", + "i", + "0" + ], + [ + "int", + "openborder", + "0" + ], + [ + "float", + "gridbias", + "" + ], + [ + "float", + "repose_angle", + "" + ], + [ + "float", + "quant_amt", + "" + ], + [ + "float", + "flow_rate", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim_2DGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "erode" + ] + }, + "zs_erode_tumble_material_v4": { + "inputs": [ + [ + "", + "prim_2DGrid", + "" + ], + [ + "ListObject", + "perm", + "" + ], + [ + "ListObject", + "p_dirs", + "" + ], + [ + "ListObject", + "x_dirs", + "" + ], + [ + "float", + "seed", + "" + ], + [ + "int", + "iterations", + "40" + ], + [ + "int", + "iter", + "0" + ], + [ + "int", + "i", + "0" + ], + [ + "int", + "openborder", + "0" + ], + [ + "float", + "gridbias", + "" + ], + [ + "float", + "global_erosionrate", + "" + ], + [ + "float", + "erodability", + "" + ], + [ + "float", + "erosionrate", + "" + ], + [ + "float", + "bank_angle", + "" + ], + [ + "float", + "removalrate", + "" + ], + [ + "float", + "max_debris_depth", + "" + ], + [ + "int", + "max_erodability_iteration", + "5" + ], + [ + "float", + "initial_erodability_factor", + "" + ], + [ + "float", + "slope_contribution_factor", + "" + ], + [ + "float", + "bed_erosionrate_factor", + "" + ], + [ + "float", + "depositionrate", + "" + ], + [ + "float", + "sedimentcap", + "" + ], + [ + "float", + "bank_erosionrate_factor", + "" + ], + [ + "float", + "max_bank_bed_ratio", + "" + ], + [ + "float", + "quant_amt", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim_2DGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "erode" + ] + }, + "zs_erode_value2cond": { + "inputs": [ + [ + "", + "prim_2DGrid", + "" + ], + [ + "float", + "value", + "" + ], + [ + "float", + "seed", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "prim_2DGrid", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "erode" + ] + }, + "zs_tumble_material_erosion": { + "inputs": [ + [ + "", + "zs_HeightField", + "" + ], + [ + "ListObject", + "perm", + "" + ], + [ + "ListObject", + "p_dirs", + "" + ], + [ + "ListObject", + "x_dirs", + "" + ], + [ + "float", + "seed", + "" + ], + [ + "int", + "iterations", + "0" + ], + [ + "int", + "iter", + "0" + ], + [ + "int", + "i", + "0" + ], + [ + "int", + "openborder", + "0" + ], + [ + "float", + "maxdepth", + "" + ], + [ + "float", + "global_erosionrate", + "" + ], + [ + "float", + "erosionrate", + "" + ], + [ + "float", + "cutangle", + "" + ], + [ + "string", + "cutangle_mask_layer", + "cutangle_mask" + ], + [ + "float", + "erodability", + "" + ], + [ + "string", + "erodability_mask_layer", + "erodability_mask" + ], + [ + "float", + "removalrate", + "" + ], + [ + "string", + "removalrate_mask_layer", + "removalrate_mask" + ], + [ + "float", + "gridbias", + "" + ], + [ + "string", + "gridbias_mask_layer", + "gridbias_mask" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "zs_HeightField", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "erode" + ] + }, + "zs_tumble_material_v1": { + "inputs": [ + [ + "", + "zs_HeightField", + "" + ], + [ + "string", + "write_back_material_layer", + "write_back_material" + ], + [ + "int", + "openborder", + "0" + ], + [ + "float", + "repose_angle", + "" + ], + [ + "float", + "flow_rate", + "" + ], + [ + "float", + "height_factor", + "" + ], + [ + "float", + "entrainmentrate", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "zs_HeightField", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "erode" + ] + }, + "zs_tumble_material_v2": { + "inputs": [ + [ + "", + "zs_HeightField", + "" + ], + [ + "string", + "stabilitymask", + "_stability" + ], + [ + "ListObject", + "perm", + "" + ], + [ + "ListObject", + "p_dirs", + "" + ], + [ + "ListObject", + "x_dirs", + "" + ], + [ + "float", + "seed", + "" + ], + [ + "int", + "iterations", + "0" + ], + [ + "int", + "iter", + "0" + ], + [ + "int", + "i", + "0" + ], + [ + "int", + "openborder", + "0" + ], + [ + "float", + "gridbias", + "" + ], + [ + "float", + "repose_angle", + "" + ], + [ + "float", + "quant_amt", + "" + ], + [ + "float", + "flow_rate", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "zs_HeightField", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "erode" + ] + }, + "zs_tumble_material_v3": { + "inputs": [ + [ + "", + "zs_HeightField", + "" + ], + [ + "string", + "stabilitymask", + "_stability" + ], + [ + "ListObject", + "perm", + "" + ], + [ + "ListObject", + "p_dirs", + "" + ], + [ + "ListObject", + "x_dirs", + "" + ], + [ + "float", + "seed", + "" + ], + [ + "int", + "iterations", + "0" + ], + [ + "int", + "iter", + "0" + ], + [ + "int", + "i", + "0" + ], + [ + "int", + "openborder", + "0" + ], + [ + "float", + "gridbias", + "" + ], + [ + "float", + "repose_angle", + "" + ], + [ + "float", + "quant_amt", + "" + ], + [ + "float", + "flow_rate", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "zs_HeightField", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "erode" + ] + }, + "zs_tumble_material_v4": { + "inputs": [ + [ + "", + "zs_HeightField", + "" + ], + [ + "ListObject", + "perm", + "" + ], + [ + "ListObject", + "p_dirs", + "" + ], + [ + "ListObject", + "x_dirs", + "" + ], + [ + "float", + "seed", + "" + ], + [ + "int", + "iterations", + "40" + ], + [ + "int", + "iter", + "0" + ], + [ + "int", + "i", + "0" + ], + [ + "int", + "openborder", + "0" + ], + [ + "float", + "gridbias", + "" + ], + [ + "float", + "global_erosionrate", + "" + ], + [ + "float", + "erodability", + "" + ], + [ + "float", + "erosionrate", + "" + ], + [ + "float", + "bank_angle", + "" + ], + [ + "float", + "removalrate", + "" + ], + [ + "float", + "max_debris_depth", + "" + ], + [ + "int", + "max_erodability_iteration", + "5" + ], + [ + "float", + "initial_erodability_factor", + "" + ], + [ + "float", + "slope_contribution_factor", + "" + ], + [ + "float", + "bed_erosionrate_factor", + "" + ], + [ + "float", + "depositionrate", + "" + ], + [ + "float", + "sedimentcap", + "" + ], + [ + "float", + "bank_erosionrate_factor", + "" + ], + [ + "float", + "max_bank_bed_ratio", + "" + ], + [ + "float", + "quant_amt", + "" + ], + [ + "", + "SRC", + "" + ] + ], + "params": [], + "outputs": [ + [ + "", + "zs_HeightField", + "" + ], + [ + "", + "DST", + "" + ] + ], + "categories": [ + "erode" + ] + } + }, + "version": "v2.5" +} \ No newline at end of file diff --git a/projects/Alembic/GetAlembicPrim.cpp b/projects/Alembic/GetAlembicPrim.cpp index bf1c68228f..69ef22a55c 100644 --- a/projects/Alembic/GetAlembicPrim.cpp +++ b/projects/Alembic/GetAlembicPrim.cpp @@ -264,6 +264,7 @@ ZENDEFNODE(GetAlembicCamera, { struct ImportAlembicPrim : INode { Alembic::Abc::v12::IArchive archive; + std::string usedPath; virtual void apply() override { int frameid; if (has_input("frameid")) { @@ -274,9 +275,10 @@ struct ImportAlembicPrim : INode { auto abctree = std::make_shared(); { auto path = get_input2("path"); - bool read_done = archive.valid(); + bool read_done = archive.valid() && (path == usedPath); if (!read_done) { archive = readABC(path); + usedPath = path; } double start, _end; GetArchiveStartAndEndTime(archive, start, _end); diff --git a/projects/Alembic/ReadAlembic.cpp b/projects/Alembic/ReadAlembic.cpp index 7d24728c55..29d35053c5 100644 --- a/projects/Alembic/ReadAlembic.cpp +++ b/projects/Alembic/ReadAlembic.cpp @@ -512,6 +512,7 @@ Alembic::AbcGeom::IArchive readABC(std::string const &path) { struct ReadAlembic : INode { Alembic::Abc::v12::IArchive archive; + std::string usedPath; bool read_done = false; virtual void apply() override { int frameid; @@ -523,6 +524,9 @@ struct ReadAlembic : INode { auto abctree = std::make_shared(); { auto path = get_input("path")->get(); + if (usedPath != path) { + read_done = false; + } if (read_done == false) { archive = readABC(path); } @@ -533,6 +537,7 @@ struct ReadAlembic : INode { auto obj = archive.getTop(); traverseABC(obj, *abctree, frameid, read_done); read_done = true; + usedPath = path; } set_output("abctree", std::move(abctree)); } diff --git a/projects/CUDA/CMakeLists.txt b/projects/CUDA/CMakeLists.txt index a9d7a86092..a2c4c22e42 100644 --- a/projects/CUDA/CMakeLists.txt +++ b/projects/CUDA/CMakeLists.txt @@ -28,9 +28,6 @@ target_include_directories(zshelper INTERFACE ) target_link_libraries(zshelper INTERFACE zensim ZFX) target_compile_features(zshelper INTERFACE cuda_std_17) -target_compile_options(zpc_cuda_deps - INTERFACE $<$:-arch=sm_${ZS_CUDA_ARCH}> -) target_link_options(zeno PRIVATE $ diff --git a/projects/CUDA/iw_query/Query.cpp b/projects/CUDA/iw_query/Query.cpp index 2023b1282c..31c39c8dbd 100644 --- a/projects/CUDA/iw_query/Query.cpp +++ b/projects/CUDA/iw_query/Query.cpp @@ -115,7 +115,16 @@ struct QueryNearestPoints : INode { }); // timer.tick(); +#if 1 merge_sort_pair(pol, std::begin(keys), std::begin(indices), vertices.size(), std::less{}); +#else + std::vector sortedKeys(vertices.size()); + std::vector sortedIndices(vertices.size()); + radix_sort_pair(pol, std::begin(keys), std::begin(indices), std::begin(sortedKeys), std::begin(sortedIndices), + vertices.size()); + keys = std::move(sortedKeys); + indices = std::move(sortedIndices); +#endif timer.tock(fmt::format("sort {} points", vertices.size())); { @@ -161,27 +170,49 @@ struct QueryNearestPoints : INode { timer.tick(); pol(enumerate(pos, locs, dists, ids, cps), - [&xs, &indices](int i, const auto &xi, const int loc, float &dist, int &id, vec3f &cp) { + [&xs, &indices, axis](int i, const auto &xi, const int loc, float &dist, int &id, vec3f &cp) { int l = loc + 1; float d2 = limits::max(); int j = -1; - if (l < xs.size()) { - d2 = lengthSquared(xs[l] - xi); - j = l; + int cnt = 0; + while (l < xs.size() && cnt++ < 128) { + if (zs::sqr(xs[l][axis] - xi[axis]) > d2) + break; + if (auto tmp = lengthSquared(xs[l] - xi); tmp < d2) { + d2 = tmp; + j = l; + } + l++; } - if (loc >= 0) { - if (auto tmp = lengthSquared(xs[loc] - xi); tmp < d2) { + cnt = 0; + l = loc; + while (l >= 0 && cnt++ < 128) { + if (zs::sqr(xi[axis] - xs[l][axis]) > d2) + break; + if (auto tmp = lengthSquared(xs[l] - xi); tmp < d2) { d2 = tmp; - j = loc; + j = l; } + l--; } if (j != -1) { dist = std::sqrt(d2); id = indices[j]; cp = xs[j]; + } else { + dist = d2; + id = j; + cp = xi; } }); - timer.tock("compute initial distance"); + timer.tock("initial nearest distance (radius) estimate"); + +#if 0 + Box bv{zs::vec::constant(-1), zs::vec::constant(1)}; + auto p = zs::vec::zeros(); + p[1] = 1.5; + fmt::print(fg(fmt::color::red), "distance: {}\n", distance(p, bv)); +#endif timer.tick(); using bvh_t = LBvh<3>; @@ -191,21 +222,78 @@ struct QueryNearestPoints : INode { auto x = zeno::vec_to_other>(vertices[i]); bv = Box{x, x}; }); + // bvh.buildRefit(pol, bvs); bvh.build(pol, bvs); timer.tock("build bvh"); timer.tick(); - pol(enumerate(pos, dists, ids, cps), - [&vertices, bvh = proxy(bvh)](int i, const zeno::vec3f &p, float &dist, int &id, zeno::vec3f &cp) { - auto x = zeno::vec_to_other>(p); - auto [j, d] = bvh.find_nearest_point(x, dist * dist, wrapv{}); - if (j != id) { - dist = d; - id = j; - cp = vertices[j]; - } - }); + // keys.resize(pos.size()); + // indices.resize(pos.size()); + std::vector ks(pos.size()); + std::vector is(pos.size()); + pol(enumerate(ks, is), [&pos, gbv, axis](int i, u32 &key, int &idx) { + auto p = vec_to_other>(pos[i]); + for (int d = 0; d != 3; ++d) { + if (p[d] < gbv._min[d]) + p[d] = gbv._min[d]; + else if (p[d] > gbv._max[d]) + p[d] = gbv._max[d]; + } + auto coord = gbv.getUniformCoord(p).template cast(); + key = morton_code<3>(coord); + idx = i; + }); + merge_sort_pair(pol, std::begin(ks), std::begin(is), pos.size(), std::less{}); + timer.tock("sort query points"); + + timer.tick(); + pol(is, [&vertices, &pos, &dists, &ids, &cps, bvh = proxy(bvh)](int qid) { + float &dist = dists[qid]; + int &id = ids[qid]; + zeno::vec3f &cp = cps[qid]; + auto p = pos[qid]; + auto x = zeno::vec_to_other>(p); + auto [j, d] = bvh.find_nearest_point(x, dist * dist, id, wrapv{}); + // dist = (x - zeno::vec_to_other>(vertices[j])).norm(); + dist = d; + id = j; + cp = vertices[j]; + }); timer.tock("query nearest point"); + +#if 0 + pol(enumerate(pos, dists, ids, cps), [&pos, &vertices, &locs, &xs, &indices, bvh = proxy(bvh), axis]( + int i, const zeno::vec3f &p, float &dist, int &id, zeno::vec3f &cp) { + auto target = vertices[id]; + if (auto d = zeno::length(p - target); std::abs(d - dist) > limits::epsilon()) + fmt::print("actual dist {}, cp ({}, {}, {}); calced dist {}, cp ({}, {}, {}). \n", d, target[0], + target[1], target[2], dist, cp[0], cp[1], cp[2]); + const int loc = locs[i]; + const auto dist2 = dist * dist; + { + auto xi = pos[i]; + auto key = xi[axis]; + int l = loc + 1; + while (l < xs.size() && zs::sqr(xs[l][axis] - key) < dist2) { + if (auto d2 = zeno::lengthSquared(xs[l] - xi); std::sqrt(d2) + limits::epsilon() < dist) { + fmt::print("[{}] found nearer pair! real id should be {} ({}), not {} ({})\n", i, indices[l], + std::sqrt(d2), id, std::sqrt(dist2)); + return; + } + l++; + } + l = loc; + while (l >= 0 && zs::sqr(xs[l][axis] - key) < dist2) { + if (auto d2 = zeno::lengthSquared(xs[l] - xi); std::sqrt(d2) + limits::epsilon() < dist) { + fmt::print("[{}] found nearer pair! real id should be {} ({}), not {} ({})\n", i, indices[l], + std::sqrt(d2), id, dist); + return; + } + l--; + } + } + }); +#endif #if 0 { std::vector ids(pos.size()); diff --git a/projects/CUDA/remesh/TriSubdiv.cpp b/projects/CUDA/remesh/TriSubdiv.cpp index ae9250d889..e9b4e68748 100644 --- a/projects/CUDA/remesh/TriSubdiv.cpp +++ b/projects/CUDA/remesh/TriSubdiv.cpp @@ -1,12 +1,12 @@ +#include "zensim/container/Bht.hpp" +#include "zensim/omp/execution/ExecutionPolicy.hpp" +#include +#include #include #include #include #include #include -#include -#include -#include "zensim/container/Bht.hpp" -#include "zensim/omp/execution/ExecutionPolicy.hpp" namespace zeno { @@ -21,7 +21,8 @@ struct TrianglePrimSubdiv : INode { auto processTags = [](std::string tags, std::set &res) { using Ti = RM_CVREF_T(std::string::npos); Ti st = tags.find_first_not_of(", ", 0); - for (auto ed = tags.find_first_of(", ", st + 1); ed != std::string::npos; ed = tags.find_first_of(", ", st + 1)) { + for (auto ed = tags.find_first_of(", ", st + 1); ed != std::string::npos; + ed = tags.find_first_of(", ", st + 1)) { res.insert(tags.substr(st, ed - st)); // fmt::print("extract [{}, {}): [{}]\n", st, ed, res.back()); st = tags.find_first_not_of(", ", ed); @@ -42,18 +43,18 @@ struct TrianglePrimSubdiv : INode { for (auto str : faceAvgEdgePropTags) fmt::print("[{}]\t", str); fmt::print("\n"); - + using namespace zs; constexpr auto space = execspace_e::openmp; auto pol = omp_exec(); - auto &verts = prim->verts; - auto &tris = prim->tris; + auto &verts = prim->verts; + auto &tris = prim->tris; bool handleTriUV = tris.has_attr("uv0") && tris.has_attr("uv1") && tris.has_attr("uv2"); using vec2i = zs::vec; - for (int i = 0; i != niters; ++i) { - bht tab{3 * tris.size() * 2}; - tab.reset(pol, true); + for (int i = 0; i != niters; ++i) { + bht tab{3 * tris.size() * 2}; + tab.reset(pol, true); pol(tris.values, [tab = proxy(tab)](auto tri) mutable { int u = tri[2]; for (int d = 0; d != 3; ++d) { @@ -71,14 +72,13 @@ struct TrianglePrimSubdiv : INode { auto edge = edges[ei]; auto p = (verts.values[edge[0]] + verts.values[edge[1]]) / 2; verts.values[vOffset + ei] = p; - verts.foreach_attr([&](auto const &key, auto &arr) { - arr[vOffset + ei] = (arr[edge[0]] + arr[edge[1]]) / 2; - }); + verts.foreach_attr( + [&](auto const &key, auto &arr) { arr[vOffset + ei] = (arr[edge[0]] + arr[edge[1]]) / 2; }); }); /// @note tris int tOffset = tris.size(); - auto numNewTris = tris.size() * 3; // each one divided into 4 pieces + auto numNewTris = tris.size() * 3; // each one divided into 4 pieces tris.resize(tOffset + numNewTris); auto assignSubTriAttr = [&tris, tOffset](auto tag_c, std::string tag, int ti) { using TT = typename RM_CVREF_T(tag_c)::type; @@ -101,7 +101,7 @@ struct TrianglePrimSubdiv : INode { tag2[tOffset + ti * 3 + 2] = mid_props[2]; }; pol(range(tOffset), [&, tab = proxy(tab), vOffset, tOffset](int ti) mutable { - /// + /// auto tri = tris.values[ti]; int u = tri[2]; int ids[3]; // tri[2] - {ids[0]} - tri[0] - {ids[1]} - tri[1] - {ids[2]} - tri[2] @@ -124,20 +124,22 @@ struct TrianglePrimSubdiv : INode { if (key == "uv0" || key == "uv1" || key == "uv2") return; // avg_by_edge - if (auto k = key.substr(0, key.size() - 1); faceAvgEdgePropTags.find(k) != faceAvgEdgePropTags.end() && (key.back() == '0' || key.back() == '1' || key.back() == '2') && k != "uv") { + if (auto k = key.substr(0, key.size() - 1); + faceAvgEdgePropTags.find(k) != faceAvgEdgePropTags.end() && + (key.back() == '0' || key.back() == '1' || key.back() == '2') && k != "uv") { assignSubTriAttr(zs::wrapt{}, k, ti); return; } auto val = arr[ti]; // inherent if (faceInherentPropTags.find(key) == faceInherentPropTags.end()) - val /= 4; // average + val /= 4; // average arr[ti] = val; arr[tOffset + ti * 3 + 0] = val; arr[tOffset + ti * 3 + 1] = val; arr[tOffset + ti * 3 + 2] = val; }); }); - } + } set_output("prim", std::move(prim)); } }; @@ -156,4 +158,4 @@ ZENO_DEFNODE(TrianglePrimSubdiv) {"primitive"}, }); -} \ No newline at end of file +} // namespace zeno \ No newline at end of file diff --git a/projects/CUDA/utils/Conversion.cpp b/projects/CUDA/utils/Conversion.cpp index 3ad59b17af..4a896eab28 100644 --- a/projects/CUDA/utils/Conversion.cpp +++ b/projects/CUDA/utils/Conversion.cpp @@ -1,15 +1,109 @@ #include "Structures.hpp" #include "zensim/io/MeshIO.hpp" #include "zensim/omp/execution/ExecutionPolicy.hpp" -#include -#include #include #include #include +#include +#include #include +#include "zensim/resource/Filesystem.hpp" +#include "zensim/zpc_tpls/fmt/color.h" +#include "zensim/zpc_tpls/fmt/format.h" +#include + +namespace fs = std::filesystem; + namespace zeno { +struct AssetConversion : INode { + void apply() override { + auto pathStr = get_input2("path"); + char *p = nullptr; + if (pathStr.empty()) + p = getenv("PATH"); + else + p = pathStr.data(); + std::set pathLocations; + auto processTags = [](std::string tags, std::set &res, std::string sep) { + using Ti = RM_CVREF_T(std::string::npos); + Ti st = tags.find_first_not_of(sep, 0); + for (auto ed = tags.find_first_of(sep, st + 1); ed != std::string::npos; + ed = tags.find_first_of(sep, st + 1)) { + res.insert(tags.substr(st, ed - st)); + st = tags.find_first_not_of(sep, ed); + if (st == std::string::npos) + break; + } + if (st != std::string::npos && st < tags.size()) { + res.insert(tags.substr(st)); + } + }; +#ifdef ZS_PLATFORM_WINDOWS + processTags(p, pathLocations, ";"); + const std::string target = "blender.exe"; +#else + processTags(p, pathLocations, ":"); + const std::string target = "blender"; +#endif + + auto inputFile = get_input2("input_model_file"); + fs::path inputPath = inputFile; + auto ext = inputPath.extension().string(); + auto outputPath = get_input2("output_model_file"); + auto format = fs::path(outputPath).extension().string(); + if (format.empty()) + format = ".obj"; + else if (format != ".obj" && format != ".gltf" && format != ".fbx") + throw std::runtime_error(fmt::format("unknown output file format [{}]\n", outputPath)); + if (outputPath.empty()) + outputPath = inputPath.parent_path().string() + "/" + inputPath.stem().string() + "." + format; + + for (const auto &path : pathLocations) { + fmt::print("iterate path: {}\n", path); + fs::path loc = path + "/" + target; + bool ifExist = false; + try { + ifExist = fs::exists(loc); + } catch (const std::exception &e) { + fmt::print("\tskipping path {} due to exception (e.g. inaccessibility).\n", path); + continue; + } + if (ifExist) { + /// write script to a file + auto scriptPath = zs::abs_exe_directory() + "/" + "resource/GltfToObj.py"; + std::ofstream os; + os.open(scriptPath); + std::string script = "import bpy\n"; + script += fmt::format("bpy.ops.import_scene{}(filepath=\"{}\")\n", ext, inputFile); + script += + fmt::format("bpy.ops.export_scene{}(filepath=\"{}\", use_selection=True)\n", format, outputPath); + os << script; + os.close(); + + /// execute this blender script + auto cmdStr = fmt::format("{} -b -P {}", loc.string(), scriptPath); + fmt::print("\tfound {} at \"{}\".\n\texecuting \"{}\"\n", target, path, cmdStr); + fmt::print("\tscript:\n========\n{}\n========\n", script); + + std::system(cmdStr.c_str()); + } + } + } +}; +ZENDEFNODE(AssetConversion, + {/* inputs: */ { + {"string", "path", ""}, {"string", "input_model_file", ""}, {"string", "output_model_file", ""}}, + /* outputs: */ + {}, + /* params: */ + {}, + /* category: */ + { + "blender", + }}); + // treat poly as lines (strands) void primLineify(PrimitiveObject *prim, bool with_uv) { @@ -78,7 +172,6 @@ ZENDEFNODE(PrimitiveLineify, {/* inputs: */ "primitive", }}); - struct PointsToZSParticles : INode { void apply() override { using namespace zs; @@ -105,31 +198,31 @@ struct PointsToZSParticles : INode { outParticles->sprayedOffset = obj.size(); // attributes - std::vector tags{{"x", 3}, {"v", 3}}; + std::vector tags{{"x", 3}, {"v", 3}}; // prim attrib tags std::vector auxVertAttribs{}; for (auto &&[key, arr] : inParticles->verts.attrs) { - const auto checkDuplication = [&tags](const std::string &name) { - for (std::size_t i = 0; i != tags.size(); ++i) - if (tags[i].name == name.data()) - return true; - return false; - }; - if (checkDuplication(key) || key == "pos" || key == "vel") - continue; - const auto &k{key}; - match( - [&k, &auxVertAttribs](const std::vector &vals) { - auxVertAttribs.push_back(PropertyTag{k, 3}); - }, - [&k, &auxVertAttribs](const std::vector &vals) { - auxVertAttribs.push_back(PropertyTag{k, 1}); - }, - [&k, &auxVertAttribs](const std::vector &vals) {}, - [&k, &auxVertAttribs](const std::vector &vals) {}, - [](...) { throw std::runtime_error("what the heck is this type of attribute!"); })(arr); - } + const auto checkDuplication = [&tags](const std::string &name) { + for (std::size_t i = 0; i != tags.size(); ++i) + if (tags[i].name == name.data()) + return true; + return false; + }; + if (checkDuplication(key) || key == "pos" || key == "vel") + continue; + const auto &k{key}; + match( + [&k, &auxVertAttribs](const std::vector &vals) { + auxVertAttribs.push_back(PropertyTag{k, 3}); + }, + [&k, &auxVertAttribs](const std::vector &vals) { + auxVertAttribs.push_back(PropertyTag{k, 1}); + }, + [&k, &auxVertAttribs](const std::vector &vals) {}, + [&k, &auxVertAttribs](const std::vector &vals) {}, + [](...) { throw std::runtime_error("what the heck is this type of attribute!"); })(arr); + } tags.insert(std::end(tags), std::begin(auxVertAttribs), std::end(auxVertAttribs)); fmt::print("[PointsToZSParticles] to be converted vert properties:\n"); @@ -139,26 +232,25 @@ struct PointsToZSParticles : INode { outParticles->particles = std::make_shared(tags, size, memsrc_e::host); auto &pars = outParticles->getParticles(); // tilevector { - ompExec(zs::range(size), - [pars = proxy({}, pars), &obj, - &inParticles, &auxVertAttribs](size_t pi) mutable { - // pos - pars.tuple(dim_c<3>, "x", pi) = obj[pi]; - - // vel - if (inParticles->has_attr("vel")) - pars.tuple(dim_c<3>, "v", pi) = inParticles->attr("vel")[pi]; - else - pars.tuple(dim_c<3>, "v", pi) = zs::vec::zeros(); - - // additional attributes - for (auto &prop : auxVertAttribs) { - if (prop.numChannels == 3) - pars.tuple(dim_c<3>, prop.name, pi) = inParticles->attr(std::string{prop.name})[pi]; - else - pars(prop.name, pi) = inParticles->attr(std::string{prop.name})[pi]; - } - }); + ompExec(zs::range(size), [pars = proxy({}, pars), &obj, &inParticles, + &auxVertAttribs](size_t pi) mutable { + // pos + pars.tuple(dim_c<3>, "x", pi) = obj[pi]; + + // vel + if (inParticles->has_attr("vel")) + pars.tuple(dim_c<3>, "v", pi) = inParticles->attr("vel")[pi]; + else + pars.tuple(dim_c<3>, "v", pi) = zs::vec::zeros(); + + // additional attributes + for (auto &prop : auxVertAttribs) { + if (prop.numChannels == 3) + pars.tuple(dim_c<3>, prop.name, pi) = inParticles->attr(std::string{prop.name})[pi]; + else + pars(prop.name, pi) = inParticles->attr(std::string{prop.name})[pi]; + } + }); pars = pars.clone({memsrc_e::device, 0}); } @@ -168,11 +260,11 @@ struct PointsToZSParticles : INode { }; ZENDEFNODE(PointsToZSParticles, { - {"prim", {"bool", "add_customed_attr", "1"}}, - {"ZSParticles"}, - {}, - {"conversion"}, - }); + {"prim", {"bool", "add_customed_attr", "1"}}, + {"ZSParticles"}, + {}, + {"conversion"}, + }); struct PointsToZSParticles2 : INode { void apply() override { @@ -219,7 +311,7 @@ struct PointsToZSParticles2 : INode { outParticles->sprayedOffset = obj.size(); // attributes - std::vector tags{{"x", 3}, {"v", 3}}; + std::vector tags{{"x", 3}, {"v", 3}}; // prim attrib tags std::vector auxVertAttribs{}; @@ -257,26 +349,25 @@ struct PointsToZSParticles2 : INode { outParticles->particles = std::make_shared(tags, size, memsrc_e::host); auto &pars = outParticles->getParticles(); // tilevector { - ompExec(zs::range(size), - [pars = proxy({}, pars), &obj, - &inParticles, &auxVertAttribs](size_t pi) mutable { - // pos - pars.tuple(dim_c<3>, "x", pi) = obj[pi]; - - // vel - if (inParticles->has_attr("vel")) - pars.tuple(dim_c<3>, "v", pi) = inParticles->attr("vel")[pi]; - else - pars.tuple(dim_c<3>, "v", pi) = zs::vec::zeros(); - - // additional attributes - for (auto &prop : auxVertAttribs) { - if (prop.numChannels == 3) - pars.tuple(dim_c<3>, prop.name, pi) = inParticles->attr(std::string{prop.name})[pi]; - else - pars(prop.name, pi) = inParticles->attr(std::string{prop.name})[pi]; - } - }); + ompExec(zs::range(size), [pars = proxy({}, pars), &obj, &inParticles, + &auxVertAttribs](size_t pi) mutable { + // pos + pars.tuple(dim_c<3>, "x", pi) = obj[pi]; + + // vel + if (inParticles->has_attr("vel")) + pars.tuple(dim_c<3>, "v", pi) = inParticles->attr("vel")[pi]; + else + pars.tuple(dim_c<3>, "v", pi) = zs::vec::zeros(); + + // additional attributes + for (auto &prop : auxVertAttribs) { + if (prop.numChannels == 3) + pars.tuple(dim_c<3>, prop.name, pi) = inParticles->attr(std::string{prop.name})[pi]; + else + pars(prop.name, pi) = inParticles->attr(std::string{prop.name})[pi]; + } + }); pars = pars.clone({memsrc_e::device, 0}); } @@ -286,12 +377,14 @@ struct PointsToZSParticles2 : INode { }; ZENDEFNODE(PointsToZSParticles2, { - {"prim", {"bool", "add_customed_attr", "1"}, - {"string", "selected_custom_attr_tags", ""}, - }, - {"ZSParticles"}, - {}, - {"conversion"}, - }); - -} \ No newline at end of file + { + "prim", + {"bool", "add_customed_attr", "1"}, + {"string", "selected_custom_attr_tags", ""}, + }, + {"ZSParticles"}, + {}, + {"conversion"}, + }); + +} // namespace zeno \ No newline at end of file diff --git a/projects/CUDA/zpc b/projects/CUDA/zpc index fd9105f4d0..fc51d565c9 160000 --- a/projects/CUDA/zpc +++ b/projects/CUDA/zpc @@ -1 +1 @@ -Subproject commit fd9105f4d046f3adaba5dd4f41a5eaf0ab1b1461 +Subproject commit fc51d565c9ebd7743373de1566cd7cfd2b462932 diff --git a/projects/CuLagrange/CMakeLists.txt b/projects/CuLagrange/CMakeLists.txt index 4c79dbf03d..f539068361 100644 --- a/projects/CuLagrange/CMakeLists.txt +++ b/projects/CuLagrange/CMakeLists.txt @@ -106,7 +106,7 @@ target_sources(zeno PRIVATE geometry/file_parser/vtk_types.hpp geometry/linear_system/mfcg.hpp geometry/linear_system/active_set.hpp - geometry/kernel/laplace_matrix.hpp + geometry/kernel/differential_geometry.hpp geometry/kernel/gradient_field.hpp geometry/kernel/bary_centric_weights.hpp geometry/kernel/compute_characteristic_length.hpp @@ -127,6 +127,7 @@ target_sources(zeno PRIVATE # geometry/VectorField.cu geometry/CollisionVis.cu # CHECK THIS # geometry/CalcSurfaceArea.cu + geometry/BasicGeoNodes.cu geometry/MarkSurfaceTag.cu geometry/SurfaceBinder.cu geometry/MarkInversion.cu diff --git a/projects/CuLagrange/fem/FleshDynamicStepping.cu b/projects/CuLagrange/fem/FleshDynamicStepping.cu index b3b0fe2c3f..df1f50a378 100644 --- a/projects/CuLagrange/fem/FleshDynamicStepping.cu +++ b/projects/CuLagrange/fem/FleshDynamicStepping.cu @@ -133,6 +133,7 @@ struct FleshDynamicStepping : INode { using tiles_t = typename ZenoParticles::particles_t; using vec2 = zs::vec; using vec3 = zs::vec; + using vec12 = zs::vec; using mat3 = zs::vec; using mat9 = zs::vec; using mat12 = zs::vec; @@ -291,11 +292,6 @@ struct FleshDynamicStepping : INode { ++nm_binders; } - // printf("binder_ids[%d] : %d : %d %d %d %d\n",ti,nm_binders, - // reinterpret_bits(tris(binderTag,0,ti)), - // reinterpret_bits(tris(binderTag,1,ti)), - // reinterpret_bits(tris(binderTag,2,ti)), - // reinterpret_bits(tris(binderTag,3,ti))); if(nm_binders == 0) return; @@ -351,26 +347,22 @@ struct FleshDynamicStepping : INode { cp[0] = kverts.pack(dim_c<3>,"x",idx); auto kstiffness = (T)1.0; if(kverts.hasProperty("binderStiffness")) - kstiffness = kverts("binderStiffness",idx); + kstiffness *= kverts("binderStiffness",idx); + auto average_vert_stiffness = (T)1.0; + if(verts.hasProperty("binderStiffness")){ + average_vert_stiffness = (T)0.0; + for(int j = 0;j != 3;++j) + average_vert_stiffness += verts("binderStiffness",tri[j]); + } + kstiffness *= average_vert_stiffness; auto alpha = binderStiffness * binder_weakness_param * kstiffness; auto beta = (T)1.0/(T)nm_binders; auto cgrad = -alpha * beta * VERTEX_FACE_SQRT_COLLISION::gradient(cp,mu,lam,ceps,from_inside); auto cH = alpha * beta * VERTEX_FACE_SQRT_COLLISION::hessian(cp,mu,lam,ceps,from_inside); - // printf("cgrad : %f cH %f params: %f %f %f %f\n",cgrad.norm(),cH.norm(), - // (float)kstiffness, - // (float)binderStiffness, - // (float)binder_weakness_param, - // (float)alpha); - - // if(isnan(cH.norm())) { - // printf("nan CH detected at Binder : %d from inside %d and ceps = \n",ti,from_inside,(float)ceps); - // printf("cp : \n%f %f %f\n%f %f %f\n%f %f %f\n%f %f %f\n", - // (float)cp[0][0],(float)cp[0][1],(float)cp[0][2], - // (float)cp[1][0],(float)cp[1][1],(float)cp[1][2], - // (float)cp[2][0],(float)cp[2][1],(float)cp[2][2], - // (float)cp[3][0],(float)cp[3][1],(float)cp[3][2]); - // } + if(isnan(cH.norm()) || isnan(cgrad.norm())) { + printf("nan cH and cgrad detected at [%d] [%d] : %f %f\n",ti,idx,(float)cH.norm(),(float)cgrad.norm()); + } for(int i = 3;i != 12;++i){ int d0 = i % 3; @@ -392,113 +384,10 @@ struct FleshDynamicStepping : INode { }); } - // template - // void computeCollisionGradientAndHessian(zs::CudaExecutionPolicy& cudaPol,const Model& model, - // dtiles_t& vtemp, - // dtiles_t& etemp, - // dtiles_t& sttemp, - // dtiles_t& setemp, - // // dtiles_t& ee_buffer, - // dtiles_t& fp_buffer, - // dtiles_t& kverts, - // dtiles_t& kc_buffer, - // dtiles_t& gh_buffer, - // T kd_theta = (T)0.0, - // bool explicit_collision = false, - // bool neglect_inverted = true) { - // using namespace zs; - // constexpr auto space = execspace_e::cuda; - - // int offset = eles.size(); - - // T lambda = model.lam; - // T mu = model.mu; - - // // auto stBvh = bvh_t{}; - // // auto bvs = retrieve_bounding_volumes(cudaPol,vtemp,tris,wrapv<3>{},(T)0.0,"xn"); - // // stBvh.build(cudaPol,bvs); - // // auto avgl = compute_average_edge_length(cudaPol,vtemp,"xn",tris); - // // auto bvh_thickness = 5 * avgl; - // // if(!calculate_facet_normal(cudaPol,vtemp,"xn",tris,sttemp,"nrm")){ - // // throw std::runtime_error("fail updating facet normal"); - // // } - // // if(!COLLISION_UTILS::calculate_cell_bisector_normal(cudaPol, - // // vtemp,"xn", - // // lines, - // // tris, - // // sttemp,"nrm", - // // setemp,"nrm")){ - // // throw std::runtime_error("fail calculate cell bisector normal"); - // // } - - - // COLLISION_UTILS::do_facet_point_collision_detection(cudaPol, - // vtemp,"xn", - // points, - // lines, - // tris, - // sttemp, - // setemp, - // fp_buffer, - // in_collisionEps,out_collisionEps); - - // COLLISION_UTILS::evaluate_fp_collision_grad_and_hessian(cudaPol, - // vtemp,"xn","vn",dt, - // fp_buffer, - // gh_buffer,offset, - // in_collisionEps,out_collisionEps, - // (T)collisionStiffness, - // (T)mu,(T)lambda,(T)kd_theta); - - - - // // COLLISION_UTILS::do_kinematic_point_collision_detection(cudaPol, - // // vtemp,"xn", - // // points, - // // lines, - // // tris, - // // setemp, - // // sttemp, - // // kverts, - // // kc_buffer, - // // (T)kine_in_collisionEps,(T)kine_out_collisionEps,false); - - // // offset = 0; - - // // COLLISION_UTILS::evaluate_kinematic_fp_collision_grad_and_hessian(cudaPol, - // // eles, - // // vtemp,"xn","vn",dt, - // // tris, - // // kverts, - // // kc_buffer, - // // gh_buffer,offset, - // // (T)kine_in_collisionEps,(T)kine_out_collisionEps, - // // (T)kineCollisionStiffness, - // // (T)mu,(T)lambda,(T)kd_theta); - - - // // adding collision damping on self collision - // // int offset = eles.size() + b_verts.size(); - // // cudaPol(zs::range(fp_buffer.size() + kc_buffer.size()), - // // [vtemp = proxy({},vtemp), - // // gh_buffer = proxy({},gh_buffer),offset,kd_theta] ZS_LAMBDA(int ci) mutable { - // // auto inds = gh_buffer.pack(dim_c<4>,"inds",ci).reinterpret_bits(int_c); - // // for(int i = 0;i != 4;++i) - // // if(inds[i] < 0) - // // return; - // // vec3 vs[4] = {}; - // // for(int i = 0;i = 4;++i) - // // vs[i] = vtemp.pack(dim_c<3>,"vn",inds[i]); - // // auto H = gh_buffer.pack(dim_c<12*12>,"H",ci); - // // gh_buffer.tuple(dim_c<12*12>,"H",ci) = H; - // // }); - - - // } void computePlaneConstraintGradientAndHessian2(zs::CudaExecutionPolicy& cudaPol, const dtiles_t& vtemp, - const dtiles_t& sttemp, + dtiles_t& sttemp, const dtiles_t& kverts, const dtiles_t& ktris, const std::string& planeConsBaryTag, @@ -520,7 +409,7 @@ struct FleshDynamicStepping : INode { plane_constraint_stiffness = plane_constraint_stiffness, use_sticky_condition = use_sticky_condition, nodal_gh_buffer = proxy({},nodal_gh_buffer)] ZS_LAMBDA(int vi) mutable { - return; + // return; auto idx = reinterpret_bits(verts(planeConsIDTag,vi)); if(idx < 0) return; @@ -530,7 +419,6 @@ struct FleshDynamicStepping : INode { if(is_inverted_vert) return; - #if 1 auto plane_root = kverts.pack(dim_c<3>,"x",ktri[0]); auto plane_nrm = ktris.pack(dim_c<3>,"nrm",idx); @@ -581,79 +469,135 @@ struct FleshDynamicStepping : INode { }); - cudaPol(zs::range(tris.size()),[ - vtemp = proxy({},vtemp), - sttemp = proxy({},sttemp), - verts = proxy({},verts), - tris = proxy({},tris), - kverts = proxy({},kverts), - ktris = proxy({},ktris), - cnorm = cnorm, - planeConsIDTag = zs::SmallString(planeConsIDTag), - kine_out_collisionEps = kine_out_collisionEps, - kine_in_collisionEps = kine_in_collisionEps, - plane_constraint_stiffness = plane_constraint_stiffness, - use_sticky_condition = use_sticky_condition, - tris_gh_buffer = proxy({},tris_gh_buffer)] ZS_LAMBDA(int ti) mutable { - auto kp_idx = reinterpret_bits(tris(planeConsIDTag,ti)); - if(kp_idx < 0) - return; - auto kp = kverts.pack(dim_c<3>,"x",kp_idx); - auto tri = tris.pack(dim_c<3>,"inds",ti).reinterpret_bits(int_c); - for(int i = 0;i != 3;++i){ - auto is_inverted_vert = vtemp("is_inverted",tri[i]) > (T)0.5; - if(is_inverted_vert) - return; - } + // cudaPol(zs::range(tris.size()),[ + // vtemp = proxy({},vtemp), + // sttemp = proxy({},sttemp), + // verts = proxy({},verts), + // tris = proxy({},tris), + // kverts = proxy({},kverts), + // ktris = proxy({},ktris), + // cnorm = cnorm, + // planeConsIDTag = zs::SmallString(planeConsIDTag), + // kine_out_collisionEps = kine_out_collisionEps, + // kine_in_collisionEps = kine_in_collisionEps, + // plane_constraint_stiffness = plane_constraint_stiffness, + // use_sticky_condition = use_sticky_condition, + // tris_gh_buffer = proxy({},tris_gh_buffer)] ZS_LAMBDA(int ti) mutable { + // auto kp_idx = reinterpret_bits(tris(planeConsIDTag,ti)); + // if(kp_idx < 0) + // return; + // auto kp = kverts.pack(dim_c<3>,"x",kp_idx); + // auto tri = tris.pack(dim_c<3>,"inds",ti).reinterpret_bits(int_c); + // for(int i = 0;i != 3;++i){ + // auto is_inverted_vert = vtemp("is_inverted",tri[i]) > (T)0.5; + // if(is_inverted_vert) + // return; + // } - // auto tnrm = sttemp.pack(dim_c<3>,"nrm",ti); + // // auto tnrm = sttemp.pack(dim_c<3>,"nrm",ti); - auto mu = verts("mu",tri[0]); - auto lam = verts("lam",tri[0]); + // auto mu = verts("mu",tri[0]); + // auto lam = verts("lam",tri[0]); - auto eps = kine_out_collisionEps; - vec3 vs[4] = {}; - vs[0] = kp; - for(int i = 0;i != 3;++i) - vs[i + 1] = vtemp.pack(dim_c<3>,"xn",tri[i]); + // auto eps = kine_out_collisionEps; + // vec3 vs[4] = {}; + // vs[0] = kp; + // for(int i = 0;i != 3;++i) + // vs[i + 1] = vtemp.pack(dim_c<3>,"xn",tri[i]); - vec3 e[3] = {}; - e[0] = vs[3] - vs[2]; - e[1] = vs[0] - vs[2]; - e[2] = vs[1] - vs[2]; - - auto n = e[2].cross(e[0]); - // if(n.norm() < 1e-4) - // return; - n = n/(n.norm() + 1e-6); - - T springLength = e[1].dot(n) - eps; - auto gvf = zs::vec::zeros(); - if(springLength < (T)0 || use_sticky_condition){ - auto gvf_v12 = COLLISION_UTILS::springLengthGradient(vs,e,n); - if(isnan(gvf_v12.norm())) - printf("nan gvf detected at %d %f %f\n",ti,gvf_v12.norm(),n.norm()); - for(int i = 0;i != 9;++i) - gvf[i] = gvf_v12[i + 3]; - } - cnorm = (T)1.0; - auto stiffness = plane_constraint_stiffness * cnorm; - // stiffness = (T)0; - auto g = -stiffness * (T)2.0 * mu * springLength * gvf; - auto H = stiffness * (T)2.0 * mu * zs::dyadic_prod(gvf, gvf); + // vec3 e[3] = {}; + // e[0] = vs[3] - vs[2]; + // e[1] = vs[0] - vs[2]; + // e[2] = vs[1] - vs[2]; + + // // auto seg = vs[0] - vs[2]; + // // auto n = e[2].cross(e[0]); + // auto n = LSL_GEO::facet_normal(vs[1],vs[2],vs[3]); + // // if(n.norm() < 1e-4) + // // return; + // // n = n/(n.norm() + 1e-6); + + // T springLength = e[1].dot(n) + eps; + // auto gvf = zs::vec::zeros(); + // if(springLength > (T)0 || use_sticky_condition){ + // auto gvf_v12 = COLLISION_UTILS::springLengthGradient(vs,e,n); + // if(isnan(gvf_v12.norm())) + // printf("nan gvf detected at %d %f %f\n",ti,gvf_v12.norm(),n.norm()); + // for(int i = 0;i != 9;++i) + // gvf[i] = gvf_v12[i + 3]; + // } + // cnorm = (T)1.0; + // auto stiffness = plane_constraint_stiffness * cnorm; + // // stiffness = (T)0; + // auto g = stiffness * (T)2.0 * mu * springLength * gvf; + // auto H = stiffness * (T)2.0 * mu * zs::dyadic_prod(gvf, gvf); - // if(springLength < (T)0) { - // auto springLengthH_M12 = COLLISION_UTILS::springLengthHessian(vs,e,n); - // auto springLengthH_M9 = mat9::zeros(); - // for(int r = 0;r != 9;++r) - // for(int c = 0;c != 9;++c) - // springLengthH_M9(r,c) = springLengthH_M12(r + 3,c+ 3); - // H += springLength * springLengthH_M9 * (T)2.0 * stiffness * mu; - // make_pd(H); - // } + // // if(springLength < (T)0) { + // // auto springLengthH_M12 = COLLISION_UTILS::springLengthHessian(vs,e,n); + // // auto springLengthH_M9 = mat9::zeros(); + // // for(int r = 0;r != 9;++r) + // // for(int c = 0;c != 9;++c) + // // springLengthH_M9(r,c) = springLengthH_M12(r + 3,c+ 3); + // // H += springLength * springLengthH_M9 * (T)2.0 * stiffness * mu; + // // make_pd(H); + // // } - tris_gh_buffer.tuple(dim_c<9>,"grad",ti) = g; - tris_gh_buffer.tuple(dim_c<9,9>,"H",ti) = H; + // tris_gh_buffer.tuple(dim_c<9>,"grad",ti) = g; + // tris_gh_buffer.tuple(dim_c<9,9>,"H",ti) = H; + // }); + + + cudaPol(zs::range(kverts.size()),[ + vtemp = proxy({},vtemp), + tris = proxy({},tris), + kverts = proxy({},kverts), + verts = proxy({},verts), + sttemp = proxy({},sttemp), + planeConsIDTag = zs::SmallString(planeConsIDTag), + kine_out_collisionEps = kine_out_collisionEps, + plane_constraint_stiffness = plane_constraint_stiffness, + use_sticky_condition = use_sticky_condition] ZS_LAMBDA(int kvi) mutable { + auto ti = reinterpret_bits(kverts(planeConsIDTag,kvi)); + if(ti < 0) + return; + auto kp = kverts.pack(dim_c<3>,"x",kvi); + auto tri = tris.pack(dim_c<3>,"inds",ti,int_c); + + auto plane_root = vtemp.pack(dim_c<3>,"xn",tri[0]); + vec3 tvs[3] = {}; + for(int i = 0;i != 3;++i) + tvs[i] = vtemp.pack(dim_c<3>,"xn",tri[i]); + auto plane_nrm = LSL_GEO::facet_normal(tvs[0],tvs[1],tvs[2]); + // auto plane_nrm = tris.pack(dim_c<3>,"nrm",ti); + + auto mu = verts("mu",tri[0]); + auto lam = verts("lam",tri[0]); + + auto eps = kine_out_collisionEps; + auto seg = kp - plane_root; + + auto fc = vec12::zeros(); + auto Hc = mat12::zeros(); + auto dist = seg.dot(plane_nrm) + eps; + if(dist > (T)0 || use_sticky_condition) { + // fc = -dist * mu * plane_constraint_stiffness * plane_nrm; + // Hc = mu * plane_constraint_stiffness * dyadic_prod(plane_nrm,plane_nrm); + // printf("detected kv2t pairs : %f %f\n",(T)fc.norm(),(T)Hc.norm()); + vec3 vs[4] = {}; + for(int i = 0;i != 3;++i) + vs[i + 1] = tvs[i]; + vs[0] = kp; + fc = -VERTEX_FACE_COLLISION::gradient(vs,mu,lam,-eps); + Hc = VERTEX_FACE_COLLISION::hessian(vs,mu,lam,-eps); + } + + + + for(int i = 0;i != 9;++i) + atomic_add(exec_cuda,&sttemp("grad",i,ti),fc[i + 3]); + for(int i = 0;i != 9;++i) + for(int j = 0;j != 9;++j) + atomic_add(exec_cuda,&sttemp("H",i * 9 + j,ti),Hc(i + 3,j + 3)); }); } @@ -707,56 +651,6 @@ struct FleshDynamicStepping : INode { nodal_gh_buffer.tuple(dim_c<3>,"grad",vi) = fc; nodal_gh_buffer.tuple(dim_c<3,3>,"H",vi) = Hc; }); - - // cudaPol(zs::range(tris.size()),[ - // verts = proxy({},verts), - // tris = proxy({},tris), - // vtemp = proxy({},vtemp), - // planeConsPosTag = zs::SmallString(planeConsPosTag), - // planeConsNrmTag = zs::SmallString(planeConsNrmTag), - // planeConsIDTag = zs::SmallString(planeConsIDTag), - // kine_out_collisionEps = kine_out_collisionEps, - // plane_constraint_stiffness = plane_constraint_stiffness, - // nodal_gh_buffer = proxy({},nodal_gh_buffer)] ZS_LAMBDA(int ti) mutable { - // auto idx = reinterpret_bits(tris(planeConsIDTag,ti)); - // if(idx < 0) - // return; - - // auto tri = tris.pack(dim_c<3>,"inds",ti).reinterpret_bits(int_c); - - // auto mu = verts("mu",tri[0]); - // auto lam = verts("lam",tri[0]); - - // auto eps = kine_out_collisionEps * 2.0; - // auto plane_nrm = tris.pack(dim_c<3>,planeConsNrmTag,ti); - // auto plane_root = tris.pack(dim_c<3>,planeConsPosTag,ti); - - // auto p = vec3::zeros(); - // for(int i = 0;i != 3;++i) - // p += vtemp.pack(dim_c<3>,"xn",tri[i])/(T)3.0; - // auto seg = p - plane_root; - - // auto fc = vec3::zeros(); - // auto Hc = mat3::zeros(); - // auto dist = seg.dot(plane_nrm) - eps; - // if(dist < (T)0){ - // fc = -dist * mu * plane_constraint_stiffness * plane_nrm; - // Hc = mu * plane_constraint_stiffness * dyadic_prod(plane_nrm,plane_nrm); - // } - - // // printf("apply plane constraint with force : %f %f\n",(float)dist,(float)fc.norm()); - // for(int i = 0;i != 3;++i) { - // auto vi = tri[i]; - // for(int d = 0;d != 3;++d) - // atomic_add(exec_cuda,&nodal_gh_buffer("grad",d,vi),fc[d]/(T)3.0); - // for(int r = 0;r != 3;++r) - // for(int c = 0;c != 3;++c) - // atomic_add(exec_cuda,&nodal_gh_buffer("H",r * 3 + c,vi),Hc(r,c)/(T)9.0); - // } - - // // nodal_gh_buffer.tuple(dim_c<3>,"grad",vi) = fc; - // // nodal_gh_buffer.tuple(dim_c<3,3>,"H",vi) = Hc; - // }); } template @@ -886,21 +780,6 @@ struct FleshDynamicStepping : INode { // add inertia hessian term auto H = dFdAct_dFdX.transpose() * Hq * dFdAct_dFdX * vole; - // if(isnan(H.norm())) { - // printf("nan CH detected at Elastic : %d %f %f %f %f\nFAct = \n%f %f %f\n%f %f %f\n%f %f %f\nF = \n%f %f %f\n%f %f %f\n%f %f %f\n",ei, - // (float)Hq.norm(), - // (float)dFdAct_dFdX.norm(), - // (float)P.norm(), - // (float)FAct.norm(), - // (float)FAct(0,0),(float)FAct(0,1),(float)FAct(0,2), - // (float)FAct(1,0),(float)FAct(1,1),(float)FAct(1,2), - // (float)FAct(2,0),(float)FAct(2,1),(float)FAct(2,2), - // (float)F(0,0),(float)F(0,1),(float)F(0,2), - // (float)F(1,0),(float)F(1,1),(float)F(1,2), - // (float)F(2,0),(float)F(2,1),(float)F(2,2) - // ); - // } - if(eles.hasProperty("Muscle_ID") && (int)eles("Muscle_ID",ei) >= 0) { auto fiber = eles.pack(dim_c<3>,"fiber",ei); if(zs::abs(fiber.norm() - 1.0) < 1e-3) { @@ -924,22 +803,6 @@ struct FleshDynamicStepping : INode { } } - - // adding rayleigh damping term - // vec3 v0[4] = {vtemp.pack(dim_c<3>,"vn", inds[0]), - // vtemp.pack(dim_c<3>,"vn", inds[1]), - // vtemp.pack(dim_c<3>,"vn", inds[2]), - // vtemp.pack(dim_c<3>,"vn", inds[3])}; - - // auto inertia = (T)1.0; - // if(eles.hasProperty("inertia")) - // inertia = eles("inertia",ei); - - // auto vel = COLLISION_UTILS::flatten(v0); - // auto m = eles("m",ei)/(T)4.0; - // auto C = kd_beta * H + kd_alpha * inertia * m * zs::vec::identity(); - // auto rdamping = C * vel; - gh_buffer.tuple(dim_c<12>,"grad",ei + offset) = gh_buffer.pack(dim_c<12>,"grad",ei + offset) + vf/* - rdamping*/; // gh_buffer.tuple(dim_c<12>,"grad",ei + offset) = gh_buffer.pack(dim_c<12>,"grad",ei + offset) - rdamping; // H += kd_beta*H/dt; @@ -952,14 +815,6 @@ struct FleshDynamicStepping : INode { auto nmEmbedVerts = b_verts.size(); - // TILEVEC_OPS::fill_range<4>(cudaPol,gh_buffer,"inds",zs::vec::uniform(-1).reinterpret_bits(float_c),eles.size() + offset,b_verts.size()); - // TILEVEC_OPS::fill_range<3>(cudaPol,gh_buffer,"grad",zs::vec::zeros(),eles.size() + offset,b_verts.size()); - // TILEVEC_OPS::fill_range<144>(cudaPol,gh_buffer,"H",zs::vec::zeros(),eles.size() + offset,b_verts.size()); - - // we should neglect the inverted element - // std::cout << "nmEmbedVerts : " << nmEmbedVerts << std::endl; - // std::cout << "bcwsize : " << b_bcws.size() << std::endl; - // return; cudaPol(zs::range(nmEmbedVerts), [ gh_buffer = proxy({},gh_buffer),model = model, bcws = proxy({},b_bcws),b_verts = proxy({},b_verts),vtemp = proxy({},vtemp),etemp = proxy({},etemp), @@ -973,23 +828,10 @@ struct FleshDynamicStepping : INode { if(b_verts.hasProperty("intersect")) if(b_verts("intersect",vi) > (T)0.5){ - printf("skip bverts[%d] due to intersection\n",vi); + // printf("skip bverts[%d] due to intersection\n",vi); return; } - // if(ei >= etemp.size()){ - // printf("ei too big for etemp\n"); - // return; - // } - // auto is_inverted = reinterpret_bits(etemp("is_inverted",ei)); - // if(is_inverted){ - // if(vi == 0) - // printf("inverted tet\n"); - // return; - // } - // auto FatID = eles("FatID",ei); - // if(FatID > 0) - // return; auto lambda = model.lam; auto mu = model.mu; @@ -1014,18 +856,6 @@ struct FleshDynamicStepping : INode { T stiffness = (2.0066 * mu + 1.0122 * lambda) * b_verts("strength",vi); - // zs::vec elm_grad{}; - // auto elm_H = zs::vec::zeros(); - - // if(vi == 0) { - // printf("stiff : %f dw : %f strength : %f cnorm : %f vol : %f bdw : %f\n", - // (float)stiffness, - // (float)bone_driven_weight, - // (float)bcws("strength",vi), - // (float)bcws("cnorm",vi), - // (float)eles("vol",ei), - // (float)eles("bdw",ei)); - // } auto alpha = stiffness * bone_driven_weight * bcws("strength",vi) * bcws("cnorm",vi) * eles("vol",ei) * eles("bdw",ei); @@ -1049,21 +879,9 @@ struct FleshDynamicStepping : INode { atomic_add(exec_cuda,&gh_buffer("H",(i*3 + d)*12 + j*3 + d,ei),beta); } } - - // for(int i = 0;i != 12;++i){ - // atomic_add(exec_cuda,&gh_buffer("grad",i,ei),elm_grad[i]); - // for(int j = 0;j != 12;++j) - // atomic_add(exec_cuda,&gh_buffer("H",i*12 + j,ei),elm_H(i,j)); - // } - // gh_buffer.tuple(dim_c<12>,"grad",vi + eles.size() + offset) = elm_grad; - // gh_buffer.tuple(dim_c<12*12>,"H",vi + eles.size() + offset) = elm_H; + }); - // cudaPol(zs::range(eles.size()), [gh_buffer = proxy({},gh_buffer)] ZS_LAMBDA (int ei) mutable { - // auto H = gh_buffer.template pack<12,12>("H",ei); - // make_pd(H); - // gh_buffer.template tuple<12*12>("H",ei) = H; - // }); } @@ -1499,6 +1317,11 @@ struct FleshDynamicStepping : INode { } } + auto planeConsPosTag = get_param("planeConsPosTag"); + auto planeConsNrmTag = get_param("planeConsNrmTag"); + auto planeConsIDTag = get_param("planeConsIDTag"); + auto planeConsBaryTag = get_param("planeConsBaryTag"); + // auto bone_driven_weight = (T)0.02; auto newton_res = get_input2("newton_res"); @@ -1513,14 +1336,9 @@ struct FleshDynamicStepping : INode { if(has_input("Acts")) { act_ = get_input("Acts")->getLiterial(); nm_acts = act_.size(); - - std::cout << "use Activation : "; - for(int i = 0;i != act_.size();++i) - std::cout << "[" << act_[i][0] << "\t" << act_[i][1] << "] "; - std::cout << std::endl; } - std::cout << "nmActs:" << nm_acts << std::endl; + // std::cout << "nmActs:" << nm_acts << std::endl; constexpr auto host_space = zs::execspace_e::openmp; auto ompExec = zs::omp_exec(); @@ -1590,6 +1408,7 @@ struct FleshDynamicStepping : INode { {"xp",3}, {"b_fail",1}, {"binderStiffness",1}, + {planeConsIDTag,1}, {"nrm",3}, {"area",1}},0,zs::memsrc_e::device,0); auto ktris = typename ZenoParticles::particles_t({ @@ -1597,28 +1416,28 @@ struct FleshDynamicStepping : INode { {"nrm",3}},0,zs::memsrc_e::device,0); - dtiles_t surf_tris_buffer{tris.get_allocator(),{ - {"inds",3}, - {"nrm",3}, - {"he_inds",1} - },tris.size()}; + // dtiles_t surf_tris_buffer{tris.get_allocator(),{ + // {"inds",3}, + // {"nrm",3}, + // {"he_inds",1} + // },tris.size()}; - dtiles_t surf_verts_buffer{points.get_allocator(),{ - {"inds",1}, - {"xn",3}, - {"is_corner",1}, - {"mustExclude",1} - },points.size()}; - TILEVEC_OPS::copy(cudaPol,points,"inds",surf_verts_buffer,"inds"); - TILEVEC_OPS::copy(cudaPol,tris,"inds",surf_tris_buffer,"inds"); - TILEVEC_OPS::copy(cudaPol,tris,"he_inds",surf_tris_buffer,"he_inds"); - reorder_topology(cudaPol,points,surf_tris_buffer); + // dtiles_t surf_verts_buffer{points.get_allocator(),{ + // {"inds",1}, + // {"xn",3}, + // {"is_loop_vertex",1}, + // {"mustExclude",1} + // },points.size()}; + // TILEVEC_OPS::copy(cudaPol,points,"inds",surf_verts_buffer,"inds"); + // TILEVEC_OPS::copy(cudaPol,tris,"inds",surf_tris_buffer,"inds"); + // TILEVEC_OPS::copy(cudaPol,tris,"he_inds",surf_tris_buffer,"he_inds"); + // reorder_topology(cudaPol,points,surf_tris_buffer); // zs::Vector nodal_colors{surf_verts_buffer.get_allocator(),surf_verts_buffer.size()}; dtiles_t gia_res{points.get_allocator(),{ {"ring_mask",1}, {"type_mask",1}, {"color_mask",1}, - {"is_corner",1} + {"is_loop_vertex",1} },points.size()}; dtiles_t tri_gia_res{tris.get_allocator(),{ {"ring_mask",1}, @@ -1637,6 +1456,11 @@ struct FleshDynamicStepping : INode { },tris.size() * 2}; + + bool use_plane_constraint = get_input2("use_plane_constraint"); + bool use_binder_constraint = get_input2("use_binder_constraint"); + bool use_kinematic_potential = get_input2("with_kinematic_potential"); + if(has_input("kinematic_boundary")){ auto kinematic_boundary = get_input("kinematic_boundary"); // if (kinematic_boundary.empty()) @@ -1668,6 +1492,11 @@ struct FleshDynamicStepping : INode { TILEVEC_OPS::copy(cudaPol,kb_verts,"binderStiffness",kverts,"binderStiffness"); else TILEVEC_OPS::fill(cudaPol,kverts,"binderStiffness",(T)1.0); + + if(kb_verts.hasProperty(planeConsIDTag)) + TILEVEC_OPS::copy(cudaPol,kb_verts,planeConsIDTag,kverts,planeConsIDTag); + else + TILEVEC_OPS::fill(cudaPol,kverts,planeConsIDTag,zs::reinterpret_bits((int)-1)); ktris.resize(kb_tris.size()); TILEVEC_OPS::copy<3>(cudaPol,kb_tris,"nrm",ktris,"nrm"); @@ -1958,10 +1787,7 @@ struct FleshDynamicStepping : INode { auto binderThicknessTag = get_param("binderThicknessTag"); auto binderInversionTag = get_param("binderInversionTag"); - auto planeConsPosTag = get_param("planeConsPosTag"); - auto planeConsNrmTag = get_param("planeConsNrmTag"); - auto planeConsIDTag = get_param("planeConsIDTag"); - auto planeConsBaryTag = get_param("planeConsBaryTag"); + auto planeConsStiffness = get_input2("planeConsStiffness"); @@ -2017,9 +1843,6 @@ struct FleshDynamicStepping : INode { auto max_cg_iters = get_param("max_cg_iters"); - bool use_plane_constraint = get_input2("use_plane_constraint"); - bool use_binder_constraint = get_input2("use_binder_constraint"); - bool use_kinematic_potential = get_input2("with_kinematic_potential"); bool use_line_search = get_param("use_line_search"); @@ -2076,6 +1899,21 @@ struct FleshDynamicStepping : INode { js[offset + stride * 3 + ei] = inds[2]; js[offset + stride * 4 + ei] = inds[3]; js[offset + stride * 5 + ei] = inds[3]; + + // js[offset + stride * 6 + ei] = inds[0]; + // js[offset + stride * 7 + ei] = inds[0]; + // js[offset + stride * 8 + ei] = inds[0]; + // js[offset + stride * 9 + ei] = inds[1]; + // js[offset + stride * 10 + ei] = inds[1]; + // js[offset + stride * 11 + ei] = inds[2]; + + // is[offset + stride * 6 + ei] = inds[1]; + // is[offset + stride * 7 + ei] = inds[2]; + // is[offset + stride * 8 + ei] = inds[3]; + // is[offset + stride * 9 + ei] = inds[2]; + // is[offset + stride * 10 + ei] = inds[3]; + // is[offset + stride * 11 + ei] = inds[3]; + }); spmat = spmat_t{verts.get_allocator(),(int)verts.size(),(int)verts.size()}; @@ -2174,7 +2012,7 @@ struct FleshDynamicStepping : INode { }else { std::cout << "apply no binder constraint" << std::endl; } - if(verts.hasProperty(planeConsPosTag) && verts.hasProperty(planeConsNrmTag) && verts.hasProperty(planeConsIDTag) && verts.hasProperty(planeConsBaryTag) && use_plane_constraint){ + if(verts.hasProperty(planeConsIDTag) && use_plane_constraint){ std::cout << "apply plane constraint" << std::endl; // A.computePlaneConstraintGradientAndHessian(cudaPol, @@ -2187,6 +2025,11 @@ struct FleshDynamicStepping : INode { planeConsIDTag, vtemp, sttemp,cnorm,use_sticky_condition); + + auto v2kt_force = TILEVEC_OPS::dot<3>(cudaPol,vtemp,"grad","grad"); + auto kv2t_force = TILEVEC_OPS::dot<9>(cudaPol,sttemp,"grad","grad"); + std::cout << "v2kt_force : " << v2kt_force << std::endl; + std::cout << "kv2t_force : " << kv2t_force << std::endl; } else{ std::cout << "apply no plane constraint : " << @@ -2218,7 +2061,7 @@ struct FleshDynamicStepping : INode { auto cforce = TILEVEC_OPS::dot<9>(cudaPol,sttemp,"grad","grad"); std::cout << "nm_csPT = " << nm_csPT << "\tkin_cforce : " << cforce << std::endl; #else - // std::cout << "apply kinematic collision" << std::endl; + std::cout << "apply kinematic collision" << std::endl; auto nm_csPT = COLLISION_UTILS::do_tetrahedra_surface_points_and_kinematic_boundary_collision_detection(cudaPol, kinematics[0], vtemp,"xn", @@ -2372,6 +2215,8 @@ struct FleshDynamicStepping : INode { out_collisionEps, in_collisionEps, csPT); + + // auto varea = TILEVEC_OPS::dot<1>(cudaPol,vtemp,"area","area"); // auto tarea = TILEVEC_OPS::dot<1>(cudaPol,tris,"area","area"); @@ -2395,8 +2240,8 @@ struct FleshDynamicStepping : INode { tris,"area", csPT,self_collision_fp_buffer,collisionStiffness,out_collisionEps); - // auto cforce = TILEVEC_OPS::dot<12>(cudaPol,fp_buffer,"grad","grad"); - // std::cout << "cforce " << cforce << std::endl; + auto cforce = TILEVEC_OPS::dot<12>(cudaPol,self_collision_fp_buffer,"grad","grad"); + std::cout << "cforce " << cforce << "\tnmcsPT : " << csPT.size() << std::endl; } timer.tock("eval hessian and gradient"); @@ -2620,103 +2465,4 @@ ZENDEFNODE(FleshDynamicStepping, {{"ZSParticles","kinematic_boundary", {"bool","use_line_search","0"} }, {"FEM"}}); - -// struct EvaluateElasticForce : zeno::INode { -// using T = float; -// using Ti = int; -// using dtiles_t = zs::TileVector; -// using tiles_t = typename ZenoParticles::particles_t; -// using vec2 = zs::vec; -// using vec3 = zs::vec; -// using mat3 = zs::vec; -// using mat9 = zs::vec; -// using mat12 = zs::vec; - -// using bvh_t = zs::LBvh<3,int,T>; -// using bv_t = zs::AABBBox<3, T>; - -// using pair3_t = zs::vec; -// using pair4_t = zs::vec; - -// virtual void apply() override { -// using namespace zs; -// auto zsparticles = get_input("ZSParticles"); -// auto models = zsparticles->getModel(); -// auto& verts = zsparticles->getParticles(); -// auto& eles = zsparticles->getQuadraturePoints(); - -// std::vector act_; -// std::size_t nm_acts = 0; - -// if(has_input("Acts")) { -// act_ = get_input("Acts")->getLiterial(); -// nm_acts = act_.size(); -// } - -// std::cout << "nmActs:" << nm_acts << std::endl; - -// constexpr auto host_space = zs::execspace_e::openmp; -// auto ompExec = zs::omp_exec(); -// auto act_buffer = dtiles_t{{{"act",2}},nm_acts,zs::memsrc_e::host}; -// ompExec(zs::range(act_buffer.size()), -// [act_buffer = proxy({},act_buffer),act_] (int i) mutable { -// act_buffer.tuple(dim_c<2>,"act",i) = vec2(act_[i][0],act_[i][1]); -// }); - -// act_buffer = act_buffer.clone({zs::memsrc_e::device, 0}); -// constexpr auto space = execspace_e::cuda; -// auto cudaPol = cuda_exec(); - -// auto forceTag = get_param("forceTag"); -// if(!verts.hasProperty(forceTag)){ -// verts.append_channels(cudaPol,{{forceTag,3}}); -// } -// TILEVEC_OPS::fill(cudaPol,verts,forceTag,(T)0.0); - - -// } -// }; - -// struct VisualizeBoneDrivenForce : zeno::INode { - -// }; - -// struct VisualizePlaneConstraintForce : zeno::INode { -// using T = float; -// using Ti = int; -// using dtiles_t = zs::TileVector; -// using tiles_t = typename ZenoParticles::particles_t; -// using vec2 = zs::vec; -// using vec3 = zs::vec; -// using mat3 = zs::vec; -// using mat9 = zs::vec; -// using mat12 = zs::vec; - -// using bvh_t = zs::LBvh<3,int,T>; -// using bv_t = zs::AABBBox<3, T>; - -// using pair3_t = zs::vec; -// using pair4_t = zs::vec; - -// virtual void apply() override { -// using namespace zs; -// auto zsparticles = get_input("ZSParticles"); -// auto& verts = zsparticles->getParticles(); -// auto& tris = (*zsparticles)[ZenoParticles::s_surfTriTag]; - -// auto kinematic_boundary = get_input("kinematic_boundary"); -// auto& kb_verts = kinematic_boundary->getParticles(); -// auto& kb_tris = kinematic_boundary->getQuadraturePoints(); - -// auto planeConsPosTag = get_param("planeConsPosTag"); -// auto planeConsNrmTag = get_param("planeConsNrmTag"); -// auto planeConsIDTag = get_param("planeConsIDTag"); -// auto planeConsBaryTag = get_param("planeConsBaryTag"); - -// auto planeConsStiffness = get_input2("planeConsStiffness"); - - -// } -// } - }; \ No newline at end of file diff --git a/projects/CuLagrange/fem/collision_energy/evaluate_collision.hpp b/projects/CuLagrange/fem/collision_energy/evaluate_collision.hpp index b0cb6e2564..858923649d 100644 --- a/projects/CuLagrange/fem/collision_energy/evaluate_collision.hpp +++ b/projects/CuLagrange/fem/collision_energy/evaluate_collision.hpp @@ -382,13 +382,14 @@ inline int do_tetrahedra_surface_points_and_kinematic_boundary_collision_detecti // std::cout << "finish write back gia res" << std::endl; auto ktris_cnorm = 2 * compute_average_edge_length(pol,kverts,"x",ktris); - auto bvh_thickness = ktris_cnorm > in_collisionEps ? ktris_cnorm : in_collisionEps; + // auto bvh_thickness = ktris_cnorm > in_collisionEps ? ktris_cnorm : in_collisionEps; + auto bvh_thickness = ktris_cnorm; auto ktriBvh = bvh_t{}; auto ktriBvs = retrieve_bounding_volumes(pol,kverts,ktris,wrapv<3>{},(T)0,"x"); ktriBvh.build(pol,ktriBvs); - // std::cout << "do csPT testing" << std::endl; + std::cout << "do csPT testing with k_active channel : " << kverts.hasProperty("k_active") << std::endl; bool colliding_from_inside = true; pol(zs::range(surf_verts_buffer.size()),[ @@ -410,18 +411,24 @@ inline int do_tetrahedra_surface_points_and_kinematic_boundary_collision_detecti pos_attr_tag = zs::SmallString(tet_pos_attr_tag), gia_res = proxy(gia_res), tris_gia_res = proxy(tris_gia_res)] ZS_LAMBDA(int vi) mutable { + if(verts_buffer("active",vi) < (T)0.5) + return; auto p = verts_buffer.pack(dim_c<3>,pos_attr_tag,vi); auto bv = bv_t{get_bounding_box(p - thickness,p + thickness)}; - T min_penertration_distance = (T)1e8; + T min_penertration_distance = limits::max(); int min_kti = -1; auto vnrm = verts_buffer.pack(dim_c<3>,"nrm",vi); auto process_vertex_kface_collision_pairs = [&](int kti) mutable { auto ktri = ktris.pack(dim_c<3>,"inds",kti,int_c); - if(kverts.hasProperty("k_active")) - for(int i = 0;i != 3;++i) - if(kverts("k_active",ktri[i]) < (T)0.5) - return; + // printf("testing pairs[%d %d] : %f %f %f\n",vi,kti, + // (float)kverts("k_active",ktri[0]), + // (float)kverts("k_active",ktri[1]), + // (float)kverts("k_active",ktri[2])); + // if(kverts.hasProperty("k_active")) + // for(int i = 0;i != 3;++i) + // if(kverts("k_active",ktri[i]) < (T)0.5) + // return; vec3 ktvs[3] = {}; for(int i = 0;i != 3;++i) ktvs[i] = kverts.pack(dim_c<3>,"x",ktri[i]); @@ -439,9 +446,30 @@ inline int do_tetrahedra_surface_points_and_kinematic_boundary_collision_detecti auto barySum = (T)1.0; T distance = LSL_GEO::pointTriangleDistance(ktvs[0],ktvs[1],ktvs[2],p,barySum); + // printf("testing pairs[%d %d] : %f %f\n",vi,kti,(float)distance,(float)collisionEps); + if(distance > collisionEps) return; + // printf("testing pairs[%d %d]\n",vi,kti); + int RING_MASK = 0; + for(int i = 0;i != ring_mask_width;++i) { + RING_MASK |= tris_gia_res[(kti + kt_offset) * ring_mask_width + i] & gia_res[vi * ring_mask_width + i]; + } + + // int RING_MASK = tris_gia_res[kti + kt_offset] & gia_res[vi]; + if(dist < 0 && RING_MASK == 0) { + // printf("negative distance but ring mask not matched\n"); + return; + } + if(dist > 0 && RING_MASK > 0) { + // printf("positive distance but ring mask matched\n"); + return; + } + + + + auto khi = zs::reinterpret_bits(ktris("he_inds",kti)); vec3 kbnrms[3] = {}; for(int i = 0;i != 3;++i) { @@ -470,22 +498,23 @@ inline int do_tetrahedra_surface_points_and_kinematic_boundary_collision_detecti } } - int RING_MASK = 0; - for(int i = 0;i != ring_mask_width;++i) { - RING_MASK |= tris_gia_res[(kti + kt_offset) * ring_mask_width + i] & gia_res[vi * ring_mask_width + i]; + if(dist < 0 && distance < min_penertration_distance){ + min_penertration_distance = distance; + min_kti = kti; } - // int RING_MASK = tris_gia_res[kti + kt_offset] & gia_res[vi]; - if(dist < 0 && RING_MASK == 0) - return; - if(dist > 0 && RING_MASK > 0) - return; - csPT.insert(zs::vec{vi,kti + ktoffset}); + if(dist > 0) + csPT.insert(zs::vec{vi,kti + ktoffset}); }; ktriBvh.iter_neighbors(bv,process_vertex_kface_collision_pairs); + + if(min_kti >= 0) + csPT.insert(zs::vec{vi,min_kti + ktoffset}); }); + + return csPT.size(); } @@ -785,8 +814,8 @@ inline void do_tetrahedra_surface_tris_and_points_self_collision_detection(Pol& PosTileVec& tet_verts,const zs::SmallString& pos_attr_tag, const TetTileVec& tets, const SurfPointTileVec& surf_points,const SurfTriTileVec& surf_tris, - const HalfEdgeTileVec& surf_halfedge, - const HalfFacetTileVec& tet_halffacet, + HalfEdgeTileVec& surf_halfedge, + HalfFacetTileVec& tet_halffacet, REAL outCollisionEps, REAL inCollisionEps, HashMap& csPT, @@ -798,28 +827,50 @@ inline void do_tetrahedra_surface_tris_and_points_self_collision_detection(Pol& PosTileVec surf_verts_buffer{surf_points.get_allocator(),{ {pos_attr_tag,3}, - {"ring_mask",1}, - {"color_mask",1}, - {"type_mask",1}, + // {"ring_mask",1}, + // {"color_mask",1}, + // {"type_mask",1}, {"embed_tet_id",1}, - {"mustExclude",1}, - {"is_corner",1}, + // {"mustExclude",1}, + // {"is_loop_vertex",1}, {"active",1} },surf_points.size()}; + // PosTileVec gia_res{surf_points.get_allocator(),{ + // {"color_mask",1} + // },(size_t)0}; SurfTriTileVec surf_tris_buffer{surf_tris.get_allocator(),{ {"inds",3}, {"he_inds",1}, + // {"ring_mask",1}, + // {"color_mask",1}, + // {"type_mask",1} + },surf_tris.size()}; + + PosTileVec gia_res{surf_points.get_allocator(),{ + // {pos_attr_tag,3}, + {"ring_mask",1}, + {"color_mask",1}, + {"type_mask",1}, + // {"mustExclude",1}, + {"is_loop_vertex",1}, + // {"active",1} + },(size_t)0}; + + SurfTriTileVec tris_gia_res{surf_tris.get_allocator(),{ + // {"inds",3}, + // {"he_inds",1}, {"ring_mask",1}, {"color_mask",1}, {"type_mask",1} - },surf_tris.size()}; + },(size_t)0}; + topological_sample(pol,surf_points,tet_verts,pos_attr_tag,surf_verts_buffer); - TILEVEC_OPS::fill(pol,surf_verts_buffer,"ring_mask",zs::reinterpret_bits((int)0)); - TILEVEC_OPS::fill(pol,surf_verts_buffer,"color_mask",zs::reinterpret_bits((int)0)); - TILEVEC_OPS::fill(pol,surf_verts_buffer,"type_mask",zs::reinterpret_bits((int)0)); + // TILEVEC_OPS::fill(pol,surf_verts_buffer,"ring_mask",zs::reinterpret_bits((int)0)); + // TILEVEC_OPS::fill(pol,surf_verts_buffer,"color_mask",zs::reinterpret_bits((int)0)); + // TILEVEC_OPS::fill(pol,surf_verts_buffer,"type_mask",zs::reinterpret_bits((int)0)); if(tet_verts.hasProperty("active")) { topological_sample(pol,surf_points,tet_verts,"active",surf_verts_buffer); }else { @@ -830,19 +881,19 @@ inline void do_tetrahedra_surface_tris_and_points_self_collision_detection(Pol& TILEVEC_OPS::copy(pol,surf_tris,"inds",surf_tris_buffer,"inds"); TILEVEC_OPS::copy(pol,surf_tris,"he_inds",surf_tris_buffer,"he_inds"); reorder_topology(pol,surf_points,surf_tris_buffer); - TILEVEC_OPS::fill(pol,surf_tris_buffer,"ring_mask",zs::reinterpret_bits((int)0)); - TILEVEC_OPS::fill(pol,surf_tris_buffer,"color_mask",zs::reinterpret_bits((int)0)); - TILEVEC_OPS::fill(pol,surf_tris_buffer,"type_mask",zs::reinterpret_bits((int)0)); + // TILEVEC_OPS::fill(pol,surf_tris_buffer,"ring_mask",zs::reinterpret_bits((int)0)); + // TILEVEC_OPS::fill(pol,surf_tris_buffer,"color_mask",zs::reinterpret_bits((int)0)); + // TILEVEC_OPS::fill(pol,surf_tris_buffer,"type_mask",zs::reinterpret_bits((int)0)); - auto cnorm = 3 * compute_average_edge_length(pol,surf_verts_buffer,pos_attr_tag,surf_tris_buffer); + auto cnorm = 5 * compute_average_edge_length(pol,surf_verts_buffer,pos_attr_tag,surf_tris_buffer); // evaluate_embed_tet_id auto tetBvh = bvh_t{}; auto tetBvs = retrieve_bounding_volumes(pol,tet_verts,tets,wrapv<4>{},(T)0,pos_attr_tag); tetBvh.build(pol,tetBvs); TILEVEC_OPS::fill(pol,surf_verts_buffer,"embed_tet_id",zs::reinterpret_bits((int)-1)); - zs::Vector nmExcludedPoints{tets.get_allocator(),1}; - nmExcludedPoints.setVal(0); + // zs::Vector nmExcludedPoints{tets.get_allocator(),1}; + // nmExcludedPoints.setVal(0); pol(zs::range(surf_verts_buffer.size()),[ pos_attr_tag = zs::SmallString(pos_attr_tag), surf_verts_buffer = proxy({},surf_verts_buffer), @@ -851,7 +902,7 @@ inline void do_tetrahedra_surface_tris_and_points_self_collision_detection(Pol& tets = proxy({},tets), thickness = cnorm, exec_tag, - nmExcludedPoints = proxy(nmExcludedPoints), + // nmExcludedPoints = proxy(nmExcludedPoints), tet_verts = proxy({},tet_verts)] ZS_LAMBDA(int pi) mutable { auto pv = surf_verts_buffer.pack(dim_c<3>,pos_attr_tag,pi); auto vi = zs::reinterpret_bits(surf_points("inds",pi)); @@ -867,44 +918,49 @@ inline void do_tetrahedra_surface_tris_and_points_self_collision_detection(Pol& tV[i] = tet_verts.pack(dim_c<3>,pos_attr_tag,tet[i]); if(LSL_GEO::is_inside_tet(tV[0],tV[1],tV[2],tV[3],pv)){ surf_verts_buffer("embed_tet_id",pi) = zs::reinterpret_bits((int)ei); - atomic_add(exec_tag,&nmExcludedPoints[0],(int)1); + // atomic_add(exec_tag,&nmExcludedPoints[0],(int)1); } }; tetBvh.iter_neighbors(bv,mark_interior_verts); }); - std::cout << "nm_excluded_points :" << nmExcludedPoints.getVal(0) << "\t" << surf_verts_buffer.size() << std::endl; + // std::cout << "nm_excluded_points :" << nmExcludedPoints.getVal(0) << "\t" << surf_verts_buffer.size() << std::endl; - pol(zs::range(surf_verts_buffer.size()),[ - surf_verts_buffer = proxy({},surf_verts_buffer)] ZS_LAMBDA(int pi) mutable { - auto embed_tet_id = zs::reinterpret_bits(surf_verts_buffer("embed_tet_id",pi)); - if(embed_tet_id >= 0) - surf_verts_buffer("mustExclude",pi) = (T)1.0; - else - surf_verts_buffer("mustExclude",pi) = (T)0.0; - }); - auto nm_rings = do_global_self_intersection_analysis(pol, + // pol(zs::range(surf_verts_buffer.size()),[ + // surf_verts_buffer = proxy({},surf_verts_buffer)] ZS_LAMBDA(int pi) mutable { + // auto embed_tet_id = zs::reinterpret_bits(surf_verts_buffer("embed_tet_id",pi)); + // if(embed_tet_id >= 0) + // surf_verts_buffer("mustExclude",pi) = (T)1.0; + // else + // surf_verts_buffer("mustExclude",pi) = (T)0.0; + // }); + auto ring_mask_width = do_global_self_intersection_analysis(pol, surf_verts_buffer,pos_attr_tag,surf_tris_buffer,surf_halfedge, - surf_verts_buffer,surf_tris_buffer); - std::cout << "nm_rings of GIA " << nm_rings << std::endl; + gia_res,tris_gia_res); + std::cout << "ring_mask_width of GIA : " << ring_mask_width << std::endl; if(write_back_gia_res) { - if(!tet_verts.hasProperty("ring_mask")) { - tet_verts.append_channels(pol,{{"ring_mask",1}}); - } + // if(!tet_verts.hasProperty("ring_mask")) { + // tet_verts.append_channels(pol,{{"ring_mask",1}}); + // } if(!tet_verts.hasProperty("flood")) { tet_verts.append_channels(pol,{{"flood",1}}); } - TILEVEC_OPS::fill(pol,tet_verts,"ring_mask",zs::reinterpret_bits((int)0)); + // TILEVEC_OPS::fill(pol,tet_verts,"ring_mask",zs::reinterpret_bits((int)0)); TILEVEC_OPS::fill(pol,tet_verts,"flood",(T)0); - pol(zs::range(surf_verts_buffer.size()),[ + pol(zs::range(surf_points.size()),[ tet_verts = proxy({},tet_verts), surf_points = proxy({},surf_points), - surf_verts_buffer = proxy({},surf_verts_buffer)] ZS_LAMBDA(int pi) mutable { + ring_mask_width = ring_mask_width, + gia_res = proxy({},gia_res)] ZS_LAMBDA(int pi) mutable { auto vi = zs::reinterpret_bits(surf_points("inds",pi)); - tet_verts("ring_mask",vi) = surf_verts_buffer("ring_mask",pi); - auto ring_mask = zs::reinterpret_bits(surf_verts_buffer("ring_mask",pi)); - if(ring_mask > 0) - tet_verts("flood",vi) = (T)1.0; + // tet_verts("ring_mask",vi) = surf_verts_buffer("ring_mask",pi); + for(int i = 0;i != ring_mask_width;++i) { + auto ring_mask = zs::reinterpret_bits(gia_res("ring_mask",pi * ring_mask_width + i)); + if(ring_mask > 0) { + tet_verts("flood",vi) = (T)1.0; + return; + } + } }); } @@ -922,6 +978,9 @@ inline void do_tetrahedra_surface_tris_and_points_self_collision_detection(Pol& surf_halfedge = proxy({},surf_halfedge), tets = proxy({},tets), tet_verts = proxy({},tet_verts), + gia_res = proxy({},gia_res), + tris_gia_res= proxy({},tris_gia_res), + ring_mask_width = ring_mask_width, thickness = cnorm, csPT = proxy(csPT), spBvh = proxy(spBvh)] ZS_LAMBDA(int ti) mutable { @@ -958,7 +1017,7 @@ inline void do_tetrahedra_surface_tris_and_points_self_collision_detection(Pol& hi = zs::reinterpret_bits(surf_halfedge("next_he",hi)); } - T min_penertration_depth = 1e8; + T min_penertration_depth = zs::limits::max(); int min_vi = -1; auto process_vertex_face_collision_pairs = [&, pos_attr_tag](int vi) { if(tri[0] == vi || tri[1] == vi || tri[2] == vi) @@ -995,74 +1054,309 @@ inline void do_tetrahedra_surface_tris_and_points_self_collision_detection(Pol& // if(dist < 0) { // auto neighbor_tet = zs::reinterpret_bits(halffacets("")) // } + bool is_valid_inverted_pair = false; + for(int bi = 0;bi != ring_mask_width;++bi) { + if(dist < 0) { + // do gia intersection test + int RING_MASK = zs::reinterpret_bits(gia_res("ring_mask",vi * ring_mask_width + bi)); + if(RING_MASK == 0) + continue; + // bool is_same_ring = false; + int TRING_MASK = ~0; + for(int i = 0;i != 3;++i) { + TRING_MASK &= zs::reinterpret_bits(gia_res("ring_mask",tri[i] * ring_mask_width + bi)); + } + RING_MASK = RING_MASK & TRING_MASK; + // the point and the tri should belong to the same ring + if(RING_MASK == 0) + continue; - if(dist < 0) { - // do gia intersection test - int RING_MASK = zs::reinterpret_bits(surf_verts_buffer("ring_mask",vi)); - if(RING_MASK == 0) - return; - // bool is_same_ring = false; - int TRING_MASK = 0; - for(int i = 0;i != 3;++i) { - TRING_MASK |= zs::reinterpret_bits(surf_verts_buffer("ring_mask",tri[i])); + // now the two pair belong to the same ring, check whether they belong black-white loop, and have different colors + auto COLOR_MASK = reinterpret_bits(gia_res("color_mask",vi * ring_mask_width + bi)); + auto TYPE_MASK = reinterpret_bits(gia_res("type_mask",vi * ring_mask_width + bi)); + + // only check the common type-1(white-black loop) rings + int TTYPE_MASK = 0; + for(int i = 0;i != 3;++i) + TTYPE_MASK |= reinterpret_bits(gia_res("type_mask",tri[i] * ring_mask_width + bi)); + + RING_MASK &= (TYPE_MASK & TTYPE_MASK); + // type-0 ring + if(RING_MASK == 0) { + is_valid_inverted_pair = true; + break; + } + // int nm_common_rings = 0; + // while() + // as long as there is one ring in which the pair have different colors, neglect the pair + int curr_ri_mask = 1; + bool is_color_same = false; + for(;RING_MASK > 0;RING_MASK = RING_MASK >> 1,curr_ri_mask = curr_ri_mask << 1) { + if(RING_MASK & 1) { + // int TCOLOR_MASK = ~0; + // for(int i = 0;i != 3;++i) + // TCOLOR_MASK &= reinterpret_bits(gia_res("color_mask",tri[i] * ring_mask_width + bi)) & curr_ri_mask; + // int auto VCOLOR_MASK = reinterpret_bits(gia_res("color_mask",vi * ring_mask_width + bi)) & curr_ri_mask; + for(int i = 0;i != 3;++i) { + auto TCOLOR_MASK = reinterpret_bits(gia_res("color_mask",tri[i] * ring_mask_width + bi)) & curr_ri_mask; + auto VCOLOR_MASK = reinterpret_bits(gia_res("color_mask",vi * ring_mask_width + bi)) & curr_ri_mask; + if(TCOLOR_MASK == VCOLOR_MASK) { + is_color_same = true; + break; + } + } + if(is_color_same) + break; + } + } + + if(!is_color_same) { + // type-1 ring with different color + is_valid_inverted_pair = true; + break; + } + + // break; + + // embed_tet_id >= 0 + // do shortest path detection + // auto ei = embed_tet_id; + + + + // is_valid_pair = true; } - RING_MASK = RING_MASK & TRING_MASK; - // the point and the tri should belong to the same ring - if(RING_MASK == 0) + // if(!is_valid_inverted_pair) + // return; + } + + + if(ring_mask_width == 0 && dist < 0) { + return; + } + + if(dist < 0 && is_valid_inverted_pair){ + min_vi = vi; + min_penertration_depth = distance; + } + if(dist > 0) + csPT.insert(zs::vec{vi,ti}); + }; + spBvh.iter_neighbors(bv,process_vertex_face_collision_pairs); + if(min_vi >= 0) + csPT.insert(zs::vec{min_vi,ti}); + }); + + auto stBvh = bvh_t{}; + auto stBvs = retrieve_bounding_volumes(pol,tet_verts,surf_tris,wrapv<3>{},(T)cnorm,pos_attr_tag); + stBvh.build(pol,stBvs); + + // csPT.reset(pol,true); + // for each verts, find the closest tri + pol(zs::range(surf_verts_buffer.size()),[ + outCollisionEps = outCollisionEps, + inCollisionEps = inCollisionEps, + surf_verts_buffer = proxy({},surf_verts_buffer,"surf_verts_buffer_problem"), + surf_tris_buffer = proxy({},surf_tris_buffer), + pos_attr_tag = zs::SmallString(pos_attr_tag), + surf_halfedge = proxy({},surf_halfedge), + tets = proxy({},tets), + tet_verts = proxy({},tet_verts), + gia_res = proxy({},gia_res), + tris_gia_res= proxy({},tris_gia_res), + ring_mask_width = ring_mask_width, + thickness = cnorm, + csPT = proxy(csPT), + stBvh = proxy(stBvh)] ZS_LAMBDA(int pi) mutable { + auto p = surf_verts_buffer.pack(dim_c<3>,pos_attr_tag,pi); + auto bv = bv_t{get_bounding_box(p - thickness,p + thickness)}; + + if(surf_verts_buffer("active",pi) < (T)0.5) + return; + T min_penertration_depth = zs::limits::max(); + int min_ti = -1; + auto process_vertex_face_collision_pairs = [&, pos_attr_tag](int ti) { + auto tri = surf_tris_buffer.pack(dim_c<3>,"inds",ti,int_c); + for(int i = 0;i != 3;++i) + if(surf_verts_buffer("active",tri[i]) < (T)0.5) return; - // now the two pair belong to the same ring, check whether they belong black-white loop, and have different colors - auto COLOR_MASK = reinterpret_bits(surf_verts_buffer("color_mask",vi)); - auto TYPE_MASK = reinterpret_bits(surf_verts_buffer("type_mask",vi)); + zs::vec tvs[3] = {}; + for(int i = 0;i != 3;++i) + tvs[i] = surf_verts_buffer.pack(dim_c<3>,pos_attr_tag,tri[i]); - // only check the common type-1(white-black loop) rings - int TTYPE_MASK = 0; - for(int i = 0;i != 3;++i) - TTYPE_MASK |= reinterpret_bits(surf_verts_buffer("type_mask",tri[i])); - - RING_MASK &= (TYPE_MASK & TTYPE_MASK); - // int nm_common_rings = 0; - // while() - // as long as there is one ring in which the pair have different colors, neglect the pair - int curr_ri_mask = 1; - for(;RING_MASK > 0;RING_MASK = RING_MASK >> 1,curr_ri_mask = curr_ri_mask << 1) { - if(RING_MASK & 1) { - for(int i = 0;i != 3;++i) { - auto TCOLOR_MASK = reinterpret_bits(surf_verts_buffer("color_mask",tri[i])) & curr_ri_mask; - auto VCOLOR_MASK = reinterpret_bits(surf_verts_buffer("color_mask",vi)) & curr_ri_mask; - if(TCOLOR_MASK == VCOLOR_MASK) - return; + if(tri[0] == pi || tri[1] == pi || tri[2] == pi) + return; + + // auto tri_center = zs::vec::zeros(); + // for(int i = 0;i != 3;++i) + // tri_center += tvs[i]/(T)3.0; + + auto embed_tet_id = zs::reinterpret_bits(surf_verts_buffer("embed_tet_id",pi)); + // auto p = surf_verts_buffer.pack(dim_c<3>,pos_attr_tag,vi); + auto tnrm = LSL_GEO::facet_normal(tvs[0],tvs[1],tvs[2]); + auto seg = p - tvs[0]; + auto dist = seg.dot(tnrm); + + auto collisionEps = dist > 0 ? outCollisionEps : inCollisionEps; + + auto barySum = (T)1.0; + T distance = LSL_GEO::pointTriangleDistance(tvs[0],tvs[1],tvs[2],p,barySum); + + if(distance > collisionEps) + return; + + + if(dist < 0 && distance > min_penertration_depth) + return; + + // if(dist < 0) { + // auto neighbor_tet = zs::reinterpret_bits(halffacets("")) + // } + if(dist < 0 && embed_tet_id < 0) + return; + // printf("testing pair %d %d\n",pi,ti); + + bool is_valid_inverted_pair = false; + for(int bi = 0;bi != ring_mask_width;++bi) { + if(dist < 0) { + // do gia intersection test + int V_RING_MASK = zs::reinterpret_bits(gia_res("ring_mask",pi * ring_mask_width + bi)); + if(V_RING_MASK == 0) + continue; + // bool is_same_ring = false; + // int TRING_MASK = ~0; + int TRING_MASK = ~0; + for(int i = 0;i != 3;++i) { + TRING_MASK &= zs::reinterpret_bits(gia_res("ring_mask",tri[i] * ring_mask_width + bi)); + } + auto RING_MASK = V_RING_MASK & TRING_MASK; + // the point and the tri should belong to the same ring + if(RING_MASK == 0) + continue; + // else if(V_RING_MASK > 0 && TRING_MASK > 0){ + // is_valid_inverted_pair = true; + // break; + // }else { + // continue; + // } + + // now the two pair belong to the same ring, check whether they belong black-white loop, and have different colors + auto COLOR_MASK = reinterpret_bits(gia_res("color_mask",pi * ring_mask_width + bi)); + auto TYPE_MASK = reinterpret_bits(gia_res("type_mask",pi * ring_mask_width + bi)); + + // only check the common type-1(white-black loop) rings + int TTYPE_MASK = 0; + for(int i = 0;i != 3;++i) + TTYPE_MASK |= reinterpret_bits(gia_res("type_mask",tri[i] * ring_mask_width + bi)); + + RING_MASK &= (TYPE_MASK & TTYPE_MASK); + // type-0 ring + if(RING_MASK == 0) { + is_valid_inverted_pair = true; + break; + } + // int nm_common_rings = 0; + // while() + // as long as there is one ring in which the pair have different colors, neglect the pair + int curr_ri_mask = 1; + bool is_color_same = false; + for(;RING_MASK > 0;RING_MASK = RING_MASK >> 1,curr_ri_mask = curr_ri_mask << 1) { + if(RING_MASK & 1) { + // int TCOLOR_MASK = ~0; + // for(int i = 0;i != 3;++i) + // TCOLOR_MASK &= reinterpret_bits(gia_res("color_mask",tri[i] * ring_mask_width + bi)) & curr_ri_mask; + // int auto VCOLOR_MASK = reinterpret_bits(gia_res("color_mask",vi * ring_mask_width + bi)) & curr_ri_mask; + for(int i = 0;i != 3;++i) { + auto TCOLOR_MASK = reinterpret_bits(gia_res("color_mask",tri[i] * ring_mask_width + bi)) & curr_ri_mask; + auto VCOLOR_MASK = reinterpret_bits(gia_res("color_mask",pi * ring_mask_width + bi)) & curr_ri_mask; + if(TCOLOR_MASK == VCOLOR_MASK) { + is_color_same = true; + break; + } + } + if(is_color_same) + break; } } + + if(!is_color_same) { + // type-1 ring with different color + is_valid_inverted_pair = true; + break; + } + // else { + // printf("skip with the same color %d %d\n",pi,ti); + // } + + // break; + + // embed_tet_id >= 0 + // do shortest path detection + // auto ei = embed_tet_id; + + + + // is_valid_pair = true; } + // if(!is_valid_inverted_pair) + // return; + } - // embed_tet_id >= 0 - // do shortest path detection - // auto ei = embed_tet_id; + if(barySum > (T)(1.0 + 0.1)) { + auto hi = zs::reinterpret_bits(surf_tris_buffer("he_inds",ti)); + vec3 bnrms[3] = {}; + for(int i = 0;i != 3;++i){ + auto edge_normal = tnrm; + auto opposite_hi = zs::reinterpret_bits(surf_halfedge("opposite_he",hi)); + if(opposite_hi >= 0){ + auto nti = zs::reinterpret_bits(surf_halfedge("to_face",opposite_hi)); + auto ntri = surf_tris_buffer.pack(dim_c<3>,"inds",nti,int_c); + auto ntnrm = LSL_GEO::facet_normal( + surf_verts_buffer.pack(dim_c<3>,pos_attr_tag,ntri[0]), + surf_verts_buffer.pack(dim_c<3>,pos_attr_tag,ntri[1]), + surf_verts_buffer.pack(dim_c<3>,pos_attr_tag,ntri[2])); + edge_normal = tnrm + ntnrm; + edge_normal = edge_normal/(edge_normal.norm() + (T)1e-6); + } + auto e01 = tvs[(i + 1) % 3] - tvs[(i + 0) % 3]; + bnrms[i] = edge_normal.cross(e01).normalized(); + hi = zs::reinterpret_bits(surf_halfedge("next_he",hi)); + } - // min_vi = vi; - // min_penertration_depth = distance; - - }else { // dist > 0 - int RING_MASK = zs::reinterpret_bits(surf_verts_buffer("ring_mask",vi)); - if(RING_MASK > 0) - return; - int TRING_MASK = 0; - for(int i = 0;i != 3;++i) { - TRING_MASK |= zs::reinterpret_bits(surf_verts_buffer("ring_mask",tri[i])); + for(int i = 0;i != 3;++i){ + seg = p - tvs[i]; + if(bnrms[i].dot(seg) < 0) { + // printf("skip due to bisector normal check\n"); + return; + } } - if(TRING_MASK > 0) - return; + } - + if(ring_mask_width == 0 && dist < 0) { + // printf("empty_ring_mask and negative dist\n"); + return; } - csPT.insert(zs::vec{vi,ti}); + + if(dist < 0 && is_valid_inverted_pair){ + min_ti = ti; + min_penertration_depth = distance; + } + else if(dist > 0){ + csPT.insert(zs::vec{pi,ti}); + // printf("find_new_positive pair %d %d\n",pi,ti); + } + // else { + // printf("invalid inverted pair\n"); + // } }; - spBvh.iter_neighbors(bv,process_vertex_face_collision_pairs); - // if(min_vi >= 0) - // csPT.insert(zs::vec{min_vi,ti}); + stBvh.iter_neighbors(bv,process_vertex_face_collision_pairs); + if(min_ti >= 0) { + // printf("find_new_negative pair %d %d\n",pi,min_ti); + csPT.insert(zs::vec{pi,min_ti}); + } }); } @@ -1381,7 +1675,7 @@ inline void do_kinematic_point_collision_detection(Pol& cudaPol, stBvh.build(cudaPol,bvs); auto avgl = compute_average_edge_length(cudaPol,verts,xtag,tris); - auto bvh_thickness = 5 * avgl; + auto bvh_thickness = 2 * avgl; if(update_normal) { if(!calculate_facet_normal(cudaPol,verts,xtag,tris,nrmTris,"nrm")){ diff --git a/projects/CuLagrange/geometry/BasicGeoNodes.cu b/projects/CuLagrange/geometry/BasicGeoNodes.cu new file mode 100755 index 0000000000..b5b4d12721 --- /dev/null +++ b/projects/CuLagrange/geometry/BasicGeoNodes.cu @@ -0,0 +1,85 @@ +#include "kernel/bary_centric_weights.hpp" +#include "zensim/io/MeshIO.hpp" +#include "zensim/math/bit/Bits.h" +#include "zensim/types/Property.h" +#include +#include +#include +#include +#include +#include + +#include "zensim/container/Bcht.hpp" +#include "kernel/tiled_vector_ops.hpp" +#include "kernel/geo_math.hpp" + +#include + +namespace zeno { + +struct ZSComputeSurfaceArea : zeno::INode { + using T = float; + virtual void apply() override { + using namespace zs; + constexpr auto cuda_space = execspace_e::cuda; + auto cudaPol = cuda_exec(); + constexpr auto exec_tag = wrapv{}; + + auto zsparticles = get_input("zsparticles"); + auto& verts = zsparticles->getParticles(); + bool is_tet_volume_mesh = zsparticles->category == ZenoParticles::category_e::tet; + auto &tris = is_tet_volume_mesh ? (*zsparticles)[ZenoParticles::s_surfTriTag] : zsparticles->getQuadraturePoints(); + + auto attrName = get_param("attrName"); + if(!verts.hasProperty(attrName)) { + verts.append_channels(cudaPol,{{attrName,1}}); + } + TILEVEC_OPS::fill(cudaPol,verts,attrName,(T)0.0); + + if(!tris.hasProperty(attrName)) { + tris.append_channels(cudaPol,{{attrName,1}}); + } + TILEVEC_OPS::fill(cudaPol,verts,attrName,(T)0.0); + + zs::Vector nmIncidentTris{verts.get_allocator(),verts.size()}; + cudaPol(zs::range(nmIncidentTris),[] ZS_LAMBDA(int& count) mutable {count = 0;}); + + cudaPol(zs::range(tris.size()),[ + exec_tag, + attrName = zs::SmallString(attrName), + tris = proxy({},tris), + nmIncidentTris = proxy(nmIncidentTris), + verts = proxy({},verts)] ZS_LAMBDA(int ti) mutable { + auto tri = tris.pack(dim_c<3>,"inds",ti,int_c); + zs::vec tV[3] = {}; + for(int i = 0;i != 3;++i) + tV[i] = verts.pack(dim_c<3>,"x",tri[i]); + auto A = LSL_GEO::area(tV[0],tV[1],tV[2]); + tris(attrName,ti) = A; + for(int i = 0;i != 3;++i) { + atomic_add(exec_tag,&verts(attrName,tri[i]),A); + atomic_add(exec_tag,&nmIncidentTris[0],(int)1); + } + }); + + cudaPol(zs::range(verts.size()),[ + verts = proxy({},verts), + attrName = zs::SmallString(attrName), + nmIncidentTris = proxy(nmIncidentTris)] ZS_LAMBDA(int vi) mutable { + if(nmIncidentTris[vi] > 0) + verts(attrName,vi) = verts(attrName,vi) / (T)nmIncidentTris[vi]; + }); + + set_output("zsparticles",zsparticles); + } +}; + + +ZENDEFNODE(ZSComputeSurfaceArea, {{{"zsparticles"}}, + {{"zsparticles"}}, + { + {"string","attrName","area"} + }, + {"ZSGeometry"}}); + +}; \ No newline at end of file diff --git a/projects/CuLagrange/geometry/BiharmonicBoundedWeight.cu b/projects/CuLagrange/geometry/BiharmonicBoundedWeight.cu index 47d30a4a98..56e042b569 100644 --- a/projects/CuLagrange/geometry/BiharmonicBoundedWeight.cu +++ b/projects/CuLagrange/geometry/BiharmonicBoundedWeight.cu @@ -13,7 +13,7 @@ #include #include -#include "kernel/laplace_matrix.hpp" +#include "kernel/differential_geometry.hpp" #include "linear_system/active_set.hpp" namespace zeno { diff --git a/projects/CuLagrange/geometry/CollisionVis.cu b/projects/CuLagrange/geometry/CollisionVis.cu index ce0937ec93..beb0d4f859 100644 --- a/projects/CuLagrange/geometry/CollisionVis.cu +++ b/projects/CuLagrange/geometry/CollisionVis.cu @@ -460,7 +460,7 @@ namespace zeno { {"ring_mask",1}, {"type_mask",1}, {"color_mask",1}, - {"is_corner",1} + {"is_loop_vertex",1} },verts_buffer.size()}; dtiles_t tris_gia_res{tri_buffer.get_allocator(),{ @@ -473,7 +473,7 @@ namespace zeno { auto nm_insts = do_global_self_intersection_analysis_on_surface_mesh_info( cudaPol,verts_buffer,"x",tri_buffer,halfedges,inst_buffer_info,gia_res,false); // zs::bht conn_of_first_ring{halfedges.get_allocator(),halfedges.size()}; - auto nm_rings = do_global_self_intersection_analysis(cudaPol, + auto ring_mask_width = do_global_self_intersection_analysis(cudaPol, verts_buffer,"x",tri_buffer,halfedges,gia_res,tris_gia_res); @@ -483,14 +483,18 @@ namespace zeno { verts.append_channels(cudaPol,{{markTag,1}}); } TILEVEC_OPS::fill(cudaPol,verts,markTag,(T)0.0); - cudaPol(zs::range(gia_res.size()),[ + cudaPol(zs::range(verts_buffer.size()),[ gia_res = proxy({},gia_res), verts = proxy({},verts), + ring_mask_width = ring_mask_width, verts_buffer = proxy({},verts_buffer), markTag = zs::SmallString(markTag) ] ZS_LAMBDA(int pi) mutable { auto vi = zs::reinterpret_bits(verts_buffer("inds",pi)); - auto ring_mask = zs::reinterpret_bits(gia_res("ring_mask",pi)); + int ring_mask = 0; + for(int i = 0;i != ring_mask_width;++i) { + ring_mask |= zs::reinterpret_bits(gia_res("ring_mask",pi * ring_mask_width + i)); + } verts(markTag,vi) = ring_mask == 0 ? (T)0.0 : (T)1.0; }); set_output("zsparticles",zsparticles); @@ -2221,18 +2225,18 @@ struct VisualizeSelfIntersections : zeno::INode { // zs::Vector nodal_colors{verts_buffer.get_allocator(),verts_buffer.size()}; // zs::Vector> instBuffer{tri_buffer.get_allocator(),tri_buffer.size() * 2}; - dtiles_t inst_buffer_info{tris.get_allocator(),{ - {"pair",2}, - {"type",1}, - {"its_edge_mark",6}, - {"int_points",6} - },tris.size() * 2}; + // dtiles_t inst_buffer_info{tris.get_allocator(),{ + // {"pair",2}, + // {"type",1}, + // {"its_edge_mark",6}, + // {"int_points",6} + // },tris.size() * 2}; dtiles_t gia_res{verts_buffer.get_allocator(),{ {"ring_mask",1}, {"type_mask",1}, {"color_mask",1}, - {"is_corner",1} + {"is_loop_vertex",1} },verts_buffer.size()}; dtiles_t tris_gia_res{tri_buffer.get_allocator(),{ {"ring_mask",1}, @@ -2241,10 +2245,10 @@ struct VisualizeSelfIntersections : zeno::INode { },tri_buffer.size()}; auto& halfedges = (*zsparticles)[ZenoParticles::s_surfHalfEdgeTag]; - auto nm_insts = do_global_self_intersection_analysis_on_surface_mesh_info( - cudaPol,verts_buffer,"x",tri_buffer,halfedges,inst_buffer_info,gia_res,false); + // auto nm_insts = do_global_self_intersection_analysis_on_surface_mesh_info( + // cudaPol,verts_buffer,"x",tri_buffer,halfedges,inst_buffer_info,gia_res,false); // zs::bht conn_of_first_ring{halfedges.get_allocator(),halfedges.size()}; - auto nm_rings = do_global_self_intersection_analysis(cudaPol, + auto ring_mask_width = do_global_self_intersection_analysis(cudaPol, verts_buffer,"x",tri_buffer,halfedges,gia_res,tris_gia_res); @@ -2380,177 +2384,186 @@ struct VisualizeSelfIntersections : zeno::INode { flood_region_vis->resize(verts.size()); auto& flood_region_verts = flood_region_vis->verts; auto& flood_region_mark = flood_region_vis->add_attr("flood"); - auto& is_corner_mark = flood_region_vis->add_attr("is_corner"); + auto& is_corner_mark = flood_region_vis->add_attr("is_loop_vertex"); ompPol(zs::range(verts_buffer.size()),[ &flood_region_verts, &flood_region_mark, &is_corner_mark, + ring_mask_width = ring_mask_width, flood_region = proxy({},flood_region), gia_res = proxy({},gia_res)] (int vi) mutable { auto p = flood_region.pack(dim_c<3>,"x",vi); flood_region_verts[vi] = p.to_array(); - auto ring_mask = zs::reinterpret_bits(gia_res("ring_mask",vi)); - flood_region_mark[vi] = ring_mask == 0 ? (float)0.0 : (float)1.0; - // auto is_corner = gia_res("is_corner",vi); - is_corner_mark[vi] = gia_res("is_corner",vi); - }); - set_output("flood_region",std::move(flood_region_vis)); + int ring_mask = 0; + bool is_corner = false; + for(int i = 0;i != ring_mask_width;++i) { + ring_mask |= zs::reinterpret_bits(gia_res("ring_mask",vi * ring_mask_width + i)); + if(gia_res("is_loop_vertex",vi) > (T)0.5) + is_corner = true; + } - dtiles_t self_intersect_buffer{tris.get_allocator(),{ - {"a0",3},{"A0",3}, - {"a1",3},{"A1",3}, - {"a2",3},{"A2",3}, - {"b0",3},{"B0",3}, - {"b1",3},{"B1",3}, - {"b2",3},{"B2",3}, - {"p0",3},{"p1",3} - },(size_t)nm_insts}; - cudaPol(zs::range(nm_insts),[ - // instBuffer = proxy(instBuffer), - inst_buffer_info = proxy({},inst_buffer_info), - verts_buffer = proxy({},verts_buffer), - self_intersect_buffer = proxy({},self_intersect_buffer), - tri_buffer = proxy({},tri_buffer)] ZS_LAMBDA(int sti) mutable { - auto tpair = inst_buffer_info.pack(dim_c<2>,"pair",sti,int_c); - auto ta = tpair[0]; - auto tb = tpair[1]; - - auto ints_p = inst_buffer_info.pack(dim_c<6>,"int_points",sti); - self_intersect_buffer.tuple(dim_c<3>,"p0",sti) = zs::vec{ints_p[0],ints_p[1],ints_p[2]}; - self_intersect_buffer.tuple(dim_c<3>,"p1",sti) = zs::vec{ints_p[3],ints_p[4],ints_p[5]}; - // auto ta = instBuffer[sti][0]; - // auto tb = instBuffer[sti][1]; - - auto triA = tri_buffer.pack(dim_c<3>,"inds",ta,int_c); - auto triB = tri_buffer.pack(dim_c<3>,"inds",tb,int_c); - self_intersect_buffer.tuple(dim_c<3>,"a0",sti) = verts_buffer.pack(dim_c<3>,"x",triA[0]); - self_intersect_buffer.tuple(dim_c<3>,"a1",sti) = verts_buffer.pack(dim_c<3>,"x",triA[1]); - self_intersect_buffer.tuple(dim_c<3>,"a2",sti) = verts_buffer.pack(dim_c<3>,"x",triA[2]); - - self_intersect_buffer.tuple(dim_c<3>,"b0",sti) = verts_buffer.pack(dim_c<3>,"x",triB[0]); - self_intersect_buffer.tuple(dim_c<3>,"b1",sti) = verts_buffer.pack(dim_c<3>,"x",triB[1]); - self_intersect_buffer.tuple(dim_c<3>,"b2",sti) = verts_buffer.pack(dim_c<3>,"x",triB[2]); - - self_intersect_buffer.tuple(dim_c<3>,"A0",sti) = verts_buffer.pack(dim_c<3>,"x",triA[0]); - self_intersect_buffer.tuple(dim_c<3>,"A1",sti) = verts_buffer.pack(dim_c<3>,"x",triA[1]); - self_intersect_buffer.tuple(dim_c<3>,"A2",sti) = verts_buffer.pack(dim_c<3>,"x",triA[2]); - - self_intersect_buffer.tuple(dim_c<3>,"B0",sti) = verts_buffer.pack(dim_c<3>,"x",triB[0]); - self_intersect_buffer.tuple(dim_c<3>,"B1",sti) = verts_buffer.pack(dim_c<3>,"x",triB[1]); - self_intersect_buffer.tuple(dim_c<3>,"B2",sti) = verts_buffer.pack(dim_c<3>,"x",triB[2]); + flood_region_mark[vi] = ring_mask == 0 ? (float)0.0 : (float)1.0; + // auto is_corner = gia_res("is_loop_vertex",vi); + is_corner_mark[vi] = is_corner ? (T)1.0 : (T)0.0; }); + set_output("flood_region",std::move(flood_region_vis)); - self_intersect_buffer = self_intersect_buffer.clone({zs::memsrc_e::host}); - - auto st_fact_vis = std::make_shared(); - auto& st_verts = st_fact_vis->verts; - auto& st_tris = st_fact_vis->tris; - st_verts.resize(self_intersect_buffer.size() * 6); - st_tris.resize(self_intersect_buffer.size() * 2); - - ompPol(zs::range(nm_insts),[ - &st_verts,&st_tris,self_intersect_buffer = proxy({},self_intersect_buffer)] (int sti) mutable { - st_verts[sti * 6 + 0] = self_intersect_buffer.pack(dim_c<3>,"a0",sti).to_array(); - st_verts[sti * 6 + 1] = self_intersect_buffer.pack(dim_c<3>,"a1",sti).to_array(); - st_verts[sti * 6 + 2] = self_intersect_buffer.pack(dim_c<3>,"a2",sti).to_array(); - st_verts[sti * 6 + 3] = self_intersect_buffer.pack(dim_c<3>,"b0",sti).to_array(); - st_verts[sti * 6 + 4] = self_intersect_buffer.pack(dim_c<3>,"b1",sti).to_array(); - st_verts[sti * 6 + 5] = self_intersect_buffer.pack(dim_c<3>,"b2",sti).to_array(); - - st_tris[sti * 2 + 0] = zeno::vec3i(sti * 6 + 0,sti * 6 + 1,sti * 6 + 2); - st_tris[sti * 2 + 1] = zeno::vec3i(sti * 6 + 3,sti * 6 + 4,sti * 6 + 5); - }); - - // std::cout << "nm_insts : " << nm_insts << std::endl; - set_output("st_facet_vis",std::move(st_fact_vis)); - - auto st_ring_vis = std::make_shared(); - auto& its_ring_verts = st_ring_vis->verts; - auto& its_ring_lines = st_ring_vis->lines; - its_ring_verts.resize(nm_insts * 2); - its_ring_lines.resize(nm_insts); - ompPol(zs::range(nm_insts),[ - &its_ring_verts,&its_ring_lines,self_intersect_buffer = proxy({},self_intersect_buffer)] (int sti) mutable { - auto p0 = self_intersect_buffer.pack(dim_c<3>,"p0",sti); - auto p1 = self_intersect_buffer.pack(dim_c<3>,"p1",sti); - its_ring_verts[sti * 2 + 0] = p0.to_array(); - its_ring_verts[sti * 2 + 1] = p1.to_array(); - its_ring_lines[sti] = zeno::vec2i{sti * 2 + 0,sti * 2 + 1}; - }); - set_output("st_ring_vis",std::move(st_ring_vis)); - - auto st_facet_rest_vis = std::make_shared(); - auto& st_rest_verts = st_facet_rest_vis->verts; - auto& st_rest_tris = st_facet_rest_vis->tris; - st_rest_verts.resize(self_intersect_buffer.size() * 6); - st_rest_tris.resize(self_intersect_buffer.size() * 2); - ompPol(zs::range(nm_insts),[ - &st_rest_verts,&st_rest_tris,self_intersect_buffer = proxy({},self_intersect_buffer)] (int sti) mutable { - st_rest_verts[sti * 6 + 0] = self_intersect_buffer.pack(dim_c<3>,"A0",sti).to_array(); - st_rest_verts[sti * 6 + 1] = self_intersect_buffer.pack(dim_c<3>,"A1",sti).to_array(); - st_rest_verts[sti * 6 + 2] = self_intersect_buffer.pack(dim_c<3>,"A2",sti).to_array(); - st_rest_verts[sti * 6 + 3] = self_intersect_buffer.pack(dim_c<3>,"B0",sti).to_array(); - st_rest_verts[sti * 6 + 4] = self_intersect_buffer.pack(dim_c<3>,"B1",sti).to_array(); - st_rest_verts[sti * 6 + 5] = self_intersect_buffer.pack(dim_c<3>,"B2",sti).to_array(); - - st_rest_tris[sti * 2 + 0] = zeno::vec3i(sti * 6 + 0,sti * 6 + 1,sti * 6 + 2); - st_rest_tris[sti * 2 + 1] = zeno::vec3i(sti * 6 + 3,sti * 6 + 4,sti * 6 + 5); - }); - set_output("st_facet_rest_vis",std::move(st_facet_rest_vis)); - - dtiles_t st_pair_buffer{tris.get_allocator(),{ - {"x0",3}, - {"x1",3} - },(std::size_t)nm_insts}; - cudaPol(zs::range(nm_insts),[ - inst_buffer_info = proxy({},inst_buffer_info), - // instBuffer = proxy(instBuffer), - st_pair_buffer = proxy({},st_pair_buffer), - verts = proxy({},verts_buffer), - tris = proxy({},tri_buffer)] ZS_LAMBDA(int sti) mutable { - auto tpair = inst_buffer_info.pack(dim_c<2>,"pair",sti,int_c); - auto ta = tpair[0]; - auto tb = tpair[1]; - // auto ta = instBuffer[sti][0]; - // auto tb = instBuffer[sti][1]; - - - auto triA = tris.pack(dim_c<3>,"inds",ta,int_c); - auto triB = tris.pack(dim_c<3>,"inds",tb,int_c); - - auto x0 = vec3::zeros(); - auto x1 = vec3::zeros(); + // dtiles_t self_intersect_buffer{tris.get_allocator(),{ + // {"a0",3},{"A0",3}, + // {"a1",3},{"A1",3}, + // {"a2",3},{"A2",3}, + // {"b0",3},{"B0",3}, + // {"b1",3},{"B1",3}, + // {"b2",3},{"B2",3}, + // // {"p0",3},{"p1",3} + // },(size_t)nm_insts}; + // cudaPol(zs::range(nm_insts),[ + // // instBuffer = proxy(instBuffer), + // inst_buffer_info = proxy({},inst_buffer_info), + // verts_buffer = proxy({},verts_buffer), + // self_intersect_buffer = proxy({},self_intersect_buffer), + // tri_buffer = proxy({},tri_buffer)] ZS_LAMBDA(int sti) mutable { + // auto tpair = inst_buffer_info.pack(dim_c<2>,"pair",sti,int_c); + // auto ta = tpair[0]; + // auto tb = tpair[1]; + + // // auto ints_p = inst_buffer_info.pack(dim_c<6>,"int_points",sti); + // // self_intersect_buffer.tuple(dim_c<3>,"p0",sti) = zs::vec{ints_p[0],ints_p[1],ints_p[2]}; + // // self_intersect_buffer.tuple(dim_c<3>,"p1",sti) = zs::vec{ints_p[3],ints_p[4],ints_p[5]}; + // // auto ta = instBuffer[sti][0]; + // // auto tb = instBuffer[sti][1]; + + // auto triA = tri_buffer.pack(dim_c<3>,"inds",ta,int_c); + // auto triB = tri_buffer.pack(dim_c<3>,"inds",tb,int_c); + // self_intersect_buffer.tuple(dim_c<3>,"a0",sti) = verts_buffer.pack(dim_c<3>,"x",triA[0]); + // self_intersect_buffer.tuple(dim_c<3>,"a1",sti) = verts_buffer.pack(dim_c<3>,"x",triA[1]); + // self_intersect_buffer.tuple(dim_c<3>,"a2",sti) = verts_buffer.pack(dim_c<3>,"x",triA[2]); + + // self_intersect_buffer.tuple(dim_c<3>,"b0",sti) = verts_buffer.pack(dim_c<3>,"x",triB[0]); + // self_intersect_buffer.tuple(dim_c<3>,"b1",sti) = verts_buffer.pack(dim_c<3>,"x",triB[1]); + // self_intersect_buffer.tuple(dim_c<3>,"b2",sti) = verts_buffer.pack(dim_c<3>,"x",triB[2]); + + // self_intersect_buffer.tuple(dim_c<3>,"A0",sti) = verts_buffer.pack(dim_c<3>,"x",triA[0]); + // self_intersect_buffer.tuple(dim_c<3>,"A1",sti) = verts_buffer.pack(dim_c<3>,"x",triA[1]); + // self_intersect_buffer.tuple(dim_c<3>,"A2",sti) = verts_buffer.pack(dim_c<3>,"x",triA[2]); + + // self_intersect_buffer.tuple(dim_c<3>,"B0",sti) = verts_buffer.pack(dim_c<3>,"x",triB[0]); + // self_intersect_buffer.tuple(dim_c<3>,"B1",sti) = verts_buffer.pack(dim_c<3>,"x",triB[1]); + // self_intersect_buffer.tuple(dim_c<3>,"B2",sti) = verts_buffer.pack(dim_c<3>,"x",triB[2]); + // }); - for(int i = 0;i != 3;++i) { - x0 += verts.pack(dim_c<3>,"x",triA[i]) / (T)3.0; - x1 += verts.pack(dim_c<3>,"x",triB[i]) / (T)3.0; - } + // self_intersect_buffer = self_intersect_buffer.clone({zs::memsrc_e::host}); + + // auto st_fact_vis = std::make_shared(); + // auto& st_verts = st_fact_vis->verts; + // auto& st_tris = st_fact_vis->tris; + // st_verts.resize(self_intersect_buffer.size() * 6); + // st_tris.resize(self_intersect_buffer.size() * 2); + + // ompPol(zs::range(nm_insts),[ + // &st_verts,&st_tris,self_intersect_buffer = proxy({},self_intersect_buffer)] (int sti) mutable { + // st_verts[sti * 6 + 0] = self_intersect_buffer.pack(dim_c<3>,"a0",sti).to_array(); + // st_verts[sti * 6 + 1] = self_intersect_buffer.pack(dim_c<3>,"a1",sti).to_array(); + // st_verts[sti * 6 + 2] = self_intersect_buffer.pack(dim_c<3>,"a2",sti).to_array(); + // st_verts[sti * 6 + 3] = self_intersect_buffer.pack(dim_c<3>,"b0",sti).to_array(); + // st_verts[sti * 6 + 4] = self_intersect_buffer.pack(dim_c<3>,"b1",sti).to_array(); + // st_verts[sti * 6 + 5] = self_intersect_buffer.pack(dim_c<3>,"b2",sti).to_array(); + + // st_tris[sti * 2 + 0] = zeno::vec3i(sti * 6 + 0,sti * 6 + 1,sti * 6 + 2); + // st_tris[sti * 2 + 1] = zeno::vec3i(sti * 6 + 3,sti * 6 + 4,sti * 6 + 5); + // }); + + // // std::cout << "nm_insts : " << nm_insts << std::endl; + // set_output("st_facet_vis",std::move(st_fact_vis)); + + // auto st_ring_vis = std::make_shared(); + // auto& its_ring_verts = st_ring_vis->verts; + // auto& its_ring_lines = st_ring_vis->lines; + // its_ring_verts.resize(nm_insts * 2); + // its_ring_lines.resize(nm_insts); + // ompPol(zs::range(nm_insts),[ + // &its_ring_verts,&its_ring_lines,self_intersect_buffer = proxy({},self_intersect_buffer)] (int sti) mutable { + // auto p0 = self_intersect_buffer.pack(dim_c<3>,"p0",sti); + // auto p1 = self_intersect_buffer.pack(dim_c<3>,"p1",sti); + // its_ring_verts[sti * 2 + 0] = p0.to_array(); + // its_ring_verts[sti * 2 + 1] = p1.to_array(); + // its_ring_lines[sti] = zeno::vec2i{sti * 2 + 0,sti * 2 + 1}; + // }); - st_pair_buffer.tuple(dim_c<3>,"x0",sti) = x0.to_array(); - st_pair_buffer.tuple(dim_c<3>,"x1",sti) = x1.to_array(); - }); + // set_output("st_ring_vis",std::move(st_ring_vis)); + + // auto st_facet_rest_vis = std::make_shared(); + // auto& st_rest_verts = st_facet_rest_vis->verts; + // auto& st_rest_tris = st_facet_rest_vis->tris; + // st_rest_verts.resize(self_intersect_buffer.size() * 6); + // st_rest_tris.resize(self_intersect_buffer.size() * 2); + // ompPol(zs::range(nm_insts),[ + // &st_rest_verts,&st_rest_tris,self_intersect_buffer = proxy({},self_intersect_buffer)] (int sti) mutable { + // st_rest_verts[sti * 6 + 0] = self_intersect_buffer.pack(dim_c<3>,"A0",sti).to_array(); + // st_rest_verts[sti * 6 + 1] = self_intersect_buffer.pack(dim_c<3>,"A1",sti).to_array(); + // st_rest_verts[sti * 6 + 2] = self_intersect_buffer.pack(dim_c<3>,"A2",sti).to_array(); + // st_rest_verts[sti * 6 + 3] = self_intersect_buffer.pack(dim_c<3>,"B0",sti).to_array(); + // st_rest_verts[sti * 6 + 4] = self_intersect_buffer.pack(dim_c<3>,"B1",sti).to_array(); + // st_rest_verts[sti * 6 + 5] = self_intersect_buffer.pack(dim_c<3>,"B2",sti).to_array(); + + // st_rest_tris[sti * 2 + 0] = zeno::vec3i(sti * 6 + 0,sti * 6 + 1,sti * 6 + 2); + // st_rest_tris[sti * 2 + 1] = zeno::vec3i(sti * 6 + 3,sti * 6 + 4,sti * 6 + 5); + // }); + // set_output("st_facet_rest_vis",std::move(st_facet_rest_vis)); + + // dtiles_t st_pair_buffer{tris.get_allocator(),{ + // {"x0",3}, + // {"x1",3} + // },(std::size_t)nm_insts}; + // cudaPol(zs::range(nm_insts),[ + // inst_buffer_info = proxy({},inst_buffer_info), + // // instBuffer = proxy(instBuffer), + // st_pair_buffer = proxy({},st_pair_buffer), + // verts = proxy({},verts_buffer), + // tris = proxy({},tri_buffer)] ZS_LAMBDA(int sti) mutable { + // auto tpair = inst_buffer_info.pack(dim_c<2>,"pair",sti,int_c); + // auto ta = tpair[0]; + // auto tb = tpair[1]; + // // auto ta = instBuffer[sti][0]; + // // auto tb = instBuffer[sti][1]; + + + // auto triA = tris.pack(dim_c<3>,"inds",ta,int_c); + // auto triB = tris.pack(dim_c<3>,"inds",tb,int_c); + + // auto x0 = vec3::zeros(); + // auto x1 = vec3::zeros(); + + // for(int i = 0;i != 3;++i) { + // x0 += verts.pack(dim_c<3>,"x",triA[i]) / (T)3.0; + // x1 += verts.pack(dim_c<3>,"x",triB[i]) / (T)3.0; + // } + + // st_pair_buffer.tuple(dim_c<3>,"x0",sti) = x0.to_array(); + // st_pair_buffer.tuple(dim_c<3>,"x1",sti) = x1.to_array(); + // }); - st_pair_buffer = st_pair_buffer.clone({zs::memsrc_e::host}); - auto st_pair_vis = std::make_shared(); - auto& st_pair_verts = st_pair_vis->verts; - auto& st_pair_lines = st_pair_vis->lines; - st_pair_verts.resize(st_pair_buffer.size() * 2); - st_pair_lines.resize(st_pair_buffer.size()); - - ompPol(zs::range(st_pair_buffer.size()),[ - st_pair_buffer = proxy({},st_pair_buffer), - &st_pair_verts,&st_pair_lines] (int spi) mutable { - auto x0 = st_pair_buffer.pack(dim_c<3>,"x0",spi); - auto x1 = st_pair_buffer.pack(dim_c<3>,"x1",spi); - st_pair_verts[spi * 2 + 0] = x0.to_array(); - st_pair_verts[spi * 2 + 1] = x1.to_array(); - st_pair_lines[spi] = zeno::vec2i{spi * 2 + 0,spi * 2 + 1}; - }); + // st_pair_buffer = st_pair_buffer.clone({zs::memsrc_e::host}); + // auto st_pair_vis = std::make_shared(); + // auto& st_pair_verts = st_pair_vis->verts; + // auto& st_pair_lines = st_pair_vis->lines; + // st_pair_verts.resize(st_pair_buffer.size() * 2); + // st_pair_lines.resize(st_pair_buffer.size()); + + // ompPol(zs::range(st_pair_buffer.size()),[ + // st_pair_buffer = proxy({},st_pair_buffer), + // &st_pair_verts,&st_pair_lines] (int spi) mutable { + // auto x0 = st_pair_buffer.pack(dim_c<3>,"x0",spi); + // auto x1 = st_pair_buffer.pack(dim_c<3>,"x1",spi); + // st_pair_verts[spi * 2 + 0] = x0.to_array(); + // st_pair_verts[spi * 2 + 1] = x1.to_array(); + // st_pair_lines[spi] = zeno::vec2i{spi * 2 + 0,spi * 2 + 1}; + // }); - set_output("st_pair_vis",std::move(st_pair_vis)); + // set_output("st_pair_vis",std::move(st_pair_vis)); // dtiles_t corner_verts_buffer{gia_res.get_allocator()} } @@ -2558,9 +2571,9 @@ struct VisualizeSelfIntersections : zeno::INode { ZENDEFNODE(VisualizeSelfIntersections, {{"zsparticles"}, { - "st_ring_vis", - "st_facet_rest_vis", - "st_facet_vis", + // "st_ring_vis", + // "st_facet_rest_vis", + // "st_facet_vis", "flood_region", // "be_vis" // "wire_fr_vis" @@ -2947,7 +2960,7 @@ struct VisualizeCollision2 : zeno::INode { const auto& tris = (*zsparticles)[ZenoParticles::s_surfTriTag]; const auto& points = (*zsparticles)[ZenoParticles::s_surfVertTag]; const auto& tets = zsparticles->getQuadraturePoints(); - const auto& halfedges = (*zsparticles)[ZenoParticles::s_surfHalfEdgeTag]; + auto& halfedges = (*zsparticles)[ZenoParticles::s_surfHalfEdgeTag]; const auto& halffacets = (*zsparticles)[ZenoParticles::s_tetHalfFacetTag]; zs::bht csPT{verts.get_allocator(),10000}; diff --git a/projects/CuLagrange/geometry/SolveLaplacian.cu b/projects/CuLagrange/geometry/SolveLaplacian.cu index 9125732a75..be790a2b54 100644 --- a/projects/CuLagrange/geometry/SolveLaplacian.cu +++ b/projects/CuLagrange/geometry/SolveLaplacian.cu @@ -13,7 +13,7 @@ #include #include -#include "kernel/laplace_matrix.hpp" +#include "kernel/differential_geometry.hpp" #include "linear_system/mfcg.hpp" namespace zeno { diff --git a/projects/CuLagrange/geometry/SurfaceBinder.cu b/projects/CuLagrange/geometry/SurfaceBinder.cu index 48c5485e99..66ec6f4f8b 100644 --- a/projects/CuLagrange/geometry/SurfaceBinder.cu +++ b/projects/CuLagrange/geometry/SurfaceBinder.cu @@ -18,6 +18,8 @@ #include "kernel/tiled_vector_ops.hpp" #include "kernel/geo_math.hpp" +#include "kernel/topology.hpp" +#include "kernel/intersection.hpp" #include "zensim/container/Bvh.hpp" #include "zensim/container/Bvs.hpp" @@ -27,6 +29,7 @@ #include "kernel/compute_characteristic_length.hpp" + namespace zeno { struct ZSSurfaceBind : zeno::INode { @@ -95,6 +98,7 @@ struct ZSSurfaceBind : zeno::INode { auto binder_tag = get_param("binder_tag"); auto thickness_tag = get_param("thickness_tag"); auto inversion_tag = get_param("inversion_tag"); + auto binder_bary_tag = get_param("binder_bary_tag"); auto align_direction = get_param("align_direction"); @@ -102,12 +106,14 @@ struct ZSSurfaceBind : zeno::INode { {binder_tag,max_nm_binders}, {thickness_tag,max_nm_binders}, {inversion_tag,max_nm_binders}, + {binder_bary_tag,max_nm_binders * 3}, {"nm_binders",1} }); TILEVEC_OPS::fill(cudaPol,tris,binder_tag,zs::reinterpret_bits((int)-1)); TILEVEC_OPS::fill(cudaPol,tris,thickness_tag,(T)0.0); TILEVEC_OPS::fill(cudaPol,tris,inversion_tag,(T)-1.0); TILEVEC_OPS::fill(cudaPol,tris,"nm_binders",reinterpret_bits((int)0)); + TILEVEC_OPS::fill(cudaPol,tris,binder_bary_tag,(T)0.0); auto kpBvh = bvh_t{}; auto bvs = retrieve_bounding_volumes(cudaPol,kverts,kverts,wrapv<1>{},(T)0.0,"x"); @@ -154,6 +160,7 @@ struct ZSSurfaceBind : zeno::INode { binder_tag = zs::SmallString(binder_tag), thickness_tag = zs::SmallString(thickness_tag), inversion_tag = zs::SmallString(inversion_tag), + binder_bary_tag = zs::SmallString(binder_bary_tag), max_nm_binders = max_nm_binders, align_angle_cosin = align_angle_cosin, kinInCollisionEps = kinInCollisionEps, @@ -192,15 +199,18 @@ struct ZSSurfaceBind : zeno::INode { auto t2 = verts.pack(dim_c<3>,"x",tri[2]); T barySum = (T)0.0; - T distance = LSL_GEO::pointTriangleDistance(t0,t1,t2,kp,barySum); + vec3 project_bary{}; + vec3 bary{}; + T distance = LSL_GEO::pointTriangleDistance(t0,t1,t2,kp,bary,project_bary); + barySum = fabs(bary[0]) + fabs(bary[0]) + fabs(bary[0]); auto nrm = tris.pack(dim_c<3>,"nrm",ti); auto knrm = kverts.pack(dim_c<3>,"nrm",kpi); // alignment - if(nrm.dot(knrm) < (T)align_angle_cosin && align_direction) + if(nrm.dot(knrm) < (T)align_angle_cosin && align_direction && align_angle_cosin > 0) return; - if(nrm.dot(knrm) > (T)-align_angle_cosin && !align_direction) + if(nrm.dot(knrm) > (T)align_angle_cosin && align_direction && align_angle_cosin < 0) return; auto dist = seg.dot(nrm); @@ -241,8 +251,10 @@ struct ZSSurfaceBind : zeno::INode { nm_tag++; tris(binder_tag,nm_binders,ti) = reinterpret_bits(kpi); - tris(thickness_tag,nm_binders,ti) = distance; + tris(thickness_tag,nm_binders,ti) = distance / (T)5.0; tris(inversion_tag,nm_binders,ti) = dist < 0 ? (T)1.0 : (T)-1.0; + for(int i = 0;i != 3;++i) + tris(binder_bary_tag,nm_binders * 3 + i,ti) = project_bary[i]; nm_binders++; kb_verts(markTag,kpi) = (T)1.0; }; @@ -273,6 +285,7 @@ ZENDEFNODE(ZSSurfaceBind, {{"zssurf","kboundary", {"string","thickness_tag","thicknessTag"}, {"string","inversion_tag","inversionTag"}, {"string","mark_tag","markTag"}, + {"string","binder_bary_tag","binderBaryTag"}, {"bool","align_direction","1"}, }, {"ZSGeometry"}}); @@ -766,9 +779,12 @@ struct ZSSurfaceClosestPoints : zeno::INode { virtual void apply() override { using namespace zs; constexpr auto space = execspace_e::cuda; + constexpr auto exec_tag = wrapv{}; auto cudaPol = cuda_exec(); auto zsparticles = get_input("zsparticles"); + + auto kboundary = get_input("kboundary"); auto& verts = zsparticles->getParticles(); @@ -776,250 +792,363 @@ struct ZSSurfaceClosestPoints : zeno::INode { (*zsparticles)[ZenoParticles::s_surfTriTag] : zsparticles->getQuadraturePoints(); + auto& halfedges = (*zsparticles)[ZenoParticles::s_surfHalfEdgeTag]; + const auto& points = (*zsparticles)[ZenoParticles::s_surfVertTag]; + // every vertex can only bind to one triangle auto& kverts = kboundary->getParticles(); auto& ktris = kboundary->getQuadraturePoints(); const auto& khalfedges = (*kboundary)[ZenoParticles::s_surfHalfEdgeTag]; // auto max_nm_binder = get_input2("nm_max_binders"); - auto project_pos_tag = get_param("project_pos_tag"); - auto project_nrm_tag = get_param("project_nrm_tag"); auto project_idx_tag = get_param("project_idx_tag"); - auto project_bary_tag = get_param("project_bary_tag"); auto align_direction = get_param("align_direction"); + auto xtag = get_param("xtag"); + auto kxtag = get_param("kxtag"); - // for each vertex of zsparticles, find a potential closest point on kboundary surface - // add a plane constraint - if(!verts.hasProperty(project_pos_tag) || !verts.hasProperty(project_nrm_tag) || !verts.hasProperty(project_idx_tag) || !verts.hasProperty(project_bary_tag)) { - verts.append_channels(cudaPol,{ - {project_pos_tag,3},// the idx of triangle of kboudary - {project_nrm_tag,3}, - {project_bary_tag,3}, - {project_idx_tag,1} - }); - } - + if(!verts.hasProperty(project_idx_tag)) + verts.append_channels(cudaPol,{{project_idx_tag,1}}); + if(!kverts.hasProperty(project_idx_tag)) + kverts.append_channels(cudaPol,{{project_idx_tag,1}}); TILEVEC_OPS::fill(cudaPol,verts,project_idx_tag,zs::reinterpret_bits((int)-1)); - - auto ktBvh = bvh_t{}; - auto bvs = retrieve_bounding_volumes(cudaPol,kverts,ktris,wrapv<3>{},(T)0.0,"x"); - ktBvh.build(cudaPol,bvs); + TILEVEC_OPS::fill(cudaPol,kverts,project_idx_tag,zs::reinterpret_bits((int)-1)); - auto kinInCollisionEps = get_input2("kinInColEps"); - auto kinOutCollisionEps = get_input2("kinOutColEps"); - auto thickness = kinInCollisionEps + kinOutCollisionEps; + dtiles_t surf_verts_buffer{points.get_allocator(),{ + {"x",3}, + {"nrm",3}, + {"X",3}, + {"k_active",1} + },points.size()}; - if(!tris.hasProperty("nrm")) - tris.append_channels(cudaPol,{{"nrm",3}}); - cudaPol(zs::range(tris.size()), - [tris = proxy({},tris), - verts = proxy({},verts)] ZS_LAMBDA(int ti) { - auto tri = tris.template pack<3>("inds",ti).reinterpret_bits(int_c); - auto v0 = verts.template pack<3>("x",tri[0]); - auto v1 = verts.template pack<3>("x",tri[1]); - auto v2 = verts.template pack<3>("x",tri[2]); + dtiles_t surf_tris_buffer{tris.get_allocator(),{ + {"nrm",3}, + {"inds",3}, + {"he_inds",1} + },tris.size()}; - auto e01 = v1 - v0; - auto e02 = v2 - v0; + dtiles_t kverts_buffer{kverts.get_allocator(),{ + {"x",3}, + {"nrm",3}, + {"X",3}, + {"k_active",1} + },kverts.size()}; - auto nrm = e01.cross(e02); - auto nrm_norm = nrm.norm(); - if(nrm_norm < 1e-8) - nrm = zs::vec::zeros(); - else - nrm = nrm / nrm_norm; + dtiles_t ktris_buffer{ktris.get_allocator(),{ + {"nrm",3}, + {"inds",3}, + {"he_inds",1}, + },ktris.size()}; - tris.tuple(dim_c<3>,"nrm",ti) = nrm; + topological_sample(cudaPol,points,verts,xtag,surf_verts_buffer,"x"); + if(verts.hasProperty("X")) + topological_sample(cudaPol,points,verts,"X",surf_verts_buffer,"X"); + else + topological_sample(cudaPol,points,verts,xtag,surf_verts_buffer,"X"); + if(verts.hasProperty("k_active")) + topological_sample(cudaPol,points,verts,"k_active",surf_verts_buffer,"k_active"); + else + TILEVEC_OPS::fill(cudaPol,surf_verts_buffer,"k_active",(T)1.0); + TILEVEC_OPS::copy(cudaPol,tris,"inds",surf_tris_buffer,"inds"); + TILEVEC_OPS::copy(cudaPol,tris,"he_inds",surf_tris_buffer,"he_inds"); + reorder_topology(cudaPol,points,surf_tris_buffer); + + TILEVEC_OPS::fill(cudaPol,surf_verts_buffer,"nrm",(T)0.0); + cudaPol(zs::range(surf_tris_buffer.size()),[exec_tag, + surf_verts_buffer = proxy({},surf_verts_buffer), + surf_tris_buffer = proxy({},surf_tris_buffer)] ZS_LAMBDA(int ti) mutable { + auto tri = surf_tris_buffer.pack(dim_c<3>,"inds",ti,int_c); + zs::vec tV[3] = {}; + for(int i = 0;i != 3;++i) + tV[i] = surf_verts_buffer.pack(dim_c<3>,"x",tri[i]); + auto tnrm = LSL_GEO::facet_normal(tV[0],tV[1],tV[2]); + surf_tris_buffer.tuple(dim_c<3>,"nrm",ti) = tnrm; + for(int i = 0;i != 3;++i) + for(int d = 0;d != 3;++d) + atomic_add(exec_tag,&surf_verts_buffer("nrm",d,tri[i]),tnrm[d]); }); - if(!verts.hasProperty("nrm")) - verts.append_channels(cudaPol,{{"nrm",3}}); - TILEVEC_OPS::fill(cudaPol,verts,"nrm",(T)0.0); - cudaPol(zs::range(tris.size()),[ - tris = proxy({},tris), - verts = proxy({},verts)] ZS_LAMBDA(int ti) mutable { - auto tri = tris.pack(dim_c<3>,"inds",ti).reinterpret_bits(int_c); - auto nrm = tris.pack(dim_c<3>,"nrm",ti); - for(int i = 0;i != 3;++i) - for(int d = 0;d != 3;++d) - atomic_add(exec_cuda,&verts("nrm",d,tri[i]),nrm[d]/*/(T)kverts("valence",ktri[i])*/); - }); - cudaPol(zs::range(verts.size()),[verts = proxy({},verts)] ZS_LAMBDA(int vi) mutable { - auto nrm = verts.pack(dim_c<3>,"nrm",vi); - nrm = nrm / (nrm.norm() + (T)1e-6); - verts.tuple(dim_c<3>,"nrm",vi) = nrm; - }); + TILEVEC_OPS::normalized_channel<3>(cudaPol,surf_verts_buffer,"nrm"); + + TILEVEC_OPS::copy(cudaPol,kverts,kxtag,kverts_buffer,"x"); + TILEVEC_OPS::copy(cudaPol,ktris,"inds",ktris_buffer,"inds"); + TILEVEC_OPS::copy(cudaPol,ktris,"he_inds",ktris_buffer,"he_inds"); + if(kverts.hasProperty("X")) + TILEVEC_OPS::copy(cudaPol,kverts,"X",kverts_buffer,"X"); + else + TILEVEC_OPS::copy(cudaPol,kverts,kxtag,kverts_buffer,"X"); + if(kverts.hasProperty("k_active")) + TILEVEC_OPS::copy(cudaPol,kverts,"k_active",kverts_buffer,"k_active"); + else + TILEVEC_OPS::fill(cudaPol,kverts_buffer,"k_active",(T)1.0); + + TILEVEC_OPS::fill(cudaPol,kverts_buffer,"nrm",(T)0.0); + cudaPol(zs::range(ktris_buffer.size()),[exec_tag, + kverts_buffer = proxy({},kverts_buffer), + ktris_buffer = proxy({},ktris_buffer)] ZS_LAMBDA(int kti) mutable { + auto ktri = ktris_buffer.pack(dim_c<3>,"inds",kti,int_c); + zs::vec ktV[3] = {}; + for(int i = 0;i != 3;++i) + ktV[i] = kverts_buffer.pack(dim_c<3>,"x",ktri[i]); + auto ktnrm = LSL_GEO::facet_normal(ktV[0],ktV[1],ktV[2]); + ktris_buffer.tuple(dim_c<3>,"nrm",kti) = ktnrm; + for(int i = 0;i != 3;++i) + for(int d = 0;d != 3;++d) + atomic_add(exec_tag,&kverts_buffer("nrm",d,ktri[i]),ktnrm[d]); + }); + TILEVEC_OPS::normalized_channel<3>(cudaPol,kverts_buffer,"nrm"); + + zs::Vector gia_res{surf_verts_buffer.get_allocator(),0}; + zs::Vector tris_gia_res{surf_tris_buffer.get_allocator(),0}; + + auto ring_mask_width = do_global_intersection_analysis_with_connected_manifolds(cudaPol, + surf_verts_buffer,"x",surf_tris_buffer,halfedges,false, + kverts_buffer,"x",ktris_buffer,khalfedges,true, + gia_res,tris_gia_res); + // for each vertex of zsparticles, find a potential closest point on kboundary surface + // add a plane constraint + + auto ktBvh = bvh_t{}; + auto kt_bvs = retrieve_bounding_volumes(cudaPol,kverts_buffer,ktris_buffer,wrapv<3>{},(T)0.0,"x"); + ktBvh.build(cudaPol,kt_bvs); + // auto cnorm = compute_average_edge_length(cudaPol,verts,"x",tris); + // cnorm *= 2; + auto tBvh = bvh_t{}; + auto tbvs = retrieve_bounding_volumes(cudaPol,surf_verts_buffer,surf_tris_buffer,wrapv<3>{},(T)0.0,"x"); + tBvh.build(cudaPol,tbvs); + + auto kinInCollisionEps = get_input2("kinInColEps"); + auto kinOutCollisionEps = get_input2("kinOutColEps"); + auto thickness = kinInCollisionEps + kinOutCollisionEps; auto align_angle_cosin = get_input2("align_angle_cosin"); + auto avg_norm = compute_average_edge_length(cudaPol,verts,xtag,tris); + auto avg_knorm = compute_average_edge_length(cudaPol,kverts,kxtag,ktris); + auto max_avg_norm = avg_norm > avg_knorm ? avg_norm : avg_knorm; + auto fail_distance = max_avg_norm * (T)5; - cudaPol(zs::range(verts.size()),[ + + cudaPol(zs::range(surf_verts_buffer.size()),[ verts = proxy({},verts), + surf_verts_buffer = proxy({},surf_verts_buffer), ktBvh = proxy(ktBvh), - kverts = proxy({},kverts), - ktris = proxy({},ktris), + fail_distance = fail_distance, + kverts_buffer = proxy({},kverts_buffer), + ktris_buffer = proxy({},ktris_buffer), + kt_offset = tris.size(), + kv_offset = points.size(), + points = proxy({},points), khalfedges = proxy({},khalfedges), align_angle_cosin = align_angle_cosin, - project_pos_tag = zs::SmallString(project_pos_tag), - project_nrm_tag = zs::SmallString(project_nrm_tag), project_idx_tag = zs::SmallString(project_idx_tag), - project_bary_tag = zs::SmallString(project_bary_tag), kinInCollisionEps = kinInCollisionEps, + gia_res = proxy(gia_res), + tris_gia_res = proxy(tris_gia_res), + ring_mask_width = ring_mask_width, align_direction = align_direction, kinOutCollisionEps = kinOutCollisionEps, - thickness = thickness] ZS_LAMBDA(int vi) mutable { - if(verts.hasProperty("is_surf")) - if(verts("is_surf",vi) < (T)0.5) - return; - if(verts.hasProperty("k_active"))// static unbind - if(verts("k_active",vi) < (T)0.5) - return; - // if(verts.hasProperty("k_fail"))// dynamic unbind - // if(verts("k_fail",vi) > (T)0.5) - // return; - auto p = verts.pack(dim_c<3>,"x",vi); + thickness = thickness] ZS_LAMBDA(int pi) mutable { + auto vi = zs::reinterpret_bits(points("inds",pi)); + + auto p = surf_verts_buffer.pack(dim_c<3>,"x",pi); + auto Xp = surf_verts_buffer.pack(dim_c<3>,"X",pi); + auto bv = bv_t{get_bounding_box(p - thickness,p + thickness)}; - auto min_dist = std::numeric_limits::infinity(); + auto min_dist = std::numeric_limits::max(); int min_tri_idx = -1; auto min_bary = vec3::zeros(); auto min_collision_eps = (T)0; - auto pnrm = verts.pack(dim_c<3>,"nrm",vi); + auto pnrm = surf_verts_buffer.pack(dim_c<3>,"nrm",pi); + + auto v_k_active = surf_verts_buffer("k_active",pi); + if(v_k_active < (T)0.5) + return; auto process_potential_closest_tris = [&](int kti) { - auto ktri = ktris.pack(dim_c<3>,"inds",kti).reinterpret_bits(int_c); - if(kverts.hasProperty("k_active")) - for(int i = 0;i != 3;++i) - if(kverts("k_active",ktri[i]) < (T)0.5) - return; - auto kv0 = kverts.pack(dim_c<3>,"x",ktri[0]); - auto kv1 = kverts.pack(dim_c<3>,"x",ktri[1]); - auto kv2 = kverts.pack(dim_c<3>,"x",ktri[2]); + auto ktri = ktris_buffer.pack(dim_c<3>,"inds",kti,int_c); + for(int i = 0;i != 3;++i) + if(kverts_buffer("k_active",ktri[i]) < (T)0.5) + return; - vec3 bary{}; - vec3 project_bary{}; - T distance = LSL_GEO::pointTriangleDistance(kv0,kv1,kv2,p,bary,project_bary); - if(distance > min_dist) + vec3 kvs[3] = {}; + for(int i = 0;i != 3;++i) + kvs[i] = kverts_buffer.pack(dim_c<3>,"x",ktri[i]); + + vec3 kXs[3] = {}; + for(int i = 0;i != 3;++i) + kXs[i] = kverts_buffer.pack(dim_c<3>,"X",ktri[i]); + + auto cX = vec3::zeros(); + for(int i = 0;i != 3;++i) + cX += kXs[i] / (T)3.0; + + auto test_fail_distance = (cX - Xp).norm(); + if(test_fail_distance > fail_distance) return; + vec3 bary{}; + T distance = LSL_GEO::pointTriangleDistance(kvs[0],kvs[1],kvs[2],p,bary); - auto seg = p - kv0; - auto knrm = ktris.pack(dim_c<3>,"nrm",kti); + auto seg = p - kvs[0]; + auto knrm = ktris_buffer.pack(dim_c<3>,"nrm",kti); auto dist = seg.dot(knrm); auto collisionEps = dist > 0 ? kinOutCollisionEps : kinInCollisionEps; if(distance > collisionEps) return; - + + // distance = dist > 0 ? distance : -distance; + if(distance > min_dist) + return; auto align = knrm.dot(pnrm); // TO RECOVER - if(align < align_angle_cosin && align_direction && dist < 0){ - // printf("failed of %d %d due to aligh = %f\n",vi,kti,(float)align); + if(align < align_angle_cosin && align_direction && dist < 0) return; - } - if(align > -align_angle_cosin && !align_direction && dist < 0){ - // printf("failed of %d %d due to aligh = %f\n",vi,kti,(float)align); + if(align > -align_angle_cosin && !align_direction && dist < 0) return; - } auto bary_sum = fabs(bary[0]) + fabs(bary[1]) + fabs(bary[2]); - if(bary_sum > 1.1) - return; - else { - auto khi = zs::reinterpret_bits(ktris("he_inds",kti)); + if(bary_sum > 1.1) { + auto khi = zs::reinterpret_bits(ktris_buffer("he_inds",kti)); for(int i = 0;i != 3;++i){ auto rkhi = zs::reinterpret_bits(khalfedges("opposite_he",khi)); - auto nti = zs::reinterpret_bits(khalfedges("to_face",rkhi)); - // auto nti = ntris[i]; auto edge_normal = vec3::zeros(); - if(nti < 0){ + if(rkhi < 0) { edge_normal = knrm; }else { - edge_normal = ktris.pack(dim_c<3>,"nrm",nti) + knrm; + auto nkti = zs::reinterpret_bits(khalfedges("to_face",rkhi)); + edge_normal = ktris_buffer.pack(dim_c<3>,"nrm",nkti) + knrm; edge_normal = edge_normal/(edge_normal.norm() + (T)1e-6); } - auto ke0 = kverts.pack(dim_c<3>,"x",ktri[(i + 0) % 3]); - auto ke1 = kverts.pack(dim_c<3>,"x",ktri[(i + 1) % 3]); + + auto ke0 = kverts_buffer.pack(dim_c<3>,"x",ktri[(i + 0) % 3]); + auto ke1 = kverts_buffer.pack(dim_c<3>,"x",ktri[(i + 1) % 3]); auto ke10 = ke1 - ke0; auto bisector_normal = edge_normal.cross(ke10).normalized(); - seg = p - kverts.pack(dim_c<3>,"x",ktri[(i + 0) % 3]); + seg = p - kverts_buffer.pack(dim_c<3>,"x",ktri[(i + 0) % 3]); if(bisector_normal.dot(seg) < 0) return; - khi = zs::reinterpret_bits(khalfedges("next_he",khi)); } } + int RING_MASK = 0; + for(int i = 0;i != ring_mask_width;++i) { + auto MASK = gia_res[pi * ring_mask_width + i] & tris_gia_res[(kt_offset + kti) * ring_mask_width + i]; + RING_MASK |= MASK; + } - + if(RING_MASK > 0 && dist > 0) + return; + if(RING_MASK == 0 && dist < 0) + return; min_dist = distance; min_tri_idx = kti; - min_bary = project_bary; - min_collision_eps = collisionEps; }; ktBvh.iter_neighbors(bv,process_potential_closest_tris); + verts(project_idx_tag,vi) = reinterpret_bits(min_tri_idx); + }); - if(min_tri_idx == -1) - return; - auto closest_ktri = ktris.pack(dim_c<3>,"inds",min_tri_idx).reinterpret_bits(int_c); - if(kverts.hasProperty("k_fail")) + cudaPol(zs::range(kverts_buffer.size()),[ + surf_verts_buffer = proxy({},surf_verts_buffer), + surf_tris_buffer = proxy({},surf_tris_buffer), + halfedges = proxy({},halfedges), + kv_offset = points.size(), + gia_res = proxy(gia_res), + tris_gia_res = proxy(tris_gia_res), + ring_mask_width = ring_mask_width, + tBvh = proxy(tBvh), + kverts = proxy({},kverts), + kverts_buffer = proxy({},kverts_buffer), + align_angle_cosin = align_angle_cosin, + project_idx_tag = zs::SmallString(project_idx_tag), + kinInCollisionEps = kinInCollisionEps, + kinOutCollisionEps = kinOutCollisionEps, + align_direction = align_direction, + thickness = thickness] ZS_LAMBDA(int kvi) mutable { + auto kp = kverts_buffer.pack(dim_c<3>,"x",kvi); + auto knrm = kverts_buffer.pack(dim_c<3>,"nrm",kvi); + auto min_dist = std::numeric_limits::max(); + int min_tri_idx = -1; + + auto bv = bv_t{get_bounding_box(kp - thickness,kp + thickness)}; + + auto process_potential_closest_tris = [&](int ti) mutable { + auto tri = surf_tris_buffer.pack(dim_c<3>,"inds",ti,int_c); + vec3 tvs[3] = {}; for(int i = 0;i != 3;++i) - if(kverts("k_fail",closest_ktri[i]) > (T)0.5) - return; + tvs[i] = surf_verts_buffer.pack(dim_c<3>,"x",tri[i]); + vec3 bnrms[3] = {}; + auto tnrm = surf_tris_buffer.pack(dim_c<3>,"nrm",ti); + auto hi = zs::reinterpret_bits(surf_tris_buffer("he_inds",ti)); + for(int i = 0;i != 3;++i) { + auto edge_normal = tnrm; + auto rhi = zs::reinterpret_bits(halfedges("opposite_he",hi)); + if(rhi >= 0) { + auto nti = zs::reinterpret_bits(halfedges("to_face",rhi)); + edge_normal = tnrm + surf_tris_buffer.pack(dim_c<3>,"nrm",nti); + edge_normal = edge_normal / (edge_normal.norm() + (T)1e-6); + } - // auto ori_bary = min_bary; - - min_bary[0] = min_bary[0] < 0 ? (T)0 : min_bary[0]; - min_bary[1] = min_bary[1] < 0 ? (T)0 : min_bary[1]; - min_bary[2] = min_bary[2] < 0 ? (T)0 : min_bary[2]; - min_bary = min_bary/min_bary.sum(); - if(min_bary[0] < 0 || min_bary[1] < 0 || min_bary[2] < 0) - printf("invalid min_bary[%f %f %f]\n", - (float)min_bary[0], - (float)min_bary[1], - (float)min_bary[2]); - if((zs::abs(min_bary[0]) + zs::abs(min_bary[1]) + zs::abs(min_bary[2])) > 1.1) - printf("invalid min_bary[%f %f %f]\n", - (float)min_bary[0], - (float)min_bary[1], - (float)min_bary[2]); - - if((zs::abs(min_bary[0] + min_bary[1] + min_bary[2] - 1.0)) > 0.1) - printf("invalid min_bary[%f %f %f]\n", - (float)min_bary[0], - (float)min_bary[1], - (float)min_bary[2]); + auto e01 = tvs[(i + 1) % 3] - tvs[(i + 0) % 3]; + bnrms[i] = edge_normal.cross(e01).normalized(); + hi = zs::reinterpret_bits(halfedges("next_he",hi)); + } - auto project_kv = vec3::zeros(); - for(int i = 0;i != 3;++i) - project_kv += kverts.pack(dim_c<3>,"x",closest_ktri[i]) * min_bary[i]; - auto project_knrm = vec3::zeros(); - for(int i = 0;i != 3;++i) - project_knrm += kverts.pack(dim_c<3>,"nrm",closest_ktri[i]) * min_bary[i]; - project_knrm /= (project_knrm.norm() + 1e-6); + vec3 bary{}; + T distance = LSL_GEO::pointTriangleDistance(tvs[0],tvs[1],tvs[2],kp,bary); - // printf("find closest pairs : %d %d\n",vi,min_tri_idx); + auto seg = kp - tvs[0]; + auto dist = -seg.dot(tnrm); - // printf("vert[%d] = %f %f %f closest to ktri[%d] = %f %f %f bary = %f %f %f\n",vi, - // (float)p[0],(float)p[1],(float)p[2], - // min_tri_idx, - // (float)project_kv[0],(float)project_kv[1],(float)project_kv[2], - // (float)ori_bary[0],(float)ori_bary[1],(float)ori_bary[2] - // ); + auto collisionEps = dist > 0 ? kinOutCollisionEps : kinInCollisionEps; + if(distance > collisionEps) + return; + + // distance = dist > 0 ? distance : -distance; + if(distance > min_dist) + return; - verts.tuple(dim_c<3>,project_pos_tag,vi) = project_kv; + auto align = knrm.dot(tnrm); + // TO RECOVER + if(align < align_angle_cosin && align_direction && dist < 0){ + // printf("failed of %d %d due to aligh = %f\n",vi,kti,(float)align); + return; + } + if(align > -align_angle_cosin && !align_direction && dist < 0){ + // printf("failed of %d %d due to aligh = %f\n",vi,kti,(float)align); + return; + } - auto distance = (verts.pack(dim_c<3>,"x",vi) - project_kv).norm(); - if(distance > kinInCollisionEps) - printf("find invalid distance %f > %f : %f\n",(float)distance,(float)kinInCollisionEps,(float)min_collision_eps); + auto bary_sum = fabs(bary[0]) + fabs(bary[1]) + fabs(bary[2]); + if(bary_sum > 1.1) { + for(int i = 0;i != 3;++i){ + seg = kp - surf_verts_buffer.pack(dim_c<3>,"x",tri[(i + 0) % 3]); + if(bnrms[i].dot(seg) < 0) + return; + } + } - verts.tuple(dim_c<3>,project_nrm_tag,vi) = project_knrm; - verts.tuple(dim_c<3>,project_bary_tag,vi) = min_bary; - verts(project_idx_tag,vi) = reinterpret_bits(min_tri_idx); + int RING_MASK = 0; + for(int i = 0;i != ring_mask_width;++i) { + auto MASK = gia_res[(kvi + kv_offset) * ring_mask_width + i] & tris_gia_res[ti * ring_mask_width + i]; + RING_MASK |= MASK; + } + if(RING_MASK > 0 && dist > 0) + return; + if(RING_MASK == 0 && dist < 0) + return; + + min_dist = distance; + min_tri_idx = ti; + }; + tBvh.iter_neighbors(bv,process_potential_closest_tris); + kverts(project_idx_tag,kvi) = reinterpret_bits(min_tri_idx); }); set_output("zsparticles",zsparticles); @@ -1038,10 +1167,9 @@ ZENDEFNODE(ZSSurfaceClosestPoints, { {"zsparticles","kboundary"}, { {"bool","align_direction","1"}, - {"string","project_pos_tag","project_pos_tag"}, - {"string","project_nrm_tag","project_nrm_tag"}, {"string","project_idx_tag","project_idx_tag"}, - {"string","project_bary_tag","project_bary_tag"} + {"string","xtag","x"}, + {"string","kxtag","x"} }, {"ZSGeometry"}}); @@ -1415,15 +1543,16 @@ struct ZSSurfaceClosestTris : zeno::INode { auto hi = zs::reinterpret_bits(tris("he_inds",ti)); vec3 bnrms[3] = {}; for(int i = 0;i != 3;++i){ + auto edge_normal = tnrm; auto rhi = zs::reinterpret_bits(halfedges("opposite_he",hi)); - auto nti = zs::reinterpret_bits(halfedges("to_face",rhi)); - auto edge_normal = vec3::zeros(); - if(nti < 0) + if(rhi < 0) edge_normal = tnrm; else{ + auto nti = zs::reinterpret_bits(halfedges("to_face",rhi)); edge_normal = tnrm + tris.pack(dim_c<3>,"nrm",nti); edge_normal = edge_normal/(edge_normal.norm() + (T)1e-6); } + auto e01 = tvs[(i + 1) % 3] - tvs[(i + 0) % 3]; bnrms[i] = edge_normal.cross(e01).normalized(); hi = zs::reinterpret_bits(halfedges("next_he",hi)); @@ -1533,144 +1662,117 @@ struct VisualizeClosestTris : zeno::INode { // auto project_nrm_tag = get_param("project_nrm_tag"); // the id of the vertex on kboundary auto project_idx_tag = get_param("project_idx_tag"); - auto kinOutCollisionEps = get_input2("kin_out_collision_eps"); + // auto kinOutCollisionEps = get_input2("kin_out_collision_eps"); - dtiles_t verts_buffer{tris.get_allocator(),{ + dtiles_t verts_buffer{verts.get_allocator(),{ {"x",3}, - {"xp",3}, - {"nrm",3}, - {"inds",3}, - {"grad",9} - },tris.size()}; + {"xp",3} + // {"nrm",3}, + // {"inds",3}, + // {"grad",9} + },verts.size()}; - dtiles_t force_buffer{verts.get_allocator(),{ - {"force",3}, - {"x",3} - },verts.size()}; + dtiles_t kverts_buffer{kverts.get_allocator(),{ + {"x",3}, + {"xp",3} + },kverts.size()}; - TILEVEC_OPS::copy(cudaPol,tris,"inds",verts_buffer,"inds"); - TILEVEC_OPS::copy(cudaPol,verts,"x",force_buffer,"x"); - TILEVEC_OPS::fill(cudaPol,verts_buffer,"grad",(T)0.0); - TILEVEC_OPS::fill(cudaPol,force_buffer,"force",(T)0.0); - cudaPol(zs::range(tris.size()),[ + // TILEVEC_OPS::copy(cudaPol,tris,"inds",verts_buffer,"inds"); + // TILEVEC_OPS::copy(cudaPol,verts,"x",force_buffer,"x"); + // TILEVEC_OPS::fill(cudaPol,verts_buffer,"grad",(T)0.0); + // TILEVEC_OPS::fill(cudaPol,force_buffer,"force",(T)0.0); + + TILEVEC_OPS::copy(cudaPol,verts,"x",verts_buffer,"x"); + TILEVEC_OPS::copy(cudaPol,verts,"x",verts_buffer,"xp"); + TILEVEC_OPS::copy(cudaPol,kverts,"x",kverts_buffer,"x"); + TILEVEC_OPS::copy(cudaPol,kverts,"x",kverts_buffer,"xp"); + + std::cout << "evaluate verts_buffer" << std::endl; + + cudaPol(zs::range(verts.size()),[ verts_buffer = proxy({},verts_buffer), verts = proxy({},verts), - tris = proxy({},tris), kverts = proxy({},kverts), ktris = proxy({},ktris), - kinOutCollisionEps = kinOutCollisionEps, - project_idx_tag = zs::SmallString(project_idx_tag)] ZS_LAMBDA(int ti) mutable { - auto tri = tris.pack(dim_c<3>,"inds",ti).reinterpret_bits(int_c); - auto tp = vec3::zeros(); + // kinOutCollisionEps = kinOutCollisionEps, + project_idx_tag = zs::SmallString(project_idx_tag)] ZS_LAMBDA(int vi) mutable { + auto kti = zs::reinterpret_bits(verts(project_idx_tag,vi)); + if(kti < 0) + return; + auto ktri = ktris.pack(dim_c<3>,"inds",kti).reinterpret_bits(int_c); + auto ktc = vec3::zeros(); for(int i = 0;i != 3;++i) - tp += verts.pack(dim_c<3>,"x",tri[i]) / (T)3.0; + ktc += kverts.pack(dim_c<3>,"x",ktri[i]) / (T)3.0; - verts_buffer.tuple(dim_c<3>,"x",ti) = tp; - verts_buffer.tuple(dim_c<3>,"nrm",ti) = vec3::zeros(); - auto kp_idx = reinterpret_bits(tris(project_idx_tag,ti)); - if(kp_idx < 0) - verts_buffer.tuple(dim_c<3>,"xp",ti) = tp; - else{ - auto kp = kverts.pack(dim_c<3>,"x",kp_idx); - auto tnrm = tris.pack(dim_c<3>,"nrm",ti); - verts_buffer.tuple(dim_c<3>,"xp",ti) = kp; - verts_buffer.tuple(dim_c<3>,"nrm",ti) = tnrm; + verts_buffer.tuple(dim_c<3>,"xp",vi) = ktc; + }); - vec3 vs[4] = {}; - auto nrm = tris.pack(dim_c<3>,"nrm",ti); - vs[0] = kp; - for(int i = 0;i != 3;++i) - vs[i + 1] = verts.pack(dim_c<3>,"x",tri[i]); - - vec3 e[3] = {}; - e[0] = vs[3] - vs[2]; - e[1] = vs[0] - vs[2]; - e[2] = vs[1] - vs[2]; - - auto n = e[2].cross(e[0]); - n = n/(n.norm() + 1e-6); - - T springLength = e[1].dot(n) - kinOutCollisionEps; - auto gvf = zs::vec::zeros(); - if(springLength < (T)0){ - auto gvf_v12 = COLLISION_UTILS::springLengthGradient(vs,e,n); - if(isnan(gvf_v12.norm())) - printf("nan gvf detected at %d %f %f\n",ti,gvf_v12.norm(),n.norm()); - for(int i = 0;i != 9;++i) - gvf[i] = gvf_v12[i + 3]; - } - auto stiffness = (T)1.0; - auto g = -stiffness * springLength * gvf; - // auto H = stiffness * zs::dyadic_prod(gvf, gvf); - verts_buffer.tuple(dim_c<9>,"grad",ti) = g; - } + std::cout << "evaluate kverts_buffer" << std::endl; + cudaPol(zs::range(kverts.size()),[ + kverts_buffer = proxy({},kverts_buffer), + kverts = proxy({},kverts), + verts = proxy({},verts), + tris = proxy({},tris), + // kinOutCollisionEps = kinOutCollisionEps, + project_idx_tag = zs::SmallString(project_idx_tag)] ZS_LAMBDA(int kvi) mutable { + auto ti = zs::reinterpret_bits(kverts(project_idx_tag,kvi)); + if(ti < 0) + return; + auto tri = tris.pack(dim_c<3>,"inds",ti).reinterpret_bits(int_c); + auto tc = vec3::zeros(); + for(int i = 0;i != 3;++i) + tc += verts.pack(dim_c<3>,"x",tri[i]) / (T)3.0; + + kverts_buffer.tuple(dim_c<3>,"xp",kvi) = tc; }); - TILEVEC_OPS::assemble(cudaPol,verts_buffer,"grad","inds",force_buffer,"force"); - constexpr auto omp_space = execspace_e::openmp; auto ompPol = omp_exec(); verts_buffer = verts_buffer.clone({zs::memsrc_e::host}); - force_buffer = force_buffer.clone({zs::memsrc_e::host}); - auto closest_points_vis = std::make_shared(); - auto& pverts = closest_points_vis->verts; - auto& plines = closest_points_vis->lines; - pverts.resize(verts_buffer.size() * 2); - plines.resize(verts_buffer.size()); + kverts_buffer = kverts_buffer.clone({zs::memsrc_e::host}); - ompPol(zs::range(verts_buffer.size()),[ - verts_buffer = proxy({},verts_buffer), - &pverts,&plines] (int vi) mutable { - pverts[vi * 2 + 0] = verts_buffer.pack(dim_c<3>,"x",vi).to_array(); - pverts[vi * 2 + 1] = verts_buffer.pack(dim_c<3>,"xp",vi).to_array(); - plines[vi] = zeno::vec2i{vi * 2 + 0,vi * 2 + 1}; - }); + std::cout << "evaluate closest_ktris_vis" << std::endl; + + auto closest_ktris_vis = std::make_shared(); + auto& c_verts = closest_ktris_vis->verts; + auto& c_lines = closest_ktris_vis->lines; + c_verts.resize(verts_buffer.size() * 2); + c_lines.resize(verts_buffer.size()); - auto nrm_scale = get_input2("nrm_scale"); - auto normal_vis = std::make_shared(); - auto& nverts = normal_vis->verts; - auto& nlines = normal_vis->lines; - nverts.resize(verts_buffer.size() * 2); - nlines.resize(verts_buffer.size()); ompPol(zs::range(verts_buffer.size()),[ verts_buffer = proxy({},verts_buffer), - &nverts,&nlines,nrm_scale = nrm_scale] (int vi) mutable { - nverts[vi * 2 + 0] = verts_buffer.pack(dim_c<3>,"x",vi).to_array(); - auto ep = verts_buffer.pack(dim_c<3>,"nrm",vi) * nrm_scale + verts_buffer.pack(dim_c<3>,"x",vi); - nverts[vi * 2 + 1] = ep.to_array(); - nlines[vi] = zeno::vec2i{vi * 2 + 0,vi * 2 + 1}; + &c_verts,&c_lines] (int vi) mutable { + c_verts[vi * 2 + 0] = verts_buffer.pack(dim_c<3>,"x",vi).to_array(); + c_verts[vi * 2 + 1] = verts_buffer.pack(dim_c<3>,"xp",vi).to_array(); + c_lines[vi] = zeno::vec2i{vi * 2 + 0,vi * 2 + 1}; }); - auto force_scale = get_input2("force_scale"); - auto force_vis = std::make_shared(); - auto& fverts = force_vis->verts; - auto& flines = force_vis->lines; - fverts.resize(2 * verts.size()); - flines.resize(verts.size()); - ompPol(zs::range(verts.size()),[ - force_buffer = proxy({},force_buffer), - &fverts,&flines,force_scale = force_scale] (int vi) mutable { - fverts[vi * 2 + 0] = force_buffer.pack(dim_c<3>,"x",vi).to_array(); - auto ep = force_buffer.pack(dim_c<3>,"force",vi) * force_scale + force_buffer.pack(dim_c<3>,"x",vi); - fverts[vi * 2 + 1] = ep.to_array(); - flines[vi] = zeno::vec2i{vi * 2 + 0,vi * 2 + 1}; + std::cout << "evaluate closest_tris_vis" << std::endl; + + auto closest_tris_vis = std::make_shared(); + auto& kc_verts = closest_tris_vis->verts; + auto& kc_lines = closest_tris_vis->lines; + kc_verts.resize(kverts_buffer.size() * 2); + kc_lines.resize(kverts_buffer.size()); + + ompPol(zs::range(kverts_buffer.size()),[ + kverts_buffer = proxy({},kverts_buffer), + &kc_verts,&kc_lines] (int kvi) mutable { + kc_verts[kvi * 2 + 0] = kverts_buffer.pack(dim_c<3>,"x",kvi).to_array(); + kc_verts[kvi * 2 + 1] = kverts_buffer.pack(dim_c<3>,"xp",kvi).to_array(); + kc_lines[kvi] = zeno::vec2i{kvi * 2 + 0,kvi * 2 + 1}; }); - set_output("closest_vis",std::move(closest_points_vis)); - set_output("normal_vis",std::move(normal_vis)); - set_output("force_vis",std::move(force_vis)); + set_output("closest_v2kt_vis",std::move(closest_ktris_vis)); + set_output("closest_kv2t_vis",std::move(closest_tris_vis)); } }; -ZENDEFNODE(VisualizeClosestTris, {{"zsparticles","kboundary", - {"float","nrm_scale","1.0"}, - {"float","force_scale","1.0"}, - {"float","kin_out_collision_eps","0.001"} - }, - {"closest_vis","normal_vis","force_vis"}, +ZENDEFNODE(VisualizeClosestTris, {{"zsparticles","kboundary"}, + {"closest_v2kt_vis","closest_kv2t_vis"}, { {"string","project_idx_tag","project_idx_tag"}, }, @@ -2022,14 +2124,18 @@ struct ZSSurfaceClosestPointsGrp : zeno::INode { auto hi = zs::reinterpret_bits(ktris("he_inds",kti)); for(int i = 0;i != 3;++i){ auto rhi = zs::reinterpret_bits(khalfedges("opposite_he",hi)); - auto nti = zs::reinterpret_bits(khalfedges("to_face",rhi)); auto edge_normal = vec3::zeros(); - if(nti < 0){ + + if(rhi < 0){ edge_normal = knrm; }else { + auto nti = zs::reinterpret_bits(khalfedges("to_face",rhi)); edge_normal = ktris.pack(dim_c<3>,"nrm",nti) + knrm; edge_normal = edge_normal/(edge_normal.norm() + (T)1e-6); } + + + auto ke0 = kverts.pack(dim_c<3>,"x",ktri[(i + 0) % 3]); auto ke1 = kverts.pack(dim_c<3>,"x",ktri[(i + 1) % 3]); auto ke10 = ke1 - ke0; @@ -2189,13 +2295,15 @@ struct ZSSurfaceClosestPointsGrp : zeno::INode { auto khi = zs::reinterpret_bits(ktris("he_inds",kti)); for(int i = 0;i != 3;++i){ + auto edge_normal = vec3::zeros(); auto rkhi = zs::reinterpret_bits(khalfedges("opposite_he",khi)); - auto nti = zs::reinterpret_bits(khalfedges("to_face",rkhi)); + // auto nti = ntris[i]; - auto edge_normal = vec3::zeros(); - if(nti < 0){ + + if(rkhi < 0){ edge_normal = knrm; }else { + auto nti = zs::reinterpret_bits(khalfedges("to_face",rkhi)); edge_normal = ktris.pack(dim_c<3>,"nrm",nti) + knrm; edge_normal = edge_normal/(edge_normal.norm() + (T)1e-6); } diff --git a/projects/CuLagrange/geometry/Topology.cu b/projects/CuLagrange/geometry/Topology.cu index 259cb39fc8..9e0bbe274f 100644 --- a/projects/CuLagrange/geometry/Topology.cu +++ b/projects/CuLagrange/geometry/Topology.cu @@ -687,4 +687,61 @@ ZENDEFNODE(BuildSurfFacetTetraNeighboring, {{{"zsparticles"}}, }, {"ZSGeometry"}}); +struct DoTopogicalColoring : zeno::INode { + virtual void apply() override { + using namespace zs; + using vec2i = zs::vec; + using vec3i = zs::vec; + using vec4i = zs::vec; + + auto cudaPol = zs::cuda_exec(); + constexpr auto space = zs::execspace_e::cuda; + + auto zsparticles = get_input("zsparticles"); + const auto& verts = zsparticles->getParticles(); + auto& elms = zsparticles->getQuadraturePoints(); + // auto& tris = (*zsparticles)[ZenoParticles::s_surfTriTag]; + // const auto& tets = zsparticles->getQuadraturePoints(); + auto cdim = elms.getPropertySize("inds"); + auto color_tag = get_param("colorTag"); + + if(!elms.hasProperty(color_tag)) + elms.append_channels(cudaPol,{{color_tag,1}}); + + zs::Vector topos{elms.get_allocator(),elms.size()}; + cudaPol(zs::range(elms.size()),[ + elms = proxy({},elms), + cdim, + topos = proxy(topos)] ZS_LAMBDA(int ti) mutable { + topos[ti] = vec4i::uniform(-1); + for(int i = 0;i != cdim;++i) { + topos[ti][i] = zs::reinterpret_bits(elms("inds",i,ti)); + } + }); + + zs::Vector colors{elms.get_allocator(),elms.size()}; + std::cout << "do topological coloring" << std::endl; + topological_coloring(cudaPol,topos,colors); + std::cout << "finish topological coloring" << std::endl; + + cudaPol(zs::range(elms.size()),[ + elms = proxy({},elms), + color_tag = zs::SmallString(color_tag), + colors = proxy(colors)] ZS_LAMBDA(int ei) mutable { + elms(color_tag,ei) = colors[ei]; + }); + + set_output("zsparticles",zsparticles); + } +}; + +ZENDEFNODE(DoTopogicalColoring, {{{"zsparticles"}}, + { + {"zsparticles"} + }, + { + {"string","colorTag","colorTag"} + }, + {"ZSGeometry"}}); + }; \ No newline at end of file diff --git a/projects/CuLagrange/geometry/VectorField.cu b/projects/CuLagrange/geometry/VectorField.cu index e633c3a2bd..228d50947f 100644 --- a/projects/CuLagrange/geometry/VectorField.cu +++ b/projects/CuLagrange/geometry/VectorField.cu @@ -167,14 +167,14 @@ struct ZSRetrieveVectorField : zeno::INode { bool on_elm = (type == "quad" || type == "tri"); - if((type == "quad" || type == "tri") && (!eles.hasProperty(gtag) || !eles.hasProperty(color_tag))){ + if((type == "quad" || type == "tri") && (!eles.hasProperty(gtag))){ if(!eles.hasProperty(gtag)) fmt::print("the elements does not contain element-wise gradient field : {}\n",gtag); - if(!eles.hasProperty(color_tag)) - fmt::print("the elements does not contain element-wise color_tag field : {}\n",color_tag); + // if(!eles.hasProperty(color_tag)) + // fmt::print("the elements does not contain element-wise color_tag field : {}\n",color_tag); throw std::runtime_error("the volume does not contain element-wise gradient field"); } - if(type == "vert" && !verts.hasProperty(gtag) && !verts.hasProperty(color_tag)){ + if(type == "vert" && !verts.hasProperty(gtag)){ fmt::print("the volume does not contain nodal-wize gradient field : {}\n",gtag); throw std::runtime_error("the volume does not contain nodal-wize gradient field"); } @@ -210,13 +210,18 @@ struct ZSRetrieveVectorField : zeno::INode { } vec_buffer.tuple<3>("x",i) = bx; vec_buffer.tuple<3>("vec",i) = scale * eles.pack<3>(gtag,i)/* / eles.pack<3>(gtag,i).norm()*/; - zsvec_buffer[i] = eles(color_tag,i); - // vec_buffer(color_tag,i) = eles(color_tag,i); + if(eles.hasProperty(color_tag)) + zsvec_buffer[i] = eles(color_tag,i); + else + zsvec_buffer[i] = (T)1.0; }else{ vec_buffer.tuple<3>("x",i) = verts.pack<3>(xtag,i); vec_buffer.tuple<3>("vec",i) = scale * verts.pack<3>(gtag,i)/* / verts.pack<3>(gtag,i).norm()*/; // vec_buffer(color_tag,i) = verts(color_tag,i); - zsvec_buffer[i] = verts(color_tag,i); + if(verts.hasProperty(color_tag)) + zsvec_buffer[i] = verts(color_tag,i); + else + zsvec_buffer[i] = (T)1.0; } }); @@ -315,26 +320,30 @@ struct ZSSampleQuadratureAttr2Vert : zeno::INode { fmt::print("the verts' {} attr[{}] and quads' {} attr[{}] not matched\n",attr,verts.getPropertySize(attr),attr,attr_dim); } cudaPol(range(verts.size()), - [verts = proxy({},verts),attr_dim,attr = SmallString(attr)] + [skip_bou,bou_tag = zs::SmallString(bou_tag),verts = proxy({},verts),attr_dim,attr = SmallString(attr)] __device__(int vi) mutable { + if(skip_bou && verts(bou_tag,vi) > 1e-6) + return; for(int i = 0;i != attr_dim;++i) verts(attr,i,vi) = 0.; }); - static dtiles_t vtemp(verts.get_allocator(),{{"wsum",1}},verts.size()); - vtemp.resize(verts.size()); - cudaPol(range(vtemp.size()), - [vtemp = proxy({},vtemp)] ZS_LAMBDA(int vi) mutable { - vtemp("wsum",vi) = 0; - }); + // static dtiles_t vtemp(verts.get_allocator(),{{"wsum",1}},verts.size()); + // vtemp.resize(verts.size()); + // cudaPol(range(vtemp.size()), + // [vtemp = proxy({},vtemp)] ZS_LAMBDA(int vi) mutable { + // vtemp("wsum",vi) = 0; + // }); + zs::Vector wsum_vec{verts.get_allocator(),verts.size()}; + cudaPol(zs::range(wsum_vec),[] ZS_LAMBDA(auto& wsum){wsum = (float)0;}); // std::cout << "check here 2" << std::endl; cudaPol(range(quads.size()), [verts = proxy({},verts),quads = proxy({},quads),attr_dim,attr = SmallString(attr),simplex_size,weight = SmallString(weight), - execTag = wrapv{},skip_bou,bou_tag = zs::SmallString(bou_tag),vtemp = proxy({},vtemp)] + execTag = wrapv{},skip_bou = skip_bou,bou_tag = zs::SmallString(bou_tag),wsum_vec = proxy(wsum_vec)] __device__(int ei) mutable { - float w = quads(weight,ei); + auto w = quads(weight,ei); // if(ei == 0) // printf("w : %f\n",(float)w); // w = 1.0;// cancel out the specified weight info @@ -348,23 +357,28 @@ struct ZSSampleQuadratureAttr2Vert : zeno::INode { // verts(attr,j,idx) += w * quads(attr,j,ei) / (float)simplex_size; atomic_add(execTag,&verts(attr,j,idx),alpha * quads(attr,j,ei)); } - atomic_add(execTag,&vtemp("wsum",idx),alpha); + atomic_add(execTag,&wsum_vec[idx],alpha); } }); // std::cout << "check here 3 aaaa" << std::endl; // std::cout << "attr_dim = " << attr_dim << std::endl; - cudaPol(range(verts.size()), - [ + cudaPol(range(verts.size()),[skip_bou,bou_tag = zs::SmallString(bou_tag),simplex_size, verts = proxy({},verts),attr = SmallString(attr), - attr_dim,vtemp = proxy({},vtemp)] ZS_LAMBDA(int vi) mutable { + attr_dim,wsum_vec = proxy(wsum_vec)] ZS_LAMBDA(int vi) mutable { // if(vi == 0) // printf("wsum : %f\n",(float)vtemp("wsum",vi)); + if(skip_bou && verts(bou_tag,vi) > 1e-6) + return; for(int j = 0;j != attr_dim;++j) { // verts(attr,j,idx) += w * quads(attr,j,ei) / (float)simplex_size; - verts(attr,j,vi) = verts(attr,j,vi) / vtemp("wsum",vi); + verts(attr,j,vi) = verts(attr,j,vi) / (wsum_vec[vi] + (float)1e-6); + if(zs::isnan(verts(attr,j,vi) )) + printf("nan verts attr %s detected at %d %d\n",attr.asChars(),(int)j,(int)vi); } + + }); // std::cout << "check here 4" << std::endl; diff --git a/projects/CuLagrange/geometry/file_parser/read_vtk_mesh.hpp b/projects/CuLagrange/geometry/file_parser/read_vtk_mesh.hpp index 0e6f6f2d57..00634c7f80 100644 --- a/projects/CuLagrange/geometry/file_parser/read_vtk_mesh.hpp +++ b/projects/CuLagrange/geometry/file_parser/read_vtk_mesh.hpp @@ -126,9 +126,12 @@ namespace zeno { if(j != 2 || nm_points_read != (numberofpoints - 1)) bufferp = find_next_numeric(bufferp,buffer,fp,&line_count); + } - // printf("\n"); + // printf("points[%d] at line[%d] : (%f %f %f)\n",nm_points_read,line_count,(float)verts[nm_points_read][0],(float)verts[nm_points_read][1],(float)verts[nm_points_read][2]); nm_points_read++; + // printf("\n"); + } return true; } @@ -143,7 +146,7 @@ namespace zeno { int nm_cells_read = 0; - // printf("numberofcells : %d\n",numberofcells); + printf("numberofcells : %d\n",numberofcells); while(nm_cells_read < numberofcells){ bufferp = readline(buffer,fp,&line_count); @@ -592,19 +595,21 @@ namespace zeno { continue; } if(!strcmp(id,"POINTS")){ - printf("reading points\n"); + printf("reading points %d\n",line_count); int numberofpoints = 0; sscanf(line,"%s %d %s",id,&numberofpoints,dummy_str); printf("number of points %d\n",numberofpoints); parsing_verts_coord(fp,prim->verts,numberofpoints,line_count); + printf("finish reading points %d\n",line_count); continue; } if(!strcmp(id,"CELLS")){ - printf("reading cells\n"); + printf("reading cells %d\n",line_count); int numberofcells = 0; int numberofdofs = 0; sscanf(line,"%s %d %d",id,&numberofcells,&numberofdofs); simplex_size = numberofdofs/numberofcells - 1; + printf("simplex_size %d\n",simplex_size); if(simplex_size == 4) parsing_cells_topology<4>(fp,prim->quads,numberofcells,line_count); else if(simplex_size == 3) @@ -616,25 +621,28 @@ namespace zeno { continue; } if(!strcmp(id,"CELL_TYPES")){ - printf("reading cell types\n"); + printf("reading cell types %d\n",line_count); int numberofcells = 0; sscanf(line,"%s %d",id,&numberofcells); printf("number of cell types : %d\n",numberofcells); bufferp = readline(line,fp,&line_count); if(numberofcells > 0){ - int type = strtol(bufferp,&bufferp,0); - if(type != VTK_TETRA && simplex_size == 4){ - printf("non-tetra cell detected on line %d parsing cell types with simplex size = 4\n",line_count); - fclose(fp); - return false; - }else if(type != VTK_TRIANGLE && simplex_size == 3) { - printf("non-triangle cell detected on line %d parsing cell types with simplex size = 3\n",line_count); - fclose(fp); - return false; + for(int i = 0;i != numberofcells;++i) { + int type = strtol(bufferp,&bufferp,0); + if(type != VTK_TETRA && simplex_size == 4){ + printf("non-tetra cell detected on line %d parsing cell types with simplex size = 4\n",line_count); + fclose(fp); + return false; + }else if(type != VTK_TRIANGLE && simplex_size == 3) { + printf("non-triangle cell detected on line %d parsing cell types with simplex size = 3\n",line_count); + fclose(fp); + return false; + } + if(i+1 != numberofcells) + bufferp = find_next_numeric(bufferp,line,fp,&line_count); } - bufferp = find_next_numeric(bufferp,line,fp,&line_count); } - printf("finish cell type check\n"); + printf("finish cell type check at %d\n",line_count); continue; } diff --git a/projects/CuLagrange/geometry/kernel/laplace_matrix.hpp b/projects/CuLagrange/geometry/kernel/differential_geometry.hpp similarity index 93% rename from projects/CuLagrange/geometry/kernel/laplace_matrix.hpp rename to projects/CuLagrange/geometry/kernel/differential_geometry.hpp index ebdb9f9cc2..17047467fa 100644 --- a/projects/CuLagrange/geometry/kernel/laplace_matrix.hpp +++ b/projects/CuLagrange/geometry/kernel/differential_geometry.hpp @@ -68,6 +68,39 @@ namespace zeno { theta(5) = zs::acos(cos_theta(5)); } + // template + // constexpr void compute_enclosed_volume_of_triangulate_mesh() { + + // } + + // template + // constexpr void compute_area_vector_of_triangulate_mesh() { + + // } + + // template + // constexpr void compute_total_area_of_surrface_mesh() { + + // } + + // template + // constexpr void compute_mean_curvature_normal_of_surface_mesh() { + + // } + + // template + // constexpr void compute_total_mean_curvature_of_surface_mesh() { + + // } + + // tempalte + // constexpr void compute_gauss_curvature_normal_of_surface_mesh() { + + // } + + + + template constexpr void compute_cotmatrix(Pol &pol,const ETileVec &eles, const VTileVec &verts, const zs::SmallString& xTag, diff --git a/projects/CuLagrange/geometry/kernel/intersection.hpp b/projects/CuLagrange/geometry/kernel/intersection.hpp index f52d229f6b..ba17ace0aa 100644 --- a/projects/CuLagrange/geometry/kernel/intersection.hpp +++ b/projects/CuLagrange/geometry/kernel/intersection.hpp @@ -574,9 +574,12 @@ size_t retrieve_self_intersection_tri_halfedge_list_info(Pol& pol, auto cnorm = compute_average_edge_length(pol,verts,xtag,tris); cnorm *= 3; + auto max_intersections = intersect_buffers.size(); + pol(zs::range(halfedges.size()),[ exec_tag, nmIts = proxy(nmIts), + max_intersections = max_intersections, halfedges = proxy({},halfedges),/*'to_vertex' 'to_face' 'opposite_he' 'next_he'*/ verts = proxy({},verts), nm_verts = verts.size(), @@ -641,10 +644,12 @@ size_t retrieve_self_intersection_tri_halfedge_list_info(Pol& pol, // LSL_GEO::tri_ray_intersect_d(eV[0],eV[1],tV[0],tV[1],tV[2],r); if(LSL_GEO::tri_ray_intersect_d(eV[0],eV[1],tV[0],tV[1],tV[2],r)) { auto offset = atomic_add(exec_tag,&nmIts[0],(int)1); + if(offset >= max_intersections) + return; auto intp = r * dir + eV[0]; intersect_buffers.tuple(dim_c<2>,"pair",offset) = zs::vec{hei,ti}.reinterpret_bits(float_c); intersect_buffers.tuple(dim_c<3>,"int_points",offset) = intp; - intersect_buffers("r",offset) = r; + intersect_buffers("r",offset) = (T)r; // make sure the opposite he - tri pairs are also inserted // auto opposite_hei = zs::reinterpret_bits(halfedges("opposite_he",hei)); @@ -662,6 +667,10 @@ size_t retrieve_self_intersection_tri_halfedge_list_info(Pol& pol, // std::cout << "initialize corner_idx : " << nmIts.getVal(0) << std::endl; + if(nmIts.getVal(0) >= max_intersections) { + throw std::runtime_error("max_size_of_intersections buffer reach"); + } + pol(zs::range(nmIts.getVal(0)),[ intersect_buffers = proxy({},intersect_buffers), tris = proxy({},tris), @@ -702,11 +711,11 @@ int do_global_self_intersection_analysis(Pol& pol, const PosTileVec& verts, const zs::SmallString& xtag, const TriTileVec& tris, - const HalfEdgeTileVec& halfedges, + HalfEdgeTileVec& halfedges, GIA_TILEVEC& gia_res, GIA_TILEVEC& tris_gia_res, // zs::bht& conn_of_first_ring, - size_t max_nm_intersections = 10000) { + size_t max_nm_intersections = 50000) { using namespace zs; using T = typename PosTileVec::value_type; using index_type = std::make_signed_t; @@ -731,13 +740,15 @@ int do_global_self_intersection_analysis(Pol& pol, {"pair",2}, {"int_points",3}, {"r",1}, + {"is_broken",1} },max_nm_intersections}; - // if(!halfedges.hasProperty("broken")) - // halfedges.append_channels(pol,{{"broken",1}}); - // TILEVEC_OPS::fill(pol,halfedges,"broken",(T)0.0); + if(!halfedges.hasProperty("broken")) + halfedges.append_channels(pol,{{"broken",1}}); + TILEVEC_OPS::fill(pol,halfedges,"broken",(T)0.0); auto nm_insts = retrieve_self_intersection_tri_halfedge_list_info(pol,verts,xtag,tris,halfedges,ints_buffer); + TILEVEC_OPS::fill(pol,ints_buffer,"is_broken",(T)0); table_vec2i_type cftab{ints_buffer.get_allocator(),(size_t)nm_insts}; cftab.reset(pol,true); zs::Vector cfbuffer{ints_buffer.get_allocator(),(size_t)nm_insts}; @@ -812,7 +823,9 @@ int do_global_self_intersection_analysis(Pol& pol, printf("do_global_self_intersection_analysis::impossible reaching here, the hi and ohi should both have been inserted %f %f %f\n",(float)hr,(float)ohr,(float)ints_buffer("r",isi)); + ints_buffer("is_broken",isi) = (T)1.0; atomic_add(exec_tag,&nmInvalid[0],(int)1); + return; } } auto corner_idx = zs::reinterpret_bits(ints_buffer("corner_idx",isi)); @@ -845,12 +858,15 @@ int do_global_self_intersection_analysis(Pol& pol, } printf("do_global_self_intersection_analysis::impossible reaching here with broken insertion ring %f\n",(float)ints_buffer("r",isi)); + ints_buffer("is_broken",isi) = (T)1.0; atomic_add(exec_tag,&nmInvalid[0],(int)1); }); auto nmInvalidCount = nmInvalid.getVal(0); if(nmInvalidCount > 0) - throw std::runtime_error("SELF GIA invalid state detected"); + printf("SELF GIA invalid state detected\n"); + // there might be some broken rings + auto nmEntries = incidentItsTab.size(); zs::Vector> conn_topo{tris.get_allocator(),nmEntries}; @@ -862,7 +878,40 @@ int do_global_self_intersection_analysis(Pol& pol, auto nm_rings = mark_disconnected_island(pol,conn_topo,ringTag); - std::cout << "finish Mark disconnected island with nm_rings : " << nm_rings << std::endl; + zs::Vector is_broken_rings{ringTag.get_allocator(),(size_t)nm_rings}; + pol(zs::range(is_broken_rings),[] ZS_LAMBDA(auto& is_br) mutable {is_br = 0;}); + pol(zs::range(nm_insts),[ringTag = proxy(ringTag),is_broken_rings = proxy(is_broken_rings),ints_buffer = proxy({},ints_buffer)] ZS_LAMBDA(int isi) mutable { + if(ints_buffer("is_broken",isi) > (T)0.5) { + auto ring_id = ringTag[isi]; + is_broken_rings[ring_id] = 1; + } + }); + + std::cout << "broken_ring_tag : "; + for(int i = 0;i != nm_rings;++i) + std::cout << is_broken_rings.getVal(i) << "\t"; + std::cout << std::endl; + + // std::cout << "finish Mark disconnected island with nm_rings : " << nm_rings << std::endl; + + auto ring_mask_width = (nm_rings + 31) / 32; + + gia_res.resize(verts.size() * ring_mask_width); + pol(zs::range(gia_res.size()),[gia_res = proxy({},gia_res)] ZS_LAMBDA(int mi) mutable { + // nodal_colors[ni] = 0; + gia_res("ring_mask",mi) = zs::reinterpret_bits((int)0); + gia_res("color_mask",mi) = zs::reinterpret_bits((int)0); + gia_res("type_mask",mi) = zs::reinterpret_bits((int)0); + gia_res("is_loop_vertex",mi) = zs::reinterpret_bits((int)0); + }); + tris_gia_res.resize(tris.size() * ring_mask_width); + pol(zs::range(tris_gia_res.size()),[tris_gia_res = proxy({},tris_gia_res)] ZS_LAMBDA(int mi) mutable { + // nodal_colors[ni] = 0; + tris_gia_res("ring_mask",mi) = zs::reinterpret_bits((int)0); + tris_gia_res("color_mask",mi) = zs::reinterpret_bits((int)0); + tris_gia_res("type_mask",mi) = zs::reinterpret_bits((int)0); + // tris_gia_res("is_loop_vertex",ti) = zs::reinterpret_bits((int)0); + }); // return nm_rings; @@ -879,24 +928,13 @@ int do_global_self_intersection_analysis(Pol& pol, atomic_add(exec_tag,&ringSize[ringTag[isi]],(int)1); }); + // pol(zs::range(nm_rings),[ringSize = proxy(ringSize),is_broken_rings = proxy(is_broken_rings)] ZS_LAMBDA(int ri) mutable { + // if(is_broken_rings[ri]) + // ringSize[ri] = 0; + // }); + zs::Vector island_buffer{verts.get_allocator(),verts.size()}; - gia_res.resize(verts.size()); - pol(zs::range(verts.size()),[gia_res = proxy({},gia_res)] ZS_LAMBDA(int ni) mutable { - // nodal_colors[ni] = 0; - gia_res("ring_mask",ni) = zs::reinterpret_bits((int)0); - gia_res("color_mask",ni) = zs::reinterpret_bits((int)0); - gia_res("type_mask",ni) = zs::reinterpret_bits((int)0); - gia_res("is_corner",ni) = zs::reinterpret_bits((int)0); - }); - tris_gia_res.resize(tris.size()); - pol(zs::range(tris.size()),[tris_gia_res = proxy({},tris_gia_res)] ZS_LAMBDA(int ti) mutable { - // nodal_colors[ni] = 0; - tris_gia_res("ring_mask",ti) = zs::reinterpret_bits((int)0); - tris_gia_res("color_mask",ti) = zs::reinterpret_bits((int)0); - tris_gia_res("type_mask",ti) = zs::reinterpret_bits((int)0); - // tris_gia_res("is_corner",ti) = zs::reinterpret_bits((int)0); - }); zs::Vector> edge_topos{tris.get_allocator(),tris.size() * 3}; pol(range(tris.size()),[ @@ -917,8 +955,17 @@ int do_global_self_intersection_analysis(Pol& pol, for(int ri = 0;ri != nm_rings;++ri) { auto rsize = (size_t)ringSize.getVal(ri); + // if(rsize == 0) + // continue; + auto is_broken_ring = is_broken_rings.getVal(ri); + if(is_broken_ring) + continue; // if(output_intermediate_information) - printf("ring[%d] Size : %d\n",ri,rsize); + // printf("ring[%d] Size : %d\n",ri,rsize); + + + int cur_ri_mask = 1 << (ri % 32); + int ri_offset = ri / 32; // edge_topo_type dc_edge_topos{tris.get_allocator(),rsize * 6}; table_int_type disable_points{tris.get_allocator(),rsize * 8}; @@ -931,6 +978,9 @@ int do_global_self_intersection_analysis(Pol& pol, ringTag = proxy(ringTag), // output_intermediate_information, ri, + cur_ri_mask = cur_ri_mask, + ri_offset = ri_offset, + ring_mask_width = ring_mask_width, halfedges = proxy({},halfedges), // topo_tag = zs::SmallString(topo_tag), // dc_edge_topos = proxy(dc_edge_topos), @@ -949,11 +999,11 @@ int do_global_self_intersection_analysis(Pol& pol, auto ti = pair[1]; int cur_ri_mask = 1 << ri; - auto tring_mask = zs::reinterpret_bits(tris_gia_res("ring_mask",ti)); + auto tring_mask = zs::reinterpret_bits(tris_gia_res("ring_mask",ti * ring_mask_width + ri_offset)); tring_mask |= cur_ri_mask; - tris_gia_res("ring_mask",ti) = zs::reinterpret_bits(tring_mask); + tris_gia_res("ring_mask",ti * ring_mask_width + ri_offset) = zs::reinterpret_bits(tring_mask); - // halfedges("broken",hi) = (T)1.0; + halfedges("broken",hi) = (T)1.0; // auto ti = pair[1]; // auto type = zs::reinterpret_bits(ints_buffer("type",isi)); @@ -990,7 +1040,7 @@ int do_global_self_intersection_analysis(Pol& pol, // } auto corner_idx = zs::reinterpret_bits(ints_buffer("corner_idx",isi)); if(corner_idx >= 0){ - gia_res("is_corner",corner_idx) = (T)1.0; + gia_res("is_loop_vertex",corner_idx * ring_mask_width + ri_offset) = (T)1.0; disable_points.insert(corner_idx); } @@ -1029,7 +1079,7 @@ int do_global_self_intersection_analysis(Pol& pol, // }); // std::cout << "size of conn_of_first_ring : " << conn_of_first_ring.size() << std::endl; // } - std::cout << "ring[" << ri << "] : " << nm_islands << "\tnm_broken_edges : " << disable_lines.size() << "\tnm_broken_corners : " << disable_points.size() << std::endl; + // std::cout << "ring[" << ri << "] : " << nm_islands << "\tnm_broken_edges : " << disable_lines.size() << "\tnm_broken_corners : " << disable_points.size() << std::endl; zs::Vector nm_cmps_every_island_count{verts.get_allocator(),(size_t)nm_islands}; @@ -1038,15 +1088,17 @@ int do_global_self_intersection_analysis(Pol& pol, nm_cmps_every_island_count = proxy(nm_cmps_every_island_count)] ZS_LAMBDA(int i) mutable { nm_cmps_every_island_count[i] = 0; }); + + // it is a really bad idea to use mustExclude here, as this tag might no be locally significant pol(zs::range(verts.size()),[ exec_tag, verts = proxy({},verts), island_buffer = proxy(island_buffer), nm_cmps_every_island_count = proxy(nm_cmps_every_island_count)] ZS_LAMBDA(int vi) mutable { auto island_idx = island_buffer[vi]; - if(verts.hasProperty("mustExclude")) - if(verts("mustExclude",vi) > (T)0.5) - return; + // if(verts.hasProperty("mustExclude")) + // if(verts("mustExclude",vi) > (T)0.5) + // return; atomic_add(exec_tag,&nm_cmps_every_island_count[island_idx],(int)1); }); @@ -1070,18 +1122,22 @@ int do_global_self_intersection_analysis(Pol& pol, break; } } - auto cur_ri_mask = (int)1 << ri; + + + // auto cur_ri_mask = (int)1 << ri; for(int i = 0;i != nm_islands;++i) std::cout << nm_cmps_every_island_count.getVal(i) << "\t"; - std::cout << "max_island = " << max_island_idx << std::endl; + // std::cout << "max_island = " << max_island_idx << std::endl; // std::cout << std::endl; pol(zs::range(verts.size()),[ gia_res = proxy({},gia_res), nm_islands, cur_ri_mask, + ri_offset = ri_offset, + ring_mask_width = ring_mask_width, black_island_idx, exec_tag, // ints_types = proxy(ints_types), @@ -1091,9 +1147,9 @@ int do_global_self_intersection_analysis(Pol& pol, if(island_idx == max_island_idx) return; // might exceed the integer range - auto ring_mask = zs::reinterpret_bits(gia_res("ring_mask",vi)); - auto color_mask = zs::reinterpret_bits(gia_res("color_mask",vi)); - auto type_mask = zs::reinterpret_bits(gia_res("type_mask",vi)); + auto ring_mask = zs::reinterpret_bits(gia_res("ring_mask",vi * ring_mask_width + ri_offset)); + auto color_mask = zs::reinterpret_bits(gia_res("color_mask",vi * ring_mask_width + ri_offset)); + auto type_mask = zs::reinterpret_bits(gia_res("type_mask",vi * ring_mask_width + ri_offset)); // ring_mask += ((int) << ri) // if(island_idx != max_island_idx/* || ints_types[island_idx] == 1*/){ @@ -1103,20 +1159,23 @@ int do_global_self_intersection_analysis(Pol& pol, type_mask |= cur_ri_mask; if(nm_islands == 3 && island_idx == black_island_idx) color_mask |= cur_ri_mask; - gia_res("ring_mask",vi) = zs::reinterpret_bits(ring_mask); - gia_res("color_mask",vi) = zs::reinterpret_bits(color_mask); - gia_res("type_mask",vi) = zs::reinterpret_bits(type_mask); + gia_res("ring_mask",vi * ring_mask_width + ri_offset) = zs::reinterpret_bits(ring_mask); + gia_res("color_mask",vi * ring_mask_width + ri_offset) = zs::reinterpret_bits(color_mask); + gia_res("type_mask",vi * ring_mask_width + ri_offset) = zs::reinterpret_bits(type_mask); }); } pol(zs::range(gia_res.size()),[ - gia_res = proxy({},gia_res)] ZS_LAMBDA(int vi) mutable { - auto is_corner = gia_res("is_corner",vi); - if(is_corner > (T)0.5) - gia_res("ring_mask",vi) = zs::reinterpret_bits((int)0); + // ring_mask_width = ring_mask_width, + gia_res = proxy({},gia_res)] ZS_LAMBDA(int mi) mutable { + // for(int i = 0;i != ring_mask_width;++i) { + auto is_corner = gia_res("is_loop_vertex",mi); + if(is_corner > (T)0.5) + gia_res("ring_mask",mi) = zs::reinterpret_bits((int)0); + // } }); - return nm_rings; + return ring_mask_width; } template @@ -2050,8 +2109,8 @@ int do_global_self_intersection_analysis_on_surface_mesh_info(Pol& pol, tri_pairs[1] = tris.pack(dim_c<3>,topo_tag,tb,int_c); for(int t = 0;t != 2;++t) { - zs::vec out_edges[3] = {}; - elm_to_edges(tri_pairs[t],out_edges); + // zs::vec out_edges[3] = {}; + auto out_edges = elm_to_edges(tri_pairs[t]); for(int i = 0;i != 3;++i) { auto a = out_edges[i][0]; auto b = out_edges[i][1]; @@ -2231,10 +2290,16 @@ int retrieve_intersection_tri_halfedge_info_of_two_meshes(Pol& pol, edge_A[0] = tri_A[(local_vert_id_A + 0) % 3]; edge_A[1] = tri_A[(local_vert_id_A + 1) % 3]; - // auto ohei_A = zs::reinterpret_bits(halfedges_A("opposite_he",hei_A)); + auto ohei_A = zs::reinterpret_bits(halfedges_A("opposite_he",hei_A)); - // if(edge_A[0] > edge_A[1] && ohei_A >= 0) - // return; + if(edge_A[0] > edge_A[1] && ohei_A >= 0) + return; + + // if(edge_A[0] > edge_A[1]) { + // auto tmp = edge_A[0]; + // edge_A[0] = edge_A[1]; + // edge_A[1] = tmp; + // } vec3 eV_A[2] = {}; for(int i = 0;i != 2;++i) @@ -2261,12 +2326,12 @@ int retrieve_intersection_tri_halfedge_info_of_two_meshes(Pol& pol, intersect_buffers("r",offset) = (T)r; // make sure the opposite he - tri pairs are also inserted // auto opposite_hei_A = zs::reinterpret_bits(halfedges_A("opposite_he",hei_A)); - // if(opposite_hei_A >= 0) { - // offset = atomic_add(exec_tag,&nmIts[0],(int)1); - // intersect_buffers.tuple(dim_c<2>,"pair",offset) = zs::vec{opposite_hei_A,ti_B}.reinterpret_bits(float_c); - // intersect_buffers.tuple(dim_c<3>,"int_points",offset) = intp; - // intersect_buffers("r",offset) = (T)(1 - r); - // } + if(ohei_A >= 0) { + offset = atomic_add(exec_tag,&nmIts[0],(int)1); + intersect_buffers.tuple(dim_c<2>,"pair",offset) = zs::vec{ohei_A,ti_B}.reinterpret_bits(float_c); + intersect_buffers.tuple(dim_c<3>,"int_points",offset) = intp; + intersect_buffers("r",offset) = (T)(1 - r); + } } } }; @@ -3175,7 +3240,7 @@ int do_global_intersection_analysis_with_connected_manifolds(Pol& pol, if(a2b_isi + _A_offset > na2b_isi + _A_offset) incidentItsTab.insert(vec2i{a2b_isi + _A_offset,na2b_isi + _A_offset}); }else { - printf("impossible reaching here, the hi and ohi should both have been inserted\n"); + printf("do_global_intersection_analysis_with_connected_manifolds_new::impossible reaching here, the hi and ohi should both have been inserted\n"); atomic_add(exec_tag,&nmInvalid[0],(int)1); } } @@ -3203,7 +3268,7 @@ int do_global_intersection_analysis_with_connected_manifolds(Pol& pol, } hb = zs::reinterpret_bits(_B_halfedges("next_he",hb)); } - printf("impossible reaching here, the intersection ring seems to be broken\n"); + printf("do_global_intersection_analysis_with_connected_manifolds_new::impossible reaching here, the intersection ring seems to be broken\n"); atomic_add(exec_tag,&nmInvalid[0],(int)1); }); }; diff --git a/projects/CuLagrange/geometry/kernel/topology.hpp b/projects/CuLagrange/geometry/kernel/topology.hpp index f37041a409..6f993ca80c 100644 --- a/projects/CuLagrange/geometry/kernel/topology.hpp +++ b/projects/CuLagrange/geometry/kernel/topology.hpp @@ -14,6 +14,7 @@ #include "zensim/graph/ConnectedComponents.hpp" #include "zensim/container/Bht.hpp" +#include "zensim/graph/Coloring.hpp" #include "compute_characteristic_length.hpp" @@ -382,25 +383,82 @@ namespace zeno { return true; } - constexpr void elm_to_edges(const zs::vec& single_edge,zs::vec out_edges[1]) { - out_edges[0] = single_edge; - } + // constexpr auto elm_to_edges(const zs::vec& single_edge) { + // zs::vec out_edges[1] = {}; + // out_edges[0] = single_edge; + // return out_edges; + // } - constexpr void elm_to_edges(const zs::vec& tri,zs::vec out_edges[3]) { - out_edges[0] = zs::vec{tri[0],tri[1]}; - out_edges[1] = zs::vec{tri[1],tri[2]}; - out_edges[2] = zs::vec{tri[2],tri[0]}; - } + // constexpr auto elm_to_edges(const zs::vec& tri) { + // zs::vec out_edges[3] {}; + // out_edges[0] = zs::vec{tri[0],tri[1]}; + // out_edges[1] = zs::vec{tri[1],tri[2]}; + // out_edges[2] = zs::vec{tri[2],tri[0]}; + // return out_edges; + // } + + template 1)> = 0> + constexpr auto elm_to_edges(const zs::VecInterface& elm) { + using Ti = typename VecTi::value_type; + constexpr auto CODIM = VecTi::extent; + constexpr auto NM_EDGES = (CODIM - 1) * (CODIM) / 2; + + zs::vec out_edges[NM_EDGES] = {}; + int nm_out_edges = 0; + for(int i = 0;i != CODIM;++i) + for(int j = i + 1;j != CODIM;++j) + out_edges[nm_out_edges++] = zs::vec{elm[i],elm[j]}; - constexpr void elm_to_edges(const zs::vec& tet,zs::vec out_edges[6]) { - out_edges[0] = zs::vec{tet[0],tet[1]}; - out_edges[1] = zs::vec{tet[0],tet[2]}; - out_edges[2] = zs::vec{tet[0],tet[3]}; - out_edges[3] = zs::vec{tet[1],tet[2]}; - out_edges[4] = zs::vec{tet[1],tet[3]}; - out_edges[5] = zs::vec{tet[2],tet[3]}; + return out_edges; } + // template + // constexpr auto elm_to_edges(const VecI& tet,zs::wrapv) { + // constexpr int NM_EDGES = codim * (codim - 1) / 2; + // zs::vec out_edges[NM_EDGES] = {}; + // if(codim == 4) { + + // out_edges[0] = zs::vec{tet[0],tet[1]}; + // out_edges[1] = zs::vec{tet[0],tet[2]}; + // out_edges[2] = zs::vec{tet[0],tet[3]}; + // out_edges[3] = zs::vec{tet[1],tet[2]}; + // out_edges[4] = zs::vec{tet[1],tet[3]}; + // out_edges[5] = zs::vec{tet[2],tet[3]}; + // return out_edges; + // } + // if(codim == 3) { + // zs::vec out_edges[3] {}; + // out_edges[0] = zs::vec{tri[0],tri[1]}; + // out_edges[1] = zs::vec{tri[1],tri[2]}; + // out_edges[2] = zs::vec{tri[2],tri[0]}; + // return out_edges; + // } + // } + + // constexpr auto elm_to_edges(const zs::vec& single_edge) { + // zs::vec out_edges[1] = {}; + // out_edges[0] = single_edge; + // return out_edges; + // } + + // constexpr auto elm_to_edges(const zs::vec& tri) { + // zs::vec out_edges[3] {}; + // out_edges[0] = zs::vec{tri[0],tri[1]}; + // out_edges[1] = zs::vec{tri[1],tri[2]}; + // out_edges[2] = zs::vec{tri[2],tri[0]}; + // return out_edges; + // } + + // constexpr auto elm_to_edges(const zs::vec& tet) { + // zs::vec out_edges[6] = {}; + // out_edges[0] = zs::vec{tet[0],tet[1]}; + // out_edges[1] = zs::vec{tet[0],tet[2]}; + // out_edges[2] = zs::vec{tet[0],tet[3]}; + // out_edges[3] = zs::vec{tet[1],tet[2]}; + // out_edges[4] = zs::vec{tet[1],tet[3]}; + // out_edges[5] = zs::vec{tet[2],tet[3]}; + // return out_edges; + // } // template // bool topo_to_incident_matrix(Pol& pol, // const TopoTileVec& topo, @@ -1054,178 +1112,331 @@ namespace zeno { } - template= 2), (VecTI::etent <= 4)> = 0*/> + template= 2), (VecTI::etent <= 4)> = 0*/> void topological_incidence_matrix(Pol& pol, - int nm_points, - const zs::Vector& topos, - zs::SparseMatrix& spmat) { + // size_t nm_points, + const TopoRangT& topos, + zs::SparseMatrix& spmat) { using namespace zs; using ICoord = zs::vec; - constexpr auto CDIM = VecTI::extent; + // constexpr auto CDIM = VecTI::extent; + constexpr auto CDIM = RM_CVREF_T(topos[0])::extent; constexpr auto space = Pol::exec_tag::value; constexpr auto execTag = wrapv{}; + zs::Vector max_pi_vec{topos.get_allocator(),1}; + max_pi_vec.setVal(0); + pol(zs::range(topos),[max_pi_vec = proxy(max_pi_vec),execTag,CDIM] ZS_LAMBDA(const auto& topo) mutable { + for(int i = 0;i != CDIM;++i) + if(topo[i] >= 0) + atomic_max(execTag,&max_pi_vec[0],(int)topo[i]); + }); + auto nm_points = max_pi_vec.getVal(0) + 1; - // auto cudaPol = cuda_exec(); - - zs::Vector exclusive_offsets{topos.get_allocator(),nm_points + 1}; + zs::Vector exclusive_offsets{topos.get_allocator(),(size_t)(nm_points)}; zs::Vector p2ts{topos.get_allocator(),0}; + zs::Vector max_tp_incidences{topos.get_allocator(),1}; + zs::Vector cnts{topos.get_allocator(),(size_t)nm_points}; - { - zs::Vector cnts{topos.get_allocator(),nm_points}; + { zs::Vector tab_buffer{topos.get_allocator(), topos.size() * CDIM}; bht tab{topos.get_allocator(), topos.size() * CDIM}; tab.reset(pol, true); - cnts.reset(0); + // cnts.reset(0); + pol(zs::range(cnts),[] ZS_LAMBDA(auto& cnt) {cnt = 0;}); pol(zs::range(topos.size()),[ topos = proxy(topos), tab = proxy(tab), tab_buffer = proxy(tab_buffer), cnts = proxy(cnts)] ZS_LAMBDA(int ti) mutable { - for(int i = 0;i != CDIM;++i) + for(int i = 0;i != CDIM;++i) { if(topos[ti][i] < 0) break; else{ - int local_offset = atomic_add(execTag,&cnts[topos[ti][i]], (int)1); - if(auto id = tab.insert(ICoord{topos[ti][i],local_offset}); id != bht::sentinel_v){ + auto local_offset = atomic_add(execTag,&cnts[topos[ti][i]], (int)1); + if(auto id = tab.insert(ICoord{topos[ti][i],(int)local_offset}); id != bht::sentinel_v){ tab_buffer[id] = ti; } } + } }); + // std::cout << "finish computing tab_buffer" << std::endl; + // pol(zs::range(cnts.size()),[cnts = proxy(cnts)] ZS_LAMBDA(int pi) mutable {printf("cnts[%d] = %d\n",pi,cnts[pi]);}); + pol(zs::range(exclusive_offsets),[] ZS_LAMBDA(auto& eoffset) {eoffset = 0;}); + exclusive_scan(pol,std::begin(cnts),std::end(cnts),std::begin(exclusive_offsets)); - auto nmPTEntries = exclusive_offsets.getVal(nm_points); + // pol(zs::range(exclusive_offsets.size()),[exclusive_offsets = proxy(exclusive_offsets)] ZS_LAMBDA(int pi) mutable {printf("eooffset[%d] = %d\n",pi,exclusive_offsets[pi]);}); + auto nmPTEntries = exclusive_offsets.getVal(nm_points - 1) + cnts.getVal(nm_points - 1); + // std::cout << "nmPTEntries " << nmPTEntries << std::endl; p2ts.resize(nmPTEntries); + max_tp_incidences.setVal(0); pol(zs::range(nm_points),[ topos = proxy(topos), tab = proxy(tab), cnts = proxy(cnts), + execTag, + max_tp_incidences = proxy(max_tp_incidences), p2ts = proxy(p2ts), tab_buffer = proxy(tab_buffer), exclusive_offsets = proxy(exclusive_offsets)] ZS_LAMBDA(int pi) mutable { auto pt_count = cnts[pi]; + atomic_max(execTag,&max_tp_incidences[0],pt_count); auto ex_offset = exclusive_offsets[pi]; for(int i = 0;i != pt_count;++i) if(auto id = tab.query(ICoord{pi,i}); id != bht::sentinel_v) { auto ti = tab_buffer[id]; p2ts[ex_offset + i] = ti; + // printf("p[%d] -> t[%d]\n",pi,ti); } }); } - zs::Vector is{topos.get_allocator(),topos.size()}; - zs::Vector js{topos.get_allocator(),topos.size()}; - pol(enumerate(is, js), [] ZS_LAMBDA(int no, int &i, int &j) mutable { i = j = no; }); - auto reserveStorage = [&is, &js](std::size_t n) { - auto size = is.size(); - is.resize(size + n); - js.resize(size + n); - return size; - }; - // auto tets_entry_offset = reserveStorage(p2ts.size()); - - { - bool success = false; - zs::Vector cnts{topos.get_allocator(),topos.size()}; - - // the buffer size might need to be resized - bht tab{topos.get_allocator(),topos.size() * CDIM * 2}; - zs::Vector tab_buffer{topos.get_allocator(), topos.size() * CDIM * 2}; - cnts.reset(0); - pol(range(topos.size()),[ - topos = proxy(topos), - tab = proxy(tab), - tab_buffer = proxy(tab_buffer), - p2ts = proxy(p2ts), - cnts = proxy(cnts), - execTag, - CDIM, - exclusive_offsets = proxy(exclusive_offsets)] ZS_LAMBDA(int ti) mutable { - auto topo = topos[ti]; - for(int i = 0;i != CDIM;++i){ - auto vi = topo[i]; - if(vi < 0) - return; - auto ex_offset = exclusive_offsets[vi]; - auto nm_nts = exclusive_offsets[vi + 1] - exclusive_offsets[vi]; - for(int j = 0;j != nm_nts;++j) { - auto nti = p2ts[ex_offset + j]; - if(nti > ti) - continue; - if(auto id = tab.insert(ICoord{ti,atomic_add(execTag,&cnts[ti],(int)1)}); id != bht::sentinel_v){ - tab_buffer[id] = nti; - } - } + bht tij_tab{topos.get_allocator(), topos.size() * max_tp_incidences.getVal(0) * CDIM}; + tij_tab.reset(pol,true); + + pol(range(topos.size()),[ + topos = proxy(topos), + p2ts = proxy(p2ts), + tij_tab = proxy(tij_tab), + execTag, + CDIM, + cnts = proxy(cnts), + exclusive_offsets = proxy(exclusive_offsets)] ZS_LAMBDA(int ti) mutable { + auto topo = topos[ti]; + for(int i = 0;i != CDIM;++i){ + auto vi = topo[i]; + if(vi < 0) + return; + auto ex_offset = exclusive_offsets[vi]; + auto nm_nts = cnts[vi]; + for(int j = 0;j != nm_nts;++j) { + auto nti = p2ts[ex_offset + j]; + if(nti < ti) + continue; + tij_tab.insert(ICoord{ti,nti}); } - }); - exclusive_offsets.resize(topos.size() + 1); - exclusive_scan(pol,std::begin(cnts),std::end(cnts),std::begin(exclusive_offsets)); - int nm_topo_incidences = exclusive_offsets.getVal(topos.size()); - auto topo_conn_entry_offset = reserveStorage(nm_topo_incidences); + } + }); - pol(range(topos.size()),[ - topos = proxy(topos), - topo_conn_entry_offset = topo_conn_entry_offset, - exclusive_offsets = proxy(exclusive_offsets), - tab = proxy(tab), - is = proxy(is), - js = proxy(js), - tab_buffer = proxy(tab_buffer)] ZS_LAMBDA(int ti) mutable { - auto ex_offset = exclusive_offsets[ti]; - auto nm_ntopos = exclusive_offsets[ti + 1] - exclusive_offsets[ti]; - for(int i = 0;i != nm_ntopos;++i) { - if(auto id = tab.insert(ICoord{ti,i}); id != bht::sentinel_v){ - auto nti = tab_buffer[id]; - is[ex_offset + i] = ti; - js[ex_offset + i] = nti; - } - } - }); + // std::cout << "finish computing tij_tab" << std::endl; + zs::Vector is{topos.get_allocator(),tij_tab.size()}; + zs::Vector js{topos.get_allocator(),tij_tab.size()}; + pol(zip(zs::range(tij_tab.size()),zs::range(tij_tab._activeKeys)),[is = proxy(is),js = proxy(js)] ZS_LAMBDA(auto idx,const auto& pair) { + is[idx] = pair[0];js[idx] = pair[1]; + // printf("pair[%d] : %d %d\n",idx,pair[0],pair[1]); + }); - } + // pol(zs::range(is.size()),[is = proxy(is),js = proxy(js)] ZS_LAMBDA(int i) mutable {printf("ijs[%d] : %d %d\n",i,is[i],js[i]);}); + // std::cout << "topos.size() = " << topos.size() << std::endl; + // for(int i = 0;i != topos.size();++i) + // std::cout << topos.getVal(i)[0] << "\t" << topos.getVal(i)[1] << std::endl; - spmat = zs::SparseMatrix{topos.get_allocator(),(int)topos.size(),(int)topos.size()}; - spmat.build(pol,(int)nm_points,(int)topos.size(),zs::range(is),zs::range(js)/*,zs::range(rs)*/,zs::false_c); - spmat.localOrdering(pol,zs::false_c); + // spmat = zs::SparseMatrix{topos.get_allocator(),(int)topos.size(),(int)topos.size()}; + spmat.build(pol,(int)topos.size(),(int)topos.size(),zs::range(is),zs::range(js)/*,zs::range(rs)*/,zs::true_c); + // spmat.localOrdering(pol,zs::false_c); spmat._vals.resize(spmat.nnz()); - spmat._vals.reset((int)1); + pol(spmat._vals, []ZS_LAMBDA(u32 &v) { v = 1; }); + // std::cout << "done connectivity graph build" << std::endl; + + // spmat._vals.reset((int)1); } - template + template void topological_coloring(Pol& pol, - int nm_points, - const zs::Vector& topo, - zs::Vector& coloring) { + // int nm_points, + const TopoRangeT& topo, + ColorRangeT& colors) { using namespace zs; constexpr auto space = Pol::exec_tag::value; + using Ti = RM_CVREF_T(colors[0]); - coloring.resize(topo.size()); - zs::SparseMatrix pt_incidence{}; - topo_nodal_incidence_matrix(pol,nm_points,topo,pt_incidence); - union_find(pol,pt_incidence,range(coloring)); - zs::bcht, 16> vtab{coloring.get_allocator(),coloring.size()}; - pol(range(coloring.size()),[ - vtab = proxy(vtab), - coloring = proxy(coloring)] ZS_LAMBDA(int vi) mutable { - auto fa = coloring[vi]; - while(fa != coloring[fa]) - fa = coloring[fa]; - coloring[vi] = fa; - vtab.insert(fa); - }); + colors.resize(topo.size()); + zs::SparseMatrix topo_incidence_matrix{topo.get_allocator(),(int)topo.size(),(int)topo.size()}; + // std::cout << "compute incidence matrix " << std::endl; + topological_incidence_matrix(pol,topo,topo_incidence_matrix); + // std::cout << "finish compute incidence matrix " << std::endl; - pol(range(coloring.size()),[ - coloring = proxy(coloring),vtab = proxy(vtab)] ZS_LAMBDA(int vi) mutable { - auto ancestor = coloring[vi]; - auto setNo = vtab.query(ancestor); - coloring[vi] = setNo; - }); + auto ompPol = omp_exec(); + constexpr auto omp_space = execspace_e::openmp; + zs::Vector weights(/*topo.get_allocator(),*/topo.size()); + { + bht tab{weights.get_allocator(),topo.size() * 2}; + tab.reset(ompPol, true); + ompPol(enumerate(weights), [tab1 = proxy(tab)] (int seed, u32 &w) mutable { + using tab_t = RM_CVREF_T(tab); + std::mt19937 rng; + rng.seed(seed); + u32 v = rng() % (u32)4294967291u; + // prevent weight duplications + while (tab1.insert(v) != tab_t::sentinel_v) + v = rng() % (u32)4294967291u; + w = v; + }); + } + + // pol(zs::range()) + weights = weights.clone(colors.memoryLocation()); + // for(int i = 0;i != weights.size();++i) + // printf("w[%d] : %u\n",i,weights.getVal(i)); + + auto iterRef = maximum_independent_sets(pol, topo_incidence_matrix, weights, colors); + std::cout << "nm_colors : " << iterRef << std::endl; + pol(zs::range(colors),[] ZS_LAMBDA(auto& clr) mutable {clr = clr - (Ti)1;}); + + } + + template + void sort_topology_by_coloring_tag(Pol& pol, + const COLOR_RANGE& colors, + REORDERED_MAP_RANGE& reordered_map, + EXCLUSIVE_OFFSET_RANGE& offset_out) { + using namespace zs; + constexpr auto space = Pol::exec_tag::value; + constexpr auto exec_tag = wrapv{}; + + // zs::Vector reordered_map{colors.get_allocator(),colors.size()}; + reordered_map.resize(colors.size()); + zs::Vector max_color{colors.get_allocator(),1}; + max_color.setVal(0); + + pol(zs::range(colors.size()),[ + colors = proxy(colors),\ + exec_tag = exec_tag, + max_color = proxy(max_color)] ZS_LAMBDA(int ci) mutable { + auto color = (int)colors[ci]; + atomic_max(exec_tag,&max_color[0],color); + }); + + int nm_total_colors = max_color.getVal(0) + 1; + // zs::bht color_buffer{} + zs::Vector nm_colors{colors.get_allocator(),nm_total_colors}; + pol(zs::range(nm_colors),[] ZS_LAMBDA(auto& nclr) mutable {nclr = 0;}); + pol(zs::range(colors),[nm_colors = proxy(nm_colors),exec_tag] ZS_LAMBDA(const auto& clrf) mutable { + auto clr = (int)clrf; + atomic_add(exec_tag,&nm_colors[clr],1); + }); + + zs::Vector exclusive_offsets{colors.get_allocator(),nm_total_colors}; + pol(zs::range(exclusive_offsets),[] ZS_LAMBDA(auto& eoffset) {eoffset = 0;}); + exclusive_scan(pol,std::begin(nm_colors),std::end(nm_colors),std::begin(exclusive_offsets)); + pol(zs::range(nm_colors),[] ZS_LAMBDA(auto& nclr) {nclr = 0;}); + + offset_out.resize(nm_total_colors); + + pol(zip(zs::range(exclusive_offsets.size()),exclusive_offsets),[offset_out = proxy(offset_out)] ZS_LAMBDA(auto i,auto offset) mutable {offset_out[i] = offset;}); + pol(zs::range(colors.size()),[ + nm_colors = proxy(nm_colors), + colors = proxy(colors), + exec_tag, + exclusive_offsets = proxy(exclusive_offsets), + reordered_map = proxy(reordered_map)] ZS_LAMBDA(auto ci) mutable { + auto clr = (int)colors[ci]; + auto offset = atomic_add(exec_tag,&nm_colors[clr],1); + auto eoffset = exclusive_offsets[clr]; + + reordered_map[eoffset + offset] = ci; + }); + + // zs::Vector topos_copy{topos.get_allocator(),topos.size()}; + // pol(zip(zs::range(topos.size()),topos),[topos_copy = proxy(topos_copy)] ZS_LAMBDA(auto ti,const auto& topo) mutable {topos_copy[ti] = topo;}); + + // pol(zip(zs::range(topos.size()),topos),[ + // topos_copy = proxy(topos_copy), + // reordered_map = proxy(reordered_map)] ZS_LAMBDA(auto ti,auto& topo) mutable {topo = topos_copy[reordered_map[ti]];}); + } + + template> + zs::Vector tilevec_topo_to_zsvec_topo(Pol& pol,const TopoTileVec& source,zs::wrapv) { + zs::Vector out_topo{source.get_allocator(),source.size()}; + auto sr = zs::range(source, "inds", zs::dim_c, zs::int_c); + pol(zip(sr, out_topo), []ZS_LAMBDA(auto id, VecTi& dst) mutable { + if constexpr (std::is_integral_v) + dst[0] = id; + else + dst = id; + }); + return out_topo; + } + + template + void retrieve_tri_bending_topology(Pol& pol, + const TriTileVec& tris, + const HalfEdgeTileVec& halfedges, + zs::Vector>& tb_topos) { + using namespace zs; + constexpr auto space = RM_CVREF_T(pol)::exec_tag::value; + constexpr auto exec_tag = wrapv{}; + + // zs::Vector nm_interior_edges{halfedges.get_allocator(),1}; + // nm_interior_edges.setVal(0); + + zs::bht interior_edges{halfedges.get_allocator(),halfedges.size()}; + interior_edges.reset(pol,true); + + pol(zs::range(halfedges.size()),[ + halfedges = proxy({},halfedges), + exec_tag, + interior_edges = proxy(interior_edges)] ZS_LAMBDA(int hi) mutable { + auto ohi = zs::reinterpret_bits(halfedges("opposite_he",hi)); + // the boundary halfedge will return -1 for opposite_he here, so it is automatically neglected + if(ohi < hi) + return; + interior_edges.insert(hi); + }); + + tb_topos.resize(interior_edges.size()); + pol(zs::zip(zs::range(interior_edges.size()),interior_edges._activeKeys),[ + tb_topos = proxy(tb_topos), + halfedges = proxy({},halfedges), + tris = proxy({},tris)] ZS_LAMBDA(auto id,auto hi_vec) mutable { + auto hi = hi_vec[0]; + auto ti = zs::reinterpret_bits(halfedges("to_face",hi)); + auto vid = zs::reinterpret_bits(halfedges("local_vertex_id",hi)); + auto ohi = zs::reinterpret_bits(halfedges("opposite_he",hi)); + auto oti = zs::reinterpret_bits(halfedges("to_face",ohi)); + auto ovid = zs::reinterpret_bits(halfedges("local_vertex_id",ohi)); + + auto tri = tris.pack(dim_c<3>,"inds",ti,int_c); + auto otri = tris.pack(dim_c<3>,"inds",oti,int_c); + + tb_topos[id] = zs::vec(tri[(vid + 0) % 3],tri[(vid + 1) % 3],tri[(vid + 2) % 3],otri[(ovid + 2) % 3]); + }); + } + + template + void retrieve_edges_topology(Pol& pol, + const zs::Vector& src_topos, + zs::Vector>& edges_topos) { + using namespace zs; + constexpr auto space = RM_CVREF_T(pol)::exec_tag::value; + // constexpr auto CDIM = VecTi::extent; + // constexpr auto NM_EDGES = CDIM * (CDIM - 1) / 2; + + zs::bht edges_tab{src_topos.get_allocator(),src_topos.size() * 6}; + edges_tab.reset(pol,true); + pol(zs::range(src_topos.size()),[ + src_topos = proxy(src_topos), + edges_tab = proxy(edges_tab)] ZS_LAMBDA(int ei) mutable { + auto elm_edges = elm_to_edges(src_topos[ei]); + for(int i = 0;i != NM_EDGES;++i) { + auto edge = elm_edges[i]; + if(edge[0] < edge[1]) + edges_tab.insert(zs::vec{edge[0],edge[1]}); + else + edges_tab.insert(zs::vec{edge[1],edge[0]}); + } + }); + + edges_topos.resize(edges_tab.size()); + pol(zip(zs::range(edges_tab.size()),zs::range(edges_tab._activeKeys)),[ + edges_topos = proxy(edges_topos)] ZS_LAMBDA(auto ei,const auto& edge){edges_topos[ei] = edge;}); } template diff --git a/projects/FastFLIP/FLIP_vdb.cpp b/projects/FastFLIP/FLIP_vdb.cpp index 3f6aa26628..dbddf7963a 100644 --- a/projects/FastFLIP/FLIP_vdb.cpp +++ b/projects/FastFLIP/FLIP_vdb.cpp @@ -3099,10 +3099,9 @@ void FLIP_vdb::solve_viscosity( openvdb::FloatGrid::Ptr &liquid_sdf, openvdb::FloatGrid::Ptr &solid_sdf, openvdb::Vec3fGrid::Ptr &solid_velocity, - float density, float viscosity, float dt) + openvdb::FloatGrid::Ptr &viscosity_grid, + float density, float dt) { - auto viscosity_grid = openvdb::FloatGrid::create(viscosity); - simd_uaamg::simd_viscosity3d viscosity_solver(viscosity_grid, liquid_sdf, solid_sdf, velocity, solid_velocity, dt, density); diff --git a/projects/FastFLIP/FLIP_vdb.h b/projects/FastFLIP/FLIP_vdb.h index db08f8d0cd..75b6da7362 100644 --- a/projects/FastFLIP/FLIP_vdb.h +++ b/projects/FastFLIP/FLIP_vdb.h @@ -173,7 +173,8 @@ struct FLIP_vdb { openvdb::FloatGrid::Ptr &liquid_sdf, openvdb::FloatGrid::Ptr &solid_sdf, openvdb::Vec3fGrid::Ptr &solid_velocity, - float density, float viscosity, float dt); + openvdb::FloatGrid::Ptr &viscosity_grid, + float density, float dt); static void field_add_vector(packed_FloatGrid3 &velocity_field, float x, float y, float z, float dt); diff --git a/projects/FastFLIP/nosys/KillParticles.cpp b/projects/FastFLIP/nosys/KillParticles.cpp index 2b0436448c..88f10f4a24 100644 --- a/projects/FastFLIP/nosys/KillParticles.cpp +++ b/projects/FastFLIP/nosys/KillParticles.cpp @@ -86,6 +86,7 @@ static void kill_particles_inside( openvdb::Index original_attribute_begin = 0; if (offset != 0) { original_attribute_begin = leaf.getValue(offset - 1); + } const openvdb::Index original_attribute_end = leaf.getValue(offset); const auto voxel_gcoord = leaf.offsetToGlobalCoord(offset); @@ -105,7 +106,7 @@ static void kill_particles_inside( current_particle_count++; } } - } + new_attribute_offsets.push_back(current_particle_count); } // current_particle_count += original_attribute_end - diff --git a/projects/FastFLIP/nosys/SolveViscousTerm.cpp b/projects/FastFLIP/nosys/SolveViscousTerm.cpp index e546304c18..7e371b1887 100644 --- a/projects/FastFLIP/nosys/SolveViscousTerm.cpp +++ b/projects/FastFLIP/nosys/SolveViscousTerm.cpp @@ -1,11 +1,11 @@ -#include "FLIP_vdb.h" #include "../vdb_velocity_extrapolator.h" +#include "FLIP_vdb.h" #include #include #include #include -#include #include +#include /* static void solve_viscosity( @@ -20,66 +20,112 @@ static void solve_viscosity( namespace zeno { struct SolveViscousTerm : zeno::INode { - void apply() override { - auto n = get_param("VelExtraLayer"); - auto dt = get_input2("dt"); - auto dx = get_param("dx"); - if(has_input("Dx")) - { - dx = get_input2("Dx"); - } - auto density = get_input2("Density"); - auto viscosity = get_input2("Viscosity"); - auto velocity = get_input("Velocity"); - auto velocity_viscous = get_input("ViscousVelocity"); - auto liquid_sdf = get_input("LiquidSDF"); - auto solid_sdf = get_input("SolidSDF"); - auto solid_velocity = get_input("SolidVelocity"); - - if (viscosity > 0) - { - packed_FloatGrid3 packed_velocity, packed_viscous_vel; - packed_velocity.from_vec3(velocity->m_grid); - packed_viscous_vel.from_vec3(velocity_viscous->m_grid); - - FLIP_vdb::solve_viscosity(packed_velocity, packed_viscous_vel, liquid_sdf->m_grid, - solid_sdf->m_grid, solid_velocity->m_grid, - density, viscosity, dt); - - vdb_velocity_extrapolator::union_extrapolate(n, - packed_viscous_vel.v[0], - packed_viscous_vel.v[1], - packed_viscous_vel.v[2], - &(liquid_sdf->m_grid->tree())); - - packed_viscous_vel.to_vec3(velocity_viscous->m_grid); - } - else - { - velocity_viscous->m_grid = velocity->m_grid->deepCopy(); - velocity_viscous->setName("Velocity_Viscous"); + static constexpr float eps = 10 * std::numeric_limits::epsilon(); + + void apply() override { + auto n = get_param("VelExtraLayer"); + auto dt = get_input2("dt"); + auto dx = get_param("dx"); + if (has_input("Dx")) { + dx = get_input2("Dx"); + } + auto density = get_input2("Density"); + auto viscosity = get_input2("Viscosity"); + auto velocity = get_input("Velocity"); + auto velocity_viscous = get_input("ViscousVelocity"); + auto liquid_sdf = get_input("LiquidSDF"); + auto solid_sdf = get_input("SolidSDF"); + auto solid_velocity = get_input("SolidVelocity"); + + if (viscosity > eps) { + auto viscosity_grid = openvdb::FloatGrid::create(viscosity); + + packed_FloatGrid3 packed_velocity, packed_viscous_vel; + packed_velocity.from_vec3(velocity->m_grid); + packed_viscous_vel.from_vec3(velocity_viscous->m_grid); + + FLIP_vdb::solve_viscosity(packed_velocity, packed_viscous_vel, liquid_sdf->m_grid, solid_sdf->m_grid, + solid_velocity->m_grid, viscosity_grid, density, dt); + + vdb_velocity_extrapolator::union_extrapolate(n, packed_viscous_vel.v[0], packed_viscous_vel.v[1], + packed_viscous_vel.v[2], &(liquid_sdf->m_grid->tree())); + + packed_viscous_vel.to_vec3(velocity_viscous->m_grid); + } else { + velocity_viscous->m_grid = velocity->m_grid->deepCopy(); + velocity_viscous->setName("Velocity_Viscous"); + } } - } }; - ZENDEFNODE(SolveViscousTerm, { - /* inputs: */ - {"dt", "Dx", - {"float", "Density", "1000.0"}, - {"float", "Viscosity", "0.0"}, - "Velocity", - "ViscousVelocity", - "LiquidSDF", - "SolidSDF", - "SolidVelocity"}, - /* outputs: */ - {}, - /* params: */ - {{"float", "dx", "0.0"}, - {"int", "VelExtraLayer", "3"}}, - /* category: */ - {"FLIPSolver"}, + /* inputs: */ + {"dt", + "Dx", + {"float", "Density", "1000.0"}, + {"float", "Viscosity", "0.0"}, + "Velocity", + "ViscousVelocity", + "LiquidSDF", + "SolidSDF", + "SolidVelocity"}, + /* outputs: */ + {}, + /* params: */ + {{"float", "dx", "0.0"}, {"int", "VelExtraLayer", "3"}}, + /* category: */ + {"FLIPSolver"}, }); +struct SolveVariationalViscosity : zeno::INode { + static constexpr float eps = 10 * std::numeric_limits::epsilon(); + + void apply() override { + auto n = get_param("VelExtraLayer"); + auto dt = get_input2("dt"); + auto dx = get_param("dx"); + if (has_input("Dx")) { + dx = get_input2("Dx"); + } + auto density = get_input2("Density"); + auto viscosity_grid = get_input2("ViscosityGrid"); + auto velocity = get_input("Velocity"); + auto velocity_viscous = get_input("ViscousVelocity"); + auto liquid_sdf = get_input("LiquidSDF"); + auto solid_sdf = get_input("SolidSDF"); + auto solid_velocity = get_input("SolidVelocity"); + + packed_FloatGrid3 packed_velocity, packed_viscous_vel; + packed_velocity.from_vec3(velocity->m_grid); + packed_viscous_vel.from_vec3(velocity_viscous->m_grid); + + FLIP_vdb::solve_viscosity(packed_velocity, packed_viscous_vel, liquid_sdf->m_grid, solid_sdf->m_grid, + solid_velocity->m_grid, viscosity_grid->m_grid, density, dt); + + vdb_velocity_extrapolator::union_extrapolate(n, packed_viscous_vel.v[0], packed_viscous_vel.v[1], + packed_viscous_vel.v[2], &(liquid_sdf->m_grid->tree())); + + packed_viscous_vel.to_vec3(velocity_viscous->m_grid); + } +}; + +ZENDEFNODE(SolveVariationalViscosity, { + /* inputs: */ + {"dt", + "Dx", + {"float", "Density", "1000.0"}, + "ViscosityGrid", + "Velocity", + "ViscousVelocity", + "LiquidSDF", + "SolidSDF", + "SolidVelocity"}, + /* outputs: */ + {}, + /* params: */ + {{"float", "dx", "0.0"}, {"int", "VelExtraLayer", "3"}}, + /* category: */ + {"FLIPSolver"}, + }); + } // namespace zeno diff --git a/projects/ImgCV/ImageComposite.cpp b/projects/ImgCV/ImageComposite.cpp index ecf83284ac..594c847b58 100644 --- a/projects/ImgCV/ImageComposite.cpp +++ b/projects/ImgCV/ImageComposite.cpp @@ -3,6 +3,7 @@ #include #include #include +#include #include #include #include @@ -570,6 +571,274 @@ ZENDEFNODE(Composite, { { "comp" }, }); +struct Blend: INode { + virtual void apply() override { + auto blend = get_input("Foreground"); + auto base = get_input("Background"); + auto maskopacity = get_input2("Mask Opacity"); + + auto compmode = get_input2("Blending Mode"); + auto opacity1 = get_input2("Foreground Opacity"); + auto opacity2 = get_input2("Background Opacity"); + + auto &ud1 = blend->userData(); + int w1 = ud1.get2("w"); + int h1 = ud1.get2("h"); + auto mask = std::make_shared(); + if(has_input("Mask")) { + mask = get_input("Mask"); + + } + else { + mask->verts.resize(w1*h1); + mask->userData().set2("isImage", 1); + mask->userData().set2("w", w1); + mask->userData().set2("h", h1); + for (int i = 0; i < h1; i++) { + for (int j = 0; j < w1; j++) { + mask->verts[i * w1 + j] = {maskopacity,maskopacity,maskopacity}; + } + } + } + +//就地修改比较快! + +//todo: image1和image2大小不同的情况 + + if(compmode == "Normal") { +#pragma omp parallel for + for (int i = 0; i < h1; i++) { + for (int j = 0; j < w1; j++) { + vec3f rgb1 = blend->verts[i * w1 + j] * opacity1; + vec3f rgb2 = base->verts[i * w1 + j] * opacity2; + vec3f opacity = mask->verts[i * w1 + j] * maskopacity; + vec3f c = rgb1 * opacity + rgb2 * (1 - opacity); + blend->verts[i * w1 + j] = zeno::clamp(c, 0, 1); + } + } + } + + else if(compmode == "Add") { +#pragma omp parallel for + for (int i = 0; i < h1; i++) { + for (int j = 0; j < w1; j++) { + vec3f rgb1 = blend->verts[i * w1 + j] * opacity1; + vec3f rgb2 = base->verts[i * w1 + j] * opacity2; + vec3f opacity = mask->verts[i * w1 + j] * maskopacity; + vec3f c = zeno::min(rgb1 + rgb2, vec3f(1.0f))*opacity + rgb2 * (1 - opacity); + blend->verts[i * w1 + j] = zeno::clamp(c, 0, 1); + } + } + } + + else if(compmode == "Subtract") { +#pragma omp parallel for + for (int i = 0; i < h1; i++) { + for (int j = 0; j < w1; j++) { + vec3f rgb1 = blend->verts[i * w1 + j] * opacity1; + vec3f rgb2 = base->verts[i * w1 + j] * opacity2; + vec3f opacity = mask->verts[i * w1 + j] * maskopacity; + vec3f c = zeno::max(rgb2 - rgb1, vec3f(0.0f))*opacity + rgb2 * (1 - opacity); + blend->verts[i * w1 + j] = zeno::clamp(c, 0, 1); + } + } + } + + else if(compmode == "Multiply") { +#pragma omp parallel for + for (int i = 0; i < h1; i++) { + for (int j = 0; j < w1; j++) { + vec3f rgb1 = blend->verts[i * w1 + j] * opacity1; + vec3f rgb2 = base->verts[i * w1 + j] * opacity2; + vec3f opacity = mask->verts[i * w1 + j] * maskopacity; + vec3f c = rgb1 * rgb2 * opacity + rgb2 * (1 - opacity); + blend->verts[i * w1 + j] = zeno::clamp(c, 0, 1); + } + } + } + + else if(compmode == "Max(Lighten)") { +#pragma omp parallel for + for (int i = 0; i < h1; i++) { + for (int j = 0; j < w1; j++) { + vec3f rgb1 = blend->verts[i * w1 + j] * opacity1; + vec3f rgb2 = base->verts[i * w1 + j] * opacity2; + vec3f opacity = mask->verts[i * w1 + j] * maskopacity; + vec3f c = zeno::max(rgb1, rgb2) * opacity + rgb2 * (1 - opacity); + blend->verts[i * w1 + j] = zeno::clamp(c, 0, 1); + } + } + } + + else if(compmode == "Min(Darken)") { +#pragma omp parallel for + for (int i = 0; i < h1; i++) { + for (int j = 0; j < w1; j++) { + vec3f rgb1 = blend->verts[i * w1 + j] * opacity1; + vec3f rgb2 = base->verts[i * w1 + j] * opacity2; + vec3f opacity = mask->verts[i * w1 + j] * maskopacity; + vec3f c = zeno::min(rgb1, rgb2) * opacity + rgb2 * (1 - opacity); + blend->verts[i * w1 + j] = zeno::clamp(c, 0, 1); + } + } + } +/* + else if(compmode == "AddSub") { +#pragma omp parallel for + for (int i = 0; i < h1; i++) { + for (int j = 0; j < w1; j++) { + vec3f &rgb1 = blend->verts[i * w1 + j] * opacity1; + rgb1 = pow(rgb1, 1.0/2.2); + vec3f &rgb2 = base->verts[i * w1 + j] * opacity2; + rgb2 = pow(rgb2, 1.0/2.2); + vec3f &opacity = mask->verts[i * w1 + j] * maskopacity; + vec3f c; + for (int k = 0; k < 3; k++) { + if (rgb1[k] > 0.5) { + c[k] = rgb1[k] + rgb2[k]; + } else { + c[k] = rgb2[k] - rgb1[k]; + } + } + c = pow(c, 2.2) * opacity + pow(rgb2, 2.2) * (1 - opacity); + //c = c * opacity + rgb2 * (1 - opacity); + //c = pow(c, 2.2); + blend->verts[i * w1 + j] = zeno::clamp(c, 0, 1); + } + } + +*/ + else if(compmode == "Overlay") { +#pragma omp parallel for + for (int i = 0; i < h1; i++) { + for (int j = 0; j < w1; j++) { + vec3f rgb1 = blend->verts[i * w1 + j] * opacity1; + //rgb1 = pow(rgb1, 1.0/2.2); + vec3f rgb2 = base->verts[i * w1 + j] * opacity2; + //rgb2 = pow(rgb2, 1.0/2.2); + vec3f opacity = mask->verts[i * w1 + j] * maskopacity; + vec3f c; + for (int k = 0; k < 3; k++) { + if ( rgb2[k] < 0.5) { + c[k] = 2 * rgb1[k] * rgb2[k]; + } else { + c[k] = 1 - 2 * (1 - rgb1[k]) * (1 - rgb2[k]); + } + } + c = c * opacity + rgb2 * (1 - opacity); + //c = pow(c, 2.2); + blend->verts[i * w1 + j] = zeno::clamp(c, 0, 1); + } + } + } + + else if(compmode == "Screen") { +#pragma omp parallel for + for (int i = 0; i < h1; i++) { + for (int j = 0; j < w1; j++) { + vec3f rgb1 = blend->verts[i * w1 + j] * opacity1; + vec3f rgb2 = base->verts[i * w1 + j] * opacity2; + vec3f opacity = mask->verts[i * w1 + j] * maskopacity; + vec3f c = (1 - (1 - rgb2) * (1 - rgb1)) * opacity + rgb2 * (1 - opacity); + blend->verts[i * w1 + j] = zeno::clamp(c, 0, 1); + } + } + } + + else if(compmode == "SoftLight") { +#pragma omp parallel for + for (int i = 0; i < h1; i++) { + for (int j = 0; j < w1; j++) { + vec3f rgb1 = blend->verts[i * w1 + j] * opacity1; + //rgb1 = pow(rgb1, 1.0/2.2); + vec3f rgb2 = base->verts[i * w1 + j] * opacity2; + //rgb2 = pow(rgb2, 1.0/2.2); + vec3f opacity = mask->verts[i * w1 + j] * maskopacity; + vec3f c; + for (int k = 0; k < 3; k++) { + if (rgb1[k] < 0.5) { + c[k] = 2 * rgb1[k] * rgb2[k] + rgb2[k] * rgb2[k] * (1 - 2 * rgb1[k]); + } else { + c[k] = 2 * rgb2[k] * (1 - rgb1[k]) + sqrt(rgb2[k]) * (2 * rgb1[k] - 1); + } + } + c = c * opacity + rgb2 * (1 - opacity); + //c = pow(c, 2.2); + blend->verts[i * w1 + j] = zeno::clamp(c, 0, 1); + } + } + } + + else if(compmode == "Difference") { +#pragma omp parallel for + for (int i = 0; i < h1; i++) { + for (int j = 0; j < w1; j++) { + vec3f rgb1 = blend->verts[i * w1 + j] * opacity1; + vec3f rgb2 = base->verts[i * w1 + j] * opacity2; + vec3f opacity = mask->verts[i * w1 + j] * maskopacity; + vec3f c = zeno::abs(rgb1 - rgb2) * opacity + rgb2 * (1 - opacity); + blend->verts[i * w1 + j] = zeno::clamp(c, 0, 1); + } + } + } + + else if(compmode == "Divide") { +#pragma omp parallel for + for (int i = 0; i < h1; i++) { + for (int j = 0; j < w1; j++) { + vec3f rgb1 = blend->verts[i * w1 + j] * opacity1; + vec3f rgb2 = base->verts[i * w1 + j] * opacity2; + vec3f opacity = mask->verts[i * w1 + j] * maskopacity; + vec3f c; + for (int k = 0; k < 3; k++) { + if (rgb1[k] == 0) { + c[k] = 1; + } else { + + c[k] = rgb2[k] / rgb1[k]; + } + } + c = c * opacity + rgb2 * (1 - opacity); + blend->verts[i * w1 + j] = zeno::clamp(c, 0, 1); + } + } + } + + else if(compmode == "Average") { +#pragma omp parallel for + for (int i = 0; i < h1; i++) { + for (int j = 0; j < w1; j++) { + vec3f rgb1 = blend->verts[i * w1 + j] * opacity1; + vec3f rgb2 = base->verts[i * w1 + j] * opacity2; + vec3f opacity = mask->verts[i * w1 + j] * maskopacity; + vec3f c = (rgb1 + rgb2) / 2 * opacity + rgb2 * (1 - opacity); + blend->verts[i * w1 + j] = zeno::clamp(c, 0, 1); + } + } + } + + + set_output("image", blend); + } +}; + +ZENDEFNODE(Blend, { + { + {"Foreground"}, + {"Background"}, + {"Mask"}, + {"enum Normal Add Subtract Multiply Max(Lighten) Min(Darken) Overlay Screen SoftLight Difference Divide Average", "Blending Mode", "Normal"}, + {"float", "Mask Opacity", "1"}, + {"float", "Foreground Opacity", "1"}, + {"float", "Background Opacity", "1"}, + }, + { + {"image"} + }, + {}, + { "comp" }, +}); + /* struct CompositeCV: INode { @@ -638,7 +907,7 @@ ZENDEFNODE(CompositeCV, { { {"Foreground"}, {"Background"}, - {"enum Add Subtract Multiply Divide Diff", "mode", "Add"}, + {"enum Add(Linear Dodge) Subtract Multiply Add Sub Diff", "mode", "Add"}, {"float", "Alpha1", "1"}, {"float", "Alpha2", "1"}, }, @@ -648,8 +917,11 @@ ZENDEFNODE(CompositeCV, { {}, { "comp" }, }); + */ + + // 自定义卷积核 std::vector> createKernel(float blurValue, float l_blurValue, float r_blurValue, @@ -662,6 +934,7 @@ std::vector> createKernel(float blurValue, {lb_blurValue, b_blurValue, rb_blurValue}}; return kernel; } + struct CompBlur : INode { virtual void apply() override { auto image = get_input("image"); @@ -678,38 +951,41 @@ struct CompBlur : INode { blurredImage->userData().set2("w", w); blurredImage->userData().set2("isImage", 1); if(image->has_attr("alpha")){ + + blurredImage->verts.add_attr("alpha"); blurredImage->verts.attr("alpha") = image->verts.attr("alpha"); } std::vector>k = createKernel(kmid[1],kmid[0],kmid[2],ktop[1],kbot[1],ktop[0],ktop[2],kbot[0],kbot[2]); - int kernelSize = s * k.size(); - int kernelRadius = kernelSize / 2; - // 计算卷积核的中心坐标 int anchorX = 3 / 2; int anchorY = 3 / 2; -#pragma omp parallel for for (int iter = 0; iter < s; iter++) { +#pragma omp parallel for // 对每个像素进行卷积操作 for (int y = 0; y < h; y++) { for (int x = 0; x < w; x++) { float sum0 = 0.0f; float sum1 = 0.0f; float sum2 = 0.0f; - for (int i = 0; i < 3; i++) { - for (int j = 0; j < 3; j++) { - int kernelX = x + j - anchorX; - int kernelY = y + i - anchorY; - - if (kernelX >= 0 && kernelX < w && kernelY >= 0 && kernelY < h) { - - sum0 += image->verts[kernelY * h + kernelX][0] * k[i][j]; - sum1 += image->verts[kernelY * h + kernelX][1] * k[i][j]; - sum2 += image->verts[kernelY * h + kernelX][2] * k[i][j]; + if (x == 0 || x == w - 1 || y == 0 || y == h - 1) { + sum0 = image->verts[y * w + x][0]; + sum1 = image->verts[y * w + x][1]; + sum2 = image->verts[y * w + x][2]; + } + else + { + for (int i = 0; i < 3; i++) { + for (int j = 0; j < 3; j++) { + int kernelX = x + j - anchorX; + int kernelY = y + i - anchorY; + sum0 += image->verts[kernelY * w + kernelX][0] * k[i][j]; + sum1 += image->verts[kernelY * w + kernelX][1] * k[i][j]; + sum2 += image->verts[kernelY * w + kernelX][2] * k[i][j]; } } } - // 将结果赋值给输出图像 - blurredImage->verts[y * w + x] = {static_cast(sum0), static_cast(sum1), + blurredImage->verts[y * w + x] = {static_cast(sum0), + static_cast(sum1), static_cast(sum2)}; } } @@ -886,6 +1162,7 @@ ZENDEFNODE(CompExtractChanel, { 像,每个属性对应一个图层。 可能需要的参数:outRemapRange,分辨率,属性名称,属性数据 类型为float32 */ + struct CompImport : INode { virtual void apply() override { auto prim = get_input("prim"); @@ -893,18 +1170,36 @@ struct CompImport : INode { int nx = ud.get2("nx"); int ny = ud.get2("ny"); auto attrName = get_input2("attrName"); - + auto remapRange = get_input2("RemapRange"); + auto remap = get_input2("Remap"); auto image = std::make_shared(); image->resize(nx * ny); image->userData().set2("isImage", 1); image->userData().set2("w", nx); image->userData().set2("h", ny); + //zeno::PrimitiveObject *prim = prim.get(); if (prim->verts.attr_is(attrName)) { - auto &attr = prim->attr(attrName); - for (auto i = 0; i < nx * ny; i++) { - float v = attr[i]; - image->verts[i] = {v, v, v}; + auto &attr = prim->verts.attr(attrName); + //calculate max and min attr value and remap it to 0-1 + //minresult = prim_reduce(prim.get(), attr); + float minresult = zeno::parallel_reduce_array(attr.size(), attr[0], [&] (size_t i) -> float { return attr[i]; }, + [&] (float i, float j) -> float { return zeno::min(i, j); }); + float maxresult = zeno::parallel_reduce_array(attr.size(), attr[0], [&] (size_t i) -> float { return attr[i]; }, + [&] (float i, float j) -> float { return zeno::max(i, j); }); + if (remap) { + for (auto i = 0; i < nx * ny; i++) { + float v = attr[i]; + v = (v - minresult) / (maxresult - minresult);//remap to 0-1 + v = v * (remapRange[1] - remapRange[0]) + remapRange[0]; + image->verts[i] = {v, v, v}; + } + } + else { + for (auto i = 0; i < nx * ny; i++) { + float v = attr[i]; + image->verts[i] = {v, v, v}; + } } } else if (prim->verts.attr_is(attrName)) { @@ -921,6 +1216,8 @@ ZENDEFNODE(CompImport, { { {"prim"}, {"string", "attrName", ""}, + {"bool", "Remap", "0"}, + {"vec2f", "RemapRange", "0, 1"}, }, { {"image"}, diff --git a/projects/ImgCV/ImageProcessing.cpp b/projects/ImgCV/ImageProcessing.cpp index be2a2d34c5..e85c57a8b7 100644 --- a/projects/ImgCV/ImageProcessing.cpp +++ b/projects/ImgCV/ImageProcessing.cpp @@ -5,12 +5,14 @@ #include #include #include + #include #include #include #include #include + using namespace cv; namespace zeno { @@ -90,54 +92,7 @@ static void HSVtoRGB(float h, float s, float v, float &r, float &g, float &b) break; } } -static void sobel(std::shared_ptr & grayImage, int width, int height, std::vector& dx, std::vector& dy) -{ - dx.resize(width * height); - dy.resize(width * height); -#pragma omp parallel for - for (int y = 1; y < height - 1; y++) { - for (int x = 1; x < width - 1; x++) { - float gx = -grayImage->verts[(y - 1) * width + x - 1][0] + grayImage->verts[(y - 1) * width + x + 1][0] - - 2.0f * grayImage->verts[y * width + x - 1][0] + 2.0f * grayImage->verts[y * width + x + 1][0] - - grayImage->verts[(y + 1) * width + x - 1][0] + grayImage->verts[(y + 1) * width + x + 1][0]; - float gy = grayImage->verts[(y - 1) * width + x - 1][0] + 2.0f * grayImage->verts[(y - 1) * width + x][0] + - grayImage->verts[(y - 1) * width + x + 1][0] - - grayImage->verts[(y + 1) * width + x - 1][0] - 2.0f * grayImage->verts[(y + 1) * width + x][0] - - grayImage->verts[(y + 1) * width + x + 1][0]; - - dx[y * width + x] = gx; - dy[y * width + x] = gy; - } - } -} - -static void normalMap(std::shared_ptr& grayImage, int width, int height, std::vector& normal) -{ - std::vector dx, dy; - sobel(grayImage, width, height, dx, dy); - normal.resize(width * height * 3); -#pragma omp parallel for - for (int y = 0; y < height; y++) { - for (int x = 0; x < width; x++) { - int i = y * width + x; - float gx = dx[i]; - float gy = dy[i]; - - float normalX = -gx; - float normalY = -gy; - float normalZ = 1.0f; - float length = sqrt(normalX * normalX + normalY * normalY + normalZ * normalZ); - normalX /= length; - normalY /= length; - normalZ /= length; - - normal[i * 3 + 0] = normalX; - normal[i * 3 + 1] = normalY; - normal[i * 3 + 2] = normalZ; - } - } -} struct ImageResize: INode { void apply() override { @@ -152,9 +107,9 @@ struct ImageResize: INode { image2->userData().set2("isImage", 1); image2->userData().set2("w", width); image2->userData().set2("h", height); - if(image->has_attr("alpha")){ - image2->verts.add_attr("alpha"); - } + //if(image->has_attr("alpha")){ + //image2->verts.add_attr("alpha"); + //} float scaleX = static_cast(w) / width; float scaleY = static_cast(h) / height; @@ -165,7 +120,7 @@ struct ImageResize: INode { int srcX = static_cast(x * scaleX); int srcY = static_cast(y * scaleY); image2->verts[y * width + x] = image->verts[srcY * w + srcX]; - image2->verts.attr("alpha")[y * width + x] = image->verts.attr("alpha")[srcY * w + srcX]; + //image2->verts.attr("alpha")[y * width + x] = image->verts.attr("alpha")[srcY * w + srcX]; } set_output("image", image2); } @@ -1112,12 +1067,6 @@ struct ImageBlur : INode { int w = ud.get2("w"); int h = ud.get2("h"); - auto imagetmp = std::make_shared(); - imagetmp->resize(w * h); - imagetmp->userData().set2("isImage", 1); - imagetmp->userData().set2("w", w); - imagetmp->userData().set2("h", h); - cv::Mat imagecvin(h, w, CV_32FC3); cv::Mat imagecvout(h, w, CV_32FC3); for (auto a = 0; a < image->verts.size(); a++){ @@ -1311,11 +1260,12 @@ struct ImageEditContrast : INode { virtual void apply() override { auto image = get_input("image"); float ContrastRatio = get_input2("ContrastRatio"); + float ContrastCenter = get_input2("ContrastCenter"); auto &ud = image->userData(); int w = ud.get2("w"); int h = ud.get2("h"); for (auto i = 0; i < image->verts.size(); i++) { - image->verts[i] = image->verts[i] + (image->verts[i]-0.5) * (ContrastRatio-1); + image->verts[i] = image->verts[i] + (image->verts[i]-ContrastCenter) * (ContrastRatio-1); } set_output("image", image); } @@ -1325,6 +1275,7 @@ ZENDEFNODE(ImageEditContrast, { { {"image"}, {"float", "ContrastRatio", "1"}, + {"float", "ContrastCenter", "0.5"}, }, {"image"}, {}, @@ -1384,90 +1335,69 @@ ZENDEFNODE(ImageEditInvert, { {"image"}, }); + /* 将灰度图像转换为法线贴图 */ struct ImageToNormalMap : INode { virtual void apply() override { auto image = get_input("image"); auto strength = get_input2("strength"); - auto InvertR = get_input2("InvertR"); - auto InvertG = get_input2("InvertG"); auto &ud = image->userData(); int w = ud.get2("w"); int h = ud.get2("h"); - using normal = std::tuple; - normal n = {0, 0, 1}; - float n0 = std::get<0>(n); - float n1 = std::get<1>(n); - float n2 = std::get<2>(n); - std::vector normalmap; - normalmap.resize(image->size()); - float gx = 0; - float gy = 0; - float gz = 1; + auto InvertR = get_input2("InvertR"); + auto InvertG = get_input2("InvertG"); + auto normalmap = std::make_shared(); + normalmap->verts.resize(w * h); + normalmap->userData().set2("isImage", 1); + normalmap->userData().set2("w", w); + normalmap->userData().set2("h", h); + for (int i = 0; i < h; i++) { for (int j = 0; j < w; j++) { int idx = i * w + j; if (i == 0 || i == h || j == 0 || j == w) { - normalmap[idx] = {0, 0, 1}; + normalmap->verts[idx] = {0, 0, 1}; } } } + +#pragma omp parallel for for (int i = 1; i < h-1; i++) { for (int j = 1; j < w-1; j++) { - int idx = i * w + j; - gx = (image->verts[idx+1][0] - image->verts[idx-1][0])/2.0f * strength; - gy = (image->verts[idx+w][0] - image->verts[idx-w][0])/2.0f * strength; - float len = sqrt(gx * gx + gy * gy + gz * gz); - gx /= len; - gy /= len; - gz /= len; - // 计算光照值 - if((!InvertG && !InvertR) || (InvertG && InvertR)){ - gx = 0.5f * (gx + 1.0f) ; - gy = 0.5f * (-gy + 1.0f) ; - gz = 0.5f * (gz + 1.0f) ; - normalmap[i * w + j] = {gx,gy,gz}; + float gx = -image->verts[(i - 1) * w + j - 1][0] + image->verts[(i - 1) * w + j + 1][0] + - 2.0f * image->verts[i * w + j - 1][0] + 2.0f * image->verts[ i * w + j + 1][0] + - image->verts[(i + 1) * w + j - 1][0] + image->verts[(i + 1) * w + j + 1][0]; + + float gy = image->verts[(i - 1) * w + j - 1][0] + 2.0f * image->verts[(i - 1) * w + j][0] + + image->verts[(i - 1) * w + j + 1][0] - image->verts[(i + 1) * w + j - 1][0] + - 2.0f * image->verts[(i + 1) * w + j][0] - image->verts[(i + 1) * w + j + 1][0]; + + gx = gx * strength; + gy = gy * strength; + vec3f rgb = {gx,gy,1}; + + rgb /= length(rgb); + rgb = normalizeSafe(rgb); + rgb = 0.5f * (rgb + 1.0f) ; + if(InvertG){ + rgb[1] = 1 - rgb[1]; } - else if((!InvertG && InvertR) || (InvertG && !InvertR)){ - gx = 0.5f * (gx + 1.0f) ; - gy = 0.5f * (gy + 1.0f) ; - gz = 0.5f * (gz + 1.0f) ; - normalmap[i * w + j] = {gx,gy,gz}; + else if(InvertR){ + rgb[0] = 1 - rgb[0]; } - } - } - for (int i = 0; i < h; i++) { - for (int j = 0; j < w; j++) { - int idx = i * w + j; - if(!InvertG && !InvertR){ - image->verts[i * w + j][0] = std::get<0>(normalmap[i * w + j]); - image->verts[i * w + j][1] = std::get<1>(normalmap[i * w + j]); - image->verts[i * w + j][2] = std::get<2>(normalmap[i * w + j]); - } - if(!InvertG && InvertR){ - image->verts[i * w + j][0] = std::get<1>(normalmap[i * w + j]); - image->verts[i * w + j][1] = std::get<0>(normalmap[i * w + j]); - image->verts[i * w + j][2] = std::get<2>(normalmap[i * w + j]); - } - if(InvertG && !InvertR){ - image->verts[i * w + j][0] = std::get<0>(normalmap[i * w + j]); - image->verts[i * w + j][1] = std::get<1>(normalmap[i * w + j]); - image->verts[i * w + j][2] = std::get<2>(normalmap[i * w + j]); - } - if(InvertG && InvertR){ - image->verts[i * w + j][0] = std::get<1>(normalmap[i * w + j]); - image->verts[i * w + j][1] = std::get<0>(normalmap[i * w + j]); - image->verts[i * w + j][2] = std::get<2>(normalmap[i * w + j]); + normalmap->verts[i * w + j] = rgb; + } } - } - set_output("image", image); + + set_output("image", normalmap); } }; + ZENDEFNODE(ImageToNormalMap, { { {"image"}, - {"float", "strength", "25"}, + {"float", "strength", "10"}, {"bool", "InvertR", "0"}, {"bool", "InvertG", "0"}, }, @@ -1762,15 +1692,19 @@ struct ImageErode: INode { int h = ud.get2("h"); cv::Mat imagecvin(h, w, CV_32FC3); cv::Mat imagecvout(h, w, CV_32FC3); +//#pragma omp parallel for for (int i = 0; i < h; i++) { for (int j = 0; j < w; j++) { vec3f rgb = image->verts[i * w + j]; imagecvin.at(i, j) = {rgb[0], rgb[1], rgb[2]}; } } + cv::Mat kernel = getStructuringElement(cv::MORPH_RECT, cv::Size(2 * kheight + 1, 2 * kwidth + 1), cv::Point(1, 1)); cv::erode(imagecvin, imagecvout, kernel,cv::Point(-1, -1), strength); + +//#pragma omp parallel for for (int i = 0; i < h; i++) { for (int j = 0; j < w; j++) { cv::Vec3f rgb = imagecvout.at(i, j); @@ -1795,6 +1729,42 @@ ZENDEFNODE(ImageErode, { {"image"}, }); + +struct ImageColor : INode { + virtual void apply() override { + auto image = std::make_shared(); + auto color = get_input2("Color"); + auto size = get_input2("Size"); + image->verts.resize(size[0] * size[1]); + image->userData().set2("isImage", 1); + image->userData().set2("w", size[0]); + image->userData().set2("h", size[1]); + +#pragma omp parallel + for (int i = 0; i < size[1]; i++) { + for (int j = 0; j < size[0]; j++) { + image->verts[i * size[0] + j] = {color[0], color[1], color[2]}; + } + } + + set_output("image", image); + + } +}; + +ZENDEFNODE(ImageColor, { + { + {"vec3f", "Color", "1,1,1"}, + {"vec2i", "Size", "1024,1024"}, + }, + { + {"image"}, + }, + {}, + { "image" }, +}); + + struct ImageExtractColor : INode { virtual void apply() override { auto image = get_input("image"); @@ -2321,5 +2291,94 @@ ZENDEFNODE(ImageShape, { {}, {"deprecated"}, }); + +struct ImageLevels: INode { + void apply() override { + std::shared_ptr image = get_input("image"); + auto inputLevels = get_input2("Input Levels"); + auto outputLevels = get_input2("Output Levels"); + auto gamma = get_input2("gamma");//range 0.01 - 9.99 + auto channel = get_input2("channel"); + UserData &ud = image->userData(); + int w = ud.get2("w"); + int h = ud.get2("h"); + float inputRange = inputLevels[1] - inputLevels[0]; + float outputRange = outputLevels[1] - outputLevels[0]; + float inputMin = inputLevels[0]; + float outputMin = outputLevels[0]; + float gammaCorrection = 1.0f / gamma; + + if (channel == "RGB") { +#pragma omp parallel for + for (int i = 0; i < w; i++) { + for (int j = 0; j < h; j++) { + vec3f &v = image->verts[i * w + j]; + v[0] = (v[0] < inputMin) ? inputMin : v[0]; + v[1] = (v[1] < inputMin) ? inputMin : v[1]; + v[2] = (v[2] < inputMin) ? inputMin : v[2]; + v = (v - inputMin) / inputRange; + v = pow(v, gammaCorrection); + v = v * outputRange + outputMin; + } + } + } + + else if (channel == "R") { +#pragma omp parallel for + for (int i = 0; i < w; i++) { + for (int j = 0; j < h; j++) { + float &v = image->verts[i * w + j][0]; + if (v < inputMin) v = inputMin; + v = (v - inputMin) / inputRange; + v = pow(v, gammaCorrection); + v = v * outputRange + outputMin; + } + } + } + + else if (channel == "G") { +#pragma omp parallel for + for (int i = 0; i < w; i++) { + for (int j = 0; j < h; j++) { + float &v = image->verts[i * w + j][1]; + if (v < inputMin) v = inputMin; + v = (v - inputMin) / inputRange; + v = pow(v, gammaCorrection); + v = v * outputRange + outputMin; + } + } + } + + else if (channel == "B") { +#pragma omp parallel for + for (int i = 0; i < w; i++) { + for (int j = 0; j < h; j++) { + float &v = image->verts[i * w + j][2]; + if (v < inputMin) v = inputMin; + v = (v - inputMin) / inputRange; + v = pow(v, gammaCorrection); + v = v * outputRange + outputMin; + } + } + } + + set_output("image", image); + } +}; +ZENDEFNODE(ImageLevels, { + { + {"image"}, + {"vec2f", "Input Levels", "0, 1"}, + {"float", "gamma", "1"}, + {"vec2f", "Output Levels", "0, 1"}, + //{"bool", "auto level", "false"}, //auto level + {"enum RGB R G B", "channel", "RGB"}, + }, + { + {"image"}, + }, + {}, + {"image"}, +}); } } \ No newline at end of file diff --git a/projects/ImgCV/ObjectRecog.cpp b/projects/ImgCV/ObjectRecog.cpp index 105b4197d5..33c12547af 100644 --- a/projects/ImgCV/ObjectRecog.cpp +++ b/projects/ImgCV/ObjectRecog.cpp @@ -53,34 +53,6 @@ static void zenoedge(std::shared_ptr &grayImage, int width, int } } -// 计算法向量 -static void normalMap(std::shared_ptr &grayImage, int width, int height, std::vector &normal) { - std::vector dx, dy; - zenoedge(grayImage, width, height, dx, dy); - normal.resize(width * height * 3); - - for (int y = 0; y < height; y++) { - for (int x = 0; x < width; x++) { - int i = y * width + x; - float gx = dx[i]; - float gy = dy[i]; - - float normalX = -gx; - float normalY = -gy; - float normalZ = 1.0f; - - float length = sqrt(normalX * normalX + normalY * normalY + normalZ * normalZ); - normalX /= length; - normalY /= length; - normalZ /= length; - - normal[i * 3 + 0] = normalX; - normal[i * 3 + 1] = normalY; - normal[i * 3 + 2] = normalZ; - } - } -} - static void scharr2(std::shared_ptr &src, std::shared_ptr &dst, int width, int height, int threshold) { std::vector gx(width * height); @@ -123,6 +95,7 @@ struct ImageEdgeDetect : INode { auto mode = get_input2("mode"); int threshold = get_input2("threshold"); int maxThreshold = get_input2("maxThreshold"); + float kernelSize = get_input2("kernelSize"); auto &ud = image->userData(); int w = ud.get2("w"); int h = ud.get2("h"); @@ -164,26 +137,29 @@ struct ImageEdgeDetect : INode { for (int i = 0; i < h; i++) { for (int j = 0; j < w; j++) { vec3f rgb = image->verts[i * w + j]; - var = 255 * (rgb[0] + rgb[1] + rgb[2]) / 3; + var = 255 * (rgb[0] * 0.299 + rgb[1] * 0.587 + rgb[2] *0.114) ;//average convert to gray imagecvin.at(i, j) = var; } } cv::Mat gradX, gradY; - cv::Sobel(imagecvin, gradX, CV_32F, 1, 0); - cv::Sobel(imagecvin, gradY, CV_32F, 0, 1); - - cv::Mat gradientMagnitude, gradientDirection; - cv::cartToPolar(gradX, gradY, imagecvout, gradientDirection, true); + cv::Sobel(imagecvin, gradX, CV_32F, 1, 0, kernelSize); + cv::Sobel(imagecvin, gradY, CV_32F, 0, 1, kernelSize); + cv::convertScaleAbs(gradX, gradX); + cv::convertScaleAbs(gradY, gradY); for (int i = 0; i < h; i++) { for (int j = 0; j < w; j++) { - float r = float(imagecvout.at(i, j)) / 255.f; - image->verts[i * w + j] = {r, r, r}; + float xg = gradX.at(i, j); + float yg = gradY.at(i, j); + float xy = xg + yg; + xy = xy / 255.f; + image->verts[i * w + j] = {xy, xy, xy}; } } set_output("image", image); } + if (mode == "sobel_threshold") { cv::Mat imagecvin(h, w, CV_32F); cv::Mat imagecvout(h, w, CV_32F); @@ -191,7 +167,7 @@ struct ImageEdgeDetect : INode { for (int i = 0; i < h; i++) { for (int j = 0; j < w; j++) { vec3f rgb = image->verts[i * w + j]; - var = 255 * (rgb[0] + rgb[1] + rgb[2]) / 3; + var = 255 * (rgb[0] * 0.299 + rgb[1] * 0.587 + rgb[2] *0.114); imagecvin.at(i, j) = var; } } @@ -213,6 +189,7 @@ struct ImageEdgeDetect : INode { } set_output("image", image); } + if (mode == "roberts_gray") { cv::Mat imagecvin(h, w, CV_32F); cv::Mat imagecvout(h, w, CV_32F); @@ -222,7 +199,7 @@ struct ImageEdgeDetect : INode { for (int i = 0; i < h; i++) { for (int j = 0; j < w; j++) { vec3f rgb = image->verts[i * w + j]; - var = 255 * (rgb[0] + rgb[1] + rgb[2]) / 3; + var = 255 * (rgb[0] * 0.299 + rgb[1] * 0.587 + rgb[2] *0.114); imagecvin.at(i, j) = var; } } @@ -252,7 +229,7 @@ struct ImageEdgeDetect : INode { for (int i = 0; i < h; i++) { for (int j = 0; j < w; j++) { vec3f rgb = image->verts[i * w + j]; - var = 255 * (rgb[0] + rgb[1] + rgb[2]) / 3; + var = 255 * (rgb[0] * 0.299 + rgb[1] * 0.587 + rgb[2] *0.114); imagecvin.at(i, j) = var; } } @@ -279,7 +256,7 @@ struct ImageEdgeDetect : INode { for (int i = 0; i < h; i++) { for (int j = 0; j < w; j++) { vec3f rgb = image->verts[i * w + j]; - var = 255 * (rgb[0] + rgb[1] + rgb[2]) / 3; + var = 255 * (rgb[0] * 0.299 + rgb[1] * 0.587 + rgb[2] *0.114); imagecvin.at(i, j) = var; } } @@ -309,7 +286,7 @@ struct ImageEdgeDetect : INode { for (int i = 0; i < h; i++) { for (int j = 0; j < w; j++) { vec3f rgb = image->verts[i * w + j]; - var = 255 * (rgb[0] + rgb[1] + rgb[2]) / 3; + var = 255 * (rgb[0] * 0.299 + rgb[1] * 0.587 + rgb[2] *0.114); imagecvin.at(i, j) = var; } } @@ -385,6 +362,7 @@ ZENDEFNODE(ImageEdgeDetect, { { "enum zeno_gray zeno_threshold sobel_gray sobel_threshold roberts_gray roberts_threshold prewitt_gray prewitt_threshold canny_gray canny_threshold", "mode", "sobel_gray" }, { "float", "threshold", "50" }, { "float", "maxThreshold", "9999" }, + { "float", "kernelSize", "3"} }, { { "image" } @@ -415,7 +393,7 @@ struct ImageEdgeDetectDIY : INode { for (int i = 0; i < h; i++) { for (int j = 0; j < w; j++) { vec3f rgb = image->verts[i * w + j]; - var = 255 * (rgb[0] + rgb[1] + rgb[2]) / 3; + var = 255 * (rgb[0] * 0.299 + rgb[1] * 0.587 + rgb[2] *0.114); imagecvin.at(i, j) = var; } } @@ -449,7 +427,7 @@ struct ImageEdgeDetectDIY : INode { for (int i = 0; i < h; i++) { for (int j = 0; j < w; j++) { vec3f rgb = image->verts[i * w + j]; - var = 255 * (rgb[0] + rgb[1] + rgb[2]) / 3; + var = 255 * (rgb[0] * 0.299 + rgb[1] * 0.587 + rgb[2] *0.114); imagecvin.at(i, j) = var; } } @@ -500,6 +478,7 @@ struct ImageEdgeDetectSobel : INode { auto mode = get_input2("mode"); int threshold = get_input2("threshold"); int maxThreshold = get_input2("maxThreshold"); + float kernelSize = get_input2("kernelSize"); auto &ud = image->userData(); int w = ud.get2("w"); int h = ud.get2("h"); @@ -511,20 +490,24 @@ struct ImageEdgeDetectSobel : INode { for (int i = 0; i < h; i++) { for (int j = 0; j < w; j++) { vec3f rgb = image->verts[i * w + j]; - var = 255 * (rgb[0] + rgb[1] + rgb[2]) / 3; + var = 255 * (rgb[0] * 0.299 + rgb[1] * 0.587 + rgb[2] *0.114) ;//average convert to gray imagecvin.at(i, j) = var; } } + cv::Mat gradX, gradY; - cv::Sobel(imagecvin, gradX, CV_32F, 1, 0); - cv::Sobel(imagecvin, gradY, CV_32F, 0, 1); - cv::Mat gradientMagnitude, gradientDirection; - cv::cartToPolar(gradX, gradY, imagecvout, gradientDirection, true); + cv::Sobel(imagecvin, gradX, CV_32F, 1, 0, kernelSize); + cv::Sobel(imagecvin, gradY, CV_32F, 0, 1, kernelSize); + cv::convertScaleAbs(gradX, gradX); + cv::convertScaleAbs(gradY, gradY); for (int i = 0; i < h; i++) { for (int j = 0; j < w; j++) { - float r = float(imagecvout.at(i, j)) / 255.f; - image->verts[i * w + j] = {r, r, r}; + float xg = gradX.at(i, j); + float yg = gradY.at(i, j); + float xy = xg + yg; + xy = xy / 255.f; + image->verts[i * w + j] = {xy, xy, xy}; } } set_output("image", image); @@ -537,7 +520,7 @@ struct ImageEdgeDetectSobel : INode { for (int i = 0; i < h; i++) { for (int j = 0; j < w; j++) { vec3f rgb = image->verts[i * w + j]; - var = 255 * (rgb[0] + rgb[1] + rgb[2]) / 3; + var = 255 * (rgb[0] * 0.299 + rgb[1] * 0.587 + rgb[2] *0.114); imagecvin.at(i, j) = var; } } @@ -564,6 +547,86 @@ ZENDEFNODE(ImageEdgeDetectSobel, { { "enum sobel_gray sobel_threshold", "mode", "sobel_gray" }, { "float", "threshold", "50" }, { "float", "maxThreshold", "9999" }, + { "float", "kernelSize", "3"}, + }, + { + { "image" } + }, + {}, + { "image" }, +}); + +struct ImageEdgeDetectMarr : INode { + void apply() override { + std::shared_ptr image = get_input2("image"); + auto kerneldiameter = get_input2("kernelDiameter"); + auto sigma = get_input2("Gaussian Standard deviation"); + auto threshold = get_input2("threshold"); + auto &ud = image->userData(); + int w = ud.get2("w"); + int h = ud.get2("h"); + + int kernel_size = kerneldiameter / 2; + std::vector> kernel(kerneldiameter, std::vector(kerneldiameter)); + + for (int i = -kernel_size; i <= kernel_size; i++) { + for (int j = -kernel_size; j <= kernel_size; j++) { + float kernelvalue = exp(-((pow(j, 2) + pow(i, 2)) / (pow(sigma, 2) * 2))) * (((pow(j, 2) + pow(i, 2) - 2 * pow(sigma, 2)) / (2 * pow(sigma, 4)))); + kernel[i + kernel_size][j + kernel_size] = kernelvalue; + } + } + std::vector> laplacian(w, std::vector(h)); + +#pragma omp parallel for + for (int y = 0; y < h ; y++) { + for (int x = 0; x < w ; x++){ + float sum = 0; + for (int i = 0; i < kerneldiameter; i++){ + for (int j = 0; j < kerneldiameter; j++) { + + int kernelX = x + j - kernel_size; + int kernelY = y + i - kernel_size; + + if (kernelX >= 0 && kernelX < w && kernelY >= 0 && kernelY < h) { + + sum += (image->verts[kernelY * w + kernelX][0]) * 255 * kernel[i][j]; + } + } + } + laplacian[y][x] = sum; + + } + } + +#pragma omp parallel for + for (int i = 1; i < h-1; i++) { + for (int j = 1; j < w-1; j++) { + if ((laplacian[i - 1][j] * laplacian[i + 1][j] < threshold) + || (laplacian[i][j + 1] * laplacian[i][j - 1] < threshold) + || (laplacian[i + 1][j - 1] * laplacian[i - 1][j + 1] < threshold) + || (laplacian[i - 1][j - 1] * laplacian[i + 1][j + 1] < threshold)) + { + image->verts[i * w + j] = {1, 1, 1}; + //bound + } + else { + image->verts[i * w + j] = {0, 0, 0}; + } + } + } + + + + set_output("image", image); + } +}; + +ZENDEFNODE(ImageEdgeDetectMarr, { + { + { "image" }, + { "float", "kernelDiameter", "5" }, + { "float", "Gaussian Standard deviation", "0.8" }, + { "float", "threshold", "0" }, }, { { "image" } @@ -591,7 +654,7 @@ struct ImageEdgeDetectRoberts : INode { for (int i = 0; i < h; i++) { for (int j = 0; j < w; j++) { vec3f rgb = image->verts[i * w + j]; - var = 255 * (rgb[0] + rgb[1] + rgb[2]) / 3; + var = 255 * (rgb[0] * 0.299 + rgb[1] * 0.587 + rgb[2] *0.114); imagecvin.at(i, j) = var; } } @@ -619,7 +682,7 @@ struct ImageEdgeDetectRoberts : INode { for (int i = 0; i < h; i++) { for (int j = 0; j < w; j++) { vec3f rgb = image->verts[i * w + j]; - var = 255 * (rgb[0] + rgb[1] + rgb[2]) / 3; + var = 255 * (rgb[0] * 0.299 + rgb[1] * 0.587 + rgb[2] *0.114); imagecvin.at(i, j) = var; } } @@ -673,7 +736,7 @@ struct ImageEdgeDetectPrewitt : INode { for (int i = 0; i < h; i++) { for (int j = 0; j < w; j++) { vec3f rgb = image->verts[i * w + j]; - var = 255 * (rgb[0] + rgb[1] + rgb[2]) / 3; + var = 255 * (rgb[0] * 0.299 + rgb[1] * 0.587 + rgb[2] *0.114); imagecvin.at(i, j) = var; } } @@ -704,7 +767,7 @@ struct ImageEdgeDetectPrewitt : INode { for (int i = 0; i < h; i++) { for (int j = 0; j < w; j++) { vec3f rgb = image->verts[i * w + j]; - var = 255 * (rgb[0] + rgb[1] + rgb[2]) / 3; + var = 255 * (rgb[0] * 0.299 + rgb[1] * 0.587 + rgb[2] *0.114); imagecvin.at(i, j) = var; } } diff --git a/projects/ImgCV/gltf.cpp b/projects/ImgCV/gltf.cpp deleted file mode 100644 index 41e3ec84a7..0000000000 --- a/projects/ImgCV/gltf.cpp +++ /dev/null @@ -1,274 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "rapidjson/document.h" - -namespace zeno { - -namespace zeno_gltf { - -enum class ComponentType { - GL_BYTE = 0x1400, - GL_UNSIGNED_BYTE = 0x1401, - GL_SHORT = 0x1402, - GL_UNSIGNED_SHORT = 0x1403, - GL_INT = 0x1404, - GL_UNSIGNED_INT = 0x1405, - GL_FLOAT = 0x1406, - GL_DOUBLE = 0x140A, -}; -enum class Type { - SCALAR, - VEC2, - VEC3, - VEC4, -}; -struct Accessor { - int bufferView; - int count; - ComponentType componentType; - Type type; -}; -struct BufferView { - int buffer; - int byteOffset; - int byteLength; - int byteStride; -}; - -struct GLBHeader { - uint32_t magic; - uint32_t version; - uint32_t length; -}; - -struct ReadGLTF : zeno::INode { - virtual void apply() override { - auto path = get_input2("path"); - std::vector> buffers; - rapidjson::Document root; - - if (zeno::ends_with(path, ".glb", false)) { - std::ifstream file(path.c_str(), std::ios::binary); - // Read 12-byte header - GLBHeader header; - file.read(reinterpret_cast(&header), sizeof(GLBHeader)); - if (header.magic != 0x46546C67) { - return; - } - // Read JSON chunk - uint32_t jsonChunkLength; - file.read(reinterpret_cast(&jsonChunkLength), sizeof(uint32_t)); - uint32_t jsonChunkType; - file.read(reinterpret_cast(&jsonChunkType), sizeof(uint32_t)); - - std::vector jsonBuffer(jsonChunkLength); - file.read(jsonBuffer.data(), jsonChunkLength); - - // Parse JSON - std::string json(jsonBuffer.begin(), jsonBuffer.end()); - root.Parse(json.c_str()); - // std::ofstream outputFile("d:\\1.json"); - // outputFile << json; - - // Read binary chunk - uint32_t binaryChunkLength; - file.read(reinterpret_cast(&binaryChunkLength), sizeof(uint32_t)); - uint32_t binaryChunkType; - file.read(reinterpret_cast(&binaryChunkType), sizeof(uint32_t)); - - std::vector binaryBuffer(binaryChunkLength); - file.read(binaryBuffer.data(), binaryChunkLength); - - // Parse Bin - buffers.push_back(binaryBuffer); - } - else { - auto json = zeno::file_get_content(path); - root.Parse(json.c_str()); - - zeno::log_info("buffers {}", root["buffers"].Size()); - for (auto i = 0; i < root["buffers"].Size(); i++) { - std::filesystem::path p = path; - auto parent = p.parent_path().string(); - std::string bin_path = parent + '/' + root["buffers"][i]["uri"].GetString(); - auto buffer = zeno::file_get_binary(bin_path); - zeno::log_info("{}", bin_path); - buffers.push_back(buffer); - } - } - std::vector accessors; - { - for (auto i = 0; i < root["accessors"].Size(); i++) { - const auto & a = root["accessors"][i]; - Accessor accessor; - accessor.bufferView = a.HasMember("bufferView")? a["bufferView"].GetInt():0; - accessor.count = a["count"].GetInt(); - accessor.componentType = ComponentType(a["componentType"].GetInt()); - std::string str_type = a["type"].GetString(); - if (str_type == "SCALAR") { - accessor.type = Type::SCALAR; - } - else if (str_type == "VEC2") { - accessor.type = Type::VEC2; - } - else if (str_type == "VEC3") { - accessor.type = Type::VEC3; - } - else if (str_type == "VEC4") { - accessor.type = Type::VEC4; - } - accessors.push_back(accessor); - } - } - std::vector bufferViews; - { - for (auto i = 0; i < root["bufferViews"].Size(); i++) { - const auto & v = root["bufferViews"][i]; - BufferView bufferView; - bufferView.buffer = v["buffer"].GetInt(); - bufferView.byteOffset = v.HasMember("byteOffset")? v["byteOffset"].GetInt() : 0; - bufferView.byteStride = v.HasMember("byteStride")? v["byteStride"].GetInt() : 0; - bufferView.byteLength = v["byteLength"].GetInt(); - bufferViews.push_back(bufferView); - } - } - auto prim = std::make_shared(); - { - int pvert = 0; - int pnrm = 0; - int ptris = 0; - int puv = 0; - for(size_t mi = 0;mi < root["meshes"].Size();mi++){ - const auto &mesh = root["meshes"][mi]; - const auto &primitive = mesh["primitives"][0]; - { - const auto &position = primitive["attributes"]["POSITION"].GetInt(); - const auto &acc = accessors[position]; - const auto &bv = bufferViews[acc.bufferView]; - auto reader = BinaryReader(buffers[bv.buffer]); - reader.seek_from_begin(bv.byteOffset); - prim->resize(pvert + acc.count); - for (auto i = pvert; i < pvert + acc.count; i++) { - prim->verts[i] = reader.read_LE(); - } - pvert += acc.count; - } - { - const auto &normal = primitive["attributes"]["NORMAL"].GetInt(); - const auto &acc = accessors[normal]; - const auto &bv = bufferViews[acc.bufferView]; - auto reader = BinaryReader(buffers[bv.buffer]); - reader.seek_from_begin(bv.byteOffset); - auto count = acc.count/3; - auto &n = prim->verts.add_attr("nrm"); - if (acc.componentType == ComponentType::GL_FLOAT) { - for (auto i = pnrm; i < pnrm + count; i++) { - n[i] = reader.read_LE(); - } - pnrm += count; - } - else if (acc.componentType == ComponentType::GL_DOUBLE) { - for (auto i = pnrm; i < pnrm + count; i++) { - auto n0 = float(reader.read_LE()); - auto n1 = float(reader.read_LE()); - auto n2 = float(reader.read_LE()); - n[i] = {n0, n1, n2}; - } - pnrm += count; - } - else { - zeno::log_info("no support componentType for normal: {}", int(acc.componentType)); - } - } - { - auto index = primitive["indices"].GetInt(); - const auto &acc = accessors[index]; - const auto &bv = bufferViews[acc.bufferView]; - auto reader = BinaryReader(buffers[bv.buffer]); - reader.seek_from_begin(bv.byteOffset); - auto count = acc.count / 3; - prim->tris.resize(ptris + count); - if (acc.componentType == ComponentType::GL_SHORT) { - for (auto i = ptris; i < ptris + count; i++) { - auto f0 = reader.read_LE(); - auto f1 = reader.read_LE(); - auto f2 = reader.read_LE(); - prim->tris[i] = {f0, f1, f2}; - } - } - else if (acc.componentType == ComponentType::GL_UNSIGNED_SHORT) { - for (auto i = ptris; i < ptris + count; i++) { - auto f0 = reader.read_LE(); - auto f1 = reader.read_LE(); - auto f2 = reader.read_LE(); - prim->tris[i] = {f0, f1, f2}; - } - } - else if (acc.componentType == ComponentType::GL_INT) { - for (auto i = ptris; i < ptris + count; i++) { - prim->tris[i] = reader.read_LE(); - } - } - else if (acc.componentType == ComponentType::GL_UNSIGNED_INT) { - for (auto i = ptris; i < ptris + count; i++) { - prim->tris[i] = reader.read_LE(); - } - } - else { - zeno::log_info("not support componentType for face: {}", int(acc.componentType)); - } - ptris += count; - } - { - int T0 = 0; - if (primitive["attributes"].HasMember("TEXCOORD_0")){ - T0 = primitive["attributes"]["TEXCOORD_0"].GetInt(); - } - const auto &acc = accessors[T0]; - const auto &bv = bufferViews[acc.bufferView]; - auto reader = BinaryReader(buffers[bv.buffer]); - reader.seek_from_begin(bv.byteOffset); - auto count = acc.count/4; - prim->uvs.resize(puv + count); - auto &uv = prim->uvs; - if (acc.componentType == ComponentType::GL_FLOAT) { - for (auto i = puv; i < puv + count; i++) { - uv[i] = reader.read_LE(); - } - } - else if (acc.componentType == ComponentType::GL_DOUBLE) { - for (auto i = puv; i < puv + count; i++) { - auto n0 = float(reader.read_LE()); - auto n1 = float(reader.read_LE()); - uv[i] = {n0,n1}; - } - } - else { - zeno::log_info("no support componentType for uv: {}", int(acc.componentType)); - } - puv += count; - } - } - } - set_output("prim", std::move(prim)); - } -}; -ZENDEFNODE(ReadGLTF, { - { - { "readpath", "path" }, - }, - { - { "prim" }, - }, - {}, - { "primitive" }, -}); -} -} \ No newline at end of file diff --git a/projects/zenvdb/SDFToPoly.cpp b/projects/zenvdb/SDFToPoly.cpp index df5ce4ebc2..792944653e 100644 --- a/projects/zenvdb/SDFToPoly.cpp +++ b/projects/zenvdb/SDFToPoly.cpp @@ -144,8 +144,12 @@ struct SDFToPrim : zeno::INode{ std::vector points(0); std::vector tris(0); std::vector quads(0); - //openvdb::tools::volumeToMesh(*(sdf->m_grid), points, tris, quads, isoValue, adaptivity, true); - openvdb::tools::volumeToMesh(*(sdf->m_grid), points, quads, isoValue); + if (allowQuads) { + // no adaptivity + openvdb::tools::volumeToMesh(*(sdf->m_grid), points, quads, isoValue); + } else { + openvdb::tools::volumeToMesh(*(sdf->m_grid), points, tris, quads, isoValue, adaptivity, true); + } mesh->resize(points.size()); auto &meshpos = mesh->add_attr("pos"); #pragma omp parallel for diff --git a/ui/zenoedit/dock/ztabdockwidget.cpp b/ui/zenoedit/dock/ztabdockwidget.cpp index 2d1c58c9d8..ead3ef859f 100644 --- a/ui/zenoedit/dock/ztabdockwidget.cpp +++ b/ui/zenoedit/dock/ztabdockwidget.cpp @@ -21,6 +21,7 @@ #include #include "util/apphelper.h" #include "viewport/optixviewport.h" +#include "timeline/ztimeline.h" ZTabDockWidget::ZTabDockWidget(ZenoMainWindow* mainWin, Qt::WindowFlags flags) @@ -78,6 +79,13 @@ ZTabDockWidget::ZTabDockWidget(ZenoMainWindow* mainWin, Qt::WindowFlags flags) view->setIsCurrent(false); } dpview->setIsCurrent(true); + if (Zenovis* vis = dpview->getZenoVis()) //sync loopPlaying setting to timeline + { + if (ZTimeline* timeline = main->timeline()) + { + timeline->setLoopPlayingStatus(vis->isLoopPlaying()); + } + } } } }); diff --git a/ui/zenoedit/nodesys/zenonode.cpp b/ui/zenoedit/nodesys/zenonode.cpp index 4b061bd582..c9036c31e0 100644 --- a/ui/zenoedit/nodesys/zenonode.cpp +++ b/ui/zenoedit/nodesys/zenonode.cpp @@ -1353,13 +1353,13 @@ void ZenoNode::mouseReleaseEvent(QGraphicsSceneMouseEvent* event) { m_bMoving = false; IGraphsModel* pGraphsModel = zenoApp->graphsManagment()->currentModel(); - QPointF newPos = event->scenePos(); + QPointF newPos = this->scenePos(); QPointF oldPos = m_index.data(ROLE_OBJPOS).toPointF(); if (newPos != oldPos) { STATUS_UPDATE_INFO info; info.role = ROLE_OBJPOS; - info.newValue = m_lastMovig; + info.newValue = m_lastMoving; info.oldValue = oldPos; pGraphsModel->updateNodeStatus(nodeId(), info, m_subGpIndex, false); @@ -1370,7 +1370,7 @@ void ZenoNode::mouseReleaseEvent(QGraphicsSceneMouseEvent* event) emit outSocketPosChanged(); //emit nodePosChangedSignal(); - m_lastMovig = QPointF(); + m_lastMoving = QPointF(); //other selected items also need update model data for (QGraphicsItem *item : this->scene()->selectedItems()) { @@ -1418,7 +1418,7 @@ QVariant ZenoNode::itemChange(GraphicsItemChange change, const QVariant &value) else if (change == QGraphicsItem::ItemPositionHasChanged) { m_bMoving = true; - m_lastMovig = value.toPointF(); + m_lastMoving = value.toPointF(); emit inSocketPosChanged(); emit outSocketPosChanged(); } diff --git a/ui/zenoedit/nodesys/zenonode.h b/ui/zenoedit/nodesys/zenonode.h index 524b76b970..858b68da03 100644 --- a/ui/zenoedit/nodesys/zenonode.h +++ b/ui/zenoedit/nodesys/zenonode.h @@ -159,7 +159,7 @@ public slots: bool m_bError; bool m_bEnableSnap; bool m_bMoving; //pos change flag. - QPointF m_lastMovig; //last moving pos. + QPointF m_lastMoving; //last moving pos. // when zoom out the view, the view of node will be displayed as text with large size font. // it's convenient to view all nodes in big scale picture, but it also brings some problem. diff --git a/ui/zenoedit/timeline/ztimeline.cpp b/ui/zenoedit/timeline/ztimeline.cpp index 7deab7d842..ebe29a1425 100644 --- a/ui/zenoedit/timeline/ztimeline.cpp +++ b/ui/zenoedit/timeline/ztimeline.cpp @@ -15,6 +15,7 @@ #include "viewport/zenovis.h" #include #include +#include "viewport/displaywidget.h" ////////////////////////////////////////////// @@ -206,6 +207,19 @@ void ZTimeline::initButtons() m_ui->btnForwardToEnd->setMargins(ZenoStyle::dpiScaledMargins(QMargins(3, 2, 2, 3))); m_ui->btnForwardToEnd->setBackgroundClr(QColor(), hoverBg, QColor(), hoverBg); + m_ui->btnLoopPlay->setButtonOptions(ZToolButton::Opt_Checkable | ZToolButton::Opt_SwitchAnimation); + m_ui->btnLoopPlay->setIcon(ZenoStyle::dpiScaledSize(QSize(18, 18)), ":/icons/always-off.svg", "", "", ""); + m_ui->btnLoopPlay->setMargins(ZenoStyle::dpiScaledMargins(QMargins(3, 2, 2, 3))); + m_ui->btnLoopPlay->setBackgroundClr(QColor("#FF191D21"), QColor("#FF191D21"), QColor("#4578AC"), QColor("#4578AC")); + m_ui->btnLoopPlay->initAnimation(); + connect(m_ui->btnLoopPlay, &ZToolButton::toggled, this, [=](bool bChecked) { + ZenoMainWindow* pMainWin = zenoApp->getMainWindow(); + ZASSERT_EXIT(pMainWin); + DisplayWidget* dpws = pMainWin->getCurrentViewport(); + ZASSERT_EXIT(dpws); + dpws->setLoopPlaying(bChecked); + }); + //m_ui->btnRecycle->setButtonOptions(ZToolButton::Opt_HasIcon); //m_ui->btnRecycle->setIcon( @@ -287,6 +301,11 @@ bool ZTimeline::isPlayToggled() const return m_ui->btnPlay->isChecked(); } +void ZTimeline::setLoopPlayingStatus(bool enable) +{ + m_ui->btnLoopPlay->toggle(enable); +} + void ZTimeline::paintEvent(QPaintEvent* event) { QPainter painter(this); diff --git a/ui/zenoedit/timeline/ztimeline.h b/ui/zenoedit/timeline/ztimeline.h index 446d08c9f1..3d740d437e 100644 --- a/ui/zenoedit/timeline/ztimeline.h +++ b/ui/zenoedit/timeline/ztimeline.h @@ -21,6 +21,7 @@ class ZTimeline : public QWidget void resetSlider(); int value() const; bool isPlayToggled() const; + void setLoopPlayingStatus(bool enable); protected: void paintEvent(QPaintEvent* event) override; diff --git a/ui/zenoedit/timeline/ztimeline.ui b/ui/zenoedit/timeline/ztimeline.ui index d02061bc22..35014b2edb 100644 --- a/ui/zenoedit/timeline/ztimeline.ui +++ b/ui/zenoedit/timeline/ztimeline.ui @@ -51,7 +51,7 @@ 1 - + 9 @@ -215,6 +215,28 @@ + + + + + 0 + 0 + + + + + 34 + 20 + + + + + 34 + 20 + + + + @@ -370,7 +392,7 @@ ZToolButton QWidget -
zenoui/comctrl/ztoolbutton.h
+
zenoui/comctrl/ztoolbutton.h
1
diff --git a/ui/zenoedit/viewport/cameracontrol.cpp b/ui/zenoedit/viewport/cameracontrol.cpp index c361518d39..64fba4ed69 100644 --- a/ui/zenoedit/viewport/cameracontrol.cpp +++ b/ui/zenoedit/viewport/cameracontrol.cpp @@ -21,15 +21,11 @@ CameraControl::CameraControl( , m_zenovis(pZenovis) , m_transformer(transformer) , m_picker(picker) - , m_mmb_pressed(false) , m_theta(0.) , m_phi(0.) , m_ortho_mode(false) - , m_fov(45.) , m_radius(5.0) , m_res(1, 1) - , m_aperture(0.0f) - , m_focalPlaneDistance(2.0f) { updatePerspective(); } @@ -38,11 +34,31 @@ void CameraControl::setRes(QVector2D res) { m_res = res; } +float CameraControl::getFOV() const { + auto *scene = m_zenovis->getSession()->get_scene(); + return scene->camera->m_fov; +} +void CameraControl::setFOV(float fov) { + auto *scene = m_zenovis->getSession()->get_scene(); + scene->camera->m_fov = fov; +} + +float CameraControl::getAperture() const { + auto *scene = m_zenovis->getSession()->get_scene(); + return scene->camera->m_aperture; +} + void CameraControl::setAperture(float aperture) { - m_aperture = aperture; + auto *scene = m_zenovis->getSession()->get_scene(); + scene->camera->m_aperture = aperture; +} +float CameraControl::getDisPlane() const { + auto *scene = m_zenovis->getSession()->get_scene(); + return scene->camera->focalPlaneDistance; } void CameraControl::setDisPlane(float disPlane) { - m_focalPlaneDistance = disPlane; + auto *scene = m_zenovis->getSession()->get_scene(); + scene->camera->focalPlaneDistance = disPlane; } void CameraControl::fakeMousePressEvent(QMouseEvent *event) @@ -54,9 +70,6 @@ void CameraControl::fakeMousePressEvent(QMouseEvent *event) m_theta = scene->camera->m_zxx_in.theta; m_phi = scene->camera->m_zxx_in.phi; m_radius = scene->camera->m_zxx_in.radius; - m_fov = scene->camera->m_fov; - m_aperture = scene->camera->m_aperture; - m_focalPlaneDistance = scene->camera->focalPlaneDistance; scene->camera->m_need_sync = false; if (bool(m_picker) && scene->camera->m_auto_radius) { this->m_picker->set_picked_depth_callback([&] (float depth, int x, int y) { @@ -271,9 +284,13 @@ void CameraControl::fakeMouseMoveEvent(QMouseEvent *event) } void CameraControl::updatePerspective() { + auto *session = m_zenovis->getSession(); + if (session == nullptr) { + return; + } float cx = m_center[0], cy = m_center[1], cz = m_center[2]; - m_zenovis->updatePerspective(m_res, PerspectiveInfo(cx, cy, cz, m_theta, m_phi, m_radius, m_fov, m_ortho_mode, - m_aperture, m_focalPlaneDistance)); + m_zenovis->updatePerspective(m_res, PerspectiveInfo(cx, cy, cz, m_theta, m_phi, m_radius, getFOV(), m_ortho_mode, + getAperture(), getDisPlane())); } void CameraControl::fakeWheelEvent(QWheelEvent *event) { @@ -285,24 +302,24 @@ void CameraControl::fakeWheelEvent(QWheelEvent *event) { (event->modifiers() & Qt::ControlModifier) && (event->modifiers() & Qt::ShiftModifier); float delta = dy > 0 ? 1 : -1; if (shift_pressed) { - float temp = m_fov / scale; - m_fov = temp < 170 ? temp : 170; + float temp = getFOV() / scale; + setFOV(temp < 170 ? temp : 170); } else if (aperture_pressed) { - float temp = m_aperture += delta * 0.01; - m_aperture = temp >= 0 ? temp : 0; + float temp = getAperture() + delta * 0.01; + setAperture(temp >= 0 ? temp : 0); } else if (focalPlaneDistance_pressed) { - float temp = m_focalPlaneDistance + delta * 0.05; - m_focalPlaneDistance = temp >= 0.05 ? temp : 0.05; + float temp = getDisPlane() + delta * 0.05; + setDisPlane(temp >= 0.05 ? temp : 0.05); } else { m_radius *= scale; } updatePerspective(); if (zenoApp->getMainWindow()->lightPanel != nullptr) { - zenoApp->getMainWindow()->lightPanel->camApertureEdit->setText(QString::number(m_aperture)); - zenoApp->getMainWindow()->lightPanel->camDisPlaneEdit->setText(QString::number(m_focalPlaneDistance)); + zenoApp->getMainWindow()->lightPanel->camApertureEdit->setText(QString::number(getAperture())); + zenoApp->getMainWindow()->lightPanel->camDisPlaneEdit->setText(QString::number(getDisPlane())); } } @@ -339,8 +356,8 @@ void CameraControl::setKeyFrame() { void CameraControl::focus(QVector3D center, float radius) { m_center = center; - if (m_fov >= 1e-6) - radius /= (m_fov / 45.0f); + if (getFOV() >= 1e-6) + radius /= (getFOV() / 45.0f); m_radius = radius; updatePerspective(); } @@ -371,7 +388,7 @@ QVector3D CameraControl::screenToWorldRay(float x, float y) const { view.lookAt(realPos(), m_center, up); x = (x - 0.5) * 2; y = (y - 0.5) * (-2); - float v = std::tan(m_fov * M_PI / 180.f * 0.5f); + float v = std::tan(glm::radians(getFOV()) * 0.5f); float aspect = res().x() / res().y(); auto dir = QVector3D(v * x * aspect, v * y, -1); dir = dir.normalized(); diff --git a/ui/zenoedit/viewport/cameracontrol.h b/ui/zenoedit/viewport/cameracontrol.h index 4e0532e721..4c9a5b1153 100644 --- a/ui/zenoedit/viewport/cameracontrol.h +++ b/ui/zenoedit/viewport/cameracontrol.h @@ -18,7 +18,11 @@ class CameraControl : public QObject QObject* parent = nullptr); void setRes(QVector2D res); QVector2D res() const { return m_res; } + float getFOV() const; + void setFOV(float fov); + float getAperture() const; void setAperture(float aperture); + float getDisPlane() const; void setDisPlane(float disPlane); void updatePerspective(); void setKeyFrame(); @@ -40,17 +44,13 @@ class CameraControl : public QObject void resizeTransformHandler(int dir); private: - bool m_mmb_pressed; float m_theta; float m_phi; QPointF m_lastPos; QPoint m_boundRectStartPos; QVector3D m_center; bool m_ortho_mode; - float m_fov; float m_radius; - float m_aperture; - float m_focalPlaneDistance; QVector2D m_res; QSet m_pressedKeys; diff --git a/ui/zenoedit/viewport/cameradata.cpp b/ui/zenoedit/viewport/cameradata.cpp deleted file mode 100644 index 820b13afb1..0000000000 --- a/ui/zenoedit/viewport/cameradata.cpp +++ /dev/null @@ -1,103 +0,0 @@ -#include "cameradata.h" -#include -#include - -#ifndef M_PI -#define M_PI (3.14159265358979323846) -#endif - -CameraData::CameraData() - : impl(std::make_unique()) -{ -} - -CameraData::~CameraData() = default; - -struct CameraData::Impl -{ - QMatrix4x4 view; - QMatrix4x4 proj; - float point_scale = 1.f; - - int nx = 512, ny = 512; - QVector3D center{0.f, 0.f, 0.f}; - float theta = 0.f; - float phi = 0.f; - float radius = 4.f; - float fov = 30.f; - bool ortho_mode = false; - - Impl() { updateMatrices(); } - - void updateMatrices() { - point_scale = ny / (50.f * std::tan(fov * M_PI / 180.f * 0.5f)); - float cos_t = std::cos(theta); - float sin_t = std::sin(theta); - float cos_p = std::cos(phi); - float sin_p = std::sin(phi); - QVector3D back(cos_t * sin_p, sin_t, -cos_t * cos_p); - QVector3D up(-sin_t * sin_p, cos_t, sin_t * cos_p); - float aspect = (float)nx / ny; - - view.setToIdentity(); - proj.setToIdentity(); - if (ortho_mode) { - view.lookAt(center - back, center, up); - proj.ortho(-radius * aspect, radius * aspect, -radius, radius, -100.0f, 100.0f); - } else { - view.lookAt(center - back * radius, center, up); - proj.perspective(fov, aspect, 0.05f, 20000.f); - } - } -}; - -void CameraData::resize(int nx, int ny) -{ - impl->nx = nx; - impl->ny = ny; - impl->updateMatrices(); -} - -void CameraData::zoom(float dy, bool fov_mode) -{ - auto scale = std::pow(0.89f, dy); - if (fov_mode) - impl->fov /= scale; - impl->radius *= scale; - impl->updateMatrices(); -} - -void CameraData::move(float dx, double dy, bool pan_mode) -{ - if (pan_mode) { - float cos_t = std::cos(impl->theta); - float sin_t = std::sin(impl->theta); - float cos_p = std::cos(impl->phi); - float sin_p = std::sin(impl->phi); - QVector3D back(cos_t * sin_p, sin_t, -cos_t * cos_p); - QVector3D up(-sin_t * sin_p, cos_t, sin_t * cos_p); - QVector3D right = QVector3D::crossProduct(up, back).normalized(); - up = QVector3D::crossProduct(right, back).normalized(); - QVector3D delta = right * dx + up * dy; - impl->center += delta * impl->radius; - } else { - impl->theta += dy * M_PI; - impl->phi += dx * M_PI; - } - impl->updateMatrices(); -} - -QMatrix4x4 CameraData::getView() const -{ - return impl->view; -} - -QMatrix4x4 CameraData::getProjection() const -{ - return impl->proj; -} - -float CameraData::getPointScale() const -{ - return impl->point_scale; -} diff --git a/ui/zenoedit/viewport/cameradata.h b/ui/zenoedit/viewport/cameradata.h deleted file mode 100644 index b0e2076538..0000000000 --- a/ui/zenoedit/viewport/cameradata.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef CAMERADATA_H -#define CAMERADATA_H - - -#include -#include - - -class CameraData -{ - struct Impl; - std::unique_ptr impl; - -public: - CameraData(); - ~CameraData(); - - void zoom(float dy, bool fov_mode); - void move(float dx, double dy, bool pan_mode); - void resize(int nx, int ny); - - QMatrix4x4 getView() const; - QMatrix4x4 getProjection() const; - float getPointScale() const; -}; - -#endif // CAMERADATA_H diff --git a/ui/zenoedit/viewport/displaywidget.cpp b/ui/zenoedit/viewport/displaywidget.cpp index f93c280059..8ba1aaf7d5 100644 --- a/ui/zenoedit/viewport/displaywidget.cpp +++ b/ui/zenoedit/viewport/displaywidget.cpp @@ -246,6 +246,27 @@ bool DisplayWidget::isCurrent() return bIsCurrent; } +void DisplayWidget::setLoopPlaying(bool enable) +{ + if (m_glView) + { + ZASSERT_EXIT(m_glView); + Zenovis* vis = m_glView->getZenoVis(); + ZASSERT_EXIT(vis); + vis->setLoopPlaying(enable); + } + else { + ZASSERT_EXIT(m_optixView); +#ifdef ZENO_OPTIX_PROC + Zenovis* vis = m_optixView->getZenoVis(); + ZASSERT_EXIT(vis); + vis->setLoopPlaying(enable); +#else + emit m_optixView->sig_setLoopPlaying(enable); +#endif + } +} + void DisplayWidget::onPlayClicked(bool bChecked) { if (m_bGLView) diff --git a/ui/zenoedit/viewport/displaywidget.h b/ui/zenoedit/viewport/displaywidget.h index 6602842c88..afb73ed217 100644 --- a/ui/zenoedit/viewport/displaywidget.h +++ b/ui/zenoedit/viewport/displaywidget.h @@ -44,6 +44,7 @@ class DisplayWidget : public QWidget void moveToFrame(int frame); void setIsCurrent(bool isCurrent); bool isCurrent(); + void setLoopPlaying(bool enable); protected: void mouseReleaseEvent(QMouseEvent* event) override; public slots: diff --git a/ui/zenoedit/viewport/optixviewport.cpp b/ui/zenoedit/viewport/optixviewport.cpp index facc3d390a..96df674910 100644 --- a/ui/zenoedit/viewport/optixviewport.cpp +++ b/ui/zenoedit/viewport/optixviewport.cpp @@ -168,6 +168,11 @@ bool OptixWorker::recordFrame_impl(VideoRecInfo recInfo, int frame) return true; } +void OptixWorker::onSetLoopPlaying(bool enbale) +{ + m_zenoVis->setLoopPlaying(enbale); +} + void OptixWorker::stop() { m_pTimer->stop(); @@ -251,6 +256,7 @@ ZOptixViewport::ZOptixViewport(QWidget* parent) connect(this, &ZOptixViewport::sig_switchTimeFrame, m_worker, &OptixWorker::onFrameSwitched); connect(this, &ZOptixViewport::sig_togglePlayButton, m_worker, &OptixWorker::onPlayToggled); connect(this, &ZOptixViewport::sig_setRenderSeparately, m_worker, &OptixWorker::setRenderSeparately); + connect(this, &ZOptixViewport::sig_setLoopPlaying, m_worker, &OptixWorker::onSetLoopPlaying); setRenderSeparately(false, false); m_thdOptix.start(); diff --git a/ui/zenoedit/viewport/optixviewport.h b/ui/zenoedit/viewport/optixviewport.h index e8b75e6715..10768d93fa 100644 --- a/ui/zenoedit/viewport/optixviewport.h +++ b/ui/zenoedit/viewport/optixviewport.h @@ -33,9 +33,10 @@ public slots: void cancelRecording(); void setRenderSeparately(bool updateLightCameraOnly, bool updateMatlOnly); void onSetSafeFrames(bool bLock, int nx, int ny); + bool recordFrame_impl(VideoRecInfo recInfo, int frame); + void onSetLoopPlaying(bool enbale); private: - bool recordFrame_impl(VideoRecInfo recInfo, int frame); Zenovis *m_zenoVis; QImage m_renderImg; @@ -81,6 +82,7 @@ class ZOptixViewport : public QWidget void sig_setSafeFrames(bool bLock, int nx, int ny); void sig_cancelRecording(); void sig_setRenderSeparately(bool updateLightCameraOnly, bool updateMatlOnly); + void sig_setLoopPlaying(bool enable); public slots: void onFrameRunFinished(int frame); diff --git a/ui/zenoedit/viewport/zenovis.cpp b/ui/zenoedit/viewport/zenovis.cpp index 34667f77fa..ffb2196066 100644 --- a/ui/zenoedit/viewport/zenovis.cpp +++ b/ui/zenoedit/viewport/zenovis.cpp @@ -96,6 +96,15 @@ void Zenovis::updateCameraFront(QVector3D center, QVector3D front, QVector3D up) } } +void Zenovis::setLoopPlaying(bool enable) { + m_loopPlaying = enable; +} + +bool Zenovis::isLoopPlaying() +{ + return m_loopPlaying; +} + void Zenovis::startPlay(bool bPlaying) { m_playing = bPlaying; @@ -175,8 +184,13 @@ void Zenovis::doFrameUpdate() if (inserted) { emit objectsUpdated(frameid); } - if (m_playing) + if (m_playing) { + if (m_loopPlaying && frameid == zeno::getSession().globalComm->frameRange().second) + { + frameid = zeno::getSession().globalComm->frameRange().first - 1; + } setCurrentFrameId(frameid + 1); + } } /* diff --git a/ui/zenoedit/viewport/zenovis.h b/ui/zenoedit/viewport/zenovis.h index 1ae30d2ea1..282857e10d 100644 --- a/ui/zenoedit/viewport/zenovis.h +++ b/ui/zenoedit/viewport/zenovis.h @@ -52,6 +52,8 @@ public slots: zenovis::Session *getSession() const; void updatePerspective(QVector2D const &resolution, PerspectiveInfo const &perspective); void updateCameraFront(QVector3D center, QVector3D front, QVector3D up); + void setLoopPlaying(bool enable); + bool isLoopPlaying(); //private: void doFrameUpdate(); @@ -69,6 +71,7 @@ public slots: //QList m_frame_files; //bool m_bAddPoint = false; + bool m_loopPlaying = false; }; #endif diff --git a/ui/zenoedit/viewportinteraction/picker.cpp b/ui/zenoedit/viewportinteraction/picker.cpp index 701d6a68ce..005baddf10 100644 --- a/ui/zenoedit/viewportinteraction/picker.cpp +++ b/ui/zenoedit/viewportinteraction/picker.cpp @@ -151,9 +151,17 @@ void Picker::pick(int x0, int y0, int x1, int y1) { auto selected = picker->getPicked(x0, y0, x1, y1); // qDebug() << "pick: " << selected.c_str(); if (scene->select_mode == zenovis::PICK_OBJECT) { + if (selected.empty()) { + selected_prims.clear(); + return; + } load_from_str(selected, zenovis::PICK_OBJECT); } else { + if (selected.empty()) { + selected_elements.clear(); + return; + } load_from_str(selected, scene->select_mode); if (picked_elems_callback) picked_elems_callback(selected_elements); } diff --git a/ui/zenoedit/zwidgetostream.cpp b/ui/zenoedit/zwidgetostream.cpp index afd644eac8..34201858b6 100644 --- a/ui/zenoedit/zwidgetostream.cpp +++ b/ui/zenoedit/zwidgetostream.cpp @@ -18,8 +18,18 @@ ZWidgetErrStream::~ZWidgetErrStream() m_stream.rdbuf(m_old_buf); } +bool ZWidgetErrStream::isGUIThread() +{ + //return true; + return QThread::currentThread() == qApp->thread(); +} + std::streamsize ZWidgetErrStream::xsputn(const char* p, std::streamsize n) { + if (!isGUIThread()) { + return _base::xsputn(p, n); + } + for (auto q = p; q != p + n; ++q) // make it visible to both real-console and luzh-log-panel putchar(*q); if (auto it = std::find(p, p + n, '\n'); it == p + n) { @@ -42,6 +52,9 @@ std::streamsize ZWidgetErrStream::xsputn(const char* p, std::streamsize n) void ZWidgetErrStream::appendFormatMsg(std::string const &str) { //format like: //"[I 14:15:11.810] (unknown:0) begin frame 89" + if (!isGUIThread()) { + return; + } QMessageLogger logger("zeno", 0, 0); @@ -91,6 +104,10 @@ void ZWidgetErrStream::registerMsgHandler() void ZWidgetErrStream::customMsgHandler(QtMsgType type, const QMessageLogContext& context, const QString& msg) { + if (!isGUIThread()) { + return; + } + if (!zenoApp) return; QString fileName = QString::fromUtf8(context.file); int ln = context.line; diff --git a/ui/zenoedit/zwidgetostream.h b/ui/zenoedit/zwidgetostream.h index a18e8eee96..8c9f71a351 100644 --- a/ui/zenoedit/zwidgetostream.h +++ b/ui/zenoedit/zwidgetostream.h @@ -24,6 +24,7 @@ class ZWidgetErrStream : public std::basic_streambuf private: static void customMsgHandler(QtMsgType type, const QMessageLogContext &, const QString &msg); + static bool isGUIThread(); std::ostream &m_stream; std::streambuf *m_old_buf; diff --git a/ui/zenoui/comctrl/dialog/zenoheatmapeditor.cpp b/ui/zenoui/comctrl/dialog/zenoheatmapeditor.cpp index 4d1f0a4541..5181342c37 100644 --- a/ui/zenoui/comctrl/dialog/zenoheatmapeditor.cpp +++ b/ui/zenoui/comctrl/dialog/zenoheatmapeditor.cpp @@ -4,6 +4,7 @@ #include #include #include "zassert.h" +#include "zeno/utils/vec.h" ZenoRampSelector::ZenoRampSelector(ZenoRampBar* pRampBar, QGraphicsItem* parent) @@ -355,8 +356,8 @@ void SVColorView::mouseMoveEvent(QMouseEvent* event) void SVColorView::updateColorByMouse(const QPointF& pos) { qreal m_H = m_color.hueF(); - qreal m_S = pos.x() / this->width(); - qreal m_V = 1 - pos.y() / this->height(); + qreal m_S = zeno::clamp(pos.x() / this->width(), qreal(0), qreal(1)); + qreal m_V = zeno::clamp(1 - pos.y() / this->height(), qreal(0), qreal(1)); setColor(QColor::fromHsvF(m_H, m_S, m_V)); } diff --git a/ui/zenoui/comctrl/dialog/zenoheatmapeditor.ui b/ui/zenoui/comctrl/dialog/zenoheatmapeditor.ui index 4dd7a72397..41d5bf42a0 100644 --- a/ui/zenoui/comctrl/dialog/zenoheatmapeditor.ui +++ b/ui/zenoui/comctrl/dialog/zenoheatmapeditor.ui @@ -6,8 +6,8 @@ 0 0 - 293 - 496 + 497 + 497
diff --git a/ui/zenoui/comctrl/ztoolbutton.cpp b/ui/zenoui/comctrl/ztoolbutton.cpp index 9252be1546..11d6efc46f 100644 --- a/ui/zenoui/comctrl/ztoolbutton.cpp +++ b/ui/zenoui/comctrl/ztoolbutton.cpp @@ -421,6 +421,7 @@ void ZToolButton::mouseReleaseEvent(QMouseEvent* e) else if (m_options & Opt_SwitchAnimation) { emit toggled(!animInfo.mOnOff); + setChecked(!animInfo.mOnOff); } emit clicked(); } diff --git a/zeno/include/zeno/utils/fileio.h b/zeno/include/zeno/utils/fileio.h index f839520c0d..9ef942c7d4 100644 --- a/zeno/include/zeno/utils/fileio.h +++ b/zeno/include/zeno/utils/fileio.h @@ -144,4 +144,11 @@ class BinaryReader { return ret; } }; + +template +void bin_write_le(std::vector &data, T e) { + auto cur = data.size(); + data.resize(cur + sizeof(T)); + *(T*)&data[cur] = e; +} } diff --git a/zeno/include/zeno/utils/type_traits.h b/zeno/include/zeno/utils/type_traits.h index c807268330..1ff175ec34 100644 --- a/zeno/include/zeno/utils/type_traits.h +++ b/zeno/include/zeno/utils/type_traits.h @@ -6,6 +6,7 @@ #include #include #include +#include namespace zeno { @@ -268,4 +269,20 @@ struct identity { } }; +// port from https://en.cppreference.com/w/cpp/numeric/bit_cast +template +std::enable_if_t< + sizeof(To) == sizeof(From) && + std::is_trivially_copyable_v && + std::is_trivially_copyable_v, + To> +bit_cast(const From& src) noexcept { + static_assert(std::is_trivially_constructible_v, + "This implementation additionally requires " + "destination type to be trivially constructible"); + + To dst; + std::memcpy(&dst, &src, sizeof(To)); + return dst; +} } diff --git a/zeno/src/nodes/mtl/ShaderBlendMode.cpp b/zeno/src/nodes/mtl/ShaderBlendMode.cpp index d07fa26cdd..28a047a71e 100644 --- a/zeno/src/nodes/mtl/ShaderBlendMode.cpp +++ b/zeno/src/nodes/mtl/ShaderBlendMode.cpp @@ -139,7 +139,7 @@ namespace zeno }, { "subtract", - " return max(base + blend - 1.0, 0.0);\n" + " return max(base - blend , 0.0);\n" }, { "vividLight", diff --git a/zeno/src/nodes/mtl/ShaderFinalize.cpp b/zeno/src/nodes/mtl/ShaderFinalize.cpp index ea1c5f793e..c32f218526 100644 --- a/zeno/src/nodes/mtl/ShaderFinalize.cpp +++ b/zeno/src/nodes/mtl/ShaderFinalize.cpp @@ -75,7 +75,7 @@ struct ShaderFinalize : INode { get_input("basecolor", std::make_shared(vec3f(1.0f))), get_input("metallic", std::make_shared(float(0.0f))), get_input("roughness", std::make_shared(float(0.4f))), - get_input("specular", std::make_shared(float(0.5f))), + get_input("specular", std::make_shared(float(1.0f))), get_input("subsurface", std::make_shared(float(0.0f))), get_input("thickness", std::make_shared(float(0.0f))), get_input("sssParam", std::make_shared(vec3f(1.0f))), @@ -223,7 +223,7 @@ ZENDEFNODE(ShaderFinalize, { {"vec3f", "basecolor", "1,1,1"}, {"float", "metallic", "0.0"}, {"float", "roughness", "0.4"}, - {"float", "specular", "0.5"}, + {"float", "specular", "1.0"}, {"float", "subsurface", "0.0"}, {"float", "thickness", "0.0"}, {"vec3f", "sssParam", "1,1,1"}, diff --git a/zeno/src/nodes/num/PrintNumeric.cpp b/zeno/src/nodes/num/PrintNumeric.cpp index 3233d2005a..4853be46ca 100644 --- a/zeno/src/nodes/num/PrintNumeric.cpp +++ b/zeno/src/nodes/num/PrintNumeric.cpp @@ -33,6 +33,8 @@ struct PrintNumeric : zeno::INode { auto hint = get_param("hint"); std::cout << hint << ": "; std::visit([](auto const &val) { + using T = std::decay_t; + std::cout << (std::string)typeid(T).name() + " :"; do_print _(val); }, obj->value); std::cout << std::endl; diff --git a/zeno/src/nodes/prim/MakeGridPrimitive.cpp b/zeno/src/nodes/prim/MakeGridPrimitive.cpp index 6731cfafa5..67117ff3da 100644 --- a/zeno/src/nodes/prim/MakeGridPrimitive.cpp +++ b/zeno/src/nodes/prim/MakeGridPrimitive.cpp @@ -123,53 +123,92 @@ struct Make2DGridPrimitive : INode { ax *= scale; ay *= scale; } - auto dir = get_param("Direction"); - if(dir == "YZ") - { - ax = zeno::vec3f(0,ax[0],0); - ay = zeno::vec3f(0, 0, ay[1]); - } - if(dir == "XZ") - { - ay = zeno::vec3f(0,0,ay[1]); - } + auto dir = get_param("Direction"); + if(dir == "YZ") + { + ax = zeno::vec3f(0,ax[0],0); + ay = zeno::vec3f(0, 0, ay[1]); + } + if(dir == "XZ") + { + ay = zeno::vec3f(0,0,ay[1]); + } - if (get_param("isCentered")) - o -= (ax + ay) / 2; - ax *= dx; ay *= dy; + if (get_param("isCentered")) + o -= (ax + ay) / 2; + ax *= dx; ay *= dy; - auto prim = std::make_shared(); - prim->resize(nx * ny); - auto &pos = prim->add_attr("pos"); + auto prim = std::make_shared(); + prim->resize(nx * ny); + auto &pos = prim->add_attr("pos"); + + auto layout = get_param("Layout"); + if (layout == "Column-major") { #pragma omp parallel for collapse(2) - for (intptr_t y = 0; y < ny; y++) - for (intptr_t x = 0; x < nx; x++) { - intptr_t index = y * nx + x; - vec3f p = o + x * ax + y * ay; - size_t i = x + y * nx; - pos[i] = p; - } - if (get_param("hasUV")) { - auto &uv = prim->verts.add_attr("uv"); - for (intptr_t y = 0; y < ny; y++) - for (intptr_t x = 0; x < nx; x++) { - size_t i = x + y * nx; - uv[i] = {float(x) / float(nx - 1), float(y) / float(ny - 1), 0}; - } - } - if (get_param("hasFaces")) { - prim->tris.resize((nx - 1) * (ny - 1) * 2); + for (intptr_t y = 0; y < ny; y++) + for (intptr_t x = 0; x < nx; x++) { + intptr_t index = y * nx + x; + vec3f p = o + x * ax + y * ay; + size_t i = x + y * nx; + pos[i] = p; + } + if (get_param("hasUV")) { + auto &uv = prim->verts.add_attr("uv"); + for (intptr_t y = 0; y < ny; y++) + for (intptr_t x = 0; x < nx; x++) { + size_t i = x + y * nx; + uv[i] = {float(x) / float(nx - 1), float(y) / float(ny - 1), 0}; + } + } + if (get_param("hasFaces")) { + prim->tris.resize((nx - 1) * (ny - 1) * 2); +#pragma omp parallel for collapse(2) + for (intptr_t y = 0; y < ny - 1; y++) + for (intptr_t x = 0; x < nx - 1; x++) { + intptr_t index = y * (nx - 1) + x; + prim->tris[index * 2][2] = y * nx + x; + prim->tris[index * 2][1] = y * nx + x + 1; + prim->tris[index * 2][0] = (y + 1) * nx + x + 1; + prim->tris[index * 2 + 1][2] = (y + 1) * nx + x + 1; + prim->tris[index * 2 + 1][1] = (y + 1) * nx + x; + prim->tris[index * 2 + 1][0] = y * nx + x; + } + } + } else { #pragma omp parallel for collapse(2) - for (intptr_t y = 0; y < ny-1; y++) for (intptr_t x = 0; x < nx-1; x++) { - intptr_t index = y * (nx - 1) + x; - prim->tris[index * 2][2] = y * nx + x; - prim->tris[index * 2][1] = y * nx + x + 1; - prim->tris[index * 2][0] = (y + 1) * nx + x + 1; - prim->tris[index * 2 + 1][2] = (y + 1) * nx + x + 1; - prim->tris[index * 2 + 1][1] = (y + 1) * nx + x; - prim->tris[index * 2 + 1][0] = y * nx + x; + for (intptr_t x = 0; x < nx; x++) + for (intptr_t y = 0; y < ny; y++) { + intptr_t index = x * ny + y; + vec3f p = o + x * ax + y * ay; + size_t i = x * ny + y; + pos[i] = p; + } + + if (get_param("hasUV")) { + auto &uv = prim->verts.add_attr("uv"); + for (intptr_t x = 0; x < nx; x++) + for (intptr_t y = 0; y < ny; y++) { + size_t i = x * ny + y; + uv[i] = {float(x) / float(nx - 1), float(y) / float(ny - 1), 0}; + } + } + + if (get_param("hasFaces")) { + prim->tris.resize((nx - 1) * (ny - 1) * 2); +#pragma omp parallel for collapse(2) + for (intptr_t x = 0; x < nx - 1; x++) + for (intptr_t y = 0; y < ny - 1; y++) { + intptr_t index = x * (ny - 1) + y; + prim->tris[index * 2][2] = x * ny + y; + prim->tris[index * 2][1] = x * ny + y + 1; + prim->tris[index * 2][0] = (x + 1) * ny + y + 1; + prim->tris[index * 2 + 1][2] = (x + 1) * ny + y + 1; + prim->tris[index * 2 + 1][1] = (x + 1) * ny + y; + prim->tris[index * 2 + 1][0] = x * ny + y; + } + } } - } + prim->userData().set("nx", std::make_shared((int)nx));//zhxx prim->userData().set("ny", std::make_shared((int)ny));//zhxx set_output("prim", std::move(prim)); @@ -188,6 +227,7 @@ ZENDEFNODE(Make2DGridPrimitive, {"PrimitiveObject", "prim"}, }, /* params: */ { {"enum XZ XY YZ", "Direction", "XZ"}, // zhxxhappy + {"enum Column-major Row-major", "Layout", "Column-major"}, {"bool", "isCentered", "0"}, {"bool", "hasFaces", "1"}, {"bool", "hasUV", "0"}, @@ -434,4 +474,4 @@ ZENO_DEFNODE(MakeBoxPrimitive)( } } ); -} // namespace zeno +} // namespace zeno \ No newline at end of file diff --git a/zeno/src/nodes/prim/PrimitiveHeatmap.cpp b/zeno/src/nodes/prim/PrimitiveHeatmap.cpp index 739c598f7e..e46240ccfb 100644 --- a/zeno/src/nodes/prim/PrimitiveHeatmap.cpp +++ b/zeno/src/nodes/prim/PrimitiveHeatmap.cpp @@ -135,8 +135,9 @@ ZENDEFNODE(PrimitiveColorByHeatmap, }, /* params: */ { {"string", "attrName", "rho"}, }, /* category: */ { - "deprecated", + "visualize", }}); + struct PrimSample1D : zeno::INode { virtual void apply() override { auto prim = get_input("prim"); diff --git a/zeno/src/nodes/prim/UVProjectFromPlane.cpp b/zeno/src/nodes/prim/UVProjectFromPlane.cpp index c2060c0b02..23b15edc76 100644 --- a/zeno/src/nodes/prim/UVProjectFromPlane.cpp +++ b/zeno/src/nodes/prim/UVProjectFromPlane.cpp @@ -375,9 +375,10 @@ std::shared_ptr readPFMFile(std::string const &path) { return img; } -struct ReadImageFile : INode { +struct ReadImageFile : INode {//todo: select custom color space virtual void apply() override { auto path = get_input2("path"); + auto linearize = get_input2("Linearize Non-linear Images"); if (zeno::ends_with(path, ".exr", false)) { set_output("image", readExrFile(path)); } @@ -385,13 +386,20 @@ struct ReadImageFile : INode { set_output("image", readPFMFile(path)); } else { - set_output("image", readImageFile(path)); + auto image = readImageFile(path); + if (!linearize) { + for (auto i = 0; i < image->size(); i++) { + image->verts[i] = pow(image->verts[i], 1.0/2.2f); + } + } + set_output("image", image); } } }; ZENDEFNODE(ReadImageFile, { { {"readpath", "path"}, + {"bool", "Linearize Non-linear Images", "1"}, }, { {"PrimitiveObject", "image"}, diff --git a/zenovis/src/bate/FrameBufferPicker.cpp b/zenovis/src/bate/FrameBufferPicker.cpp index d27dee3bc4..31b2283214 100644 --- a/zenovis/src/bate/FrameBufferPicker.cpp +++ b/zenovis/src/bate/FrameBufferPicker.cpp @@ -481,11 +481,11 @@ struct FrameBufferPicker : IPicker { string result; if (scene->select_mode == zenovis::PICK_OBJECT) { - if (!pixel.has_object()) return ""; + if (!pixel.has_object() || !id_table.count(pixel.obj_id)) return ""; result = id_table[pixel.obj_id]; } else { - if (!pixel.has_object() || !pixel.has_element()) return ""; + if (!pixel.has_object() || !pixel.has_element() || !id_table.count(pixel.obj_id)) return ""; result = id_table[pixel.obj_id] + ":" + std::to_string(pixel.elem_id - 1); } @@ -517,8 +517,8 @@ struct FrameBufferPicker : IPicker { // read pixels int pixel_count = rect_w * rect_h; - auto* pixels = new PixelInfo[pixel_count]; - CHECK_GL(glReadPixels(start_x, start_y, rect_w, rect_h, GL_RGB_INTEGER, GL_UNSIGNED_INT, pixels)); + std::vector pixels(pixel_count); + CHECK_GL(glReadPixels(start_x, start_y, rect_w, rect_h, GL_RGB_INTEGER, GL_UNSIGNED_INT, pixels.data())); // output buffer to image // auto* img_pixels = new PixelInfo[w * h]; diff --git a/zenovis/xinxinoptix/DeflMatShader.cu b/zenovis/xinxinoptix/DeflMatShader.cu index f1c91b1a81..afc33a8e0f 100644 --- a/zenovis/xinxinoptix/DeflMatShader.cu +++ b/zenovis/xinxinoptix/DeflMatShader.cu @@ -848,6 +848,7 @@ extern "C" __global__ void __closesthit__radiance() while(DisneyBSDF::SampleDisney2( prd->seed, + prd->eventseed, basecolor, sssParam, sssColor, @@ -1232,18 +1233,18 @@ extern "C" __global__ void __closesthit__radiance() dot(attrs.H, attrs.L), false); mat2 = evalReflectance(zenotex, rt_data->uniforms, attrs); } - float misWeight = BRDFBasics::PowerHeuristic(envpdf, ffPdf); + float misWeight = BRDFBasics::PowerHeuristic(tmpPdf, ffPdf); misWeight = misWeight>0.0f?misWeight:1.0f; misWeight = ffPdf>1e-5f?misWeight:0.0f; - misWeight = envpdf>1e-5?misWeight:0.0f; + misWeight = tmpPdf>1e-5?misWeight:0.0f; prd->radiance += misWeight * 1.0f / (float)NSamples * - light_attenuation / envpdf * 2.0f * (thin > 0.5f ? float3(mat2.reflectance) : lbrdf); + light_attenuation / tmpPdf * 2.0f * (thin > 0.5f ? float3(mat2.reflectance) : lbrdf); prd->radiance_d = rd * vec3(misWeight * 1.0f / (float)NSamples * - light_attenuation / envpdf * 2.0f); + light_attenuation / tmpPdf * 2.0f); prd->radiance_s = rs * vec3(misWeight * 1.0f / (float)NSamples * - light_attenuation / envpdf * 2.0f); + light_attenuation / tmpPdf * 2.0f); prd->radiance_t = rt * vec3(misWeight * 1.0f / (float)NSamples * - light_attenuation / envpdf * 2.0f); + light_attenuation / tmpPdf * 2.0f); } //prd->radiance = float3(clamp(vec3(prd->radiance), vec3(0.0f), vec3(100.0f))); } diff --git a/zenovis/xinxinoptix/DisneyBSDF.h b/zenovis/xinxinoptix/DisneyBSDF.h index 07f836eace..84b22f40bd 100644 --- a/zenovis/xinxinoptix/DisneyBSDF.h +++ b/zenovis/xinxinoptix/DisneyBSDF.h @@ -609,13 +609,13 @@ namespace DisneyBSDF{ wm = wm.z<0.0f?-wm:wm; BRDFBasics::TintColors(mix(baseColor, sssColor, subsurface), eta, specularTint, sheenTint, F0, Csheen, Cspec0); - Cspec0 = Cspec0 * specular; + Cspec0 = Cspec0; //material layer mix weight float dielectricWt = (1.0 - metallic) * (1.0 - specTrans); float metalWt = metallic; float glassWt = (1.0 - metallic) * specTrans; - float schlickWt = BRDFBasics::SchlickWeight(abs(wo.z)); + float schlickWt = BRDFBasics::SchlickWeight(abs(dot(wo, wm))); float psss = subsurface/(1.0f + subsurface); //event probability float diffPr = dielectricWt ; @@ -660,11 +660,11 @@ namespace DisneyBSDF{ } if(dielectricPr>0.0 && reflect) { - float F = clamp((BRDFBasics::DielectricFresnel(HoV, 1.0 / ior) - F0) / (1.0 - F0),0.0f,1.0f); + float F = BRDFBasics::DielectricFresnel(abs(dot(wm, wo)), ior); float ax, ay; BRDFBasics::CalculateAnisotropicParams(roughness,anisotropic,ax,ay); vec3 s = BRDFBasics::EvalMicrofacetReflection(ax, ay, wo, wi, wm, - mix(Cspec0, vec3(1.0f), F), tmpPdf) * dielectricWt * illum; + mix(Cspec0, vec3(1.0f), F) * specular * 0.5f, tmpPdf) * dielectricWt * illum; sterm = sterm + s; f = f + s; fPdf += tmpPdf * dielectricPr; @@ -690,7 +690,7 @@ namespace DisneyBSDF{ vec3 wm = normalize(wi + wo); float F = BRDFBasics::DielectricFresnel(abs(dot(wm, wo)), entering?ior:1.0/ior); - vec3 s = BRDFBasics::EvalMicrofacetReflection(ax, ay, wo, wi, wm, vec3(F), + vec3 s = BRDFBasics::EvalMicrofacetReflection(ax, ay, wo, wi, wm, vec3(F) * specular, tmpPdf) * glassWt; sterm = sterm + s; f = f + s; @@ -1642,6 +1642,7 @@ namespace DisneyBSDF{ static __inline__ __device__ bool SampleDisney2( unsigned int& seed, + unsigned int& eventseed, vec3 baseColor, vec3 transmiianceColor, vec3 sssColor, @@ -1692,8 +1693,11 @@ namespace DisneyBSDF{ float eta = dot(wo, N)>0?ior:1.0f/ior; rotateTangent(T, B, N, anisoRotation * 2 * 3.1415926f); world2local(wo, T, B, N); - float r1 = rnd(seed); - float r2 = rnd(seed); + float2 r = sobolRnd(eventseed); + float r1 = r.x; + float r2 = r.y; +// float r1 = rnd(seed); +// float r2 = rnd(seed); vec3 Csheen, Cspec0; float F0; @@ -1706,7 +1710,15 @@ namespace DisneyBSDF{ float metalWt = metallic; float glassWt = (1.0 - metallic) * specTrans; - float schlickWt = BRDFBasics::SchlickWeight(abs(wo.z)); + float ax, ay; + BRDFBasics::CalculateAnisotropicParams(roughness,anisotropic,ax,ay); + vec3 wm = BRDFBasics::SampleGGXVNDF(wo, ax, ay, r1, r2); + float hov1 = abs(wo.z); + float hov2 = abs(dot(wo, wm)); + float c = pow(smoothstep(0.0f,0.2f,roughness),2.0f); + + float hov = mix(hov1, hov2, c); + float schlickWt = BRDFBasics::SchlickWeight(hov); float psss = subsurface/(1.0f + subsurface); //dielectricWt *= 1.0f - psub; @@ -1739,11 +1751,12 @@ namespace DisneyBSDF{ prd->fromDiff = false; if(r3first_hit_type; prd->first_hit_type = prd->depth==0?DIFFUSE_HIT:first_hit_type; if(wo.z<0 && subsurface>0)//inside, scattering, go out for sure { - wi = BRDFBasics::UniformSampleHemisphere(rnd(seed), rnd(seed)); + wi = BRDFBasics::UniformSampleHemisphere(r1, r2); flag = transmissionEvent; isSS = false; } @@ -1758,7 +1771,7 @@ namespace DisneyBSDF{ }else { //go inside - wi = -BRDFBasics::UniformSampleHemisphere(rnd(seed), rnd(seed)); + wi = -BRDFBasics::UniformSampleHemisphere(r1, r2); isSS = true; flag = transmissionEvent; vec3 color = mix(baseColor, sssColor, subsurface) * psss; @@ -1821,6 +1834,7 @@ namespace DisneyBSDF{ } else if(r3first_hit_type; prd->first_hit_type = prd->depth==0?SPECULAR_HIT:first_hit_type; float ax, ay; @@ -1844,6 +1858,7 @@ namespace DisneyBSDF{ }else if(r3first_hit_type = prd->depth==0? (isReflection==1?SPECULAR_HIT:TRANSMIT_HIT):first_hit_type; }else if(r3first_hit_type; prd->first_hit_type = prd->depth==0?SPECULAR_HIT:first_hit_type; vec3 wm = BRDFBasics::SampleGTR1(ccRough, r1, r2); @@ -2376,8 +2392,8 @@ static __inline__ __device__ vec3 hdrSky( vec3 col2 = clamp(col, vec3(0.0f), vec3(upperBound)); int i = u * params.skynx; int j = v * params.skyny; - float p = params.skycdf[params.skynx * params.skyny + j * params.skynx + i]; - pdf = p / (2.0f * M_PIf * M_PIf * sin(((float)j+0.5f)/(float)params.skyny*M_PIf)); + //float p = params.skycdf[params.skynx * params.skyny + j * params.skynx + i]; + pdf = luminance(col) / params.envavg / (2.0f * M_PIf * M_PIf); return mix(col, col2, isclamp); } diff --git a/zenovis/xinxinoptix/OptiXStuff.h b/zenovis/xinxinoptix/OptiXStuff.h index 4295b71903..22ce93ac65 100644 --- a/zenovis/xinxinoptix/OptiXStuff.h +++ b/zenovis/xinxinoptix/OptiXStuff.h @@ -579,6 +579,7 @@ inline std::map g_tex_last_write_t inline std::optional sky_tex; inline std::map sky_nx_map; inline std::map sky_ny_map; +inline std::map sky_avg_map; inline std::map> sky_cdf_map; @@ -592,6 +593,7 @@ inline void calc_sky_cdf_map(int nx, int ny, int nc, T *img) { auto &sky_cdf = sky_cdf_map[sky_tex.value()]; auto &sky_pdf = sky_pdf_map[sky_tex.value()]; auto &sky_start = sky_start_map[sky_tex.value()]; + auto &sky_avg = sky_avg_map[sky_tex.value()]; sky_nx = nx; sky_ny = ny; //we need to recompute cdf @@ -620,6 +622,7 @@ inline void calc_sky_cdf_map(int nx, int ny, int nc, T *img) { } } float total_illum = sky_cdf[sky_cdf.size()-1]; + sky_avg = total_illum / ((float)nx * (float)ny); for(int ii=0;ii( idx.y*w + idx.x, subframe_index ); + int seedy = idx.y/4, seedx = idx.x/8; + int sid = (idx.y%4) * 8 + idx.x%8; + unsigned int seed = tea<4>( idx.y * w + idx.x, subframe_index); + unsigned int eventseed = tea<4>( idx.y * w + idx.x, subframe_index + 1); float focalPlaneDistance = cam.focalPlaneDistance>0.01f? cam.focalPlaneDistance : 0.01f; float aperture = clamp(cam.aperture,0.0f,100.0f); aperture/=10; @@ -95,24 +98,26 @@ extern "C" __global__ void __raygen__rg() float3 tmp_albedo{}; float3 tmp_normal{}; - + unsigned int sobolseed = subframe_index; do { // The center of each pixel is at fraction (0.5,0.5) - float2 subpixel_jitter = { - rnd(seed), - rnd(seed) - }; + float2 subpixel_jitter = sobolRnd(sobolseed); +// { +// rnd(seed), +// rnd(seed) +// }; float2 d = 2.0f * make_float2( ( static_cast( idx.x + params.windowCrop_min.x ) + subpixel_jitter.x ) / static_cast( w ), ( static_cast( idx.y + params.windowCrop_min.y ) + subpixel_jitter.y ) / static_cast( h ) ) - 1.0f; //float3 ray_direction = normalize(cam.right * d.x + cam.up * d.y + cam.front); - float2 r01 = { - rnd(seed), - rnd(seed) - }; + float2 r01 = sobolRnd(sobolseed); +// { +// rnd(seed), +// rnd(seed) +// }; float r0 = r01.x * 2.0f * M_PIf; float r1 = r01.y * aperture * aperture; @@ -137,6 +142,7 @@ extern "C" __global__ void __raygen__rg() prd.countEmitted = true; prd.done = false; prd.seed = seed; + prd.eventseed = eventseed; prd.opacity = 0; prd.flags = 0; prd.next_ray_is_going_inside = false; diff --git a/zenovis/xinxinoptix/SDK/cuda/random.h b/zenovis/xinxinoptix/SDK/cuda/random.h index 428ff52816..0608f73b97 100644 --- a/zenovis/xinxinoptix/SDK/cuda/random.h +++ b/zenovis/xinxinoptix/SDK/cuda/random.h @@ -120,14 +120,14 @@ static __device__ __inline__ float2 sobolRnd(unsigned int & seed) { - // uint2 ip = Sobol(seed); - // ip.x = OwenScramble(ip.x, 0xe7843fbfu); - // ip.y = OwenScramble(ip.y, 0x8d8fb1e0u); - // seed++; - // seed = seed&0xffffffffu; - // return make_float2(float(ip.x)/float(0xffffffffu), float(ip.y)/float(0xffffffffu)); - - return make_float2(rnd(seed), rnd(seed)); + uint2 ip = Sobol(seed); + ip.x = OwenScramble(ip.x, 0xe7843fbfu); + ip.y = OwenScramble(ip.y, 0x8d8fb1e0u); + seed++; + seed = seed&0xffffffffu; + return make_float2(float(ip.x)/float(0xffffffffu), float(ip.y)/float(0xffffffffu)); + + //return make_float2(rnd(seed), rnd(seed)); } static __device__ __inline__ diff --git a/zenovis/xinxinoptix/TraceStuff.h b/zenovis/xinxinoptix/TraceStuff.h index 2b7ea9b285..3350ea8fec 100644 --- a/zenovis/xinxinoptix/TraceStuff.h +++ b/zenovis/xinxinoptix/TraceStuff.h @@ -83,6 +83,7 @@ struct RadiancePRD float prob; float prob2; unsigned int seed; + unsigned int eventseed; unsigned int flags; bool hitEnv; int countEmitted; diff --git a/zenovis/xinxinoptix/optixPathTracer.cpp b/zenovis/xinxinoptix/optixPathTracer.cpp index fdf1392c90..0f2c52474c 100644 --- a/zenovis/xinxinoptix/optixPathTracer.cpp +++ b/zenovis/xinxinoptix/optixPathTracer.cpp @@ -55,7 +55,7 @@ #include #include #include -#include +#include #include #include @@ -498,20 +498,20 @@ static void launchSubframe( sutil::CUDAOutputBuffer& output_buffer, Path state.params.frame_buffer_B = (*output_buffer_background).map(); state.params.num_lights = g_lights.size(); state.params.denoise = denoise; - for(int j=0;j<4;j++){ - for(int i=0;i<4;i++){ + for(int j=0;j<1;j++){ + for(int i=0;i<1;i++){ state.params.tile_i = i; state.params.tile_j = j; - state.params.tile_w = state.params.windowSpace.x/4 + 1; - state.params.tile_h = state.params.windowSpace.y/4 + 1; + state.params.tile_w = state.params.windowSpace.x; + state.params.tile_h = state.params.windowSpace.y; - CUDA_SYNC_CHECK(); + //CUDA_SYNC_CHECK(); CUDA_CHECK( cudaMemcpy((void*)state.d_params2 , &state.params, sizeof( Params ), cudaMemcpyHostToDevice ) ); - CUDA_SYNC_CHECK(); + //CUDA_SYNC_CHECK(); OPTIX_CHECK( optixLaunch( state.pipeline, @@ -1645,8 +1645,19 @@ void optixinit( int argc, char* argv[] ) #endif xinxinoptix::update_procedural_sky(zeno::vec2f(-60, 45), 1, zeno::vec2f(0, 0), 0, 0.1, 1.0, 0.0, 6500.0); - xinxinoptix::using_hdr_sky(false); + xinxinoptix::using_hdr_sky(true); xinxinoptix::show_background(false); + std::string parent_path; + auto cur_path = std::filesystem::current_path().string(); + if (zeno::ends_with(cur_path, "bin")) { + parent_path = std::filesystem::current_path().parent_path().parent_path().string(); + } + else { + parent_path = cur_path; + } + OptixUtil::sky_tex = parent_path + "/hdr/studio_small_08_1k.hdr"; + OptixUtil::addTexture(OptixUtil::sky_tex.value()); + xinxinoptix::update_hdr_sky(0, {0, 0, 0}, 0.8); } @@ -2300,6 +2311,7 @@ void optixupdatematerial(std::vector &shaders) state.params.sky_texture = OptixUtil::g_tex[OptixUtil::sky_tex.value()]->texture; state.params.skynx = OptixUtil::sky_nx_map[OptixUtil::sky_tex.value()]; state.params.skyny = OptixUtil::sky_ny_map[OptixUtil::sky_tex.value()]; + state.params.envavg = OptixUtil::sky_avg_map[OptixUtil::sky_tex.value()]; CUDA_CHECK( cudaMalloc( reinterpret_cast( &state.sky_cdf_p.reset() ), sizeof(float2)*OptixUtil::sky_cdf_map[OptixUtil::sky_tex.value()].size() ) ); CUDA_CHECK( cudaMalloc( reinterpret_cast( &state.sky_start.reset() ), @@ -3406,7 +3418,7 @@ void optixrender(int fbo, int samples, bool denoise, bool simpleRender) { // updateState( *output_buffer_transmit, state.params); // updateState( *output_buffer_background, state.params); - const int max_samples_once = 32; + const int max_samples_once = 1; for (int f = 0; f < samples; f += max_samples_once) { // 张心欣不要改这里 state.params.samples_per_launch = std::min(samples - f, max_samples_once); diff --git a/zenovis/xinxinoptix/optixPathTracer.h b/zenovis/xinxinoptix/optixPathTracer.h index 0fcd8bb2cf..8f0d750552 100644 --- a/zenovis/xinxinoptix/optixPathTracer.h +++ b/zenovis/xinxinoptix/optixPathTracer.h @@ -90,6 +90,7 @@ struct Params int skynx; int skyny; + float envavg; float sky_rot; float sky_rot_x; diff --git a/zenovis/xinxinoptix/sampleConfig.h.in b/zenovis/xinxinoptix/sampleConfig.h.in index 0d2159b4bf..a5ccad28cd 100644 --- a/zenovis/xinxinoptix/sampleConfig.h.in +++ b/zenovis/xinxinoptix/sampleConfig.h.in @@ -50,7 +50,7 @@ #define CUDA_NVRTC_OPTIONS \ "-std=c++11", \ "-arch", \ - "compute_50", \ + "compute_75", \ "-use_fast_math", \ "-lineinfo", \ "-default-device", \ diff --git a/zenovis/xinxinoptix/zxxglslvec.h b/zenovis/xinxinoptix/zxxglslvec.h index ec13b01ec8..8743d32c29 100644 --- a/zenovis/xinxinoptix/zxxglslvec.h +++ b/zenovis/xinxinoptix/zxxglslvec.h @@ -1232,3 +1232,55 @@ __forceinline__ __device__ vec3 refract(vec3 I, vec3 N, float eta) else return -eta * I + (eta * dot(N, I) - sqrt(k)) * N; } + +__forceinline__ __device__ unsigned int laine_karras_permutation(unsigned int x, unsigned int seed) { + x += seed; + x ^= x*0x6c50b47cu; + x ^= x*0xb82f1e52u; + x ^= x*0xc7afe638u; + x ^= x*0x8d22f6e6u; + return x; +} + +__forceinline__ __device__ unsigned int reverse_bits(unsigned int x) { + x = ((x >> 1u) & 0x55555555u) | ((x & 0x55555555u) << 1u); + x = ((x >> 2u) & 0x33333333u) | ((x & 0x33333333u) << 2u); + x = ((x >> 4u) & 0x0f0f0f0fu) | ((x & 0x0f0f0f0fu) << 4u); + x = ((x >> 8u) & 0x00ff00ffu) | ((x & 0x00ff00ffu) << 8u); + x = ((x >> 16u) ) | ((x ) << 16u); + return x; +} +__forceinline__ __device__ unsigned int nested_uniform_scramble(unsigned int x, unsigned int seed) { + x = reverse_bits(x); + x = laine_karras_permutation(x, seed); + x = reverse_bits(x); + return x; +} +__forceinline__ __device__ unsigned int hash_combine(unsigned int seed, unsigned int v) { + return seed ^ (v + 0x9e3779b9u + (seed << 6u) + (seed >> 2u)); +} + +__forceinline__ __device__ uint2 sobol_2d(unsigned int index) { + uint2 p = make_uint2(0u); + uint2 d = make_uint2(0x80000000u); + + for(; index != 0u; index >>= 1u) { + if((index & 1u) != 0u) { + p.x ^= d.x; + p.y ^= d.y; + } + + d.x >>= 1u; // 1st dimension Sobol matrix, is same as base 2 Van der Corput + d.y ^= d.y >> 1u; // 2nd dimension Sobol matrix + } + + return p; +} + +__forceinline__ __device__ vec2 shuffled_scrambled_sobol_2d(unsigned int index, unsigned int seed) { + index = nested_uniform_scramble(index, seed); + uint2 p = sobol_2d(index); + p.x = nested_uniform_scramble(p.x, hash_combine(seed, 0u)); + p.y = nested_uniform_scramble(p.y, hash_combine(seed, 1u)); + return vec2(p.x, p.y)*exp2(-32.); +} \ No newline at end of file