Name
*
Code
{"properties":{"frame":6391,"maxFrame":600,"maxFrameLocked":false,"realtimeState":true,"mainCameraPath":"/cameras/cameras:sopGroup/perspectiveCamera_MAIN","versions":{"polygonjs":"1.2.70"}},"root":{"type":"root","nodes":{"environment":{"type":"geo","nodes":{"attribDelete1":{"type":"attribDelete","params":{"name":"N"},"inputs":["fuse1"]},"box1":{"type":"box","params":{"sizes":[27,1,17]}},"box2":{"type":"box","params":{"size":0.9}},"copy1":{"type":"copy","inputs":["box2","attribDelete1"]},"fuse1":{"type":"fuse","inputs":["point1"]},"hemisphereLight1":{"type":"hemisphereLight","params":{"intensity":0.18}},"jitter1":{"type":"jitter","inputs":["scatter1"]},"merge1":{"type":"merge","params":{"compact":true},"inputs":["copy1","box1"]},"merge2":{"type":"merge","inputs":["hemisphereLight1","polarTransform1"]},"merge3":{"type":"merge","inputs":["merge1","merge2"],"flags":{"display":true}},"plane1":{"type":"plane","params":{"size":[9,9],"useSegmentsCount":true}},"point1":{"type":"point","params":{"updateX":true,"x":"round(@P.x)","updateY":true,"y":"round(@P.y)","updateZ":true,"z":"round(@P.z)"},"inputs":["jitter1"]},"polarTransform1":{"type":"polarTransform","params":{"longitude":115.2,"latitude":32.4,"depth":10.6},"inputs":["spotLight1"]},"scatter1":{"type":"scatter","params":{"pointsCount":69},"inputs":["transform1"]},"spotLight1":{"type":"spotLight","params":{"angle":59.4,"penumbra":0.33,"castShadow":true,"shadowBias":0}},"transform1":{"type":"transform","params":{"t":[0,2.1448255697777263,0],"r":[5.686624845899085,0,-4.762641819539954]},"inputs":["plane1"]}},"flags":{"display":true}},"objects":{"type":"geo","nodes":{"PRE_DELETE":{"type":"null","inputs":["subnet_colors"]},"actor_appliedToIndividualObjects":{"type":"actor","nodes":{"getObject1":{"type":"getObject","params":{"getCurrentObject":false,"mask":"*perspectiveCamera_MAIN"},"maxInputsCount":2},"getObjectAttribute1":{"type":"getObjectAttribute","params":{"attribName":"audioUrl","type":4},"connection_points":{"in":[{"name":"Object3D","type":"Object3D","isArray":false}],"out":[{"name":"val","type":"string","isArray":false}]}},"getObjectProperty1":{"type":"getObjectProperty"},"onObjectClick1":{"type":"onObjectClick"},"onObjectHover1":{"type":"onObjectHover"},"setObjectAttribute1":{"type":"setObjectAttribute","params":{"trigger":{"overriden_options":{}},"attribName":"lookAtTarget","type":6,"lerp":{"type":"float","default_value":1,"options":{"spare":true,"editable":true}},"val":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":false}}},"maxInputsCount":4,"inputs":[{"index":0,"inputName":"trigger","node":"onObjectClick1","output":"trigger"},{"index":1,"inputName":"Object3D","node":"getObject1","output":"object3D"},null,{"index":3,"inputName":"val","node":"getObjectProperty1","output":"position"}],"connection_points":{"in":[{"name":"trigger","type":"trigger","isArray":false},{"name":"Object3D","type":"Object3D","isArray":false},{"name":"lerp","type":"float","isArray":false},{"name":"val","type":"Vector3","isArray":false}],"out":[{"name":"trigger","type":"trigger","isArray":false}]}},"setObjectAttribute2":{"type":"setObjectAttribute","params":{"trigger":{"overriden_options":{}},"attribName":"hovered","type":0,"lerp":{"type":"float","default_value":1,"options":{"spare":true,"editable":true}},"val":{"type":"boolean","default_value":false,"options":{"spare":true,"editable":false}}},"maxInputsCount":4,"inputs":[{"index":0,"inputName":"trigger","node":"onObjectHover1","output":"trigger"},null,null,{"index":3,"inputName":"val","node":"onObjectHover1","output":"hovered"}],"connection_points":{"in":[{"name":"trigger","type":"trigger","isArray":false},{"name":"Object3D","type":"Object3D","isArray":false},{"name":"lerp","type":"float","isArray":false},{"name":"val","type":"boolean","isArray":false}],"out":[{"name":"trigger","type":"trigger","isArray":false}]}},"setObjectAttribute4":{"type":"setObjectAttribute","params":{"trigger":{"overriden_options":{}},"attribName":"focused","lerp":{"type":"float","default_value":1,"options":{"spare":true,"editable":true}},"val":{"type":"float","default_value":0,"options":{"spare":true,"editable":true},"raw_input":1}},"maxInputsCount":4,"inputs":[{"index":0,"inputName":"trigger","node":"setObjectAttribute5","output":"trigger"},{"index":1,"inputName":"Object3D","node":"getObject1","output":"object3D"}],"connection_points":{"in":[{"name":"trigger","type":"trigger","isArray":false},{"name":"Object3D","type":"Object3D","isArray":false},{"name":"lerp","type":"float","isArray":false},{"name":"val","type":"float","isArray":false}],"out":[{"name":"trigger","type":"trigger","isArray":false}]}},"setObjectAttribute5":{"type":"setObjectAttribute","params":{"trigger":{"overriden_options":{}},"attribName":"audioUrl","type":4,"lerp":{"type":"float","default_value":1,"options":{"spare":true,"editable":true}},"val":{"type":"string","default_value":"0","options":{"spare":true,"editable":false},"raw_input":"1"}},"maxInputsCount":4,"inputs":[{"index":0,"inputName":"trigger","node":"setObjectAttribute1","output":"trigger"},{"index":1,"inputName":"Object3D","node":"getObject1","output":"object3D"},null,{"index":3,"inputName":"val","node":"getObjectAttribute1","output":"val"}],"connection_points":{"in":[{"name":"trigger","type":"trigger","isArray":false},{"name":"Object3D","type":"Object3D","isArray":false},{"name":"lerp","type":"float","isArray":false},{"name":"val","type":"string","isArray":false}],"out":[{"name":"trigger","type":"trigger","isArray":false}]}}},"inputs":["copy1"]},"actor_objectsParent":{"type":"actor","nodes":{"onChildAttributeUpdate1":{"type":"onChildAttributeUpdate","params":{"attribName":"hovered","type":0},"connection_points":{"in":[],"out":[{"name":"trigger","type":"trigger","isArray":false},{"name":"newValues","type":"boolean[]","isArray":true},{"name":"previousValues","type":"boolean[]","isArray":true}]}},"or1":{"type":"or","inputs":[{"index":0,"inputName":"booleans","node":"onChildAttributeUpdate1","output":"newValues"}],"connection_points":{"in":[{"name":"booleans","type":"boolean[]","isArray":true}],"out":[{"name":"val","type":"boolean","isArray":false}]}},"setViewer1":{"type":"setViewer","params":{"className":{"overriden_options":{}},"set":{"overriden_options":{}}},"maxInputsCount":3,"inputs":[{"index":0,"inputName":"trigger","node":"onChildAttributeUpdate1","output":"trigger"},null,{"index":2,"inputName":"set","node":"or1","output":"val"}]}},"inputs":["hierarchy1"]},"attribCreate1":{"type":"attribCreate","params":{"class":1,"type":1,"name":"audioName","string":"636301__discordantscraps__cyber-ghost-trick-7"},"inputs":["transform1"]},"attribCreate2":{"type":"attribCreate","params":{"class":1,"type":1,"name":"audioUrl","string":"https://raw.githubusercontent.com/polygonjs/polygonjs-assets/master/audio/resources/freesound/short/`@audioName`.mp3"},"inputs":["merge1"]},"attribCreate3":{"type":"attribCreate","params":{"class":1,"type":1,"name":"audioName","string":"492495__soundflakes__atmosphere-distant-moaning-01"},"inputs":["transform2"]},"attribCreate4":{"type":"attribCreate","params":{"class":1,"type":1,"name":"audioName","string":"177242__deleted-user-3277771__cinematic-impact"},"inputs":["transform3"]},"attribCreate5":{"type":"attribCreate","params":{"class":1,"type":1,"name":"audioName","string":"33637__herbertboland__cinematicboomnorm"},"inputs":["transform4"]},"attribCreate6":{"type":"attribCreate","params":{"class":1,"type":1,"name":"audioName","string":"657826__the-sacha-rush__thoughtful-atmospheric-rapid-intro"},"inputs":["transform5"]},"attribCreate7":{"type":"attribCreate","params":{"class":1,"type":1,"name":"audioUrl","string":"`object('../delete1','audioUrl',0)`"},"inputs":["box1"]},"box1":{"type":"box","inputs":["delete1"]},"capsule1":{"type":"capsule"},"cone1":{"type":"cone","params":{"radius":0.81,"segmentsRadial":26,"direction":[0,1,0]}},"copy1":{"type":"copy","params":{"count":"objectsCount('../PRE_DELETE')"},"inputs":["transformReset1"]},"delete1":{"type":"delete","params":{"class":1,"invert":true,"byExpression":true,"expression":"@objnum==copy('../copy1')"},"inputs":["PRE_DELETE"]},"hierarchy1":{"type":"hierarchy","inputs":["actor_appliedToIndividualObjects"]},"merge1":{"type":"merge","params":{"inputsCount":5},"maxInputsCount":5,"inputs":["attribCreate1","attribCreate3","attribCreate4","attribCreate5","attribCreate6"]},"merge2":{"type":"merge","inputs":["objectProperties2","subnet_colors"],"flags":{"display":true}},"objectProperties1":{"type":"objectProperties","params":{"tcastShadow":true},"inputs":["attribCreate2"]},"objectProperties2":{"type":"objectProperties","params":{"tvisible":true,"visible":false},"inputs":["actor_objectsParent"]},"roundedBox1":{"type":"roundedBox"},"sphere1":{"type":"sphere"},"subnet_colors":{"type":"subnet","nodes":{"MAT":{"type":"materialsNetwork","nodes":{"meshStandardBuilder1":{"type":"meshStandardBuilder","nodes":{"attribute1":{"type":"attribute","params":{"name":"idn"},"connection_points":{"in":[],"out":[{"name":"val","type":"float"}]}},"floatToVec3_1":{"type":"floatToVec3","params":{"x":{"overriden_options":{}},"y":{"raw_input":0.68,"overriden_options":{}},"z":{"raw_input":0.71,"overriden_options":{}}},"inputs":[{"index":0,"inputName":"x","node":"multAdd1","output":"val"}]},"globals1":{"type":"globals"},"hsvToRgb1":{"type":"hsvToRgb","params":{"hsv":{"overriden_options":{}}},"inputs":[{"index":0,"inputName":"hsv","node":"floatToVec3_1","output":"vec3"}]},"multAdd1":{"type":"multAdd","params":{"value":{"type":"float","default_value":0,"options":{"spare":true,"editable":false}},"preAdd":{"type":"float","default_value":0,"options":{"spare":true,"editable":true}},"mult":{"type":"float","default_value":1,"options":{"spare":true,"editable":true},"raw_input":0.92},"postAdd":{"type":"float","default_value":0,"options":{"spare":true,"editable":true}}},"inputs":[{"index":0,"inputName":"value","node":"attribute1","output":"val"}],"connection_points":{"in":[{"name":"value","type":"float"},{"name":"preAdd","type":"float"},{"name":"mult","type":"float"},{"name":"postAdd","type":"float"}],"out":[{"name":"val","type":"float"}]}},"output1":{"type":"output","inputs":[null,null,{"index":2,"inputName":"color","node":"hsvToRgb1","output":"rgb"}]}},"persisted_config":{"material":{"metadata":{"version":4.5,"type":"Material","generator":"Material.toJSON"},"uuid":"/objects/subnet_colors/MAT/meshStandardBuilder1-main","type":"MeshStandardMaterial","name":"/objects/subnet_colors/MAT/meshStandardBuilder1","color":16777215,"roughness":1,"metalness":0,"emissive":0,"envMapIntensity":1,"depthFunc":3,"depthTest":true,"depthWrite":true,"colorWrite":true,"stencilWrite":false,"stencilWriteMask":255,"stencilFunc":519,"stencilRef":0,"stencilFuncMask":255,"stencilFail":7680,"stencilZFail":7680,"stencilZPass":7680,"fog":false},"onBeforeCompileDataJSONWithoutShaders":{"paramConfigs":[],"timeDependent":false,"resolutionDependent":false,"raymarchingLightsWorldCoordsDependent":false},"customMaterials":{"customDepthMaterial":{"material":{"metadata":{"version":4.5,"type":"Material","generator":"Material.toJSON"},"uuid":"/objects/subnet_colors/MAT/meshStandardBuilder1-customDepthMaterial","type":"MeshDepthMaterial","name":"customDepthMaterial","side":1,"depthFunc":3,"depthTest":true,"depthWrite":true,"colorWrite":true,"stencilWrite":false,"stencilWriteMask":255,"stencilFunc":519,"stencilRef":0,"stencilFuncMask":255,"stencilFail":7680,"stencilZFail":7680,"stencilZPass":7680,"depthPacking":3201},"onBeforeCompileDataJSONWithoutShaders":{"paramConfigs":[],"timeDependent":false,"resolutionDependent":false,"raymarchingLightsWorldCoordsDependent":false}},"customDistanceMaterial":{"material":{"metadata":{"version":4.5,"type":"Material","generator":"Material.toJSON"},"uuid":"/objects/subnet_colors/MAT/meshStandardBuilder1-customDistanceMaterial","type":"MeshDistanceMaterial","name":"customDistanceMaterial","depthFunc":3,"depthTest":true,"depthWrite":true,"colorWrite":true,"stencilWrite":false,"stencilWriteMask":255,"stencilFunc":519,"stencilRef":0,"stencilFuncMask":255,"stencilFail":7680,"stencilZFail":7680,"stencilZPass":7680},"onBeforeCompileDataJSONWithoutShaders":{"paramConfigs":[],"timeDependent":false,"resolutionDependent":false,"raymarchingLightsWorldCoordsDependent":false}},"customDepthDOFMaterial":{"material":{"metadata":{"version":4.5,"type":"Material","generator":"Material.toJSON"},"uuid":"/objects/subnet_colors/MAT/meshStandardBuilder1-customDepthDOFMaterial","type":"MeshDepthMaterial","name":"customDepthDOFMaterial","depthFunc":3,"depthTest":true,"depthWrite":true,"colorWrite":true,"stencilWrite":false,"stencilWriteMask":255,"stencilFunc":519,"stencilRef":0,"stencilFuncMask":255,"stencilFail":7680,"stencilZFail":7680,"stencilZPass":7680,"depthPacking":3200},"onBeforeCompileDataJSONWithoutShaders":{"paramConfigs":[],"timeDependent":false,"resolutionDependent":false,"raymarchingLightsWorldCoordsDependent":false}}}}}}},"attribId1":{"type":"attribId","params":{"class":1,"id":false},"inputs":["subnetInput1"]},"attribPromote1":{"type":"attribPromote","params":{"classFrom":1,"classTo":0,"name":"idn"},"inputs":["attribId1"]},"material1":{"type":"material","params":{"material":"../MAT/meshStandardBuilder1"},"inputs":["attribPromote1"]},"subnetInput1":{"type":"subnetInput","flags":{"display":true}},"subnetOutput1":{"type":"subnetOutput","inputs":["material1"]}},"inputs":["objectProperties1"]},"torus1":{"type":"torus","params":{"radius":0.27,"radiusTube":0.11,"direction":[0,0,1]}},"transform1":{"type":"transform","params":{"applyOn":1,"t":[-3.9099003509189485,4.240886921982162,0]},"inputs":["roundedBox1"]},"transform2":{"type":"transform","params":{"applyOn":1,"t":[-0.9748541410391344,3.1391173361667635,2.958713760859885]},"inputs":["capsule1"]},"transform3":{"type":"transform","params":{"applyOn":1,"t":[4.581050898493111,4.240886921982162,0]},"inputs":["cone1"]},"transform4":{"type":"transform","params":{"applyOn":1,"t":[-0.36924297935036243,4.240886921982162,-2.8668085813199458]},"inputs":["sphere1"]},"transform5":{"type":"transform","params":{"applyOn":1,"t":[2.6725700820644875,1.9986000670529571,3.1543483596892585]},"inputs":["torus1"]},"transformReset1":{"type":"transformReset","params":{"mode":2},"inputs":["attribCreate7"]}},"flags":{"display":true}},"cameras":{"type":"geo","nodes":{"actor1":{"type":"actor","nodes":{"add1":{"type":"add","params":{"add0":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":false}},"add1":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":true},"raw_input":[0,0,3]}},"inputs":[{"index":0,"inputName":"add0","node":"getObjectAttribute2","output":"val"}],"connection_points":{"in":[{"name":"add0","type":"Vector3","isArray":false},{"name":"add1","type":"Vector3","isArray":false}],"out":[{"name":"sum","type":"Vector3","isArray":false}]}},"compare1":{"type":"compare","params":{"test":0,"value0":{"type":"float","default_value":0,"options":{"spare":true,"editable":false}},"value1":{"type":"float","default_value":0,"options":{"spare":true,"editable":true},"raw_input":1}},"inputs":[{"index":0,"inputName":"value0","node":"onObjectAttributeUpdate1","output":"newValue"}],"connection_points":{"in":[{"name":"value0","type":"float","isArray":false},{"name":"value1","type":"float","isArray":false}],"out":[{"name":"val","type":"boolean","isArray":false}]}},"complement1":{"type":"complement","params":{"value":{"type":"boolean","default_value":false,"options":{"spare":true,"editable":false}}},"inputs":[{"index":0,"inputName":"value","node":"compare1","output":"val"}],"connection_points":{"in":[{"name":"value","type":"boolean","isArray":false}],"out":[{"name":"complement","type":"boolean","isArray":false}]}},"constant_defaultLookAt":{"type":"constant","params":{"type":6},"connection_points":{"in":[],"out":[{"name":"val","type":"Vector3","isArray":false}]}},"getObject1":{"type":"getObject","params":{"getCurrentObject":false,"mask":"*/perspectiveCamera_ROTATING"},"maxInputsCount":2},"getObjectAttribute1":{"type":"getObjectAttribute","params":{"attribName":"blend"},"connection_points":{"in":[{"name":"Object3D","type":"Object3D","isArray":false}],"out":[{"name":"val","type":"float","isArray":false}]}},"getObjectAttribute2":{"type":"getObjectAttribute","params":{"attribName":"lookAtTarget","type":6},"connection_points":{"in":[{"name":"Object3D","type":"Object3D","isArray":false}],"out":[{"name":"val","type":"Vector3","isArray":false}]}},"getObjectAttribute3":{"type":"getObjectAttribute","params":{"attribName":"focused"},"connection_points":{"in":[{"name":"Object3D","type":"Object3D","isArray":false}],"out":[{"name":"val","type":"float","isArray":false}]}},"getObjectAttribute4":{"type":"getObjectAttribute","params":{"attribName":"audioUrl","type":4},"connection_points":{"in":[{"name":"Object3D","type":"Object3D","isArray":false}],"out":[{"name":"val","type":"string","isArray":false}]}},"getObjectWorldPosition1":{"type":"getObjectWorldPosition","inputs":[{"index":0,"inputName":"Object3D","node":"getObject1","output":"object3D"}]},"mix1":{"type":"mix","params":{"value0":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":false}},"value1":{"type":"vector3","default_value":[1,1,1],"options":{"spare":true,"editable":false}},"blend":{"type":"float","default_value":0.5,"options":{"spare":true,"editable":false}}},"inputs":[{"index":0,"inputName":"value0","node":"getObjectWorldPosition1","output":"worldPosition"},{"index":1,"inputName":"value1","node":"add1","output":"sum"},{"index":2,"inputName":"blend","node":"getObjectAttribute1","output":"val"}],"connection_points":{"in":[{"name":"value0","type":"Vector3","isArray":false},{"name":"value1","type":"Vector3","isArray":false},{"name":"blend","type":"float","isArray":false}],"out":[{"name":"val","type":"Vector3","isArray":false}]}},"mix2":{"type":"mix","params":{"value0":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":false}},"value1":{"type":"vector3","default_value":[1,1,1],"options":{"spare":true,"editable":false}},"blend":{"type":"float","default_value":0.5,"options":{"spare":true,"editable":false}}},"inputs":[{"index":0,"inputName":"value0","node":"constant_defaultLookAt","output":"val"},{"index":1,"inputName":"value1","node":"getObjectAttribute2","output":"val"},{"index":2,"inputName":"blend","node":"getObjectAttribute1","output":"val"}],"connection_points":{"in":[{"name":"value0","type":"Vector3","isArray":false},{"name":"value1","type":"Vector3","isArray":false},{"name":"blend","type":"float","isArray":false}],"out":[{"name":"val","type":"Vector3","isArray":false}]}},"onObjectAttributeUpdate1":{"type":"onObjectAttributeUpdate","params":{"attribName":"focused"},"connection_points":{"in":[],"out":[{"name":"trigger","type":"trigger","isArray":false},{"name":"newValue","type":"float","isArray":false},{"name":"previousValue","type":"float","isArray":false}]}},"onTick1":{"type":"onTick"},"onTick2":{"type":"onTick"},"pauseAudioSource1":{"type":"pauseAudioSource","params":{"node":"/positionalAudio1/OUT"},"inputs":[{"index":0,"inputName":"trigger","node":"triggerFilter2","output":"trigger"}]},"playAudioSource1":{"type":"playAudioSource","params":{"node":"/positionalAudio1/OUT"},"inputs":[{"index":0,"inputName":"trigger","node":"setParam1","output":"trigger"}]},"setObjectAttribute1":{"type":"setObjectAttribute","params":{"trigger":{"overriden_options":{}},"attribName":"blend","lerp":{"type":"float","default_value":1,"options":{"spare":true,"editable":true},"raw_input":0.03},"val":{"type":"float","default_value":0,"options":{"spare":true,"editable":false}}},"maxInputsCount":4,"inputs":[{"index":0,"inputName":"trigger","node":"onTick2","output":"trigger"},null,null,{"index":3,"inputName":"val","node":"getObjectAttribute3","output":"val"}],"connection_points":{"in":[{"name":"trigger","type":"trigger","isArray":false},{"name":"Object3D","type":"Object3D","isArray":false},{"name":"lerp","type":"float","isArray":false},{"name":"val","type":"float","isArray":false}],"out":[{"name":"trigger","type":"trigger","isArray":false}]}},"setObjectAttribute2":{"type":"setObjectAttribute","params":{"trigger":{"overriden_options":{}},"attribName":"focused","lerp":{"type":"float","default_value":1,"options":{"spare":true,"editable":true}},"val":{"type":"float","default_value":0,"options":{"spare":true,"editable":true}}},"maxInputsCount":4,"inputs":[{"index":0,"inputName":"trigger","node":"playAudioSource1","output":"trigger"}],"connection_points":{"in":[{"name":"trigger","type":"trigger","isArray":false},{"name":"Object3D","type":"Object3D","isArray":false},{"name":"lerp","type":"float","isArray":false},{"name":"val","type":"float","isArray":false}],"out":[{"name":"trigger","type":"trigger","isArray":false}]}},"setObjectLookAt1":{"type":"setObjectLookAt","params":{"targetPosition":{"overriden_options":{}},"up":{"overriden_options":{}},"lerp":{"raw_input":0.05,"overriden_options":{}},"invertDirection":{"overriden_options":{}},"updateMatrix":{"overriden_options":{}}},"maxInputsCount":7,"inputs":[{"index":0,"inputName":"trigger","node":"setObjectPosition1","output":"trigger"},null,{"index":2,"inputName":"targetPosition","node":"mix2","output":"val"}]},"setObjectPosition1":{"type":"setObjectPosition","params":{"position":{"overriden_options":{}},"lerp":{"raw_input":0.05,"overriden_options":{}},"updateMatrix":{"overriden_options":{}}},"maxInputsCount":5,"inputs":[{"index":0,"inputName":"trigger","node":"onTick1","output":"trigger"},null,{"index":2,"inputName":"position","node":"mix1","output":"val"}]},"setParam1":{"type":"setParam","params":{"param":"/positionalAudio1/file1/url","type":4,"lerp":{"type":"float","default_value":1,"options":{"spare":true,"editable":true}},"val":{"type":"string","default_value":"0","options":{"spare":true,"editable":false}}},"maxInputsCount":3,"inputs":[{"index":0,"inputName":"trigger","node":"triggerFilter1","output":"trigger"},null,{"index":2,"inputName":"val","node":"getObjectAttribute4","output":"val"}],"connection_points":{"in":[{"name":"trigger","type":"trigger","isArray":false},{"name":"lerp","type":"float","isArray":false},{"name":"val","type":"string","isArray":false}],"out":[{"name":"trigger","type":"trigger","isArray":false}]}},"triggerDelay1":{"type":"triggerDelay","params":{"delay":5000},"maxInputsCount":2,"inputs":[{"index":0,"inputName":"trigger","node":"triggerFilter1","output":"trigger"}]},"triggerFilter1":{"type":"triggerFilter","params":{"condition":{"overriden_options":{}}},"maxInputsCount":2,"inputs":[{"index":0,"inputName":"trigger","node":"onObjectAttributeUpdate1","output":"trigger"},{"index":1,"inputName":"condition","node":"compare1","output":"val"}]},"triggerFilter2":{"type":"triggerFilter","params":{"condition":{"overriden_options":{}}},"maxInputsCount":2,"inputs":[{"index":0,"inputName":"trigger","node":"onObjectAttributeUpdate1","output":"trigger"},{"index":1,"inputName":"condition","node":"complement1","output":"complement"}]},"setObjectVisible1":{"type":"setObjectVisible","params":{"visible":{"overriden_options":{}}},"maxInputsCount":3,"inputs":[{"index":0,"inputName":"trigger","node":"onObjectAttributeUpdate1","output":"trigger"},{"index":1,"inputName":"Object3D","node":"getObject2","output":"object3D"},{"index":2,"inputName":"visible","node":"compare1","output":"val"}]},"getObject2":{"type":"getObject","params":{"getCurrentObject":0,"mask":"*hudObject"},"maxInputsCount":2}},"inputs":["attribCreate2"]},"actor2":{"type":"actor","nodes":{"floatToVec3_2":{"type":"floatToVec3","params":{"x":{"overriden_options":{}},"y":{"overriden_options":{}},"z":{"overriden_options":{}}},"inputs":[null,{"index":1,"inputName":"y","node":"multAdd1","output":"val"}]},"multAdd1":{"type":"multAdd","params":{"value":{"type":"float","default_value":0,"options":{"spare":true,"editable":false}},"preAdd":{"type":"float","default_value":0,"options":{"spare":true,"editable":true}},"mult":{"type":"float","default_value":1,"options":{"spare":true,"editable":true},"raw_input":0.3},"postAdd":{"type":"float","default_value":0,"options":{"spare":true,"editable":true}}},"inputs":[{"index":0,"inputName":"value","node":"onTick1","output":"time"}],"connection_points":{"in":[{"name":"value","type":"float","isArray":false},{"name":"preAdd","type":"float","isArray":false},{"name":"mult","type":"float","isArray":false},{"name":"postAdd","type":"float","isArray":false}],"out":[{"name":"val","type":"float","isArray":false}]}},"onTick1":{"type":"onTick"},"setObjectRotation1":{"type":"setObjectRotation","params":{"rotation":{"overriden_options":{}},"lerp":{"overriden_options":{}},"updateMatrix":{"overriden_options":{}}},"maxInputsCount":5,"inputs":[{"index":0,"inputName":"trigger","node":"onTick1","output":"trigger"},null,{"index":2,"inputName":"rotation","node":"floatToVec3_2","output":"vec3"}]}},"inputs":["hierarchy1"]},"attribCreate1":{"type":"attribCreate","params":{"class":1,"name":"lookAtTarget","size":3,"value3":[0,1.8,0]},"inputs":["attribCreate4"]},"attribCreate2":{"type":"attribCreate","params":{"class":1,"type":1,"name":"audioUrl","size":3,"value3":[0,1.8,0]},"inputs":["attribCreate1"]},"attribCreate3":{"type":"attribCreate","params":{"class":1,"name":"focused"},"inputs":["perspectiveCamera_MAIN"]},"attribCreate4":{"type":"attribCreate","params":{"class":1,"name":"blend"},"inputs":["attribCreate3"]},"cameraControls1":{"type":"cameraControls","nodes":{"cameraOrbitControls1":{"type":"cameraOrbitControls","params":{"target":[0.2421462470218893,0.20790490229898526,-0.4243705859269765]}}},"params":{"node":"cameraOrbitControls1"},"inputs":["perspectiveCamera_DEBUG"]},"hierarchy1":{"type":"hierarchy","inputs":["polarTransform1"]},"merge1":{"type":"merge","inputs":["merge2","cameraControls1"],"flags":{"display":true}},"merge2":{"type":"merge","inputs":["actor2","subnet_addAudioStop"]},"perspectiveCamera_DEBUG":{"type":"perspectiveCamera","params":{"position":[7.2,7.2,7.2]}},"perspectiveCamera_MAIN":{"type":"perspectiveCamera","params":{"position":[0,5,8.9]}},"perspectiveCamera_ROTATING":{"type":"perspectiveCamera"},"polarTransform1":{"type":"polarTransform","params":{"center":[0,1.2,0],"latitude":28.8,"depth":11.8},"inputs":["perspectiveCamera_ROTATING"]},"subnet_addAudioStop":{"type":"subnet","nodes":{"MAT":{"type":"materialsNetwork","nodes":{"meshBasic1":{"type":"meshBasic","params":{"color":[1,0,0],"depthWrite":false}}}},"actor1":{"type":"actor","nodes":{"getObject1":{"type":"getObject","params":{"getCurrentObject":false,"mask":"*perspectiveCamera_MAIN"},"maxInputsCount":2},"onObjectClick1":{"type":"onObjectClick"},"setObjectAttribute4":{"type":"setObjectAttribute","params":{"trigger":{"overriden_options":{}},"attribName":"focused","lerp":{"type":"float","default_value":1,"options":{"spare":true,"editable":true}},"val":{"type":"float","default_value":0,"options":{"spare":true,"editable":true}}},"maxInputsCount":4,"inputs":[{"index":0,"inputName":"trigger","node":"onObjectClick1","output":"trigger"},{"index":1,"inputName":"Object3D","node":"getObject1","output":"object3D"}],"connection_points":{"in":[{"name":"trigger","type":"trigger","isArray":false},{"name":"Object3D","type":"Object3D","isArray":false},{"name":"lerp","type":"float","isArray":false},{"name":"val","type":"float","isArray":false}],"out":[{"name":"trigger","type":"trigger","isArray":false}]}},"onObjectHover1":{"type":"onObjectHover"},"setViewer1":{"type":"setViewer","params":{"className":{"overriden_options":{}},"set":{"overriden_options":{}}},"maxInputsCount":3,"inputs":[{"index":0,"inputName":"trigger","node":"onObjectHover1","output":"trigger"},null,{"index":2,"inputName":"set","node":"onObjectHover1","output":"hovered"}]},"getDefaultCamera1":{"type":"getDefaultCamera"},"constant1":{"type":"constant","params":{"type":6,"vector3":[0.75,-0.8290000000000001,0.47]},"connection_points":{"in":[],"out":[{"name":"val","type":"Vector3","isArray":false}]}},"setObjectPosition1":{"type":"setObjectPosition","params":{"position":{"overriden_options":{}},"lerp":{"overriden_options":{}},"updateMatrix":{"overriden_options":{}}},"maxInputsCount":5,"inputs":[{"index":0,"inputName":"trigger","node":"onTick1","output":"trigger"},null,{"index":2,"inputName":"position","node":"Object3DWorldToLocal1","output":"local"}]},"onTick1":{"type":"onTick"},"Object3DWorldToLocal1":{"type":"Object3DWorldToLocal","params":{"Vector3":{"overriden_options":{}}},"inputs":[{"index":0,"inputName":"Object3D","node":"getDefaultCamera1","output":"camera"},{"index":1,"inputName":"Vector3","node":"vector3Unproject1","output":"position"}]},"vector3Unproject1":{"type":"vector3Unproject","params":{"Vector3":{"overriden_options":{}}},"inputs":[{"index":0,"inputName":"Vector3","node":"constant1","output":"val"},{"index":1,"inputName":"Camera","node":"getDefaultCamera1","output":"camera"}]}},"inputs":["objectProperties1"]},"fileGLTF1":{"type":"fileGLTF"},"hierarchy1":{"type":"hierarchy","params":{"mode":1},"inputs":["fileGLTF1"]},"material1":{"type":"material","params":{"material":"../MAT/meshBasic1"},"inputs":["transform1"]},"objectProperties1":{"type":"objectProperties","params":{"tname":1,"name":"hudObject","tvisible":1,"visible":0,"tcastShadow":true,"castShadow":false,"treceiveShadow":true,"receiveShadow":false},"inputs":["BVH1"]},"setChildren1":{"type":"setChildren","inputs":["subnetInput1","actor1"]},"sphere1":{"type":"sphere","params":{"radius":0.04}},"subnetInput1":{"type":"subnetInput"},"subnetOutput1":{"type":"subnetOutput","inputs":["setChildren1"]},"transform1":{"type":"transform","params":{"t":[0.484,-0.236,-0.7000000000000001]},"inputs":["transform2"],"flags":{"bypass":true,"display":true}},"transform2":{"type":"transform","params":{"scale":0.1},"inputs":["hierarchy1"]},"BVH1":{"type":"BVH","inputs":["material1"]}},"inputs":["actor1"]}},"flags":{"display":true}},"positionalAudio1":{"type":"positionalAudio","nodes":{"OUT":{"type":"null","inputs":["playInstrument1"]},"file1":{"type":"file","params":{"url":"https://raw.githubusercontent.com/polygonjs/polygonjs-assets/master/audio/resources/freesound/short/177242__deleted-user-3277771__cinematic-impact.mp3","autostart":false,"duration":7.922645833333333,"loop":false}},"playInstrument1":{"type":"playInstrument","inputs":["file1"]}},"params":{"audioNode":"OUT"},"flags":{"display":true}},"audioListener1":{"type":"audioListener","flags":{"display":true}}},"params":{"mainCameraPath":"/cameras/cameras:sopGroup/perspectiveCamera_MAIN","displayAudioIcon":1,"audioIconColor":[1,1,1]}},"ui":{"nodes":{"environment":{"pos":[-100,-100],"selection":["spotLight1"],"nodes":{"attribDelete1":{"pos":[150,350]},"box1":{"pos":[300,600]},"box2":{"pos":[-150,300]},"copy1":{"pos":[-50,600]},"fuse1":{"pos":[150,200]},"hemisphereLight1":{"pos":[550,550]},"jitter1":{"pos":[150,0]},"merge1":{"pos":[100,950]},"merge2":{"pos":[600,850]},"merge3":{"pos":[300,1150]},"plane1":{"pos":[150,-400]},"point1":{"pos":[150,100]},"polarTransform1":{"pos":[800,700]},"scatter1":{"pos":[150,-150]},"spotLight1":{"pos":[800,550]},"transform1":{"pos":[150,-250]}}},"objects":{"pos":[-100,0],"nodes":{"PRE_DELETE":{"pos":[-650,700]},"actor_appliedToIndividualObjects":{"pos":[-650,1650],"selection":["setObjectAttribute5"],"nodes":{"getObject1":{"pos":[350,800]},"getObjectAttribute1":{"pos":[850,250]},"getObjectProperty1":{"pos":[100,700]},"onObjectClick1":{"pos":[-50,50],"comment":"this sends a trigger when an object is clicked. The trigger is then received by [setObjectAttribute1](../setObjectAttribute1), which, unlike [setObjectAttribute2](../setObjectAttribute2), will not set an attribute on the current object, but instead on the camera. This happens because we override the `Object3D` input, with the node [getObject1](../getObject1), which fetches the camera by its name, using a mask `*perspectiveCamera_MAIN`"},"onObjectHover1":{"pos":[-50,-350],"comment":"this node sends a trigger whenever an object is hovered, or when the cursor does not hover it anymore. When that trigger is sent, it is received by [setObjectAttribute2](../setObjectAttribute2), which then sets the `hovered` attribute accordingly. This is then used by [actor_objectsParent](../../actor_objectsParent)"},"setObjectAttribute1":{"pos":[550,150],"comment":"as this node sets the `lookAtTarget` attribute on the camera, it needs a way to know what value it should set it to.\\n\\nIt takes that value from its `value` input, which comes from the node [getObjectProperty1](../getObjectProperty1), which returns the value of t he clicked object."},"setObjectAttribute2":{"pos":[350,-350]},"setObjectAttribute4":{"pos":[1450,150]},"setObjectAttribute5":{"pos":[1000,150],"comment":"here we set the `audioUrl` attribute on the camera object.\\n\\nThis will then be used in the [camera actor node](/cameras/actor1/getObjectAttribute4)"}}},"actor_objectsParent":{"pos":[-650,1950],"nodes":{"onChildAttributeUpdate1":{"pos":[-150,0],"comment":"this sends a trigger whenever one of its children `hovered` attribute changes.\\n\\nThis is then received by the [setViewer1](../setViewer1) node, which gets the value from the [or1](../or1) node, which returns `true` if any of its inputs is `true`, or `false` if none is. And its input is an array of the `hovered` attributes of its children."},"or1":{"pos":[200,150]},"setViewer1":{"pos":[400,0]}}},"attribCreate1":{"pos":[-1100,-400],"comment":"here we add an `audioName` attribute to the object, which is a short name for the audio file that will be played when clicking on it."},"attribCreate2":{"pos":[-500,0],"comment":"here we convert the `audioName` to the full url `audioUrl`. You could also just set the `audioUrl` directly for each object without the `audioName`."},"attribCreate3":{"pos":[-850,-400]},"attribCreate4":{"pos":[-600,-400]},"attribCreate5":{"pos":[-350,-400]},"attribCreate6":{"pos":[-50,-400]},"attribCreate7":{"pos":[-650,1050],"comment":"this copies the attribute `audioUrl` to the box"},"box1":{"pos":[-650,950]},"capsule1":{"pos":[-850,-650]},"cone1":{"pos":[-600,-650]},"copy1":{"pos":[-650,1450]},"delete1":{"pos":[-650,850]},"hierarchy1":{"pos":[-650,1800]},"merge1":{"pos":[-500,-100]},"merge2":{"pos":[-400,2400]},"objectProperties1":{"pos":[-500,400]},"objectProperties2":{"pos":[-650,2050],"comment":"this left branch creates a box for each input object. This is similar to how the [polynode cameraLookAtClickedObjects](https://market.polygonjs.com/gui/poly_nodes/sop/cameraLookAtClickableObjects) works."},"roundedBox1":{"pos":[-1100,-650]},"sphere1":{"pos":[-350,-650]},"subnet_colors":{"pos":[-500,550],"nodes":{"MAT":{"pos":[-200,150],"nodes":{"meshStandardBuilder1":{"pos":[0,250],"selection":["multAdd1"],"nodes":{"attribute1":{"pos":[-400,-200]},"floatToVec3_1":{"pos":[-150,-200]},"globals1":{"pos":[-200,0]},"hsvToRgb1":{"pos":[-50,-200]},"multAdd1":{"pos":[-300,-200]},"output1":{"pos":[200,0]}}}}},"attribId1":{"pos":[0,-150]},"attribPromote1":{"pos":[0,0]},"material1":{"pos":[0,150]},"subnetInput1":{"pos":[0,-250]},"subnetOutput1":{"pos":[0,250]}}},"torus1":{"pos":[-50,-650]},"transform1":{"pos":[-1100,-550]},"transform2":{"pos":[-850,-550]},"transform3":{"pos":[-600,-550]},"transform4":{"pos":[-350,-550]},"transform5":{"pos":[-50,-550]},"transformReset1":{"pos":[-650,1350]}}},"cameras":{"pos":[-100,100],"nodes":{"actor1":{"pos":[-200,-150],"comment":"Inside this actor node, we define how the camera reacts when the attributes `focused`, `lookAtTarget` and `audioUrl` change","nodes":{"add1":{"pos":[-350,-50]},"compare1":{"pos":[-300,-1050]},"complement1":{"pos":[-200,-750]},"constant_defaultLookAt":{"pos":[-50,50]},"getObject1":{"pos":[-600,-300]},"getObjectAttribute1":{"pos":[-450,450]},"getObjectAttribute2":{"pos":[-500,150]},"getObjectAttribute3":{"pos":[-150,-1450]},"getObjectAttribute4":{"pos":[-100,-1050],"comment":"here we read the attribute `audioUrl` on the camera, which was itself set by the clicked object from [this node](/objects/actor_appliedToIndividualObjects/setObjectAttribute5)"},"getObjectWorldPosition1":{"pos":[-300,-300]},"mix1":{"pos":[0,-150]},"mix2":{"pos":[200,150]},"onObjectAttributeUpdate1":{"pos":[-500,-1000]},"onTick1":{"pos":[-100,-450]},"onTick2":{"pos":[-150,-1600]},"pauseAudioSource1":{"pos":[350,-750]},"playAudioSource1":{"pos":[300,-1050],"comment":"This plays the audio. Once the file has completed, this node will trigger the following node on its right."},"setObjectAttribute1":{"pos":[250,-1600]},"setObjectAttribute2":{"pos":[500,-1250]},"setObjectLookAt1":{"pos":[550,-250]},"setObjectPosition1":{"pos":[250,-250]},"setParam1":{"pos":[100,-1050],"comment":"This changes the url of the [audio file node](/positionalAudio1/file1)"},"triggerDelay1":{"pos":[300,-1250]},"triggerFilter1":{"pos":[-150,-1250]},"triggerFilter2":{"pos":[0,-750]},"setObjectVisible1":{"pos":[350,-600]},"getObject2":{"pos":[150,-550]}}},"actor2":{"pos":[-500,0],"selection":["multAdd1"],"nodes":{"floatToVec3_2":{"pos":[200,150]},"multAdd1":{"pos":[100,150]},"onTick1":{"pos":[-100,0]},"setObjectRotation1":{"pos":[400,0]}}},"attribCreate1":{"pos":[-200,-600]},"attribCreate2":{"pos":[-200,-400],"comment":"here we add an empty attribute `audioUrl` to the camera, which will be set by the clicked object from [this node](/objects/actor_appliedToIndividualObjects/setObjectAttribute5)"},"attribCreate3":{"pos":[-200,-950]},"attribCreate4":{"pos":[-200,-750]},"cameraControls1":{"pos":[200,-100],"nodes":{"cameraOrbitControls1":{"pos":[0,0]}}},"hierarchy1":{"pos":[-500,-150]},"merge1":{"pos":[-100,450]},"merge2":{"pos":[-300,250]},"perspectiveCamera_DEBUG":{"pos":[200,-250]},"perspectiveCamera_MAIN":{"pos":[-200,-1100]},"perspectiveCamera_ROTATING":{"pos":[-500,-550]},"polarTransform1":{"pos":[-500,-350]},"subnet_addAudioStop":{"pos":[-200,50],"comment":"this parents a red sphere under the camera. This way it will appear in the frame like a HUD display","nodes":{"MAT":{"pos":[0,-300],"selection":["meshBasic1"],"nodes":{"meshBasic1":{"pos":[50,-150],"comment":"depthWrite is set to false, so that object with this material do not intersect with the rest of the scene"}}},"actor1":{"pos":[250,300],"nodes":{"getObject1":{"pos":[550,200]},"onObjectClick1":{"pos":[600,-50]},"setObjectAttribute4":{"pos":[950,0]},"onObjectHover1":{"pos":[650,-300]},"setViewer1":{"pos":[900,-300]},"getDefaultCamera1":{"pos":[250,-600]},"constant1":{"pos":[250,-800]},"setObjectPosition1":{"pos":[1050,-750]},"onTick1":{"pos":[850,-900]},"Object3DWorldToLocal1":{"pos":[750,-600]},"vector3Unproject1":{"pos":[500,-800]}}},"fileGLTF1":{"pos":[-50,-850]},"hierarchy1":{"pos":[-50,-750]},"material1":{"pos":[250,-300]},"objectProperties1":{"pos":[250,50],"comment":"make sure this object does not cast or receive shadows\\n"},"setChildren1":{"pos":[-200,450]},"sphere1":{"pos":[250,-600]},"subnetInput1":{"pos":[-200,100]},"subnetOutput1":{"pos":[-200,700]},"transform1":{"pos":[250,-450]},"transform2":{"pos":[-50,-600]},"BVH1":{"pos":[250,-100]}}}}},"positionalAudio1":{"pos":[150,100],"selection":["file1"],"nodes":{"OUT":{"pos":[0,0]},"file1":{"pos":[0,-350]},"playInstrument1":{"pos":[0,-100]}}},"audioListener1":{"pos":[150,0]}}},"shaders":{"/objects/subnet_colors/MAT/meshStandardBuilder1":{"vertex":"#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\n#include <common>\n\n\n\n// /objects/subnet_colors/MAT/meshStandardBuilder1/attribute1\nvarying float v_POLY_attribute_idn;\n\n// /objects/subnet_colors/MAT/meshStandardBuilder1/attribute1\nattribute float idn;\n\n\n\n\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\n\n\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/attribute1\n\tv_POLY_attribute_idn = float(idn);\n\t\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/output1\n\tvec3 transformed = position;\n\tvec3 objectNormal = normal;\n\t#ifdef USE_TANGENT\n\t\tvec3 objectTangent = vec3( tangent.xyz );\n\t#endif\n\n\n\n\t#include <morphcolor_vertex>\n// removed:\n//\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n// removed:\n//\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}","fragment":"#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULARINTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n\t#ifdef USE_SPECULARCOLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEENCOLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEENROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include <common>\n\n\n\n// /objects/subnet_colors/MAT/meshStandardBuilder1/hsvToRgb1\n// https://github.com/hughsk/glsl-hsv2rgb\n// https://stackoverflow.com/questions/15095909/from-rgb-to-hsv-in-opengl-glsl\nvec3 hsv2rgb(vec3 c) {\n\tvec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\n\tvec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\n\treturn c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\n}\n\n\n\n\n\n\n\n// /objects/subnet_colors/MAT/meshStandardBuilder1/attribute1\nvarying float v_POLY_attribute_idn;\n\n\n\n\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <bsdfs>\n#include <iridescence_fragment>\n#include <cube_uv_reflection_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_physical_pars_fragment>\n#include <fog_pars_fragment>\n#include <lights_pars_begin>\n#include <normal_pars_fragment>\n#include <lights_physical_pars_fragment>\n#include <transmission_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <clearcoat_pars_fragment>\n#include <iridescence_pars_fragment>\n#include <roughnessmap_pars_fragment>\n#include <metalnessmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nstruct SSSModel {\n\tbool isActive;\n\tvec3 color;\n\tfloat thickness;\n\tfloat power;\n\tfloat scale;\n\tfloat distortion;\n\tfloat ambient;\n\tfloat attenuation;\n};\n\nvoid RE_Direct_Scattering(\n\tconst in IncidentLight directLight,\n\tconst in GeometricContext geometry,\n\tconst in SSSModel sssModel,\n\tinout ReflectedLight reflectedLight\n\t){\n\tvec3 scatteringHalf = normalize(directLight.direction + (geometry.normal * sssModel.distortion));\n\tfloat scatteringDot = pow(saturate(dot(geometry.viewDir, -scatteringHalf)), sssModel.power) * sssModel.scale;\n\tvec3 scatteringIllu = (scatteringDot + sssModel.ambient) * (sssModel.color * (1.0-sssModel.thickness));\n\treflectedLight.directDiffuse += scatteringIllu * sssModel.attenuation * directLight.color;\n}\n\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\n\n\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/attribute1\n\tfloat v_POLY_attribute1_val = v_POLY_attribute_idn;\n\t\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/multAdd1\n\tfloat v_POLY_multAdd1_val = (0.92*(v_POLY_attribute1_val + 0.0)) + 0.0;\n\t\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/floatToVec3_1\n\tvec3 v_POLY_floatToVec3_1_vec3 = vec3(v_POLY_multAdd1_val, 0.68, 0.71);\n\t\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/hsvToRgb1\n\tvec3 v_POLY_hsvToRgb1_rgb = hsv2rgb(v_POLY_floatToVec3_1_vec3);\n\t\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/output1\n\tdiffuseColor.xyz = v_POLY_hsvToRgb1_rgb;\n\tfloat POLY_metalness = 1.0;\n\tfloat POLY_roughness = 1.0;\n\tvec3 POLY_emissive = vec3(1.0, 1.0, 1.0);\n\tSSSModel POLY_SSSModel = SSSModel(/*isActive*/false,/*color*/vec3(1.0, 1.0, 1.0), /*thickness*/0.1, /*power*/2.0, /*scale*/16.0, /*distortion*/0.1,/*ambient*/0.4,/*attenuation*/0.8 );\n\n\n\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive * POLY_emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\tfloat roughnessFactor = roughness * POLY_roughness;\n\n#ifdef USE_ROUGHNESSMAP\n\n\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\n\n\t// reads channel G, compatible with a combined OcclusionRoughnessMetallic (RGB) texture\n\troughnessFactor *= texelRoughness.g;\n\n#endif\n\n\tfloat metalnessFactor = metalness * POLY_metalness;\n\n#ifdef USE_METALNESSMAP\n\n\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\n\n\t// reads channel B, compatible with a combined OcclusionRoughnessMetallic (RGB) texture\n\tmetalnessFactor *= texelMetalness.b;\n\n#endif\n\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <clearcoat_normal_fragment_begin>\n\t#include <clearcoat_normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_physical_fragment>\n\t#include <lights_fragment_begin>\nif(POLY_SSSModel.isActive){\n\tRE_Direct_Scattering(directLight, geometry, POLY_SSSModel, reflectedLight);\n}\n\n\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include <transmission_fragment>\n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\t#endif\n\t#include <output_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}","customDepthMaterial.vertex":"#include <common>\n\n\n\n// /objects/subnet_colors/MAT/meshStandardBuilder1/attribute1\nvarying float v_POLY_attribute_idn;\n\n// /objects/subnet_colors/MAT/meshStandardBuilder1/attribute1\nattribute float idn;\n\n\n\n\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n// removed:\n//\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n// removed:\n//\t#include <begin_vertex>\n\n\n\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/attribute1\n\tv_POLY_attribute_idn = float(idn);\n\t\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/output1\n\tvec3 transformed = position;\n\tvec3 objectNormal = normal;\n\t#ifdef USE_TANGENT\n\t\tvec3 objectTangent = vec3( tangent.xyz );\n\t#endif\n\n\n\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvHighPrecisionZW = gl_Position.zw;\n}","customDepthMaterial.fragment":"\n// INSERT DEFINES\n\n\n#if DEPTH_PACKING == 3200\n\n\tuniform float opacity;\n\n#endif\n\n#include <common>\n\n\n\n// /objects/subnet_colors/MAT/meshStandardBuilder1/hsvToRgb1\n// https://github.com/hughsk/glsl-hsv2rgb\n// https://stackoverflow.com/questions/15095909/from-rgb-to-hsv-in-opengl-glsl\nvec3 hsv2rgb(vec3 c) {\n\tvec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\n\tvec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\n\treturn c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\n}\n\n\n\n\n\n\n\n// /objects/subnet_colors/MAT/meshStandardBuilder1/attribute1\nvarying float v_POLY_attribute_idn;\n\n\n\n\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\n\nvarying vec2 vHighPrecisionZW;\n\nstruct SSSModel {\n\tbool isActive;\n\tvec3 color;\n\tfloat thickness;\n\tfloat power;\n\tfloat scale;\n\tfloat distortion;\n\tfloat ambient;\n\tfloat attenuation;\n};\n\nvoid RE_Direct_Scattering(\n\tconst in IncidentLight directLight,\n\tconst in GeometricContext geometry,\n\tconst in SSSModel sssModel,\n\tinout ReflectedLight reflectedLight\n\t){\n\tvec3 scatteringHalf = normalize(directLight.direction + (geometry.normal * sssModel.distortion));\n\tfloat scatteringDot = pow(saturate(dot(geometry.viewDir, -scatteringHalf)), sssModel.power) * sssModel.scale;\n\tvec3 scatteringIllu = (scatteringDot + sssModel.ambient) * (sssModel.color * (1.0-sssModel.thickness));\n\treflectedLight.directDiffuse += scatteringIllu * sssModel.attenuation * directLight.color;\n}\n\nvoid main() {\n\n\t#include <clipping_planes_fragment>\n\n\tvec4 diffuseColor = vec4( 1.0 );\n\n\t#if DEPTH_PACKING == 3200\n\n\t\tdiffuseColor.a = opacity;\n\n\t#endif\n\n\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\n\n\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/attribute1\n\tfloat v_POLY_attribute1_val = v_POLY_attribute_idn;\n\t\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/multAdd1\n\tfloat v_POLY_multAdd1_val = (0.92*(v_POLY_attribute1_val + 0.0)) + 0.0;\n\t\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/floatToVec3_1\n\tvec3 v_POLY_floatToVec3_1_vec3 = vec3(v_POLY_multAdd1_val, 0.68, 0.71);\n\t\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/hsvToRgb1\n\tvec3 v_POLY_hsvToRgb1_rgb = hsv2rgb(v_POLY_floatToVec3_1_vec3);\n\t\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/output1\n\tdiffuseColor.xyz = v_POLY_hsvToRgb1_rgb;\n\tfloat POLY_metalness = 1.0;\n\tfloat POLY_roughness = 1.0;\n\tvec3 POLY_emissive = vec3(1.0, 1.0, 1.0);\n\tSSSModel POLY_SSSModel = SSSModel(/*isActive*/false,/*color*/vec3(1.0, 1.0, 1.0), /*thickness*/0.1, /*power*/2.0, /*scale*/16.0, /*distortion*/0.1,/*ambient*/0.4,/*attenuation*/0.8 );\n\n\n\n\n\t// INSERT BODY\n\t// the new body lines should be added before the alphatest_fragment\n\t// so that alpha is set before (which is really how it would be set if the alphamap_fragment above was used by the material node parameters)\n\n\t#include <alphatest_fragment>\n\n\t#include <logdepthbuf_fragment>\n\n\n\t// Higher precision equivalent of gl_FragCoord.z. This assumes depthRange has been left to its default values.\n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\n\t#if DEPTH_PACKING == 3200\n\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), diffuseColor.a );\n\n\t#elif DEPTH_PACKING == 3201\n\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\n\t#endif\n\n}\n","customDistanceMaterial.vertex":"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include <common>\n\n\n\n// /objects/subnet_colors/MAT/meshStandardBuilder1/attribute1\nvarying float v_POLY_attribute_idn;\n\n// /objects/subnet_colors/MAT/meshStandardBuilder1/attribute1\nattribute float idn;\n\n\n\n\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n// removed:\n//\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n// removed:\n//\t#include <begin_vertex>\n\n\n\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/attribute1\n\tv_POLY_attribute_idn = float(idn);\n\t\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/output1\n\tvec3 transformed = position;\n\tvec3 objectNormal = normal;\n\t#ifdef USE_TANGENT\n\t\tvec3 objectTangent = vec3( tangent.xyz );\n\t#endif\n\n\n\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <worldpos_vertex>\n\t#include <clipping_planes_vertex>\n\tvWorldPosition = worldPosition.xyz;\n}","customDistanceMaterial.fragment":"\n// INSERT DEFINES\n\n#define DISTANCE\n\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n\n#include <common>\n\n\n\n// /objects/subnet_colors/MAT/meshStandardBuilder1/hsvToRgb1\n// https://github.com/hughsk/glsl-hsv2rgb\n// https://stackoverflow.com/questions/15095909/from-rgb-to-hsv-in-opengl-glsl\nvec3 hsv2rgb(vec3 c) {\n\tvec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\n\tvec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\n\treturn c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\n}\n\n\n\n\n\n\n\n// /objects/subnet_colors/MAT/meshStandardBuilder1/attribute1\nvarying float v_POLY_attribute_idn;\n\n\n\n\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <clipping_planes_pars_fragment>\n\nstruct SSSModel {\n\tbool isActive;\n\tvec3 color;\n\tfloat thickness;\n\tfloat power;\n\tfloat scale;\n\tfloat distortion;\n\tfloat ambient;\n\tfloat attenuation;\n};\n\nvoid RE_Direct_Scattering(\n\tconst in IncidentLight directLight,\n\tconst in GeometricContext geometry,\n\tconst in SSSModel sssModel,\n\tinout ReflectedLight reflectedLight\n\t){\n\tvec3 scatteringHalf = normalize(directLight.direction + (geometry.normal * sssModel.distortion));\n\tfloat scatteringDot = pow(saturate(dot(geometry.viewDir, -scatteringHalf)), sssModel.power) * sssModel.scale;\n\tvec3 scatteringIllu = (scatteringDot + sssModel.ambient) * (sssModel.color * (1.0-sssModel.thickness));\n\treflectedLight.directDiffuse += scatteringIllu * sssModel.attenuation * directLight.color;\n}\n\nvoid main() {\n\n\t#include <clipping_planes_fragment>\n\n\tvec4 diffuseColor = vec4( 1.0 );\n\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\n\n\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/attribute1\n\tfloat v_POLY_attribute1_val = v_POLY_attribute_idn;\n\t\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/multAdd1\n\tfloat v_POLY_multAdd1_val = (0.92*(v_POLY_attribute1_val + 0.0)) + 0.0;\n\t\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/floatToVec3_1\n\tvec3 v_POLY_floatToVec3_1_vec3 = vec3(v_POLY_multAdd1_val, 0.68, 0.71);\n\t\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/hsvToRgb1\n\tvec3 v_POLY_hsvToRgb1_rgb = hsv2rgb(v_POLY_floatToVec3_1_vec3);\n\t\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/output1\n\tdiffuseColor.xyz = v_POLY_hsvToRgb1_rgb;\n\tfloat POLY_metalness = 1.0;\n\tfloat POLY_roughness = 1.0;\n\tvec3 POLY_emissive = vec3(1.0, 1.0, 1.0);\n\tSSSModel POLY_SSSModel = SSSModel(/*isActive*/false,/*color*/vec3(1.0, 1.0, 1.0), /*thickness*/0.1, /*power*/2.0, /*scale*/16.0, /*distortion*/0.1,/*ambient*/0.4,/*attenuation*/0.8 );\n\n\n\n\n\t// INSERT BODY\n\n\t#include <alphatest_fragment>\n\n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist ); // clamp to [ 0, 1 ]\n\n\tgl_FragColor = packDepthToRGBA( dist );\n\n}\n","customDepthDOFMaterial.vertex":"#include <common>\n\n\n\n// /objects/subnet_colors/MAT/meshStandardBuilder1/attribute1\nvarying float v_POLY_attribute_idn;\n\n// /objects/subnet_colors/MAT/meshStandardBuilder1/attribute1\nattribute float idn;\n\n\n\n\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n// removed:\n//\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n// removed:\n//\t#include <begin_vertex>\n\n\n\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/attribute1\n\tv_POLY_attribute_idn = float(idn);\n\t\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/output1\n\tvec3 transformed = position;\n\tvec3 objectNormal = normal;\n\t#ifdef USE_TANGENT\n\t\tvec3 objectTangent = vec3( tangent.xyz );\n\t#endif\n\n\n\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvHighPrecisionZW = gl_Position.zw;\n}","customDepthDOFMaterial.fragment":"\n// INSERT DEFINES\n\n\n#if DEPTH_PACKING == 3200\n\n\tuniform float opacity;\n\n#endif\n\n#include <common>\n\n\n\n// /objects/subnet_colors/MAT/meshStandardBuilder1/hsvToRgb1\n// https://github.com/hughsk/glsl-hsv2rgb\n// https://stackoverflow.com/questions/15095909/from-rgb-to-hsv-in-opengl-glsl\nvec3 hsv2rgb(vec3 c) {\n\tvec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\n\tvec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\n\treturn c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\n}\n\n\n\n\n\n\n\n// /objects/subnet_colors/MAT/meshStandardBuilder1/attribute1\nvarying float v_POLY_attribute_idn;\n\n\n\n\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\n\nvarying vec2 vHighPrecisionZW;\n\nstruct SSSModel {\n\tbool isActive;\n\tvec3 color;\n\tfloat thickness;\n\tfloat power;\n\tfloat scale;\n\tfloat distortion;\n\tfloat ambient;\n\tfloat attenuation;\n};\n\nvoid RE_Direct_Scattering(\n\tconst in IncidentLight directLight,\n\tconst in GeometricContext geometry,\n\tconst in SSSModel sssModel,\n\tinout ReflectedLight reflectedLight\n\t){\n\tvec3 scatteringHalf = normalize(directLight.direction + (geometry.normal * sssModel.distortion));\n\tfloat scatteringDot = pow(saturate(dot(geometry.viewDir, -scatteringHalf)), sssModel.power) * sssModel.scale;\n\tvec3 scatteringIllu = (scatteringDot + sssModel.ambient) * (sssModel.color * (1.0-sssModel.thickness));\n\treflectedLight.directDiffuse += scatteringIllu * sssModel.attenuation * directLight.color;\n}\n\nvoid main() {\n\n\t#include <clipping_planes_fragment>\n\n\tvec4 diffuseColor = vec4( 1.0 );\n\n\t#if DEPTH_PACKING == 3200\n\n\t\tdiffuseColor.a = opacity;\n\n\t#endif\n\n\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\n\n\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/attribute1\n\tfloat v_POLY_attribute1_val = v_POLY_attribute_idn;\n\t\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/multAdd1\n\tfloat v_POLY_multAdd1_val = (0.92*(v_POLY_attribute1_val + 0.0)) + 0.0;\n\t\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/floatToVec3_1\n\tvec3 v_POLY_floatToVec3_1_vec3 = vec3(v_POLY_multAdd1_val, 0.68, 0.71);\n\t\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/hsvToRgb1\n\tvec3 v_POLY_hsvToRgb1_rgb = hsv2rgb(v_POLY_floatToVec3_1_vec3);\n\t\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/output1\n\tdiffuseColor.xyz = v_POLY_hsvToRgb1_rgb;\n\tfloat POLY_metalness = 1.0;\n\tfloat POLY_roughness = 1.0;\n\tvec3 POLY_emissive = vec3(1.0, 1.0, 1.0);\n\tSSSModel POLY_SSSModel = SSSModel(/*isActive*/false,/*color*/vec3(1.0, 1.0, 1.0), /*thickness*/0.1, /*power*/2.0, /*scale*/16.0, /*distortion*/0.1,/*ambient*/0.4,/*attenuation*/0.8 );\n\n\n\n\n\t// INSERT BODY\n\t// the new body lines should be added before the alphatest_fragment\n\t// so that alpha is set before (which is really how it would be set if the alphamap_fragment above was used by the material node parameters)\n\n\t#include <alphatest_fragment>\n\n\t#include <logdepthbuf_fragment>\n\n\n\t// Higher precision equivalent of gl_FragCoord.z. This assumes depthRange has been left to its default values.\n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\n\t#if DEPTH_PACKING == 3200\n\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), diffuseColor.a );\n\n\t#elif DEPTH_PACKING == 3201\n\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\n\t#endif\n\n}\n"}}}
Code editor
{"multiple_panel":{"split_ratio":0.4544,"split_panel0":{"split_ratio":0.4180388458401305,"split_panel0":{"panelTypes":["viewer"],"currentPanelIndex":0,"panel_data":{"camera":"/cameras/cameras:sopGroup/perspectiveCamera_MAIN","isViewerInitLayoutData":true,"linkIndex":1}},"split_panel1":{"panelTypes":["params"],"currentPanelIndex":0,"panel_data":{"active_folder":null,"linkIndex":1}},"split_mode":"vertical"},"split_panel1":{"panelTypes":["network","params","viewer"],"currentPanelIndex":0,"panel_data":{"camera":{"position":{"x":-342.428773937179,"y":16.38732766107252},"zoom":0.56},"history":{"2":{"position":{"x":-52.56983240223463,"y":-36.84916201117316},"zoom":0.7810000000000002},"3":{"position":{"x":-48,"y":-22},"zoom":0.5},"6":{"position":{"x":11.339999999999996,"y":-96.49999999999999},"zoom":0.6172839506172841},"9":{"position":{"x":-32,"y":-88},"zoom":0.5},"60":{"position":{"x":471.5436841023696,"y":-1900.7129194922618},"zoom":0.6480000000000001},"86":{"position":{"x":62.463199571380606,"y":154.83123110033523},"zoom":0.6000000000000002},"131":{"position":{"x":-59.04899999999998,"y":-65.1854},"zoom":0.8467543904215146},"1296":{"position":{"x":-435.1883034634825,"y":741.2926483413726},"zoom":0.7050554210000004},"1511":{"position":{"x":-342.428773937179,"y":16.38732766107252},"zoom":0.56},"1857":{"position":{"x":-621.916455980778,"y":639.6430004982765},"zoom":0.9311111111111114},"1873":{"position":{"x":-791.299690549869,"y":707.3257975900204},"zoom":0.6071757812500003}},"linkIndex":1}},"split_mode":"horizontal"},"currentNodes":["/cameras/subnet_addAudioStop","/","/","/","/","/","/","/"],"navigationHistory":{"nodePaths":{"1":["/cameras","/cameras/subnet_addAudioStop","/cameras/subnet_addAudioStop/actor1","/cameras/subnet_addAudioStop","/cameras/subnet_addAudioStop/actor1","/cameras/subnet_addAudioStop","/cameras","/","/objects","/","/objects","/","/cameras","/cameras/actor1","/cameras","/cameras/subnet_addAudioStop","/cameras","/cameras/actor1","/cameras","/cameras/subnet_addAudioStop"],"2":["/"],"3":["/"],"4":["/"],"5":["/"],"6":["/"],"7":["/"],"8":["/"]},"index":{"1":19,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0}},"fullscreenPanelId":null,"saveOptions":{"createExport":true,"checkRemoteAssetsUse":true,"minimizeFilesCount":false,"compressJs":true,"createZip":false,"runPostExportCommand":false},"paramsModal":[]}
Used nodes
actor/Object3DWorldToLocal;actor/add;actor/compare;actor/complement;actor/constant;actor/floatToVec3;actor/getDefaultCamera;actor/getObject;actor/getObjectAttribute;actor/getObjectProperty;actor/getObjectWorldPosition;actor/mix;actor/multAdd;actor/onChildAttributeUpdate;actor/onObjectAttributeUpdate;actor/onObjectClick;actor/onObjectHover;actor/onTick;actor/or;actor/pauseAudioSource;actor/playAudioSource;actor/setObjectAttribute;actor/setObjectLookAt;actor/setObjectPosition;actor/setObjectRotation;actor/setObjectVisible;actor/setParam;actor/setViewer;actor/triggerDelay;actor/triggerFilter;actor/vector3Unproject;audio/file;audio/null;audio/playInstrument;event/cameraOrbitControls;mat/meshBasic;mat/meshStandardBuilder;obj/audioListener;obj/geo;obj/positionalAudio;sop/BVH;sop/actor;sop/attribCreate;sop/attribDelete;sop/attribId;sop/attribPromote;sop/box;sop/cameraControls;sop/capsule;sop/cone;sop/copy;sop/delete;sop/fileGLTF;sop/fuse;sop/hemisphereLight;sop/hierarchy;sop/jitter;sop/material;sop/materialsNetwork;sop/merge;sop/null;sop/objectProperties;sop/perspectiveCamera;sop/plane;sop/point;sop/polarTransform;sop/roundedBox;sop/scatter;sop/setChildren;sop/sphere;sop/spotLight;sop/subnet;sop/subnetInput;sop/subnetOutput;sop/torus;sop/transform;sop/transformReset
Used operations
Used modules
Used assemblers
GL_MESH_STANDARD
Used integrations
[]
Used assets
Nodes map
{"/environment":"obj/geo","/environment/attribDelete1":"sop/attribDelete","/environment/box1":"sop/box","/environment/box2":"sop/box","/environment/copy1":"sop/copy","/environment/fuse1":"sop/fuse","/environment/hemisphereLight1":"sop/hemisphereLight","/environment/jitter1":"sop/jitter","/environment/merge1":"sop/merge","/environment/merge2":"sop/merge","/environment/merge3":"sop/merge","/environment/plane1":"sop/plane","/environment/point1":"sop/point","/environment/polarTransform1":"sop/polarTransform","/environment/scatter1":"sop/scatter","/environment/spotLight1":"sop/spotLight","/environment/transform1":"sop/transform","/objects":"obj/geo","/objects/PRE_DELETE":"sop/null","/objects/actor_appliedToIndividualObjects":"sop/actor","/objects/actor_appliedToIndividualObjects/getObject1":"actor/getObject","/objects/actor_appliedToIndividualObjects/getObjectAttribute1":"actor/getObjectAttribute","/objects/actor_appliedToIndividualObjects/getObjectProperty1":"actor/getObjectProperty","/objects/actor_appliedToIndividualObjects/onObjectClick1":"actor/onObjectClick","/objects/actor_appliedToIndividualObjects/onObjectHover1":"actor/onObjectHover","/objects/actor_appliedToIndividualObjects/setObjectAttribute1":"actor/setObjectAttribute","/objects/actor_appliedToIndividualObjects/setObjectAttribute2":"actor/setObjectAttribute","/objects/actor_appliedToIndividualObjects/setObjectAttribute4":"actor/setObjectAttribute","/objects/actor_appliedToIndividualObjects/setObjectAttribute5":"actor/setObjectAttribute","/objects/actor_objectsParent":"sop/actor","/objects/actor_objectsParent/onChildAttributeUpdate1":"actor/onChildAttributeUpdate","/objects/actor_objectsParent/or1":"actor/or","/objects/actor_objectsParent/setViewer1":"actor/setViewer","/objects/attribCreate1":"sop/attribCreate","/objects/attribCreate2":"sop/attribCreate","/objects/attribCreate3":"sop/attribCreate","/objects/attribCreate4":"sop/attribCreate","/objects/attribCreate5":"sop/attribCreate","/objects/attribCreate6":"sop/attribCreate","/objects/attribCreate7":"sop/attribCreate","/objects/box1":"sop/box","/objects/capsule1":"sop/capsule","/objects/cone1":"sop/cone","/objects/copy1":"sop/copy","/objects/delete1":"sop/delete","/objects/hierarchy1":"sop/hierarchy","/objects/merge1":"sop/merge","/objects/merge2":"sop/merge","/objects/objectProperties1":"sop/objectProperties","/objects/objectProperties2":"sop/objectProperties","/objects/roundedBox1":"sop/roundedBox","/objects/sphere1":"sop/sphere","/objects/subnet_colors":"sop/subnet","/objects/subnet_colors/MAT":"sop/materialsNetwork","/objects/subnet_colors/MAT/meshStandardBuilder1":"mat/meshStandardBuilder","/objects/subnet_colors/attribId1":"sop/attribId","/objects/subnet_colors/attribPromote1":"sop/attribPromote","/objects/subnet_colors/material1":"sop/material","/objects/subnet_colors/subnetInput1":"sop/subnetInput","/objects/subnet_colors/subnetOutput1":"sop/subnetOutput","/objects/torus1":"sop/torus","/objects/transform1":"sop/transform","/objects/transform2":"sop/transform","/objects/transform3":"sop/transform","/objects/transform4":"sop/transform","/objects/transform5":"sop/transform","/objects/transformReset1":"sop/transformReset","/cameras":"obj/geo","/cameras/actor1":"sop/actor","/cameras/actor1/add1":"actor/add","/cameras/actor1/compare1":"actor/compare","/cameras/actor1/complement1":"actor/complement","/cameras/actor1/constant_defaultLookAt":"actor/constant","/cameras/actor1/getObject1":"actor/getObject","/cameras/actor1/getObjectAttribute1":"actor/getObjectAttribute","/cameras/actor1/getObjectAttribute2":"actor/getObjectAttribute","/cameras/actor1/getObjectAttribute3":"actor/getObjectAttribute","/cameras/actor1/getObjectAttribute4":"actor/getObjectAttribute","/cameras/actor1/getObjectWorldPosition1":"actor/getObjectWorldPosition","/cameras/actor1/mix1":"actor/mix","/cameras/actor1/mix2":"actor/mix","/cameras/actor1/onObjectAttributeUpdate1":"actor/onObjectAttributeUpdate","/cameras/actor1/onTick1":"actor/onTick","/cameras/actor1/onTick2":"actor/onTick","/cameras/actor1/pauseAudioSource1":"actor/pauseAudioSource","/cameras/actor1/playAudioSource1":"actor/playAudioSource","/cameras/actor1/setObjectAttribute1":"actor/setObjectAttribute","/cameras/actor1/setObjectAttribute2":"actor/setObjectAttribute","/cameras/actor1/setObjectLookAt1":"actor/setObjectLookAt","/cameras/actor1/setObjectPosition1":"actor/setObjectPosition","/cameras/actor1/setParam1":"actor/setParam","/cameras/actor1/triggerDelay1":"actor/triggerDelay","/cameras/actor1/triggerFilter1":"actor/triggerFilter","/cameras/actor1/triggerFilter2":"actor/triggerFilter","/cameras/actor1/setObjectVisible1":"actor/setObjectVisible","/cameras/actor1/getObject2":"actor/getObject","/cameras/actor2":"sop/actor","/cameras/actor2/floatToVec3_2":"actor/floatToVec3","/cameras/actor2/multAdd1":"actor/multAdd","/cameras/actor2/onTick1":"actor/onTick","/cameras/actor2/setObjectRotation1":"actor/setObjectRotation","/cameras/attribCreate1":"sop/attribCreate","/cameras/attribCreate2":"sop/attribCreate","/cameras/attribCreate3":"sop/attribCreate","/cameras/attribCreate4":"sop/attribCreate","/cameras/cameraControls1":"sop/cameraControls","/cameras/cameraControls1/cameraOrbitControls1":"event/cameraOrbitControls","/cameras/hierarchy1":"sop/hierarchy","/cameras/merge1":"sop/merge","/cameras/merge2":"sop/merge","/cameras/perspectiveCamera_DEBUG":"sop/perspectiveCamera","/cameras/perspectiveCamera_MAIN":"sop/perspectiveCamera","/cameras/perspectiveCamera_ROTATING":"sop/perspectiveCamera","/cameras/polarTransform1":"sop/polarTransform","/cameras/subnet_addAudioStop":"sop/subnet","/cameras/subnet_addAudioStop/MAT":"sop/materialsNetwork","/cameras/subnet_addAudioStop/MAT/meshBasic1":"mat/meshBasic","/cameras/subnet_addAudioStop/actor1":"sop/actor","/cameras/subnet_addAudioStop/actor1/getObject1":"actor/getObject","/cameras/subnet_addAudioStop/actor1/onObjectClick1":"actor/onObjectClick","/cameras/subnet_addAudioStop/actor1/setObjectAttribute4":"actor/setObjectAttribute","/cameras/subnet_addAudioStop/actor1/onObjectHover1":"actor/onObjectHover","/cameras/subnet_addAudioStop/actor1/setViewer1":"actor/setViewer","/cameras/subnet_addAudioStop/actor1/getDefaultCamera1":"actor/getDefaultCamera","/cameras/subnet_addAudioStop/actor1/constant1":"actor/constant","/cameras/subnet_addAudioStop/actor1/setObjectPosition1":"actor/setObjectPosition","/cameras/subnet_addAudioStop/actor1/onTick1":"actor/onTick","/cameras/subnet_addAudioStop/actor1/Object3DWorldToLocal1":"actor/Object3DWorldToLocal","/cameras/subnet_addAudioStop/actor1/vector3Unproject1":"actor/vector3Unproject","/cameras/subnet_addAudioStop/fileGLTF1":"sop/fileGLTF","/cameras/subnet_addAudioStop/hierarchy1":"sop/hierarchy","/cameras/subnet_addAudioStop/material1":"sop/material","/cameras/subnet_addAudioStop/objectProperties1":"sop/objectProperties","/cameras/subnet_addAudioStop/setChildren1":"sop/setChildren","/cameras/subnet_addAudioStop/sphere1":"sop/sphere","/cameras/subnet_addAudioStop/subnetInput1":"sop/subnetInput","/cameras/subnet_addAudioStop/subnetOutput1":"sop/subnetOutput","/cameras/subnet_addAudioStop/transform1":"sop/transform","/cameras/subnet_addAudioStop/transform2":"sop/transform","/cameras/subnet_addAudioStop/BVH1":"sop/BVH","/positionalAudio1":"obj/positionalAudio","/positionalAudio1/OUT":"audio/null","/positionalAudio1/file1":"audio/file","/positionalAudio1/playInstrument1":"audio/playInstrument","/audioListener1":"obj/audioListener"}
Js version
Editor version
Engine version
Name
*
Code
{"properties":{"frame":6391,"maxFrame":600,"maxFrameLocked":false,"realtimeState":true,"mainCameraPath":"/cameras/cameras:sopGroup/perspectiveCamera_MAIN","versions":{"polygonjs":"1.2.70"}},"root":{"type":"root","nodes":{"environment":{"type":"geo","nodes":{"attribDelete1":{"type":"attribDelete","params":{"name":"N"},"inputs":["fuse1"]},"box1":{"type":"box","params":{"sizes":[27,1,17]}},"box2":{"type":"box","params":{"size":0.9}},"copy1":{"type":"copy","inputs":["box2","attribDelete1"]},"fuse1":{"type":"fuse","inputs":["point1"]},"hemisphereLight1":{"type":"hemisphereLight","params":{"intensity":0.18}},"jitter1":{"type":"jitter","inputs":["scatter1"]},"merge1":{"type":"merge","params":{"compact":true},"inputs":["copy1","box1"]},"merge2":{"type":"merge","inputs":["hemisphereLight1","polarTransform1"]},"merge3":{"type":"merge","inputs":["merge1","merge2"],"flags":{"display":true}},"plane1":{"type":"plane","params":{"size":[9,9],"useSegmentsCount":true}},"point1":{"type":"point","params":{"updateX":true,"x":"round(@P.x)","updateY":true,"y":"round(@P.y)","updateZ":true,"z":"round(@P.z)"},"inputs":["jitter1"]},"polarTransform1":{"type":"polarTransform","params":{"longitude":115.2,"latitude":32.4,"depth":10.6},"inputs":["spotLight1"]},"scatter1":{"type":"scatter","params":{"pointsCount":69},"inputs":["transform1"]},"spotLight1":{"type":"spotLight","params":{"angle":59.4,"penumbra":0.33,"castShadow":true,"shadowBias":0}},"transform1":{"type":"transform","params":{"t":[0,2.1448255697777263,0],"r":[5.686624845899085,0,-4.762641819539954]},"inputs":["plane1"]}},"flags":{"display":true}},"objects":{"type":"geo","nodes":{"PRE_DELETE":{"type":"null","inputs":["subnet_colors"]},"actor_appliedToIndividualObjects":{"type":"actor","nodes":{"getObject1":{"type":"getObject","params":{"getCurrentObject":false,"mask":"*perspectiveCamera_MAIN"},"maxInputsCount":2},"getObjectAttribute1":{"type":"getObjectAttribute","params":{"attribName":"audioUrl","type":4},"connection_points":{"in":[{"name":"Object3D","type":"Object3D","isArray":false}],"out":[{"name":"val","type":"string","isArray":false}]}},"getObjectProperty1":{"type":"getObjectProperty"},"onObjectClick1":{"type":"onObjectClick"},"onObjectHover1":{"type":"onObjectHover"},"setObjectAttribute1":{"type":"setObjectAttribute","params":{"trigger":{"overriden_options":{}},"attribName":"lookAtTarget","type":6,"lerp":{"type":"float","default_value":1,"options":{"spare":true,"editable":true}},"val":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":false}}},"maxInputsCount":4,"inputs":[{"index":0,"inputName":"trigger","node":"onObjectClick1","output":"trigger"},{"index":1,"inputName":"Object3D","node":"getObject1","output":"object3D"},null,{"index":3,"inputName":"val","node":"getObjectProperty1","output":"position"}],"connection_points":{"in":[{"name":"trigger","type":"trigger","isArray":false},{"name":"Object3D","type":"Object3D","isArray":false},{"name":"lerp","type":"float","isArray":false},{"name":"val","type":"Vector3","isArray":false}],"out":[{"name":"trigger","type":"trigger","isArray":false}]}},"setObjectAttribute2":{"type":"setObjectAttribute","params":{"trigger":{"overriden_options":{}},"attribName":"hovered","type":0,"lerp":{"type":"float","default_value":1,"options":{"spare":true,"editable":true}},"val":{"type":"boolean","default_value":false,"options":{"spare":true,"editable":false}}},"maxInputsCount":4,"inputs":[{"index":0,"inputName":"trigger","node":"onObjectHover1","output":"trigger"},null,null,{"index":3,"inputName":"val","node":"onObjectHover1","output":"hovered"}],"connection_points":{"in":[{"name":"trigger","type":"trigger","isArray":false},{"name":"Object3D","type":"Object3D","isArray":false},{"name":"lerp","type":"float","isArray":false},{"name":"val","type":"boolean","isArray":false}],"out":[{"name":"trigger","type":"trigger","isArray":false}]}},"setObjectAttribute4":{"type":"setObjectAttribute","params":{"trigger":{"overriden_options":{}},"attribName":"focused","lerp":{"type":"float","default_value":1,"options":{"spare":true,"editable":true}},"val":{"type":"float","default_value":0,"options":{"spare":true,"editable":true},"raw_input":1}},"maxInputsCount":4,"inputs":[{"index":0,"inputName":"trigger","node":"setObjectAttribute5","output":"trigger"},{"index":1,"inputName":"Object3D","node":"getObject1","output":"object3D"}],"connection_points":{"in":[{"name":"trigger","type":"trigger","isArray":false},{"name":"Object3D","type":"Object3D","isArray":false},{"name":"lerp","type":"float","isArray":false},{"name":"val","type":"float","isArray":false}],"out":[{"name":"trigger","type":"trigger","isArray":false}]}},"setObjectAttribute5":{"type":"setObjectAttribute","params":{"trigger":{"overriden_options":{}},"attribName":"audioUrl","type":4,"lerp":{"type":"float","default_value":1,"options":{"spare":true,"editable":true}},"val":{"type":"string","default_value":"0","options":{"spare":true,"editable":false},"raw_input":"1"}},"maxInputsCount":4,"inputs":[{"index":0,"inputName":"trigger","node":"setObjectAttribute1","output":"trigger"},{"index":1,"inputName":"Object3D","node":"getObject1","output":"object3D"},null,{"index":3,"inputName":"val","node":"getObjectAttribute1","output":"val"}],"connection_points":{"in":[{"name":"trigger","type":"trigger","isArray":false},{"name":"Object3D","type":"Object3D","isArray":false},{"name":"lerp","type":"float","isArray":false},{"name":"val","type":"string","isArray":false}],"out":[{"name":"trigger","type":"trigger","isArray":false}]}}},"inputs":["copy1"]},"actor_objectsParent":{"type":"actor","nodes":{"onChildAttributeUpdate1":{"type":"onChildAttributeUpdate","params":{"attribName":"hovered","type":0},"connection_points":{"in":[],"out":[{"name":"trigger","type":"trigger","isArray":false},{"name":"newValues","type":"boolean[]","isArray":true},{"name":"previousValues","type":"boolean[]","isArray":true}]}},"or1":{"type":"or","inputs":[{"index":0,"inputName":"booleans","node":"onChildAttributeUpdate1","output":"newValues"}],"connection_points":{"in":[{"name":"booleans","type":"boolean[]","isArray":true}],"out":[{"name":"val","type":"boolean","isArray":false}]}},"setViewer1":{"type":"setViewer","params":{"className":{"overriden_options":{}},"set":{"overriden_options":{}}},"maxInputsCount":3,"inputs":[{"index":0,"inputName":"trigger","node":"onChildAttributeUpdate1","output":"trigger"},null,{"index":2,"inputName":"set","node":"or1","output":"val"}]}},"inputs":["hierarchy1"]},"attribCreate1":{"type":"attribCreate","params":{"class":1,"type":1,"name":"audioName","string":"636301__discordantscraps__cyber-ghost-trick-7"},"inputs":["transform1"]},"attribCreate2":{"type":"attribCreate","params":{"class":1,"type":1,"name":"audioUrl","string":"https://raw.githubusercontent.com/polygonjs/polygonjs-assets/master/audio/resources/freesound/short/`@audioName`.mp3"},"inputs":["merge1"]},"attribCreate3":{"type":"attribCreate","params":{"class":1,"type":1,"name":"audioName","string":"492495__soundflakes__atmosphere-distant-moaning-01"},"inputs":["transform2"]},"attribCreate4":{"type":"attribCreate","params":{"class":1,"type":1,"name":"audioName","string":"177242__deleted-user-3277771__cinematic-impact"},"inputs":["transform3"]},"attribCreate5":{"type":"attribCreate","params":{"class":1,"type":1,"name":"audioName","string":"33637__herbertboland__cinematicboomnorm"},"inputs":["transform4"]},"attribCreate6":{"type":"attribCreate","params":{"class":1,"type":1,"name":"audioName","string":"657826__the-sacha-rush__thoughtful-atmospheric-rapid-intro"},"inputs":["transform5"]},"attribCreate7":{"type":"attribCreate","params":{"class":1,"type":1,"name":"audioUrl","string":"`object('../delete1','audioUrl',0)`"},"inputs":["box1"]},"box1":{"type":"box","inputs":["delete1"]},"capsule1":{"type":"capsule"},"cone1":{"type":"cone","params":{"radius":0.81,"segmentsRadial":26,"direction":[0,1,0]}},"copy1":{"type":"copy","params":{"count":"objectsCount('../PRE_DELETE')"},"inputs":["transformReset1"]},"delete1":{"type":"delete","params":{"class":1,"invert":true,"byExpression":true,"expression":"@objnum==copy('../copy1')"},"inputs":["PRE_DELETE"]},"hierarchy1":{"type":"hierarchy","inputs":["actor_appliedToIndividualObjects"]},"merge1":{"type":"merge","params":{"inputsCount":5},"maxInputsCount":5,"inputs":["attribCreate1","attribCreate3","attribCreate4","attribCreate5","attribCreate6"]},"merge2":{"type":"merge","inputs":["objectProperties2","subnet_colors"],"flags":{"display":true}},"objectProperties1":{"type":"objectProperties","params":{"tcastShadow":true},"inputs":["attribCreate2"]},"objectProperties2":{"type":"objectProperties","params":{"tvisible":true,"visible":false},"inputs":["actor_objectsParent"]},"roundedBox1":{"type":"roundedBox"},"sphere1":{"type":"sphere"},"subnet_colors":{"type":"subnet","nodes":{"MAT":{"type":"materialsNetwork","nodes":{"meshStandardBuilder1":{"type":"meshStandardBuilder","nodes":{"attribute1":{"type":"attribute","params":{"name":"idn"},"connection_points":{"in":[],"out":[{"name":"val","type":"float"}]}},"floatToVec3_1":{"type":"floatToVec3","params":{"x":{"overriden_options":{}},"y":{"raw_input":0.68,"overriden_options":{}},"z":{"raw_input":0.71,"overriden_options":{}}},"inputs":[{"index":0,"inputName":"x","node":"multAdd1","output":"val"}]},"globals1":{"type":"globals"},"hsvToRgb1":{"type":"hsvToRgb","params":{"hsv":{"overriden_options":{}}},"inputs":[{"index":0,"inputName":"hsv","node":"floatToVec3_1","output":"vec3"}]},"multAdd1":{"type":"multAdd","params":{"value":{"type":"float","default_value":0,"options":{"spare":true,"editable":false}},"preAdd":{"type":"float","default_value":0,"options":{"spare":true,"editable":true}},"mult":{"type":"float","default_value":1,"options":{"spare":true,"editable":true},"raw_input":0.92},"postAdd":{"type":"float","default_value":0,"options":{"spare":true,"editable":true}}},"inputs":[{"index":0,"inputName":"value","node":"attribute1","output":"val"}],"connection_points":{"in":[{"name":"value","type":"float"},{"name":"preAdd","type":"float"},{"name":"mult","type":"float"},{"name":"postAdd","type":"float"}],"out":[{"name":"val","type":"float"}]}},"output1":{"type":"output","inputs":[null,null,{"index":2,"inputName":"color","node":"hsvToRgb1","output":"rgb"}]}},"persisted_config":{"material":{"metadata":{"version":4.5,"type":"Material","generator":"Material.toJSON"},"uuid":"/objects/subnet_colors/MAT/meshStandardBuilder1-main","type":"MeshStandardMaterial","name":"/objects/subnet_colors/MAT/meshStandardBuilder1","color":16777215,"roughness":1,"metalness":0,"emissive":0,"envMapIntensity":1,"depthFunc":3,"depthTest":true,"depthWrite":true,"colorWrite":true,"stencilWrite":false,"stencilWriteMask":255,"stencilFunc":519,"stencilRef":0,"stencilFuncMask":255,"stencilFail":7680,"stencilZFail":7680,"stencilZPass":7680,"fog":false},"onBeforeCompileDataJSONWithoutShaders":{"paramConfigs":[],"timeDependent":false,"resolutionDependent":false,"raymarchingLightsWorldCoordsDependent":false},"customMaterials":{"customDepthMaterial":{"material":{"metadata":{"version":4.5,"type":"Material","generator":"Material.toJSON"},"uuid":"/objects/subnet_colors/MAT/meshStandardBuilder1-customDepthMaterial","type":"MeshDepthMaterial","name":"customDepthMaterial","side":1,"depthFunc":3,"depthTest":true,"depthWrite":true,"colorWrite":true,"stencilWrite":false,"stencilWriteMask":255,"stencilFunc":519,"stencilRef":0,"stencilFuncMask":255,"stencilFail":7680,"stencilZFail":7680,"stencilZPass":7680,"depthPacking":3201},"onBeforeCompileDataJSONWithoutShaders":{"paramConfigs":[],"timeDependent":false,"resolutionDependent":false,"raymarchingLightsWorldCoordsDependent":false}},"customDistanceMaterial":{"material":{"metadata":{"version":4.5,"type":"Material","generator":"Material.toJSON"},"uuid":"/objects/subnet_colors/MAT/meshStandardBuilder1-customDistanceMaterial","type":"MeshDistanceMaterial","name":"customDistanceMaterial","depthFunc":3,"depthTest":true,"depthWrite":true,"colorWrite":true,"stencilWrite":false,"stencilWriteMask":255,"stencilFunc":519,"stencilRef":0,"stencilFuncMask":255,"stencilFail":7680,"stencilZFail":7680,"stencilZPass":7680},"onBeforeCompileDataJSONWithoutShaders":{"paramConfigs":[],"timeDependent":false,"resolutionDependent":false,"raymarchingLightsWorldCoordsDependent":false}},"customDepthDOFMaterial":{"material":{"metadata":{"version":4.5,"type":"Material","generator":"Material.toJSON"},"uuid":"/objects/subnet_colors/MAT/meshStandardBuilder1-customDepthDOFMaterial","type":"MeshDepthMaterial","name":"customDepthDOFMaterial","depthFunc":3,"depthTest":true,"depthWrite":true,"colorWrite":true,"stencilWrite":false,"stencilWriteMask":255,"stencilFunc":519,"stencilRef":0,"stencilFuncMask":255,"stencilFail":7680,"stencilZFail":7680,"stencilZPass":7680,"depthPacking":3200},"onBeforeCompileDataJSONWithoutShaders":{"paramConfigs":[],"timeDependent":false,"resolutionDependent":false,"raymarchingLightsWorldCoordsDependent":false}}}}}}},"attribId1":{"type":"attribId","params":{"class":1,"id":false},"inputs":["subnetInput1"]},"attribPromote1":{"type":"attribPromote","params":{"classFrom":1,"classTo":0,"name":"idn"},"inputs":["attribId1"]},"material1":{"type":"material","params":{"material":"../MAT/meshStandardBuilder1"},"inputs":["attribPromote1"]},"subnetInput1":{"type":"subnetInput","flags":{"display":true}},"subnetOutput1":{"type":"subnetOutput","inputs":["material1"]}},"inputs":["objectProperties1"]},"torus1":{"type":"torus","params":{"radius":0.27,"radiusTube":0.11,"direction":[0,0,1]}},"transform1":{"type":"transform","params":{"applyOn":1,"t":[-3.9099003509189485,4.240886921982162,0]},"inputs":["roundedBox1"]},"transform2":{"type":"transform","params":{"applyOn":1,"t":[-0.9748541410391344,3.1391173361667635,2.958713760859885]},"inputs":["capsule1"]},"transform3":{"type":"transform","params":{"applyOn":1,"t":[4.581050898493111,4.240886921982162,0]},"inputs":["cone1"]},"transform4":{"type":"transform","params":{"applyOn":1,"t":[-0.36924297935036243,4.240886921982162,-2.8668085813199458]},"inputs":["sphere1"]},"transform5":{"type":"transform","params":{"applyOn":1,"t":[2.6725700820644875,1.9986000670529571,3.1543483596892585]},"inputs":["torus1"]},"transformReset1":{"type":"transformReset","params":{"mode":2},"inputs":["attribCreate7"]}},"flags":{"display":true}},"cameras":{"type":"geo","nodes":{"actor1":{"type":"actor","nodes":{"add1":{"type":"add","params":{"add0":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":false}},"add1":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":true},"raw_input":[0,0,3]}},"inputs":[{"index":0,"inputName":"add0","node":"getObjectAttribute2","output":"val"}],"connection_points":{"in":[{"name":"add0","type":"Vector3","isArray":false},{"name":"add1","type":"Vector3","isArray":false}],"out":[{"name":"sum","type":"Vector3","isArray":false}]}},"compare1":{"type":"compare","params":{"test":0,"value0":{"type":"float","default_value":0,"options":{"spare":true,"editable":false}},"value1":{"type":"float","default_value":0,"options":{"spare":true,"editable":true},"raw_input":1}},"inputs":[{"index":0,"inputName":"value0","node":"onObjectAttributeUpdate1","output":"newValue"}],"connection_points":{"in":[{"name":"value0","type":"float","isArray":false},{"name":"value1","type":"float","isArray":false}],"out":[{"name":"val","type":"boolean","isArray":false}]}},"complement1":{"type":"complement","params":{"value":{"type":"boolean","default_value":false,"options":{"spare":true,"editable":false}}},"inputs":[{"index":0,"inputName":"value","node":"compare1","output":"val"}],"connection_points":{"in":[{"name":"value","type":"boolean","isArray":false}],"out":[{"name":"complement","type":"boolean","isArray":false}]}},"constant_defaultLookAt":{"type":"constant","params":{"type":6},"connection_points":{"in":[],"out":[{"name":"val","type":"Vector3","isArray":false}]}},"getObject1":{"type":"getObject","params":{"getCurrentObject":false,"mask":"*/perspectiveCamera_ROTATING"},"maxInputsCount":2},"getObjectAttribute1":{"type":"getObjectAttribute","params":{"attribName":"blend"},"connection_points":{"in":[{"name":"Object3D","type":"Object3D","isArray":false}],"out":[{"name":"val","type":"float","isArray":false}]}},"getObjectAttribute2":{"type":"getObjectAttribute","params":{"attribName":"lookAtTarget","type":6},"connection_points":{"in":[{"name":"Object3D","type":"Object3D","isArray":false}],"out":[{"name":"val","type":"Vector3","isArray":false}]}},"getObjectAttribute3":{"type":"getObjectAttribute","params":{"attribName":"focused"},"connection_points":{"in":[{"name":"Object3D","type":"Object3D","isArray":false}],"out":[{"name":"val","type":"float","isArray":false}]}},"getObjectAttribute4":{"type":"getObjectAttribute","params":{"attribName":"audioUrl","type":4},"connection_points":{"in":[{"name":"Object3D","type":"Object3D","isArray":false}],"out":[{"name":"val","type":"string","isArray":false}]}},"getObjectWorldPosition1":{"type":"getObjectWorldPosition","inputs":[{"index":0,"inputName":"Object3D","node":"getObject1","output":"object3D"}]},"mix1":{"type":"mix","params":{"value0":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":false}},"value1":{"type":"vector3","default_value":[1,1,1],"options":{"spare":true,"editable":false}},"blend":{"type":"float","default_value":0.5,"options":{"spare":true,"editable":false}}},"inputs":[{"index":0,"inputName":"value0","node":"getObjectWorldPosition1","output":"worldPosition"},{"index":1,"inputName":"value1","node":"add1","output":"sum"},{"index":2,"inputName":"blend","node":"getObjectAttribute1","output":"val"}],"connection_points":{"in":[{"name":"value0","type":"Vector3","isArray":false},{"name":"value1","type":"Vector3","isArray":false},{"name":"blend","type":"float","isArray":false}],"out":[{"name":"val","type":"Vector3","isArray":false}]}},"mix2":{"type":"mix","params":{"value0":{"type":"vector3","default_value":[0,0,0],"options":{"spare":true,"editable":false}},"value1":{"type":"vector3","default_value":[1,1,1],"options":{"spare":true,"editable":false}},"blend":{"type":"float","default_value":0.5,"options":{"spare":true,"editable":false}}},"inputs":[{"index":0,"inputName":"value0","node":"constant_defaultLookAt","output":"val"},{"index":1,"inputName":"value1","node":"getObjectAttribute2","output":"val"},{"index":2,"inputName":"blend","node":"getObjectAttribute1","output":"val"}],"connection_points":{"in":[{"name":"value0","type":"Vector3","isArray":false},{"name":"value1","type":"Vector3","isArray":false},{"name":"blend","type":"float","isArray":false}],"out":[{"name":"val","type":"Vector3","isArray":false}]}},"onObjectAttributeUpdate1":{"type":"onObjectAttributeUpdate","params":{"attribName":"focused"},"connection_points":{"in":[],"out":[{"name":"trigger","type":"trigger","isArray":false},{"name":"newValue","type":"float","isArray":false},{"name":"previousValue","type":"float","isArray":false}]}},"onTick1":{"type":"onTick"},"onTick2":{"type":"onTick"},"pauseAudioSource1":{"type":"pauseAudioSource","params":{"node":"/positionalAudio1/OUT"},"inputs":[{"index":0,"inputName":"trigger","node":"triggerFilter2","output":"trigger"}]},"playAudioSource1":{"type":"playAudioSource","params":{"node":"/positionalAudio1/OUT"},"inputs":[{"index":0,"inputName":"trigger","node":"setParam1","output":"trigger"}]},"setObjectAttribute1":{"type":"setObjectAttribute","params":{"trigger":{"overriden_options":{}},"attribName":"blend","lerp":{"type":"float","default_value":1,"options":{"spare":true,"editable":true},"raw_input":0.03},"val":{"type":"float","default_value":0,"options":{"spare":true,"editable":false}}},"maxInputsCount":4,"inputs":[{"index":0,"inputName":"trigger","node":"onTick2","output":"trigger"},null,null,{"index":3,"inputName":"val","node":"getObjectAttribute3","output":"val"}],"connection_points":{"in":[{"name":"trigger","type":"trigger","isArray":false},{"name":"Object3D","type":"Object3D","isArray":false},{"name":"lerp","type":"float","isArray":false},{"name":"val","type":"float","isArray":false}],"out":[{"name":"trigger","type":"trigger","isArray":false}]}},"setObjectAttribute2":{"type":"setObjectAttribute","params":{"trigger":{"overriden_options":{}},"attribName":"focused","lerp":{"type":"float","default_value":1,"options":{"spare":true,"editable":true}},"val":{"type":"float","default_value":0,"options":{"spare":true,"editable":true}}},"maxInputsCount":4,"inputs":[{"index":0,"inputName":"trigger","node":"playAudioSource1","output":"trigger"}],"connection_points":{"in":[{"name":"trigger","type":"trigger","isArray":false},{"name":"Object3D","type":"Object3D","isArray":false},{"name":"lerp","type":"float","isArray":false},{"name":"val","type":"float","isArray":false}],"out":[{"name":"trigger","type":"trigger","isArray":false}]}},"setObjectLookAt1":{"type":"setObjectLookAt","params":{"targetPosition":{"overriden_options":{}},"up":{"overriden_options":{}},"lerp":{"raw_input":0.05,"overriden_options":{}},"invertDirection":{"overriden_options":{}},"updateMatrix":{"overriden_options":{}}},"maxInputsCount":7,"inputs":[{"index":0,"inputName":"trigger","node":"setObjectPosition1","output":"trigger"},null,{"index":2,"inputName":"targetPosition","node":"mix2","output":"val"}]},"setObjectPosition1":{"type":"setObjectPosition","params":{"position":{"overriden_options":{}},"lerp":{"raw_input":0.05,"overriden_options":{}},"updateMatrix":{"overriden_options":{}}},"maxInputsCount":5,"inputs":[{"index":0,"inputName":"trigger","node":"onTick1","output":"trigger"},null,{"index":2,"inputName":"position","node":"mix1","output":"val"}]},"setParam1":{"type":"setParam","params":{"param":"/positionalAudio1/file1/url","type":4,"lerp":{"type":"float","default_value":1,"options":{"spare":true,"editable":true}},"val":{"type":"string","default_value":"0","options":{"spare":true,"editable":false}}},"maxInputsCount":3,"inputs":[{"index":0,"inputName":"trigger","node":"triggerFilter1","output":"trigger"},null,{"index":2,"inputName":"val","node":"getObjectAttribute4","output":"val"}],"connection_points":{"in":[{"name":"trigger","type":"trigger","isArray":false},{"name":"lerp","type":"float","isArray":false},{"name":"val","type":"string","isArray":false}],"out":[{"name":"trigger","type":"trigger","isArray":false}]}},"triggerDelay1":{"type":"triggerDelay","params":{"delay":5000},"maxInputsCount":2,"inputs":[{"index":0,"inputName":"trigger","node":"triggerFilter1","output":"trigger"}]},"triggerFilter1":{"type":"triggerFilter","params":{"condition":{"overriden_options":{}}},"maxInputsCount":2,"inputs":[{"index":0,"inputName":"trigger","node":"onObjectAttributeUpdate1","output":"trigger"},{"index":1,"inputName":"condition","node":"compare1","output":"val"}]},"triggerFilter2":{"type":"triggerFilter","params":{"condition":{"overriden_options":{}}},"maxInputsCount":2,"inputs":[{"index":0,"inputName":"trigger","node":"onObjectAttributeUpdate1","output":"trigger"},{"index":1,"inputName":"condition","node":"complement1","output":"complement"}]},"setObjectVisible1":{"type":"setObjectVisible","params":{"visible":{"overriden_options":{}}},"maxInputsCount":3,"inputs":[{"index":0,"inputName":"trigger","node":"onObjectAttributeUpdate1","output":"trigger"},{"index":1,"inputName":"Object3D","node":"getObject2","output":"object3D"},{"index":2,"inputName":"visible","node":"compare1","output":"val"}]},"getObject2":{"type":"getObject","params":{"getCurrentObject":0,"mask":"*hudObject"},"maxInputsCount":2}},"inputs":["attribCreate2"]},"actor2":{"type":"actor","nodes":{"floatToVec3_2":{"type":"floatToVec3","params":{"x":{"overriden_options":{}},"y":{"overriden_options":{}},"z":{"overriden_options":{}}},"inputs":[null,{"index":1,"inputName":"y","node":"multAdd1","output":"val"}]},"multAdd1":{"type":"multAdd","params":{"value":{"type":"float","default_value":0,"options":{"spare":true,"editable":false}},"preAdd":{"type":"float","default_value":0,"options":{"spare":true,"editable":true}},"mult":{"type":"float","default_value":1,"options":{"spare":true,"editable":true},"raw_input":0.3},"postAdd":{"type":"float","default_value":0,"options":{"spare":true,"editable":true}}},"inputs":[{"index":0,"inputName":"value","node":"onTick1","output":"time"}],"connection_points":{"in":[{"name":"value","type":"float","isArray":false},{"name":"preAdd","type":"float","isArray":false},{"name":"mult","type":"float","isArray":false},{"name":"postAdd","type":"float","isArray":false}],"out":[{"name":"val","type":"float","isArray":false}]}},"onTick1":{"type":"onTick"},"setObjectRotation1":{"type":"setObjectRotation","params":{"rotation":{"overriden_options":{}},"lerp":{"overriden_options":{}},"updateMatrix":{"overriden_options":{}}},"maxInputsCount":5,"inputs":[{"index":0,"inputName":"trigger","node":"onTick1","output":"trigger"},null,{"index":2,"inputName":"rotation","node":"floatToVec3_2","output":"vec3"}]}},"inputs":["hierarchy1"]},"attribCreate1":{"type":"attribCreate","params":{"class":1,"name":"lookAtTarget","size":3,"value3":[0,1.8,0]},"inputs":["attribCreate4"]},"attribCreate2":{"type":"attribCreate","params":{"class":1,"type":1,"name":"audioUrl","size":3,"value3":[0,1.8,0]},"inputs":["attribCreate1"]},"attribCreate3":{"type":"attribCreate","params":{"class":1,"name":"focused"},"inputs":["perspectiveCamera_MAIN"]},"attribCreate4":{"type":"attribCreate","params":{"class":1,"name":"blend"},"inputs":["attribCreate3"]},"cameraControls1":{"type":"cameraControls","nodes":{"cameraOrbitControls1":{"type":"cameraOrbitControls","params":{"target":[0.2421462470218893,0.20790490229898526,-0.4243705859269765]}}},"params":{"node":"cameraOrbitControls1"},"inputs":["perspectiveCamera_DEBUG"]},"hierarchy1":{"type":"hierarchy","inputs":["polarTransform1"]},"merge1":{"type":"merge","inputs":["merge2","cameraControls1"],"flags":{"display":true}},"merge2":{"type":"merge","inputs":["actor2","subnet_addAudioStop"]},"perspectiveCamera_DEBUG":{"type":"perspectiveCamera","params":{"position":[7.2,7.2,7.2]}},"perspectiveCamera_MAIN":{"type":"perspectiveCamera","params":{"position":[0,5,8.9]}},"perspectiveCamera_ROTATING":{"type":"perspectiveCamera"},"polarTransform1":{"type":"polarTransform","params":{"center":[0,1.2,0],"latitude":28.8,"depth":11.8},"inputs":["perspectiveCamera_ROTATING"]},"subnet_addAudioStop":{"type":"subnet","nodes":{"MAT":{"type":"materialsNetwork","nodes":{"meshBasic1":{"type":"meshBasic","params":{"color":[1,0,0],"depthWrite":false}}}},"actor1":{"type":"actor","nodes":{"getObject1":{"type":"getObject","params":{"getCurrentObject":false,"mask":"*perspectiveCamera_MAIN"},"maxInputsCount":2},"onObjectClick1":{"type":"onObjectClick"},"setObjectAttribute4":{"type":"setObjectAttribute","params":{"trigger":{"overriden_options":{}},"attribName":"focused","lerp":{"type":"float","default_value":1,"options":{"spare":true,"editable":true}},"val":{"type":"float","default_value":0,"options":{"spare":true,"editable":true}}},"maxInputsCount":4,"inputs":[{"index":0,"inputName":"trigger","node":"onObjectClick1","output":"trigger"},{"index":1,"inputName":"Object3D","node":"getObject1","output":"object3D"}],"connection_points":{"in":[{"name":"trigger","type":"trigger","isArray":false},{"name":"Object3D","type":"Object3D","isArray":false},{"name":"lerp","type":"float","isArray":false},{"name":"val","type":"float","isArray":false}],"out":[{"name":"trigger","type":"trigger","isArray":false}]}},"onObjectHover1":{"type":"onObjectHover"},"setViewer1":{"type":"setViewer","params":{"className":{"overriden_options":{}},"set":{"overriden_options":{}}},"maxInputsCount":3,"inputs":[{"index":0,"inputName":"trigger","node":"onObjectHover1","output":"trigger"},null,{"index":2,"inputName":"set","node":"onObjectHover1","output":"hovered"}]},"getDefaultCamera1":{"type":"getDefaultCamera"},"constant1":{"type":"constant","params":{"type":6,"vector3":[0.75,-0.8290000000000001,0.47]},"connection_points":{"in":[],"out":[{"name":"val","type":"Vector3","isArray":false}]}},"setObjectPosition1":{"type":"setObjectPosition","params":{"position":{"overriden_options":{}},"lerp":{"overriden_options":{}},"updateMatrix":{"overriden_options":{}}},"maxInputsCount":5,"inputs":[{"index":0,"inputName":"trigger","node":"onTick1","output":"trigger"},null,{"index":2,"inputName":"position","node":"Object3DWorldToLocal1","output":"local"}]},"onTick1":{"type":"onTick"},"Object3DWorldToLocal1":{"type":"Object3DWorldToLocal","params":{"Vector3":{"overriden_options":{}}},"inputs":[{"index":0,"inputName":"Object3D","node":"getDefaultCamera1","output":"camera"},{"index":1,"inputName":"Vector3","node":"vector3Unproject1","output":"position"}]},"vector3Unproject1":{"type":"vector3Unproject","params":{"Vector3":{"overriden_options":{}}},"inputs":[{"index":0,"inputName":"Vector3","node":"constant1","output":"val"},{"index":1,"inputName":"Camera","node":"getDefaultCamera1","output":"camera"}]}},"inputs":["objectProperties1"]},"fileGLTF1":{"type":"fileGLTF"},"hierarchy1":{"type":"hierarchy","params":{"mode":1},"inputs":["fileGLTF1"]},"material1":{"type":"material","params":{"material":"../MAT/meshBasic1"},"inputs":["transform1"]},"objectProperties1":{"type":"objectProperties","params":{"tname":1,"name":"hudObject","tvisible":1,"visible":0,"tcastShadow":true,"castShadow":false,"treceiveShadow":true,"receiveShadow":false},"inputs":["BVH1"]},"setChildren1":{"type":"setChildren","inputs":["subnetInput1","actor1"]},"sphere1":{"type":"sphere","params":{"radius":0.04}},"subnetInput1":{"type":"subnetInput"},"subnetOutput1":{"type":"subnetOutput","inputs":["setChildren1"]},"transform1":{"type":"transform","params":{"t":[0.484,-0.236,-0.7000000000000001]},"inputs":["transform2"],"flags":{"bypass":true,"display":true}},"transform2":{"type":"transform","params":{"scale":0.1},"inputs":["hierarchy1"]},"BVH1":{"type":"BVH","inputs":["material1"]}},"inputs":["actor1"]}},"flags":{"display":true}},"positionalAudio1":{"type":"positionalAudio","nodes":{"OUT":{"type":"null","inputs":["playInstrument1"]},"file1":{"type":"file","params":{"url":"https://raw.githubusercontent.com/polygonjs/polygonjs-assets/master/audio/resources/freesound/short/177242__deleted-user-3277771__cinematic-impact.mp3","autostart":false,"duration":7.922645833333333,"loop":false}},"playInstrument1":{"type":"playInstrument","inputs":["file1"]}},"params":{"audioNode":"OUT"},"flags":{"display":true}},"audioListener1":{"type":"audioListener","flags":{"display":true}}},"params":{"mainCameraPath":"/cameras/cameras:sopGroup/perspectiveCamera_MAIN","displayAudioIcon":1,"audioIconColor":[1,1,1]}},"ui":{"nodes":{"environment":{"pos":[-100,-100],"selection":["spotLight1"],"nodes":{"attribDelete1":{"pos":[150,350]},"box1":{"pos":[300,600]},"box2":{"pos":[-150,300]},"copy1":{"pos":[-50,600]},"fuse1":{"pos":[150,200]},"hemisphereLight1":{"pos":[550,550]},"jitter1":{"pos":[150,0]},"merge1":{"pos":[100,950]},"merge2":{"pos":[600,850]},"merge3":{"pos":[300,1150]},"plane1":{"pos":[150,-400]},"point1":{"pos":[150,100]},"polarTransform1":{"pos":[800,700]},"scatter1":{"pos":[150,-150]},"spotLight1":{"pos":[800,550]},"transform1":{"pos":[150,-250]}}},"objects":{"pos":[-100,0],"nodes":{"PRE_DELETE":{"pos":[-650,700]},"actor_appliedToIndividualObjects":{"pos":[-650,1650],"selection":["setObjectAttribute5"],"nodes":{"getObject1":{"pos":[350,800]},"getObjectAttribute1":{"pos":[850,250]},"getObjectProperty1":{"pos":[100,700]},"onObjectClick1":{"pos":[-50,50],"comment":"this sends a trigger when an object is clicked. The trigger is then received by [setObjectAttribute1](../setObjectAttribute1), which, unlike [setObjectAttribute2](../setObjectAttribute2), will not set an attribute on the current object, but instead on the camera. This happens because we override the `Object3D` input, with the node [getObject1](../getObject1), which fetches the camera by its name, using a mask `*perspectiveCamera_MAIN`"},"onObjectHover1":{"pos":[-50,-350],"comment":"this node sends a trigger whenever an object is hovered, or when the cursor does not hover it anymore. When that trigger is sent, it is received by [setObjectAttribute2](../setObjectAttribute2), which then sets the `hovered` attribute accordingly. This is then used by [actor_objectsParent](../../actor_objectsParent)"},"setObjectAttribute1":{"pos":[550,150],"comment":"as this node sets the `lookAtTarget` attribute on the camera, it needs a way to know what value it should set it to.\\n\\nIt takes that value from its `value` input, which comes from the node [getObjectProperty1](../getObjectProperty1), which returns the value of t he clicked object."},"setObjectAttribute2":{"pos":[350,-350]},"setObjectAttribute4":{"pos":[1450,150]},"setObjectAttribute5":{"pos":[1000,150],"comment":"here we set the `audioUrl` attribute on the camera object.\\n\\nThis will then be used in the [camera actor node](/cameras/actor1/getObjectAttribute4)"}}},"actor_objectsParent":{"pos":[-650,1950],"nodes":{"onChildAttributeUpdate1":{"pos":[-150,0],"comment":"this sends a trigger whenever one of its children `hovered` attribute changes.\\n\\nThis is then received by the [setViewer1](../setViewer1) node, which gets the value from the [or1](../or1) node, which returns `true` if any of its inputs is `true`, or `false` if none is. And its input is an array of the `hovered` attributes of its children."},"or1":{"pos":[200,150]},"setViewer1":{"pos":[400,0]}}},"attribCreate1":{"pos":[-1100,-400],"comment":"here we add an `audioName` attribute to the object, which is a short name for the audio file that will be played when clicking on it."},"attribCreate2":{"pos":[-500,0],"comment":"here we convert the `audioName` to the full url `audioUrl`. You could also just set the `audioUrl` directly for each object without the `audioName`."},"attribCreate3":{"pos":[-850,-400]},"attribCreate4":{"pos":[-600,-400]},"attribCreate5":{"pos":[-350,-400]},"attribCreate6":{"pos":[-50,-400]},"attribCreate7":{"pos":[-650,1050],"comment":"this copies the attribute `audioUrl` to the box"},"box1":{"pos":[-650,950]},"capsule1":{"pos":[-850,-650]},"cone1":{"pos":[-600,-650]},"copy1":{"pos":[-650,1450]},"delete1":{"pos":[-650,850]},"hierarchy1":{"pos":[-650,1800]},"merge1":{"pos":[-500,-100]},"merge2":{"pos":[-400,2400]},"objectProperties1":{"pos":[-500,400]},"objectProperties2":{"pos":[-650,2050],"comment":"this left branch creates a box for each input object. This is similar to how the [polynode cameraLookAtClickedObjects](https://market.polygonjs.com/gui/poly_nodes/sop/cameraLookAtClickableObjects) works."},"roundedBox1":{"pos":[-1100,-650]},"sphere1":{"pos":[-350,-650]},"subnet_colors":{"pos":[-500,550],"nodes":{"MAT":{"pos":[-200,150],"nodes":{"meshStandardBuilder1":{"pos":[0,250],"selection":["multAdd1"],"nodes":{"attribute1":{"pos":[-400,-200]},"floatToVec3_1":{"pos":[-150,-200]},"globals1":{"pos":[-200,0]},"hsvToRgb1":{"pos":[-50,-200]},"multAdd1":{"pos":[-300,-200]},"output1":{"pos":[200,0]}}}}},"attribId1":{"pos":[0,-150]},"attribPromote1":{"pos":[0,0]},"material1":{"pos":[0,150]},"subnetInput1":{"pos":[0,-250]},"subnetOutput1":{"pos":[0,250]}}},"torus1":{"pos":[-50,-650]},"transform1":{"pos":[-1100,-550]},"transform2":{"pos":[-850,-550]},"transform3":{"pos":[-600,-550]},"transform4":{"pos":[-350,-550]},"transform5":{"pos":[-50,-550]},"transformReset1":{"pos":[-650,1350]}}},"cameras":{"pos":[-100,100],"nodes":{"actor1":{"pos":[-200,-150],"comment":"Inside this actor node, we define how the camera reacts when the attributes `focused`, `lookAtTarget` and `audioUrl` change","nodes":{"add1":{"pos":[-350,-50]},"compare1":{"pos":[-300,-1050]},"complement1":{"pos":[-200,-750]},"constant_defaultLookAt":{"pos":[-50,50]},"getObject1":{"pos":[-600,-300]},"getObjectAttribute1":{"pos":[-450,450]},"getObjectAttribute2":{"pos":[-500,150]},"getObjectAttribute3":{"pos":[-150,-1450]},"getObjectAttribute4":{"pos":[-100,-1050],"comment":"here we read the attribute `audioUrl` on the camera, which was itself set by the clicked object from [this node](/objects/actor_appliedToIndividualObjects/setObjectAttribute5)"},"getObjectWorldPosition1":{"pos":[-300,-300]},"mix1":{"pos":[0,-150]},"mix2":{"pos":[200,150]},"onObjectAttributeUpdate1":{"pos":[-500,-1000]},"onTick1":{"pos":[-100,-450]},"onTick2":{"pos":[-150,-1600]},"pauseAudioSource1":{"pos":[350,-750]},"playAudioSource1":{"pos":[300,-1050],"comment":"This plays the audio. Once the file has completed, this node will trigger the following node on its right."},"setObjectAttribute1":{"pos":[250,-1600]},"setObjectAttribute2":{"pos":[500,-1250]},"setObjectLookAt1":{"pos":[550,-250]},"setObjectPosition1":{"pos":[250,-250]},"setParam1":{"pos":[100,-1050],"comment":"This changes the url of the [audio file node](/positionalAudio1/file1)"},"triggerDelay1":{"pos":[300,-1250]},"triggerFilter1":{"pos":[-150,-1250]},"triggerFilter2":{"pos":[0,-750]},"setObjectVisible1":{"pos":[350,-600]},"getObject2":{"pos":[150,-550]}}},"actor2":{"pos":[-500,0],"selection":["multAdd1"],"nodes":{"floatToVec3_2":{"pos":[200,150]},"multAdd1":{"pos":[100,150]},"onTick1":{"pos":[-100,0]},"setObjectRotation1":{"pos":[400,0]}}},"attribCreate1":{"pos":[-200,-600]},"attribCreate2":{"pos":[-200,-400],"comment":"here we add an empty attribute `audioUrl` to the camera, which will be set by the clicked object from [this node](/objects/actor_appliedToIndividualObjects/setObjectAttribute5)"},"attribCreate3":{"pos":[-200,-950]},"attribCreate4":{"pos":[-200,-750]},"cameraControls1":{"pos":[200,-100],"nodes":{"cameraOrbitControls1":{"pos":[0,0]}}},"hierarchy1":{"pos":[-500,-150]},"merge1":{"pos":[-100,450]},"merge2":{"pos":[-300,250]},"perspectiveCamera_DEBUG":{"pos":[200,-250]},"perspectiveCamera_MAIN":{"pos":[-200,-1100]},"perspectiveCamera_ROTATING":{"pos":[-500,-550]},"polarTransform1":{"pos":[-500,-350]},"subnet_addAudioStop":{"pos":[-200,50],"comment":"this parents a red sphere under the camera. This way it will appear in the frame like a HUD display","nodes":{"MAT":{"pos":[0,-300],"selection":["meshBasic1"],"nodes":{"meshBasic1":{"pos":[50,-150],"comment":"depthWrite is set to false, so that object with this material do not intersect with the rest of the scene"}}},"actor1":{"pos":[250,300],"nodes":{"getObject1":{"pos":[550,200]},"onObjectClick1":{"pos":[600,-50]},"setObjectAttribute4":{"pos":[950,0]},"onObjectHover1":{"pos":[650,-300]},"setViewer1":{"pos":[900,-300]},"getDefaultCamera1":{"pos":[250,-600]},"constant1":{"pos":[250,-800]},"setObjectPosition1":{"pos":[1050,-750]},"onTick1":{"pos":[850,-900]},"Object3DWorldToLocal1":{"pos":[750,-600]},"vector3Unproject1":{"pos":[500,-800]}}},"fileGLTF1":{"pos":[-50,-850]},"hierarchy1":{"pos":[-50,-750]},"material1":{"pos":[250,-300]},"objectProperties1":{"pos":[250,50],"comment":"make sure this object does not cast or receive shadows\\n"},"setChildren1":{"pos":[-200,450]},"sphere1":{"pos":[250,-600]},"subnetInput1":{"pos":[-200,100]},"subnetOutput1":{"pos":[-200,700]},"transform1":{"pos":[250,-450]},"transform2":{"pos":[-50,-600]},"BVH1":{"pos":[250,-100]}}}}},"positionalAudio1":{"pos":[150,100],"selection":["file1"],"nodes":{"OUT":{"pos":[0,0]},"file1":{"pos":[0,-350]},"playInstrument1":{"pos":[0,-100]}}},"audioListener1":{"pos":[150,0]}}},"shaders":{"/objects/subnet_colors/MAT/meshStandardBuilder1":{"vertex":"#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\n#include <common>\n\n\n\n// /objects/subnet_colors/MAT/meshStandardBuilder1/attribute1\nvarying float v_POLY_attribute_idn;\n\n// /objects/subnet_colors/MAT/meshStandardBuilder1/attribute1\nattribute float idn;\n\n\n\n\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\n\n\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/attribute1\n\tv_POLY_attribute_idn = float(idn);\n\t\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/output1\n\tvec3 transformed = position;\n\tvec3 objectNormal = normal;\n\t#ifdef USE_TANGENT\n\t\tvec3 objectTangent = vec3( tangent.xyz );\n\t#endif\n\n\n\n\t#include <morphcolor_vertex>\n// removed:\n//\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n// removed:\n//\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}","fragment":"#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULARINTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n\t#ifdef USE_SPECULARCOLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEENCOLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEENROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include <common>\n\n\n\n// /objects/subnet_colors/MAT/meshStandardBuilder1/hsvToRgb1\n// https://github.com/hughsk/glsl-hsv2rgb\n// https://stackoverflow.com/questions/15095909/from-rgb-to-hsv-in-opengl-glsl\nvec3 hsv2rgb(vec3 c) {\n\tvec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\n\tvec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\n\treturn c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\n}\n\n\n\n\n\n\n\n// /objects/subnet_colors/MAT/meshStandardBuilder1/attribute1\nvarying float v_POLY_attribute_idn;\n\n\n\n\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <bsdfs>\n#include <iridescence_fragment>\n#include <cube_uv_reflection_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_physical_pars_fragment>\n#include <fog_pars_fragment>\n#include <lights_pars_begin>\n#include <normal_pars_fragment>\n#include <lights_physical_pars_fragment>\n#include <transmission_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <clearcoat_pars_fragment>\n#include <iridescence_pars_fragment>\n#include <roughnessmap_pars_fragment>\n#include <metalnessmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nstruct SSSModel {\n\tbool isActive;\n\tvec3 color;\n\tfloat thickness;\n\tfloat power;\n\tfloat scale;\n\tfloat distortion;\n\tfloat ambient;\n\tfloat attenuation;\n};\n\nvoid RE_Direct_Scattering(\n\tconst in IncidentLight directLight,\n\tconst in GeometricContext geometry,\n\tconst in SSSModel sssModel,\n\tinout ReflectedLight reflectedLight\n\t){\n\tvec3 scatteringHalf = normalize(directLight.direction + (geometry.normal * sssModel.distortion));\n\tfloat scatteringDot = pow(saturate(dot(geometry.viewDir, -scatteringHalf)), sssModel.power) * sssModel.scale;\n\tvec3 scatteringIllu = (scatteringDot + sssModel.ambient) * (sssModel.color * (1.0-sssModel.thickness));\n\treflectedLight.directDiffuse += scatteringIllu * sssModel.attenuation * directLight.color;\n}\n\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\n\n\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/attribute1\n\tfloat v_POLY_attribute1_val = v_POLY_attribute_idn;\n\t\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/multAdd1\n\tfloat v_POLY_multAdd1_val = (0.92*(v_POLY_attribute1_val + 0.0)) + 0.0;\n\t\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/floatToVec3_1\n\tvec3 v_POLY_floatToVec3_1_vec3 = vec3(v_POLY_multAdd1_val, 0.68, 0.71);\n\t\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/hsvToRgb1\n\tvec3 v_POLY_hsvToRgb1_rgb = hsv2rgb(v_POLY_floatToVec3_1_vec3);\n\t\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/output1\n\tdiffuseColor.xyz = v_POLY_hsvToRgb1_rgb;\n\tfloat POLY_metalness = 1.0;\n\tfloat POLY_roughness = 1.0;\n\tvec3 POLY_emissive = vec3(1.0, 1.0, 1.0);\n\tSSSModel POLY_SSSModel = SSSModel(/*isActive*/false,/*color*/vec3(1.0, 1.0, 1.0), /*thickness*/0.1, /*power*/2.0, /*scale*/16.0, /*distortion*/0.1,/*ambient*/0.4,/*attenuation*/0.8 );\n\n\n\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive * POLY_emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\tfloat roughnessFactor = roughness * POLY_roughness;\n\n#ifdef USE_ROUGHNESSMAP\n\n\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\n\n\t// reads channel G, compatible with a combined OcclusionRoughnessMetallic (RGB) texture\n\troughnessFactor *= texelRoughness.g;\n\n#endif\n\n\tfloat metalnessFactor = metalness * POLY_metalness;\n\n#ifdef USE_METALNESSMAP\n\n\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\n\n\t// reads channel B, compatible with a combined OcclusionRoughnessMetallic (RGB) texture\n\tmetalnessFactor *= texelMetalness.b;\n\n#endif\n\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <clearcoat_normal_fragment_begin>\n\t#include <clearcoat_normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_physical_fragment>\n\t#include <lights_fragment_begin>\nif(POLY_SSSModel.isActive){\n\tRE_Direct_Scattering(directLight, geometry, POLY_SSSModel, reflectedLight);\n}\n\n\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include <transmission_fragment>\n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\t#endif\n\t#include <output_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}","customDepthMaterial.vertex":"#include <common>\n\n\n\n// /objects/subnet_colors/MAT/meshStandardBuilder1/attribute1\nvarying float v_POLY_attribute_idn;\n\n// /objects/subnet_colors/MAT/meshStandardBuilder1/attribute1\nattribute float idn;\n\n\n\n\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n// removed:\n//\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n// removed:\n//\t#include <begin_vertex>\n\n\n\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/attribute1\n\tv_POLY_attribute_idn = float(idn);\n\t\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/output1\n\tvec3 transformed = position;\n\tvec3 objectNormal = normal;\n\t#ifdef USE_TANGENT\n\t\tvec3 objectTangent = vec3( tangent.xyz );\n\t#endif\n\n\n\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvHighPrecisionZW = gl_Position.zw;\n}","customDepthMaterial.fragment":"\n// INSERT DEFINES\n\n\n#if DEPTH_PACKING == 3200\n\n\tuniform float opacity;\n\n#endif\n\n#include <common>\n\n\n\n// /objects/subnet_colors/MAT/meshStandardBuilder1/hsvToRgb1\n// https://github.com/hughsk/glsl-hsv2rgb\n// https://stackoverflow.com/questions/15095909/from-rgb-to-hsv-in-opengl-glsl\nvec3 hsv2rgb(vec3 c) {\n\tvec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\n\tvec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\n\treturn c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\n}\n\n\n\n\n\n\n\n// /objects/subnet_colors/MAT/meshStandardBuilder1/attribute1\nvarying float v_POLY_attribute_idn;\n\n\n\n\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\n\nvarying vec2 vHighPrecisionZW;\n\nstruct SSSModel {\n\tbool isActive;\n\tvec3 color;\n\tfloat thickness;\n\tfloat power;\n\tfloat scale;\n\tfloat distortion;\n\tfloat ambient;\n\tfloat attenuation;\n};\n\nvoid RE_Direct_Scattering(\n\tconst in IncidentLight directLight,\n\tconst in GeometricContext geometry,\n\tconst in SSSModel sssModel,\n\tinout ReflectedLight reflectedLight\n\t){\n\tvec3 scatteringHalf = normalize(directLight.direction + (geometry.normal * sssModel.distortion));\n\tfloat scatteringDot = pow(saturate(dot(geometry.viewDir, -scatteringHalf)), sssModel.power) * sssModel.scale;\n\tvec3 scatteringIllu = (scatteringDot + sssModel.ambient) * (sssModel.color * (1.0-sssModel.thickness));\n\treflectedLight.directDiffuse += scatteringIllu * sssModel.attenuation * directLight.color;\n}\n\nvoid main() {\n\n\t#include <clipping_planes_fragment>\n\n\tvec4 diffuseColor = vec4( 1.0 );\n\n\t#if DEPTH_PACKING == 3200\n\n\t\tdiffuseColor.a = opacity;\n\n\t#endif\n\n\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\n\n\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/attribute1\n\tfloat v_POLY_attribute1_val = v_POLY_attribute_idn;\n\t\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/multAdd1\n\tfloat v_POLY_multAdd1_val = (0.92*(v_POLY_attribute1_val + 0.0)) + 0.0;\n\t\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/floatToVec3_1\n\tvec3 v_POLY_floatToVec3_1_vec3 = vec3(v_POLY_multAdd1_val, 0.68, 0.71);\n\t\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/hsvToRgb1\n\tvec3 v_POLY_hsvToRgb1_rgb = hsv2rgb(v_POLY_floatToVec3_1_vec3);\n\t\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/output1\n\tdiffuseColor.xyz = v_POLY_hsvToRgb1_rgb;\n\tfloat POLY_metalness = 1.0;\n\tfloat POLY_roughness = 1.0;\n\tvec3 POLY_emissive = vec3(1.0, 1.0, 1.0);\n\tSSSModel POLY_SSSModel = SSSModel(/*isActive*/false,/*color*/vec3(1.0, 1.0, 1.0), /*thickness*/0.1, /*power*/2.0, /*scale*/16.0, /*distortion*/0.1,/*ambient*/0.4,/*attenuation*/0.8 );\n\n\n\n\n\t// INSERT BODY\n\t// the new body lines should be added before the alphatest_fragment\n\t// so that alpha is set before (which is really how it would be set if the alphamap_fragment above was used by the material node parameters)\n\n\t#include <alphatest_fragment>\n\n\t#include <logdepthbuf_fragment>\n\n\n\t// Higher precision equivalent of gl_FragCoord.z. This assumes depthRange has been left to its default values.\n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\n\t#if DEPTH_PACKING == 3200\n\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), diffuseColor.a );\n\n\t#elif DEPTH_PACKING == 3201\n\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\n\t#endif\n\n}\n","customDistanceMaterial.vertex":"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include <common>\n\n\n\n// /objects/subnet_colors/MAT/meshStandardBuilder1/attribute1\nvarying float v_POLY_attribute_idn;\n\n// /objects/subnet_colors/MAT/meshStandardBuilder1/attribute1\nattribute float idn;\n\n\n\n\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n// removed:\n//\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n// removed:\n//\t#include <begin_vertex>\n\n\n\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/attribute1\n\tv_POLY_attribute_idn = float(idn);\n\t\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/output1\n\tvec3 transformed = position;\n\tvec3 objectNormal = normal;\n\t#ifdef USE_TANGENT\n\t\tvec3 objectTangent = vec3( tangent.xyz );\n\t#endif\n\n\n\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <worldpos_vertex>\n\t#include <clipping_planes_vertex>\n\tvWorldPosition = worldPosition.xyz;\n}","customDistanceMaterial.fragment":"\n// INSERT DEFINES\n\n#define DISTANCE\n\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n\n#include <common>\n\n\n\n// /objects/subnet_colors/MAT/meshStandardBuilder1/hsvToRgb1\n// https://github.com/hughsk/glsl-hsv2rgb\n// https://stackoverflow.com/questions/15095909/from-rgb-to-hsv-in-opengl-glsl\nvec3 hsv2rgb(vec3 c) {\n\tvec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\n\tvec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\n\treturn c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\n}\n\n\n\n\n\n\n\n// /objects/subnet_colors/MAT/meshStandardBuilder1/attribute1\nvarying float v_POLY_attribute_idn;\n\n\n\n\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <clipping_planes_pars_fragment>\n\nstruct SSSModel {\n\tbool isActive;\n\tvec3 color;\n\tfloat thickness;\n\tfloat power;\n\tfloat scale;\n\tfloat distortion;\n\tfloat ambient;\n\tfloat attenuation;\n};\n\nvoid RE_Direct_Scattering(\n\tconst in IncidentLight directLight,\n\tconst in GeometricContext geometry,\n\tconst in SSSModel sssModel,\n\tinout ReflectedLight reflectedLight\n\t){\n\tvec3 scatteringHalf = normalize(directLight.direction + (geometry.normal * sssModel.distortion));\n\tfloat scatteringDot = pow(saturate(dot(geometry.viewDir, -scatteringHalf)), sssModel.power) * sssModel.scale;\n\tvec3 scatteringIllu = (scatteringDot + sssModel.ambient) * (sssModel.color * (1.0-sssModel.thickness));\n\treflectedLight.directDiffuse += scatteringIllu * sssModel.attenuation * directLight.color;\n}\n\nvoid main() {\n\n\t#include <clipping_planes_fragment>\n\n\tvec4 diffuseColor = vec4( 1.0 );\n\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\n\n\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/attribute1\n\tfloat v_POLY_attribute1_val = v_POLY_attribute_idn;\n\t\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/multAdd1\n\tfloat v_POLY_multAdd1_val = (0.92*(v_POLY_attribute1_val + 0.0)) + 0.0;\n\t\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/floatToVec3_1\n\tvec3 v_POLY_floatToVec3_1_vec3 = vec3(v_POLY_multAdd1_val, 0.68, 0.71);\n\t\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/hsvToRgb1\n\tvec3 v_POLY_hsvToRgb1_rgb = hsv2rgb(v_POLY_floatToVec3_1_vec3);\n\t\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/output1\n\tdiffuseColor.xyz = v_POLY_hsvToRgb1_rgb;\n\tfloat POLY_metalness = 1.0;\n\tfloat POLY_roughness = 1.0;\n\tvec3 POLY_emissive = vec3(1.0, 1.0, 1.0);\n\tSSSModel POLY_SSSModel = SSSModel(/*isActive*/false,/*color*/vec3(1.0, 1.0, 1.0), /*thickness*/0.1, /*power*/2.0, /*scale*/16.0, /*distortion*/0.1,/*ambient*/0.4,/*attenuation*/0.8 );\n\n\n\n\n\t// INSERT BODY\n\n\t#include <alphatest_fragment>\n\n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist ); // clamp to [ 0, 1 ]\n\n\tgl_FragColor = packDepthToRGBA( dist );\n\n}\n","customDepthDOFMaterial.vertex":"#include <common>\n\n\n\n// /objects/subnet_colors/MAT/meshStandardBuilder1/attribute1\nvarying float v_POLY_attribute_idn;\n\n// /objects/subnet_colors/MAT/meshStandardBuilder1/attribute1\nattribute float idn;\n\n\n\n\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n// removed:\n//\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n// removed:\n//\t#include <begin_vertex>\n\n\n\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/attribute1\n\tv_POLY_attribute_idn = float(idn);\n\t\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/output1\n\tvec3 transformed = position;\n\tvec3 objectNormal = normal;\n\t#ifdef USE_TANGENT\n\t\tvec3 objectTangent = vec3( tangent.xyz );\n\t#endif\n\n\n\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvHighPrecisionZW = gl_Position.zw;\n}","customDepthDOFMaterial.fragment":"\n// INSERT DEFINES\n\n\n#if DEPTH_PACKING == 3200\n\n\tuniform float opacity;\n\n#endif\n\n#include <common>\n\n\n\n// /objects/subnet_colors/MAT/meshStandardBuilder1/hsvToRgb1\n// https://github.com/hughsk/glsl-hsv2rgb\n// https://stackoverflow.com/questions/15095909/from-rgb-to-hsv-in-opengl-glsl\nvec3 hsv2rgb(vec3 c) {\n\tvec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\n\tvec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\n\treturn c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\n}\n\n\n\n\n\n\n\n// /objects/subnet_colors/MAT/meshStandardBuilder1/attribute1\nvarying float v_POLY_attribute_idn;\n\n\n\n\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\n\nvarying vec2 vHighPrecisionZW;\n\nstruct SSSModel {\n\tbool isActive;\n\tvec3 color;\n\tfloat thickness;\n\tfloat power;\n\tfloat scale;\n\tfloat distortion;\n\tfloat ambient;\n\tfloat attenuation;\n};\n\nvoid RE_Direct_Scattering(\n\tconst in IncidentLight directLight,\n\tconst in GeometricContext geometry,\n\tconst in SSSModel sssModel,\n\tinout ReflectedLight reflectedLight\n\t){\n\tvec3 scatteringHalf = normalize(directLight.direction + (geometry.normal * sssModel.distortion));\n\tfloat scatteringDot = pow(saturate(dot(geometry.viewDir, -scatteringHalf)), sssModel.power) * sssModel.scale;\n\tvec3 scatteringIllu = (scatteringDot + sssModel.ambient) * (sssModel.color * (1.0-sssModel.thickness));\n\treflectedLight.directDiffuse += scatteringIllu * sssModel.attenuation * directLight.color;\n}\n\nvoid main() {\n\n\t#include <clipping_planes_fragment>\n\n\tvec4 diffuseColor = vec4( 1.0 );\n\n\t#if DEPTH_PACKING == 3200\n\n\t\tdiffuseColor.a = opacity;\n\n\t#endif\n\n\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\n\n\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/attribute1\n\tfloat v_POLY_attribute1_val = v_POLY_attribute_idn;\n\t\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/multAdd1\n\tfloat v_POLY_multAdd1_val = (0.92*(v_POLY_attribute1_val + 0.0)) + 0.0;\n\t\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/floatToVec3_1\n\tvec3 v_POLY_floatToVec3_1_vec3 = vec3(v_POLY_multAdd1_val, 0.68, 0.71);\n\t\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/hsvToRgb1\n\tvec3 v_POLY_hsvToRgb1_rgb = hsv2rgb(v_POLY_floatToVec3_1_vec3);\n\t\n\t// /objects/subnet_colors/MAT/meshStandardBuilder1/output1\n\tdiffuseColor.xyz = v_POLY_hsvToRgb1_rgb;\n\tfloat POLY_metalness = 1.0;\n\tfloat POLY_roughness = 1.0;\n\tvec3 POLY_emissive = vec3(1.0, 1.0, 1.0);\n\tSSSModel POLY_SSSModel = SSSModel(/*isActive*/false,/*color*/vec3(1.0, 1.0, 1.0), /*thickness*/0.1, /*power*/2.0, /*scale*/16.0, /*distortion*/0.1,/*ambient*/0.4,/*attenuation*/0.8 );\n\n\n\n\n\t// INSERT BODY\n\t// the new body lines should be added before the alphatest_fragment\n\t// so that alpha is set before (which is really how it would be set if the alphamap_fragment above was used by the material node parameters)\n\n\t#include <alphatest_fragment>\n\n\t#include <logdepthbuf_fragment>\n\n\n\t// Higher precision equivalent of gl_FragCoord.z. This assumes depthRange has been left to its default values.\n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\n\t#if DEPTH_PACKING == 3200\n\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), diffuseColor.a );\n\n\t#elif DEPTH_PACKING == 3201\n\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\n\t#endif\n\n}\n"}}}
Code editor
{"multiple_panel":{"split_ratio":0.4544,"split_panel0":{"split_ratio":0.4180388458401305,"split_panel0":{"panelTypes":["viewer"],"currentPanelIndex":0,"panel_data":{"camera":"/cameras/cameras:sopGroup/perspectiveCamera_MAIN","isViewerInitLayoutData":true,"linkIndex":1}},"split_panel1":{"panelTypes":["params"],"currentPanelIndex":0,"panel_data":{"active_folder":null,"linkIndex":1}},"split_mode":"vertical"},"split_panel1":{"panelTypes":["network","params","viewer"],"currentPanelIndex":0,"panel_data":{"camera":{"position":{"x":-342.428773937179,"y":16.38732766107252},"zoom":0.56},"history":{"2":{"position":{"x":-52.56983240223463,"y":-36.84916201117316},"zoom":0.7810000000000002},"3":{"position":{"x":-48,"y":-22},"zoom":0.5},"6":{"position":{"x":11.339999999999996,"y":-96.49999999999999},"zoom":0.6172839506172841},"9":{"position":{"x":-32,"y":-88},"zoom":0.5},"60":{"position":{"x":471.5436841023696,"y":-1900.7129194922618},"zoom":0.6480000000000001},"86":{"position":{"x":62.463199571380606,"y":154.83123110033523},"zoom":0.6000000000000002},"131":{"position":{"x":-59.04899999999998,"y":-65.1854},"zoom":0.8467543904215146},"1296":{"position":{"x":-435.1883034634825,"y":741.2926483413726},"zoom":0.7050554210000004},"1511":{"position":{"x":-342.428773937179,"y":16.38732766107252},"zoom":0.56},"1857":{"position":{"x":-621.916455980778,"y":639.6430004982765},"zoom":0.9311111111111114},"1873":{"position":{"x":-791.299690549869,"y":707.3257975900204},"zoom":0.6071757812500003}},"linkIndex":1}},"split_mode":"horizontal"},"currentNodes":["/cameras/subnet_addAudioStop","/","/","/","/","/","/","/"],"navigationHistory":{"nodePaths":{"1":["/cameras","/cameras/subnet_addAudioStop","/cameras/subnet_addAudioStop/actor1","/cameras/subnet_addAudioStop","/cameras/subnet_addAudioStop/actor1","/cameras/subnet_addAudioStop","/cameras","/","/objects","/","/objects","/","/cameras","/cameras/actor1","/cameras","/cameras/subnet_addAudioStop","/cameras","/cameras/actor1","/cameras","/cameras/subnet_addAudioStop"],"2":["/"],"3":["/"],"4":["/"],"5":["/"],"6":["/"],"7":["/"],"8":["/"]},"index":{"1":19,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0}},"fullscreenPanelId":null,"saveOptions":{"createExport":true,"checkRemoteAssetsUse":true,"minimizeFilesCount":false,"compressJs":true,"createZip":false,"runPostExportCommand":false},"paramsModal":[]}
Used nodes
actor/Object3DWorldToLocal;actor/add;actor/compare;actor/complement;actor/constant;actor/floatToVec3;actor/getDefaultCamera;actor/getObject;actor/getObjectAttribute;actor/getObjectProperty;actor/getObjectWorldPosition;actor/mix;actor/multAdd;actor/onChildAttributeUpdate;actor/onObjectAttributeUpdate;actor/onObjectClick;actor/onObjectHover;actor/onTick;actor/or;actor/pauseAudioSource;actor/playAudioSource;actor/setObjectAttribute;actor/setObjectLookAt;actor/setObjectPosition;actor/setObjectRotation;actor/setObjectVisible;actor/setParam;actor/setViewer;actor/triggerDelay;actor/triggerFilter;actor/vector3Unproject;audio/file;audio/null;audio/playInstrument;event/cameraOrbitControls;mat/meshBasic;mat/meshStandardBuilder;obj/audioListener;obj/geo;obj/positionalAudio;sop/BVH;sop/actor;sop/attribCreate;sop/attribDelete;sop/attribId;sop/attribPromote;sop/box;sop/cameraControls;sop/capsule;sop/cone;sop/copy;sop/delete;sop/fileGLTF;sop/fuse;sop/hemisphereLight;sop/hierarchy;sop/jitter;sop/material;sop/materialsNetwork;sop/merge;sop/null;sop/objectProperties;sop/perspectiveCamera;sop/plane;sop/point;sop/polarTransform;sop/roundedBox;sop/scatter;sop/setChildren;sop/sphere;sop/spotLight;sop/subnet;sop/subnetInput;sop/subnetOutput;sop/torus;sop/transform;sop/transformReset
Used operations
Used modules
Used assemblers
GL_MESH_STANDARD
Used integrations
[]
Used assets
Nodes map
{"/environment":"obj/geo","/environment/attribDelete1":"sop/attribDelete","/environment/box1":"sop/box","/environment/box2":"sop/box","/environment/copy1":"sop/copy","/environment/fuse1":"sop/fuse","/environment/hemisphereLight1":"sop/hemisphereLight","/environment/jitter1":"sop/jitter","/environment/merge1":"sop/merge","/environment/merge2":"sop/merge","/environment/merge3":"sop/merge","/environment/plane1":"sop/plane","/environment/point1":"sop/point","/environment/polarTransform1":"sop/polarTransform","/environment/scatter1":"sop/scatter","/environment/spotLight1":"sop/spotLight","/environment/transform1":"sop/transform","/objects":"obj/geo","/objects/PRE_DELETE":"sop/null","/objects/actor_appliedToIndividualObjects":"sop/actor","/objects/actor_appliedToIndividualObjects/getObject1":"actor/getObject","/objects/actor_appliedToIndividualObjects/getObjectAttribute1":"actor/getObjectAttribute","/objects/actor_appliedToIndividualObjects/getObjectProperty1":"actor/getObjectProperty","/objects/actor_appliedToIndividualObjects/onObjectClick1":"actor/onObjectClick","/objects/actor_appliedToIndividualObjects/onObjectHover1":"actor/onObjectHover","/objects/actor_appliedToIndividualObjects/setObjectAttribute1":"actor/setObjectAttribute","/objects/actor_appliedToIndividualObjects/setObjectAttribute2":"actor/setObjectAttribute","/objects/actor_appliedToIndividualObjects/setObjectAttribute4":"actor/setObjectAttribute","/objects/actor_appliedToIndividualObjects/setObjectAttribute5":"actor/setObjectAttribute","/objects/actor_objectsParent":"sop/actor","/objects/actor_objectsParent/onChildAttributeUpdate1":"actor/onChildAttributeUpdate","/objects/actor_objectsParent/or1":"actor/or","/objects/actor_objectsParent/setViewer1":"actor/setViewer","/objects/attribCreate1":"sop/attribCreate","/objects/attribCreate2":"sop/attribCreate","/objects/attribCreate3":"sop/attribCreate","/objects/attribCreate4":"sop/attribCreate","/objects/attribCreate5":"sop/attribCreate","/objects/attribCreate6":"sop/attribCreate","/objects/attribCreate7":"sop/attribCreate","/objects/box1":"sop/box","/objects/capsule1":"sop/capsule","/objects/cone1":"sop/cone","/objects/copy1":"sop/copy","/objects/delete1":"sop/delete","/objects/hierarchy1":"sop/hierarchy","/objects/merge1":"sop/merge","/objects/merge2":"sop/merge","/objects/objectProperties1":"sop/objectProperties","/objects/objectProperties2":"sop/objectProperties","/objects/roundedBox1":"sop/roundedBox","/objects/sphere1":"sop/sphere","/objects/subnet_colors":"sop/subnet","/objects/subnet_colors/MAT":"sop/materialsNetwork","/objects/subnet_colors/MAT/meshStandardBuilder1":"mat/meshStandardBuilder","/objects/subnet_colors/attribId1":"sop/attribId","/objects/subnet_colors/attribPromote1":"sop/attribPromote","/objects/subnet_colors/material1":"sop/material","/objects/subnet_colors/subnetInput1":"sop/subnetInput","/objects/subnet_colors/subnetOutput1":"sop/subnetOutput","/objects/torus1":"sop/torus","/objects/transform1":"sop/transform","/objects/transform2":"sop/transform","/objects/transform3":"sop/transform","/objects/transform4":"sop/transform","/objects/transform5":"sop/transform","/objects/transformReset1":"sop/transformReset","/cameras":"obj/geo","/cameras/actor1":"sop/actor","/cameras/actor1/add1":"actor/add","/cameras/actor1/compare1":"actor/compare","/cameras/actor1/complement1":"actor/complement","/cameras/actor1/constant_defaultLookAt":"actor/constant","/cameras/actor1/getObject1":"actor/getObject","/cameras/actor1/getObjectAttribute1":"actor/getObjectAttribute","/cameras/actor1/getObjectAttribute2":"actor/getObjectAttribute","/cameras/actor1/getObjectAttribute3":"actor/getObjectAttribute","/cameras/actor1/getObjectAttribute4":"actor/getObjectAttribute","/cameras/actor1/getObjectWorldPosition1":"actor/getObjectWorldPosition","/cameras/actor1/mix1":"actor/mix","/cameras/actor1/mix2":"actor/mix","/cameras/actor1/onObjectAttributeUpdate1":"actor/onObjectAttributeUpdate","/cameras/actor1/onTick1":"actor/onTick","/cameras/actor1/onTick2":"actor/onTick","/cameras/actor1/pauseAudioSource1":"actor/pauseAudioSource","/cameras/actor1/playAudioSource1":"actor/playAudioSource","/cameras/actor1/setObjectAttribute1":"actor/setObjectAttribute","/cameras/actor1/setObjectAttribute2":"actor/setObjectAttribute","/cameras/actor1/setObjectLookAt1":"actor/setObjectLookAt","/cameras/actor1/setObjectPosition1":"actor/setObjectPosition","/cameras/actor1/setParam1":"actor/setParam","/cameras/actor1/triggerDelay1":"actor/triggerDelay","/cameras/actor1/triggerFilter1":"actor/triggerFilter","/cameras/actor1/triggerFilter2":"actor/triggerFilter","/cameras/actor1/setObjectVisible1":"actor/setObjectVisible","/cameras/actor1/getObject2":"actor/getObject","/cameras/actor2":"sop/actor","/cameras/actor2/floatToVec3_2":"actor/floatToVec3","/cameras/actor2/multAdd1":"actor/multAdd","/cameras/actor2/onTick1":"actor/onTick","/cameras/actor2/setObjectRotation1":"actor/setObjectRotation","/cameras/attribCreate1":"sop/attribCreate","/cameras/attribCreate2":"sop/attribCreate","/cameras/attribCreate3":"sop/attribCreate","/cameras/attribCreate4":"sop/attribCreate","/cameras/cameraControls1":"sop/cameraControls","/cameras/cameraControls1/cameraOrbitControls1":"event/cameraOrbitControls","/cameras/hierarchy1":"sop/hierarchy","/cameras/merge1":"sop/merge","/cameras/merge2":"sop/merge","/cameras/perspectiveCamera_DEBUG":"sop/perspectiveCamera","/cameras/perspectiveCamera_MAIN":"sop/perspectiveCamera","/cameras/perspectiveCamera_ROTATING":"sop/perspectiveCamera","/cameras/polarTransform1":"sop/polarTransform","/cameras/subnet_addAudioStop":"sop/subnet","/cameras/subnet_addAudioStop/MAT":"sop/materialsNetwork","/cameras/subnet_addAudioStop/MAT/meshBasic1":"mat/meshBasic","/cameras/subnet_addAudioStop/actor1":"sop/actor","/cameras/subnet_addAudioStop/actor1/getObject1":"actor/getObject","/cameras/subnet_addAudioStop/actor1/onObjectClick1":"actor/onObjectClick","/cameras/subnet_addAudioStop/actor1/setObjectAttribute4":"actor/setObjectAttribute","/cameras/subnet_addAudioStop/actor1/onObjectHover1":"actor/onObjectHover","/cameras/subnet_addAudioStop/actor1/setViewer1":"actor/setViewer","/cameras/subnet_addAudioStop/actor1/getDefaultCamera1":"actor/getDefaultCamera","/cameras/subnet_addAudioStop/actor1/constant1":"actor/constant","/cameras/subnet_addAudioStop/actor1/setObjectPosition1":"actor/setObjectPosition","/cameras/subnet_addAudioStop/actor1/onTick1":"actor/onTick","/cameras/subnet_addAudioStop/actor1/Object3DWorldToLocal1":"actor/Object3DWorldToLocal","/cameras/subnet_addAudioStop/actor1/vector3Unproject1":"actor/vector3Unproject","/cameras/subnet_addAudioStop/fileGLTF1":"sop/fileGLTF","/cameras/subnet_addAudioStop/hierarchy1":"sop/hierarchy","/cameras/subnet_addAudioStop/material1":"sop/material","/cameras/subnet_addAudioStop/objectProperties1":"sop/objectProperties","/cameras/subnet_addAudioStop/setChildren1":"sop/setChildren","/cameras/subnet_addAudioStop/sphere1":"sop/sphere","/cameras/subnet_addAudioStop/subnetInput1":"sop/subnetInput","/cameras/subnet_addAudioStop/subnetOutput1":"sop/subnetOutput","/cameras/subnet_addAudioStop/transform1":"sop/transform","/cameras/subnet_addAudioStop/transform2":"sop/transform","/cameras/subnet_addAudioStop/BVH1":"sop/BVH","/positionalAudio1":"obj/positionalAudio","/positionalAudio1/OUT":"audio/null","/positionalAudio1/file1":"audio/file","/positionalAudio1/playInstrument1":"audio/playInstrument","/audioListener1":"obj/audioListener"}
Js version
Editor version
Engine version
Logout
0%
There was a problem displaying your scene:
view scene source