[{"edges":{"lihjkfp":{"as":"value","from":"lihjkfp","to":"main/out"},"x4zdk2w":{"as":"true","from":"x4zdk2w","to":"lihjkfp"},"xsjuu4i":{"as":"pred","from":"xsjuu4i","to":"lihjkfp"},"eyftv46":{"as":"canvas","from":"eyftv46","to":"xsjuu4i"},"cwl59lh":{"as":"canvas","from":"cwl59lh","to":"x4zdk2w"}},"id":"@three.renderer","nodes":{"main/out":{"__isnodysseus":true,"id":"main/out","name":"@three.renderer","ref":"return"},"lihjkfp":{"id":"lihjkfp","ref":"@flow.if"},"xsjuu4i":{"id":"xsjuu4i","ref":"@js.script","value":"return _lib.THREE && canvas;"},"eyftv46":{"id":"eyftv46","ref":"arg","value":"canvas"},"x4zdk2w":{"id":"x4zdk2w","ref":"@js.script","value":"const renderer = new _lib.THREE.WebGLRenderer({canvas});\nreturn renderer"},"cwl59lh":{"id":"cwl59lh","name":"","ref":"arg","value":"canvas"}},"out":"main/out"},{"edges":{"4n3yk4e":{"as":"value","from":"4n3yk4e","to":"tkxqh5a"},"zlyzyjv":{"as":"args","from":"zlyzyjv","to":"tkxqh5a"},"a23wspb":{"as":"parent","from":"a23wspb","to":"4n3yk4e"},"pnszphc":{"as":"argobjnames","from":"pnszphc","to":"4n3yk4e"},"grsb8qa":{"as":"fn","from":"grsb8qa","to":"pnszphc"},"qjadhr5":{"as":"array","from":"qjadhr5","to":"pnszphc"},"49o12hh":{"as":"fn","from":"49o12hh","to":"grsb8qa"},"5ljysw7":{"as":"parameters","from":"5ljysw7","to":"grsb8qa"},"0zs05z2":{"as":"element","from":"0zs05z2","to":"5ljysw7"},"ad6qpuc":{"as":"parent","from":"ad6qpuc","to":"49o12hh"},"b3j4v9i":{"as":"obj","from":"b3j4v9i","to":"49o12hh"}},"id":"@three.update_children","name":"@three.update_children","nodes":{"tkxqh5a":{"id":"tkxqh5a","name":"@three.update_children","ref":"return"},"zlyzyjv":{"id":"zlyzyjv"},"4n3yk4e":{"id":"4n3yk4e","ref":"@js.script","value":"parent.children.forEach(c => {\n  if(!argobjnames.includes(c.name)){\n    parent.remove(c);\n  }\n})\n\nreturn parent;"},"pnszphc":{"id":"pnszphc","ref":"@data.map"},"qjadhr5":{"id":"qjadhr5","ref":"arg","value":"children"},"grsb8qa":{"id":"grsb8qa","ref":"@flow.runnable"},"5ljysw7":{"id":"5ljysw7","ref":"extern","value":"extern.data"},"0zs05z2":{"id":"0zs05z2"},"49o12hh":{"id":"49o12hh","name":"","ref":"@js.script","value":"const existingObj = parent.getObjectByName(obj.name);\nif(obj && existingObj !== obj){\n  if(existingObj) {\n    parent.remove(existingObj);\n    existingObj.geometry?.dispose();\n    existingObj.material?.dispose();\n  }\n  parent.add(obj); \n}\nreturn obj.name;"},"b3j4v9i":{"id":"b3j4v9i","ref":"arg","value":"element"},"ad6qpuc":{"id":"ad6qpuc","ref":"arg","value":"parent"},"a23wspb":{"id":"a23wspb","ref":"arg","value":"parent"}},"out":"tkxqh5a"},{"edges":{"x4zdk2w":{"as":"value","from":"x4zdk2w","to":"main/out"}},"id":"@three.scene","nodes":{"main/out":{"__isnodysseus":true,"id":"main/out","name":"@three.scene","ref":"return"},"x4zdk2w":{"id":"x4zdk2w","ref":"@js.new","value":"THREE.Scene"}},"out":"main/out"},{"description":"A three.js [PerspectiveCamera](https://threejs.org/docs/?q=camera#api/en/cameras/PerspectiveCamera)","edges":{"args":{"as":"args","from":"args","to":"main/out"},"x4zdk2w":{"as":"value","from":"x4zdk2w","to":"main/out"},"11u8kd6":{"as":"height","from":"11u8kd6","to":"x4zdk2w"},"qvf3y0y":{"as":"width","from":"qvf3y0y","to":"x4zdk2w"},"n79e1ca":{"as":"THREE","from":"n79e1ca","to":"args"},"vjfgmrl":{"as":"value","from":"vjfgmrl","to":"n79e1ca"}},"id":"@three.camera","nodes":{"main/out":{"__isnodysseus":true,"id":"main/out","name":"@three.camera","ref":"return"},"x4zdk2w":{"id":"x4zdk2w","ref":"@js.script","value":"return new _lib.THREE.PerspectiveCamera( 75, width / height, 0.1, 1000 );"},"qvf3y0y":{"id":"qvf3y0y","ref":"arg","value":"canvas.width"},"11u8kd6":{"id":"11u8kd6","ref":"arg","value":"canvas.height"},"args":{"id":"args","ref":"extern","value":"extern.data"},"n79e1ca":{"id":"n79e1ca","ref":"@memory.cache"},"vjfgmrl":{"id":"vjfgmrl","ref":"@js.import_module","value":"https://cdn.jsdelivr.net/npm/three/build/three.module.js"}},"out":"main/out"},{"description":"Creates a basic three.js scene with a camera, renderer, and scene. The `objects` input has the objects of the scene, evaluated every frame - make sure to cache. The `onupdate` input is a runnable with parameters `objects`, `camera`, and `scene` which is run every frame - keep. The `fx` input has effects for an EffectComposer.","edges":{"8m5muxn/39ivise":{"as":"args","from":"8m5muxn/39ivise","to":"8m5muxn/8m5muxn"},"8m5muxn/njzfcz8":{"as":"value","from":"8m5muxn/njzfcz8","to":"8m5muxn/8m5muxn"},"qioaglu":{"as":"lib","from":"qioaglu","to":"8m5muxn/8m5muxn"},"kipwn58":{"as":"EffectComposer","from":"kipwn58","to":"qioaglu"},"vl4foaa":{"as":"RenderPass","from":"vl4foaa","to":"qioaglu"},"yt5ewda":{"as":"nodeFrame","from":"yt5ewda","to":"qioaglu"},"dt9q1m5":{"as":"value","from":"dt9q1m5","to":"yt5ewda"},"bqpkucx":{"as":"target","from":"bqpkucx","to":"dt9q1m5"},"7peak26":{"as":"value","from":"7peak26","to":"vl4foaa"},"slle0cq":{"as":"target","from":"slle0cq","to":"7peak26"},"4a9zo9a":{"as":"value","from":"4a9zo9a","to":"kipwn58"},"i39y0i3":{"as":"target","from":"i39y0i3","to":"4a9zo9a"},"8m5muxn/hlqmo48":{"as":"args","from":"8m5muxn/hlqmo48","to":"8m5muxn/njzfcz8"},"8m5muxn/vyr07ts":{"as":"subscribe","from":"8m5muxn/vyr07ts","to":"8m5muxn/njzfcz8"},"jiobf52":{"as":"value","from":"jiobf52","to":"8m5muxn/njzfcz8"},"f7krd8u":{"as":"objects","from":"f7krd8u","to":"jiobf52"},"slwyovm":{"as":"renderer","from":"slwyovm","to":"jiobf52"},"ptak9t2":{"as":"animationframe","from":"ptak9t2","to":"8m5muxn/vyr07ts"},"c6eig78":{"as":"fn","from":"c6eig78","to":"ptak9t2"},"7c7zppx":{"as":"arg2","from":"7c7zppx","to":"c6eig78"},"o9mcda1":{"as":"arg1","from":"o9mcda1","to":"c6eig78"},"rmqxb31":{"as":"arg4","from":"rmqxb31","to":"c6eig78"},"z552097":{"as":"arg5","from":"z552097","to":"c6eig78"},"dyst9ju":{"as":"fn","from":"dyst9ju","to":"z552097"},"1js087x":{"as":"camera","from":"1js087x","to":"dyst9ju"},"cha35wd":{"as":"scene","from":"cha35wd","to":"dyst9ju"},"cvop6x9":{"as":"renderer","from":"cvop6x9","to":"dyst9ju"},"e9d6mmx":{"as":"otherwise","from":"e9d6mmx","to":"cvop6x9"},"zs7iowa":{"as":"value","from":"zs7iowa","to":"cvop6x9"},"0wp18c9":{"as":"args","from":"0wp18c9","to":"e9d6mmx"},"7xukyuz":{"as":"fn","from":"7xukyuz","to":"e9d6mmx"},"cwrlosg":{"as":"run","from":"cwrlosg","to":"e9d6mmx"},"jjmvxjj":{"as":"target","from":"jjmvxjj","to":"7xukyuz"},"vc0quhz":{"as":"value","from":"vc0quhz","to":"0wp18c9"},"lugpx4o":{"as":"value","from":"lugpx4o","to":"vc0quhz"},"6s18wo7":{"as":"camera","from":"6s18wo7","to":"lugpx4o"},"eamyj81":{"as":"scene","from":"eamyj81","to":"lugpx4o"},"svcshll":{"as":"canvas","from":"svcshll","to":"lugpx4o"},"tgacxe5":{"as":"renderer","from":"tgacxe5","to":"lugpx4o"},"vwa13pj":{"as":"fx","from":"vwa13pj","to":"lugpx4o"},"vzmvbqh":{"as":"MotionBlur","from":"vzmvbqh","to":"lugpx4o"},"23ppkmp":{"as":"pred","from":"23ppkmp","to":"vzmvbqh"},"3876w2f":{"as":"true","from":"3876w2f","to":"vzmvbqh"},"ya36a1r":{"as":"module","from":"ya36a1r","to":"3876w2f"},"fzf3k5e":{"as":"RenderPass","from":"fzf3k5e","to":"vwa13pj"},"gap7au7":{"as":"EffectComposer","from":"gap7au7","to":"vwa13pj"},"hsytqp3":{"as":"value","from":"hsytqp3","to":"tgacxe5"},"1j95u16":{"as":"canvas","from":"1j95u16","to":"hsytqp3"},"b2z2580":{"as":"true","from":"b2z2580","to":"rmqxb31"},"mh5ikoc":{"as":"pred","from":"mh5ikoc","to":"rmqxb31"},"m291v0o":{"as":"args","from":"m291v0o","to":"b2z2580"},"wcnk2sw":{"as":"fn","from":"wcnk2sw","to":"b2z2580"},"2veqlq1":{"as":"scene","from":"2veqlq1","to":"m291v0o"},"xgl6r05":{"as":"objects","from":"xgl6r05","to":"m291v0o"},"y2f8gog":{"as":"camera","from":"y2f8gog","to":"m291v0o"},"lsf5igz":{"as":"fn","from":"lsf5igz","to":"o9mcda1"},"ploozds":{"as":"pred","from":"ploozds","to":"lsf5igz"},"tkxqh5a":{"as":"true","from":"tkxqh5a","to":"lsf5igz"},"z51c26o":{"as":"children","from":"z51c26o","to":"tkxqh5a"},"zz2yk2z":{"as":"parent","from":"zz2yk2z","to":"tkxqh5a"},"5gt2zai":{"as":"fn","from":"5gt2zai","to":"z51c26o"},"na6fxum":{"as":"array","from":"na6fxum","to":"z51c26o"},"8ivgw9u":{"as":"false","from":"8ivgw9u","to":"na6fxum"},"d8w679k":{"as":"true","from":"d8w679k","to":"na6fxum"},"f288n1z":{"as":"pred","from":"f288n1z","to":"na6fxum"},"reop6t4":{"as":"entries","from":"reop6t4","to":"d8w679k"},"bgi56zl":{"as":"object","from":"bgi56zl","to":"reop6t4"},"by4m1fr":{"as":"value","from":"by4m1fr","to":"bgi56zl"},"u0f4b37":{"as":"otherwise","from":"u0f4b37","to":"bgi56zl"},"ryjjzqr":{"as":"runnable","from":"ryjjzqr","to":"5gt2zai"},"4j2wgr9":{"as":"fn","from":"4j2wgr9","to":"ryjjzqr"},"sfzzxee":{"as":"parameters","from":"sfzzxee","to":"ryjjzqr"},"wgn4yl2":{"as":"element","from":"wgn4yl2","to":"sfzzxee"},"ek93m5o":{"as":"target","from":"ek93m5o","to":"4j2wgr9"},"l98p3to":{"as":"value","from":"l98p3to","to":"4j2wgr9"},"s208cfn":{"as":"target","from":"s208cfn","to":"l98p3to"},"dq4u9ji":{"as":"target","from":"dq4u9ji","to":"ek93m5o"},"aqfc51v":{"as":"fn","from":"aqfc51v","to":"7c7zppx"},"5m99dxg":{"as":"true","from":"5m99dxg","to":"aqfc51v"},"x638fhv":{"as":"pred","from":"x638fhv","to":"aqfc51v"},"xel6go6":{"as":"arg0","from":"xel6go6","to":"x638fhv"},"xmd2fqb":{"as":"arg1","from":"xmd2fqb","to":"x638fhv"},"4fxcgml":{"as":"renderer","from":"4fxcgml","to":"5m99dxg"},"fznso76":{"as":"fx","from":"fznso76","to":"5m99dxg"},"8m5muxn/7in78pu":{"as":"_camera","from":"8m5muxn/7in78pu","to":"8m5muxn/hlqmo48"},"8m5muxn/inq87j9":{"as":"_scene","from":"8m5muxn/inq87j9","to":"8m5muxn/hlqmo48"},"8m5muxn/gwavfrm":{"as":"value","from":"8m5muxn/gwavfrm","to":"8m5muxn/inq87j9"},"8m5muxn/33kmaec":{"as":"target","from":"8m5muxn/33kmaec","to":"8m5muxn/7in78pu"},"8m5muxn/v1nqvl7":{"as":"value","from":"8m5muxn/v1nqvl7","to":"8m5muxn/7in78pu"},"8m5muxn/zci8apj":{"as":"value","from":"8m5muxn/zci8apj","to":"8m5muxn/33kmaec"},"t8adnxm":{"as":"canvas","from":"t8adnxm","to":"8m5muxn/zci8apj"},"40aw44l":{"as":"_renderer","from":"40aw44l","to":"8m5muxn/39ivise"}},"id":"@three.setup","name":"three.setup","nodes":{"8m5muxn/8m5muxn":{"id":"8m5muxn/8m5muxn","name":"@three.setup","ref":"return"},"qioaglu":{"id":"qioaglu"},"yt5ewda":{"id":"yt5ewda","ref":"@memory.cache"},"dt9q1m5":{"id":"dt9q1m5","ref":"@data.get","value":"nodeFrame"},"bqpkucx":{"id":"bqpkucx","ref":"@js.import_module","value":"https://cdn.jsdelivr.net/npm/three/examples/jsm/renderers/webgl/nodes/WebGLNodes.js"},"vl4foaa":{"id":"vl4foaa","ref":"@memory.cache"},"7peak26":{"id":"7peak26","ref":"@data.get","value":"RenderPass"},"slle0cq":{"id":"slle0cq","ref":"@js.import_module","value":"https://cdn.jsdelivr.net/npm/three/examples/jsm/postprocessing/RenderPass.js"},"kipwn58":{"id":"kipwn58","ref":"@memory.cache"},"4a9zo9a":{"id":"4a9zo9a","ref":"@data.get","value":"EffectComposer"},"i39y0i3":{"id":"i39y0i3","ref":"@js.import_module","value":"https://cdn.jsdelivr.net/npm/three/examples/jsm/postprocessing/EffectComposer.js"},"8m5muxn/njzfcz8":{"id":"8m5muxn/njzfcz8","name":"","ref":"return"},"jiobf52":{"id":"jiobf52"},"slwyovm":{"id":"slwyovm","ref":"arg","value":"_renderer.value"},"f7krd8u":{"id":"f7krd8u","ref":"arg","value":"objects"},"8m5muxn/vyr07ts":{"id":"8m5muxn/vyr07ts","name":""},"ptak9t2":{"id":"ptak9t2","name":"","ref":"@flow.ap"},"c6eig78":{"id":"c6eig78","ref":"@data.array"},"z552097":{"id":"z552097","ref":"@flow.runnable"},"dyst9ju":{"id":"dyst9ju","ref":"@js.script","value":"if(renderer) {\n  //renderer.render(scene, camera);\n  _lib.nodeFrame.update();\n  renderer.render();\n}"},"cvop6x9":{"id":"cvop6x9","ref":"@flow.default"},"zs7iowa":{"id":"zs7iowa","ref":"arg","value":"_renderer.value"},"e9d6mmx":{"id":"e9d6mmx","ref":"@flow.ap"},"cwrlosg":{"id":"cwrlosg","value":"true"},"7xukyuz":{"id":"7xukyuz","ref":"@data.get","value":"set"},"jjmvxjj":{"id":"jjmvxjj","ref":"arg","value":"_renderer"},"0wp18c9":{"id":"0wp18c9"},"vc0quhz":{"id":"vc0quhz","ref":"@memory.cache"},"lugpx4o":{"id":"lugpx4o","ref":"@js.script","value":"if(!renderer){\n  return;\n}\nconst fxcomposer = new fx.EffectComposer(renderer)\nconst renderpass = new fx.RenderPass(scene, camera);\nfxcomposer.setSize(canvas.width, canvas.height);\nfxcomposer.addPass(renderpass);\nif(MotionBlur) {\n  const pass = new MotionBlur(scene, camera, { samples: 32, expandgeometry: 0.4 });\n  fxcomposer.addPass(pass);\n  pass.renderToScreen = true;\n}\nreturn fxcomposer;"},"vzmvbqh":{"id":"vzmvbqh","ref":"@flow.if"},"3876w2f":{"id":"3876w2f","ref":"@js.script","value":"return module.MotionBlurPass;"},"ya36a1r":{"id":"ya36a1r","ref":"@js.import_module","value":"https://cdn.jsdelivr.net/gh/ulyssesdotcodes/threejs-sandbox@94c68f4/motionBlurPass/src/MotionBlurPass.js"},"23ppkmp":{"id":"23ppkmp","ref":"arg","value":"motionBlur"},"vwa13pj":{"id":"vwa13pj"},"gap7au7":{"id":"gap7au7","ref":"arg","value":"_lib.EffectComposer"},"fzf3k5e":{"id":"fzf3k5e","ref":"arg","value":"_lib.RenderPass"},"tgacxe5":{"id":"tgacxe5","ref":"@memory.cache"},"hsytqp3":{"id":"hsytqp3","name":"","ref":"@three.renderer"},"1j95u16":{"id":"1j95u16","ref":"arg","value":"canvas"},"svcshll":{"id":"svcshll","ref":"arg","value":"canvas"},"eamyj81":{"id":"eamyj81","ref":"arg","value":"_scene: internal"},"6s18wo7":{"id":"6s18wo7","ref":"arg","value":"_camera: internal"},"cha35wd":{"id":"cha35wd","ref":"arg","value":"_scene: internal"},"1js087x":{"id":"1js087x","ref":"arg","value":"_camera: internal"},"rmqxb31":{"id":"rmqxb31","ref":"@flow.if"},"mh5ikoc":{"id":"mh5ikoc","ref":"arg","value":"onupdate"},"b2z2580":{"id":"b2z2580","ref":"@flow.ap"},"wcnk2sw":{"id":"wcnk2sw","ref":"arg","value":"onupdate"},"m291v0o":{"id":"m291v0o"},"y2f8gog":{"id":"y2f8gog","ref":"arg","value":"_camera: internal"},"xgl6r05":{"id":"xgl6r05","ref":"arg","value":"objects: internal"},"2veqlq1":{"id":"2veqlq1","ref":"arg","value":"_scene"},"o9mcda1":{"id":"o9mcda1","ref":"@flow.runnable"},"lsf5igz":{"id":"lsf5igz","ref":"@flow.if"},"tkxqh5a":{"id":"tkxqh5a","ref":"@three.update_children"},"zz2yk2z":{"id":"zz2yk2z","ref":"arg","value":"_scene"},"z51c26o":{"id":"z51c26o","ref":"@data.map"},"na6fxum":{"id":"na6fxum","ref":"@flow.if"},"f288n1z":{"id":"f288n1z","ref":"arg","value":"objects"},"d8w679k":{"id":"d8w679k","ref":"@js.script","value":"return entries.filter(e => e[1])"},"reop6t4":{"id":"reop6t4","ref":"@data.object_entries"},"bgi56zl":{"id":"bgi56zl","ref":"@flow.default"},"u0f4b37":{"id":"u0f4b37","value":"{}"},"by4m1fr":{"id":"by4m1fr","ref":"arg","value":"objects"},"8ivgw9u":{"id":"8ivgw9u","ref":"@data.array"},"5gt2zai":{"id":"5gt2zai","ref":"@js.create_fn"},"ryjjzqr":{"id":"ryjjzqr","ref":"@flow.runnable"},"sfzzxee":{"id":"sfzzxee"},"wgn4yl2":{"id":"wgn4yl2"},"4j2wgr9":{"id":"4j2wgr9","ref":"@data.set_mutable","value":"name"},"l98p3to":{"id":"l98p3to","ref":"@data.get","value":"0"},"s208cfn":{"id":"s208cfn","ref":"arg","value":"element"},"ek93m5o":{"id":"ek93m5o","ref":"@data.get","value":"1"},"dq4u9ji":{"id":"dq4u9ji","ref":"arg","value":"element"},"ploozds":{"id":"ploozds","ref":"arg","value":"_scene"},"7c7zppx":{"id":"7c7zppx","ref":"@flow.runnable"},"aqfc51v":{"id":"aqfc51v","ref":"@flow.if"},"x638fhv":{"id":"x638fhv","ref":"@js.script","value":"\nreturn arg1 && arg0"},"xmd2fqb":{"id":"xmd2fqb","ref":"arg","value":"fx"},"xel6go6":{"id":"xel6go6","ref":"arg","value":"_renderer.value"},"5m99dxg":{"id":"5m99dxg","ref":"@js.script","value":"fx?.forEach((pass, idx) => {\n  // +1 for renderpass\n  if(renderer.passes[idx + 1] !== pass) {\n    if(renderer.passes.length > idx + 1) {\n      console.log(\"removing\", idx)  \n      renderer.removePass(renderer.passes[idx + 1]);\n    }\n    console.log(\"adding fx \", pass)\n    renderer.insertPass(pass, idx + 1);\n  }\n});\n\nif(fx && renderer.passes.length > fx?.length + 1) {\n  renderer.passes.splice(fx.length, renderer.passes.length)\n}"},"fznso76":{"id":"fznso76","ref":"arg","value":"fx"},"4fxcgml":{"id":"4fxcgml","ref":"arg","value":"_renderer.value"},"8m5muxn/hlqmo48":{"id":"8m5muxn/hlqmo48"},"8m5muxn/inq87j9":{"id":"8m5muxn/inq87j9","name":"","ref":"@memory.cache"},"8m5muxn/gwavfrm":{"__isnodysseus":true,"id":"8m5muxn/gwavfrm","ref":"@three.scene","value":""},"8m5muxn/7in78pu":{"id":"8m5muxn/7in78pu","ref":"@data.set_mutable","value":"position.z"},"8m5muxn/v1nqvl7":{"id":"8m5muxn/v1nqvl7","value":"5"},"8m5muxn/33kmaec":{"id":"8m5muxn/33kmaec","ref":"@memory.cache"},"8m5muxn/zci8apj":{"__isnodysseus":true,"id":"8m5muxn/zci8apj","ref":"@three.camera","value":""},"t8adnxm":{"id":"t8adnxm","ref":"arg","value":"canvas"},"8m5muxn/39ivise":{"id":"8m5muxn/39ivise"},"40aw44l":{"id":"40aw44l","ref":"@memory.reference"}},"out":"8m5muxn/8m5muxn"},{"category":"html","edges":{"args":{"as":"args","from":"args","to":"out"},"imr2dvi":{"as":"value","from":"imr2dvi","to":"out"},"09epq8r":{"as":"children","from":"09epq8r","to":"imr2dvi"},"af9fknz":{"as":"arg0","from":"af9fknz","to":"09epq8r"},"qe7qvud":{"as":"arg1","from":"qe7qvud","to":"09epq8r"},"50811j9":{"as":"css_object","from":"50811j9","to":"qe7qvud"},"46uc27z":{"as":"target","from":"46uc27z","to":"50811j9"},"cxwaij4":{"as":"value","from":"cxwaij4","to":"50811j9"},"vmabx98":{"as":"path","from":"vmabx98","to":"50811j9"},"ah2tu3m":{"as":"canvas_id","from":"ah2tu3m","to":"vmabx98"},"0uhor53":{"as":"width","from":"0uhor53","to":"cxwaij4"},"ag93b9f":{"as":"height","from":"ag93b9f","to":"cxwaij4"},"zgmfuzy":{"as":"left","from":"zgmfuzy","to":"cxwaij4"},"cilv4od":{"as":"props","from":"cilv4od","to":"af9fknz"},"8cq1yfs":{"as":"width","from":"8cq1yfs","to":"cilv4od"},"q96l549":{"as":"height","from":"q96l549","to":"cilv4od"},"zvop9wi":{"as":"id","from":"zvop9wi","to":"cilv4od"},"zvop9wi_2":{"as":"key","from":"zvop9wi_2","to":"cilv4od"},"h2e7s9l":{"as":"canvas_id","from":"h2e7s9l","to":"args"}},"id":"@html.canvas","nodes":{"out":{"id":"out","name":"@html.canvas","ref":"return"},"imr2dvi":{"id":"imr2dvi","ref":"@html.html_element"},"09epq8r":{"id":"09epq8r","ref":"@data.array"},"qe7qvud":{"id":"qe7qvud","ref":"@html.css_styles"},"50811j9":{"id":"50811j9","ref":"@data.set"},"vmabx98":{"id":"vmabx98","ref":"@js.script","value":"return `#${canvas_id}`"},"ah2tu3m":{"id":"ah2tu3m","ref":"arg","value":"canvas_id"},"cxwaij4":{"id":"cxwaij4"},"zgmfuzy":{"id":"zgmfuzy","value":"0"},"ag93b9f":{"id":"ag93b9f","value":"100%"},"0uhor53":{"id":"0uhor53","value":"100%"},"46uc27z":{"id":"46uc27z","value":"{}"},"af9fknz":{"id":"af9fknz","ref":"@html.html_element","value":"canvas"},"cilv4od":{"id":"cilv4od"},"zvop9wi_2":{"id":"zvop9wi_2","ref":"arg","value":"canvas_id"},"zvop9wi":{"id":"zvop9wi","ref":"arg","value":"canvas_id"},"q96l549":{"id":"q96l549","ref":"@js.script","value":"return window.innerHeight"},"8cq1yfs":{"id":"8cq1yfs","ref":"@js.script","value":"return window.innerWidth"},"args":{"id":"args","ref":"extern","value":"extern.data"},"h2e7s9l":{"id":"h2e7s9l","value":"canvas"}},"out":"out"},{"edges":{"0209mcq":{"as":"subscribe","from":"0209mcq","to":"out"},"3wnevku":{"as":"lib","from":"3wnevku","to":"out"},"mu0then":{"as":"display","from":"mu0then","to":"out"},"tbxemm2":{"as":"args","from":"tbxemm2","to":"out"},"eg4o3m3":{"as":"threeRunnable","from":"eg4o3m3","to":"tbxemm2"},"uzfo5bm":{"as":"fn","from":"uzfo5bm","to":"eg4o3m3"},"72wzn5d":{"as":"continue","from":"72wzn5d","to":"uzfo5bm"},"me4eykx":{"as":"checkRef","from":"me4eykx","to":"uzfo5bm"},"0r7134k":{"as":"onupdate","from":"0r7134k","to":"72wzn5d"},"dbxyytc":{"as":"objects","from":"dbxyytc","to":"72wzn5d"},"pzdit8o":{"as":"canvas","from":"pzdit8o","to":"72wzn5d"},"y663irb":{"as":"value","from":"y663irb","to":"pzdit8o"},"2g581fl":{"as":"canvas_id","from":"2g581fl","to":"y663irb"},"4kqd8au":{"as":"fn","from":"4kqd8au","to":"0r7134k"},"crys2ve":{"as":"parameters","from":"crys2ve","to":"0r7134k"},"3p1cxio":{"as":"camera","from":"3p1cxio","to":"crys2ve"},"hq8y4zl":{"as":"objects","from":"hq8y4zl","to":"crys2ve"},"7301d8k":{"as":"background","from":"7301d8k","to":"mu0then"},"8dy573e":{"as":"resultPanel","from":"8dy573e","to":"mu0then"},"4597zph":{"as":"canvas_id","from":"4597zph","to":"7301d8k"},"sco3cx9":{"as":"THREE","from":"sco3cx9","to":"3wnevku"},"4d0h7cj":{"as":"value","from":"4d0h7cj","to":"sco3cx9"},"8ke4eq0":{"as":"domnodeadded","from":"8ke4eq0","to":"0209mcq"},"ow93fev":{"as":"graphchange","from":"ow93fev","to":"0209mcq"}},"id":"threejs_boilerplate","nodes":{"out":{"id":"out","name":"threejs_boilerplate","ref":"return"},"tbxemm2":{"id":"tbxemm2","ref":"extern","value":"extern.data"},"eg4o3m3":{"id":"eg4o3m3","ref":"@flow.runnable"},"uzfo5bm":{"id":"uzfo5bm","ref":"@nodysseus.checkRefImportJSON","value":"json/three.json"},"me4eykx":{"id":"me4eykx","value":"@three.setup"},"72wzn5d":{"id":"72wzn5d","ref":"@three.setup"},"pzdit8o":{"id":"pzdit8o","ref":"@memory.cache"},"y663irb":{"id":"y663irb","ref":"@js.script","value":"return document.getElementById(canvas_id);"},"2g581fl":{"id":"2g581fl","value":"threejsrender"},"dbxyytc":{"id":"dbxyytc"},"0r7134k":{"id":"0r7134k","ref":"@flow.runnable"},"crys2ve":{"id":"crys2ve"},"hq8y4zl":{"id":"hq8y4zl"},"3p1cxio":{"id":"3p1cxio"},"4kqd8au":{"id":"4kqd8au"},"mu0then":{"id":"mu0then"},"8dy573e":{"id":"8dy573e","ref":"@html.html_element"},"7301d8k":{"id":"7301d8k","ref":"@html.canvas"},"4597zph":{"id":"4597zph","value":"threejsrender"},"3wnevku":{"id":"3wnevku","ref":"extern","value":"extern.data"},"sco3cx9":{"id":"sco3cx9","ref":"@memory.cache"},"4d0h7cj":{"id":"4d0h7cj","ref":"@js.import_module","value":"https://cdn.jsdelivr.net/npm/three/build/three.module.js"},"0209mcq":{"id":"0209mcq"},"ow93fev":{"id":"ow93fev","ref":"arg","value":"threeRunnable"},"8ke4eq0":{"id":"8ke4eq0","ref":"arg","value":"threeRunnable"}},"out":"out"}]
