Script: Shader Generated By LLM AI

Shader Generated By LLM AI picture
Type
Rete logo indicatorrete
Author
matas
Date Created
Mar 4, 2025, 1:17:22 PM
Last Edit Date
Mar 4, 2025, 1:51:37 PM

Project Information

This project integrates a beautiful interactive shader generated by using Grok 3 Large Language Model with OpenCascade OCCT3D geometry by using Rete visual programming editor. The shader provides point lights, which react to mouse events.

View Full Project

Script Code

{
  "id": "rete-v2-json",
  "nodes": {
    "90420c7b2708e354": {
      "id": "90420c7b2708e354",
      "name": "bitbybit.code.jsonEditor",
      "customName": "json editor",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": true
        },
        "options": {
          "width": 481,
          "height": 979
        },
        "code": {
          "code": "[\n    [\n        [\n            -10,\n            0,\n            -10\n        ],\n        [\n            0,\n            3,\n            -10\n        ],\n        [\n            10,\n            -1,\n            -10\n        ],\n        [\n            20,\n            2,\n            -10\n        ]\n    ],\n    [\n        [\n            -10,\n            -5,\n            0\n        ],\n        [\n            0,\n            -3,\n            0\n        ],\n        [\n            10,\n            1,\n            0\n        ],\n        [\n            20,\n            -2,\n            0\n        ]\n    ],\n    [\n        [\n            -10,\n            0,\n            10\n        ],\n        [\n            0,\n            3,\n            10\n        ],\n        [\n            10,\n            -1,\n            10\n        ],\n        [\n            20,\n            2,\n            10\n        ]\n    ]\n]"
        }
      },
      "inputs": {},
      "position": [
        -168.59622778301753,
        463.834825149606
      ]
    },
    "85a6aa767c738114": {
      "id": "85a6aa767c738114",
      "name": "bitbybit.occt.shapes.wire.interpolatePoints",
      "customName": "interpolate",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "periodic": false,
        "tolerance": 1e-7
      },
      "inputs": {
        "points": {
          "connections": [
            {
              "node": "a019b575ae629d99",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        899.479532427647,
        426.6107277606166
      ]
    },
    "a019b575ae629d99": {
      "id": "a019b575ae629d99",
      "name": "bitbybit.lists.flatten",
      "customName": "flatten",
      "data": {
        "nrLevels": 1
      },
      "inputs": {
        "list": {
          "connections": [
            {
              "node": "90420c7b2708e354",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        485.377531321797,
        469.0267657841954
      ]
    },
    "3454913e9c9deca0": {
      "id": "3454913e9c9deca0",
      "name": "bitbybit.occt.operations.loft",
      "customName": "loft",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "makeSolid": false
      },
      "inputs": {
        "shapes": {
          "connections": [
            {
              "node": "3d9116f706be759d",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        2030.9733751422564,
        486.80867739219275
      ]
    },
    "264f5d585196588a": {
      "id": "264f5d585196588a",
      "name": "bitbybit.lists.createList",
      "customName": "list",
      "data": {},
      "inputs": {
        "listElements": {
          "connections": [
            {
              "node": "85a6aa767c738114",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        1325.6450615933732,
        492.5534098813184
      ]
    },
    "3d9116f706be759d": {
      "id": "3d9116f706be759d",
      "name": "bitbybit.lists.reverse",
      "customName": "reverse",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "clone": true
      },
      "inputs": {
        "list": {
          "connections": [
            {
              "node": "264f5d585196588a",
              "output": "list",
              "data": {}
            }
          ]
        }
      },
      "position": [
        1672.5620987684135,
        491.48464808777317
      ]
    },
    "6230bb8073ecece8": {
      "id": "6230bb8073ecece8",
      "name": "bitbybit.babylon.scene.backgroundColour",
      "customName": "colour",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "colour": "#000000"
      },
      "inputs": {},
      "position": [
        -382.1337090718954,
        930.1702381693239
      ]
    },
    "0efa01bdf85d2541": {
      "id": "0efa01bdf85d2541",
      "name": "bitbybit.babylon.scene.fog",
      "customName": "fog",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "mode": "none",
        "color": "#000000",
        "density": 0.1,
        "start": 10,
        "end": 100
      },
      "inputs": {},
      "position": [
        -43.14618549071017,
        932.7910439763061
      ]
    },
    "bf4747d06a4f5294": {
      "id": "bf4747d06a4f5294",
      "name": "bitbybit.code.typeScriptEditor",
      "customName": "typescript editor",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "options": {
          "width": 956,
          "height": 772
        },
        "code": {
          "code": "// DO NOT REMOVE THIS FUNCTION\nconst startbf4747d06a4f5294 = async (inputs: any, index: number) => {\n    // Register the vertex shader\n\n    // Define the vertex shader\n    BABYLON.Effect.ShadersStore[\"customVertexShader\"] = `\nprecision highp float;\n\nuniform mat4 worldViewProjection;\nattribute vec3 position;\nattribute vec2 uv;\nvarying vec2 vUV;\n\nvoid main() {\n    gl_Position = worldViewProjection * vec4(position, 1.0);\n    vUV = uv;\n}\n`;\n\n    // Define the fragment shader\n    BABYLON.Effect.ShadersStore[\"customFragmentShader\"] = `\nprecision highp float;\n\nvarying vec2 vUV;\nuniform float time;\nuniform vec2 mouseUV;\n\n// Simple hash function for pseudo-random values\nfloat hash(float n) { return fract(sin(n) * 43758.5453); }\n\nvoid main() {\n    // Color palette: blue, purple, pink\n    vec3 colors[3];\n    colors[0] = vec3(0.0, 0.0, 1.0); // Blue\n    colors[1] = vec3(0.5, 0.0, 0.5); // Purple\n    colors[2] = vec3(1.0, 0.4, 0.7); // Pink\n\n    // Particle size parameters\n    float sigma_core = 0.0005;\n    float sigma_glow = 0.005;\n\n    vec3 color = vec3(0.0);\n\n    // Attraction strength to mouse\n    float attraction_strength = 0.2;\n\n    // Loop over 100 particles\n    for(int i = 0; i < 100; i++) {\n        int group = i / 33;\n        int colorIndex = group;\n        float fi = float(i);\n\n        // Initial position\n        vec2 initial_center = vec2(hash(fi * 1.2345), hash(fi * 2.3456 + 1.0));\n\n        // Drift speed\n        float drift_speed = 0.01 + 0.04 * hash(fi * 3.4567 + 2.0);\n\n        // Natural drift direction\n        float drift_angle = hash(float(group) * 4.5678 + 3.0) * 6.28318;\n        vec2 natural_drift = vec2(cos(drift_angle), sin(drift_angle));\n\n        // Direction to mouse\n        vec2 toMouse = mouseUV - initial_center;\n        vec2 attraction_dir = normalize(toMouse);\n\n        // Blend directions\n        vec2 blended_dir = mix(natural_drift, attraction_dir, attraction_strength);\n\n        // Circular motion\n        float radius = 0.02 + 0.03 * hash(fi * 5.6789 + 4.0);\n        float speed = 1.0 + 2.0 * hash(fi * 6.7890 + 5.0);\n        float phase = hash(fi * 7.8901 + 6.0) * 6.28318;\n\n        // Shine effect\n        float shine_speed = 2.0 + 2.0 * hash(fi * 8.9012 + 7.0);\n        float shine_phase = hash(fi * 9.0123 + 8.0) * 6.28318;\n\n        // Compute position\n        vec2 drift = drift_speed * time * blended_dir;\n        vec2 circular = radius * vec2(cos(speed * time + phase), sin(speed * time + phase));\n        vec2 p = fract(initial_center + drift + circular);\n\n        // Toroidal distance\n        vec2 dxy = min(abs(vUV - p), 1.0 - abs(vUV - p));\n        float d = length(dxy);\n\n        // Core and glow\n        float core_intensity = exp(-d * d / sigma_core);\n        float glow_intensity = exp(-d * d / sigma_glow);\n\n        // Shine factor\n        float shine_factor = 0.5 + 0.5 * sin(time * shine_speed + shine_phase);\n\n        // Add to color\n        color += vec3(core_intensity) + colors[colorIndex] * glow_intensity * shine_factor;\n    }\n\n    // Increase contrast\n    color = pow(color, vec3(1.5));\n    gl_FragColor = vec4(color, 1.0);\n}\n`;\n\n\n\n    // Function to create and animate the material\n    function createNeonParticleMaterial(scene) {\n        // Create the shader material\n        const neonParticleMaterial = new BABYLON.ShaderMaterial(\"particleShader\", scene, {\n            vertex: \"custom\",\n            fragment: \"custom\"\n        }, {\n            attributes: [\"position\", \"uv\"],\n            uniforms: [\"worldViewProjection\", \"time\", \"mouseUV\"]\n        });\n\n        // Initialize mouseUV\n        let mouseUV = new BABYLON.Vector2(0.5, 0.5); // Start at center\n        neonParticleMaterial.setVector2(\"mouseUV\", mouseUV);\n\n        // Update mouseUV on pointer move\n\n        // Capture mouse coordinates in UV space\n        scene.onPointerMove = (evt) => {\n            // Get the picking information based on the mouse position\n            const pickResult = scene.pick(scene.pointerX, scene.pointerY);\n            console.log(pickResult);\n\n            // Check if the pick hit the plane\n            if (pickResult.hit && pickResult.pickedMesh) {\n                // Get the UV coordinates where the mouse intersects the plane\n                const uv = pickResult.getTextureCoordinates();\n                if (uv) {\n                    console.log(uv);\n                    // Update mouseUV with the new coordinates\n                    mouseUV.set(uv.x, uv.y);\n                    // Pass the updated mouseUV to the shader\n                    neonParticleMaterial.setVector2(\"mouseUV\", mouseUV);\n                }\n            }\n        };\n\n\n        // Animate the time uniform\n        // Animate the time uniform\n        let time = 0;\n        scene.registerBeforeRender(() => {\n            time += scene.getEngine().getDeltaTime() * 0.001; // Time in seconds\n            neonParticleMaterial.setFloat(\"time\", time);\n        });\n\n        neonParticleMaterial.backFaceCulling = false;\n        neonParticleMaterial.zOffset = 2;\n        return neonParticleMaterial;\n    }\n\n    const scene = bitbybit.babylon.scene.getScene();\n    return createNeonParticleMaterial(scene);\n}"
        }
      },
      "inputs": {},
      "position": [
        -175.84871422831833,
        -618.4326077190469
      ]
    },
    "a05d38efc123153b": {
      "id": "a05d38efc123153b",
      "name": "bitbybit.draw.drawAnyAsync",
      "customName": "draw async",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        }
      },
      "inputs": {
        "options": {
          "connections": [
            {
              "node": "419a06793f6b3a58",
              "output": "result",
              "data": {}
            }
          ]
        },
        "entity": {
          "connections": [
            {
              "node": "51584f570070e8ed",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        2735.857645325635,
        -2.9969575080223194
      ]
    },
    "419a06793f6b3a58": {
      "id": "419a06793f6b3a58",
      "name": "bitbybit.draw.optionsOcctShapeMaterial",
      "customName": "occt shape with material",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "precision": 0.03,
        "drawEdges": true,
        "edgeColour": "#0062ff",
        "edgeWidth": 10
      },
      "inputs": {
        "faceMaterial": {
          "connections": [
            {
              "node": "bf4747d06a4f5294",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        1352.4154312672408,
        26.603116797301624
      ]
    },
    "57f05cfad06dd229": {
      "id": "57f05cfad06dd229",
      "name": "bitbybit.babylon.mesh.setPickable",
      "customName": "check collisions",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "pickable": true,
        "includeChildren": true
      },
      "inputs": {
        "babylonMesh": {
          "connections": [
            {
              "node": "a05d38efc123153b",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        3092.2480324361577,
        1.474209397580978
      ]
    },
    "13737cc78708ef1c": {
      "id": "13737cc78708ef1c",
      "name": "bitbybit.occt.transforms.translate",
      "customName": "translate",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "translation": [
          0,
          0,
          0
        ]
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "3454913e9c9deca0",
              "output": "result",
              "data": {}
            }
          ]
        },
        "translation": {
          "connections": [
            {
              "node": "647c9a07518c0a21",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        2483.0269314764146,
        891.2102757656745
      ]
    },
    "647c9a07518c0a21": {
      "id": "647c9a07518c0a21",
      "name": "bitbybit.vector.vectorXYZ",
      "customName": "vector XYZ",
      "async": false,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "x": 0,
        "y": 0,
        "z": 0
      },
      "inputs": {
        "y": {
          "connections": [
            {
              "node": "b946a8bd4f6a1f83",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        2090.17941608165,
        1115.556576412331
      ]
    },
    "05c91759cff1d1b6": {
      "id": "05c91759cff1d1b6",
      "name": "bitbybit.vector.span",
      "customName": "span",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "step": 10,
        "min": -20,
        "max": 20
      },
      "inputs": {},
      "position": [
        1390.8275231592734,
        1098.2064095082899
      ]
    },
    "b946a8bd4f6a1f83": {
      "id": "b946a8bd4f6a1f83",
      "name": "bitbybit.lists.flatten",
      "customName": "flatten",
      "data": {
        "nrLevels": 1
      },
      "inputs": {
        "list": {
          "connections": [
            {
              "node": "05c91759cff1d1b6",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        1720.829295429148,
        1183.6790400204964
      ]
    },
    "2a5d3f09762e8a61": {
      "id": "2a5d3f09762e8a61",
      "name": "bitbybit.lists.createList",
      "customName": "list",
      "data": {},
      "inputs": {
        "listElements": {
          "connections": [
            {
              "node": "13737cc78708ef1c",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        2885.06985281769,
        966.1592204545946
      ]
    },
    "51584f570070e8ed": {
      "id": "51584f570070e8ed",
      "name": "bitbybit.occt.shapes.compound.makeCompound",
      "customName": "make",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        }
      },
      "inputs": {
        "shapes": {
          "connections": [
            {
              "node": "2a5d3f09762e8a61",
              "output": "list",
              "data": {}
            }
          ]
        }
      },
      "position": [
        3308.2788423527236,
        968.5122778329576
      ]
    },
    "00dc6fbbf2fb7470": {
      "id": "00dc6fbbf2fb7470",
      "name": "bitbybit.lists.createList",
      "customName": "list",
      "data": {},
      "inputs": {
        "listElements": {
          "connections": [
            {
              "node": "4da84a74c20f1d3b",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        1729.3343016379376,
        2211.5388279541035
      ]
    },
    "500c521bbeb1ebd9": {
      "id": "500c521bbeb1ebd9",
      "name": "bitbybit.babylon.gui.container.addControls",
      "customName": "add controls to container",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "clearControlsFirst": true
      },
      "inputs": {
        "container": {
          "connections": [
            {
              "node": "5ded818aad71e8b6",
              "output": "result",
              "data": {}
            }
          ]
        },
        "controls": {
          "connections": [
            {
              "node": "00dc6fbbf2fb7470",
              "output": "list",
              "data": {}
            }
          ]
        }
      },
      "position": [
        2222.735792343919,
        1983.0095955497093
      ]
    },
    "5ded818aad71e8b6": {
      "id": "5ded818aad71e8b6",
      "name": "bitbybit.babylon.gui.advancedDynamicTexture.createFullScreenUI",
      "customName": "create full screen ui",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "name": "fullscreen2",
        "foreground": true,
        "adaptiveScaling": false
      },
      "inputs": {},
      "position": [
        1348.557009288635,
        1820.7206662581978
      ]
    },
    "4da84a74c20f1d3b": {
      "id": "4da84a74c20f1d3b",
      "name": "bitbybit.babylon.gui.stackPanel.createStackPanel",
      "customName": "create stack panel",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "name": "stackPanel3",
        "isVertical": true,
        "spacing": 25,
        "color": "#00000000",
        "background": "#00000055"
      },
      "inputs": {},
      "position": [
        1369.1826804914792,
        2220.7027647874406
      ]
    },
    "adef8cc02e988863": {
      "id": "adef8cc02e988863",
      "name": "bitbybit.babylon.gui.container.addControls",
      "customName": "add controls to container",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "clearControlsFirst": true
      },
      "inputs": {
        "container": {
          "connections": [
            {
              "node": "4da84a74c20f1d3b",
              "output": "result",
              "data": {}
            }
          ]
        },
        "controls": {
          "connections": [
            {
              "node": "065bc1a2942ee05a",
              "output": "list",
              "data": {}
            }
          ]
        }
      },
      "position": [
        2185.646734567761,
        2487.4275639091575
      ]
    },
    "82be1fdd06685b82": {
      "id": "82be1fdd06685b82",
      "name": "bitbybit.babylon.gui.image.createImage",
      "customName": "create image",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "name": "imageName",
        "url": "assets/logo-gold-small.png",
        "color": "black"
      },
      "inputs": {},
      "position": [
        1333.3572730452124,
        2804.2289999525324
      ]
    },
    "065bc1a2942ee05a": {
      "id": "065bc1a2942ee05a",
      "name": "bitbybit.lists.createList",
      "customName": "list",
      "data": {},
      "inputs": {
        "listElements": {
          "connections": [
            {
              "node": "82be1fdd06685b82",
              "output": "result",
              "data": {}
            },
            {
              "node": "64bb3860d1838e39",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        1789.346762845516,
        2882.630901176175
      ]
    },
    "e2abb1338cbc6aae": {
      "id": "e2abb1338cbc6aae",
      "name": "bitbybit.babylon.gui.control.changeControlAlignment",
      "customName": "change alignment",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "horizontalAlignment": "center",
        "verticalAlignment": "bottom"
      },
      "inputs": {
        "control": {
          "connections": [
            {
              "node": "4da84a74c20f1d3b",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        1768.2956427504973,
        2462.388609441138
      ]
    },
    "901649135d919168": {
      "id": "901649135d919168",
      "name": "bitbybit.babylon.gui.control.changeControlPadding",
      "customName": "change padding",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        }
      },
      "inputs": {
        "paddingTop": {
          "connections": [
            {
              "node": "63959fb33122bc3b",
              "output": "result",
              "data": {}
            }
          ]
        },
        "control": {
          "connections": [
            {
              "node": "82be1fdd06685b82",
              "output": "result",
              "data": {}
            }
          ]
        },
        "paddingBottom": {
          "connections": [
            {
              "node": "63959fb33122bc3b",
              "output": "result",
              "data": {}
            }
          ]
        },
        "paddingLeft": {
          "connections": [
            {
              "node": "63959fb33122bc3b",
              "output": "result",
              "data": {}
            }
          ]
        },
        "paddingRight": {
          "connections": [
            {
              "node": "63959fb33122bc3b",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        1805.4910883377438,
        3089.6710533539535
      ]
    },
    "63959fb33122bc3b": {
      "id": "63959fb33122bc3b",
      "name": "bitbybit.text.create",
      "customName": "text",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "text": "15px"
      },
      "inputs": {},
      "position": [
        1407.4873506953568,
        3291.4818519196374
      ]
    },
    "63ec135a694822ec": {
      "id": "63ec135a694822ec",
      "name": "bitbybit.flow.babylon.observableListener",
      "customName": "babylon observable listener",
      "data": {},
      "inputs": {
        "observableSelector": {
          "connections": [
            {
              "node": "ba0b2040d4172b37",
              "output": "result",
              "data": {}
            }
          ]
        },
        "object": {
          "connections": [
            {
              "node": "64bb3860d1838e39",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        2524.420635494342,
        3687.7845282552557
      ]
    },
    "64bb3860d1838e39": {
      "id": "64bb3860d1838e39",
      "name": "bitbybit.babylon.gui.button.createSimpleButton",
      "customName": "create simple button",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "name": "buttonName",
        "label": "GO TO BITBYBIT.DEV",
        "color": "black",
        "background": "#f0cebb",
        "fontSize": 32
      },
      "inputs": {
        "width": {
          "connections": [
            {
              "node": "b19731c195f926f9",
              "output": "result",
              "data": {}
            }
          ]
        },
        "height": {
          "connections": [
            {
              "node": "37f228a5ab483d19",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        1232.6763904724573,
        3645.219224469682
      ]
    },
    "b19731c195f926f9": {
      "id": "b19731c195f926f9",
      "name": "bitbybit.text.create",
      "customName": "text",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "text": "400px"
      },
      "inputs": {},
      "position": [
        779.9223571294394,
        3677.0159778306647
      ]
    },
    "37f228a5ab483d19": {
      "id": "37f228a5ab483d19",
      "name": "bitbybit.text.create",
      "customName": "text",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "text": "100px"
      },
      "inputs": {},
      "position": [
        778.4897824146811,
        3964.6408435342673
      ]
    },
    "edd5740fd27f3368": {
      "id": "edd5740fd27f3368",
      "name": "bitbybit.babylon.gui.control.changeControlPadding",
      "customName": "change padding",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        }
      },
      "inputs": {
        "paddingBottom": {
          "connections": [
            {
              "node": "63959fb33122bc3b",
              "output": "result",
              "data": {}
            }
          ]
        },
        "control": {
          "connections": [
            {
              "node": "64bb3860d1838e39",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        1702.02182289667,
        3951.8469704086137
      ]
    },
    "ba0b2040d4172b37": {
      "id": "ba0b2040d4172b37",
      "name": "bitbybit.babylon.gui.control.createControlObservableSelector",
      "customName": "control observable selector",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "selector": "onPointerClickObservable"
      },
      "inputs": {},
      "position": [
        2129.963204521189,
        3883.547189869036
      ]
    },
    "cff2f31972ccc823": {
      "id": "cff2f31972ccc823",
      "name": "bitbybit.code.typeScriptEditor",
      "customName": "typescript editor",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": true
        },
        "code": {
          "code": "// DO NOT REMOVE THIS FUNCTION\nconst startcff2f31972ccc823 = async (inputs: any, index: number) => {\n    // ADD YOUR CODE HERE\n    if (inputs === true) {\n        window.open(\"https://bitbybit.dev\", '_blank').focus();\n    }\n    return inputs;\n}"
        }
      },
      "inputs": {
        "inputs": {
          "connections": [
            {
              "node": "d9b6099aef6d2d62",
              "output": "isA",
              "data": {}
            }
          ]
        },
        "exec": {
          "connections": [
            {
              "node": "d9b6099aef6d2d62",
              "output": "execA",
              "data": {}
            }
          ]
        }
      },
      "position": [
        3748.6816606629163,
        3659.610183252874
      ]
    },
    "d9b6099aef6d2d62": {
      "id": "d9b6099aef6d2d62",
      "name": "bitbybit.flow.logic.flipFlop",
      "customName": "flip flop",
      "data": {},
      "inputs": {
        "exec": {
          "connections": [
            {
              "node": "63ec135a694822ec",
              "output": "exec",
              "data": {}
            },
            {
              "node": "1eb6d7ba4b8c625c",
              "output": "exec",
              "data": {}
            }
          ]
        }
      },
      "position": [
        3251.5785523210093,
        3722.867619891852
      ]
    },
    "1eb6d7ba4b8c625c": {
      "id": "1eb6d7ba4b8c625c",
      "name": "bitbybit.flow.time.delay",
      "customName": "delay",
      "data": {
        "timeout": 0
      },
      "inputs": {
        "exec": {
          "connections": [
            {
              "node": "63ec135a694822ec",
              "output": "exec",
              "data": {}
            }
          ]
        }
      },
      "position": [
        2863.8283044988843,
        3946.7164814187163
      ]
    },
    "3c38537009bb36bc": {
      "id": "3c38537009bb36bc",
      "name": "bitbybit.babylon.scene.adjustActiveArcRotateCamera",
      "customName": "adjust active camera",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "position": [
          10,
          10,
          10
        ],
        "lookAt": [
          0,
          0,
          0
        ],
        "lowerBetaLimit": 1,
        "upperBetaLimit": 179,
        "angularSensibilityX": 1000,
        "angularSensibilityY": 1000,
        "maxZ": 1000,
        "panningSensibility": 1000,
        "wheelPrecision": 3
      },
      "inputs": {
        "position": {
          "connections": [
            {
              "node": "1f9a304af2e2e0e3",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        664.4730523201595,
        4379.647431225389
      ]
    },
    "1f9a304af2e2e0e3": {
      "id": "1f9a304af2e2e0e3",
      "name": "bitbybit.vector.vectorXYZ",
      "customName": "vector XYZ",
      "async": false,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "x": 50,
        "y": 50,
        "z": 50
      },
      "inputs": {},
      "position": [
        292.8838605295909,
        4341.994920719542
      ]
    }
  }
}