Script: Camera Animation With Two Particle System Rings

Camera Animation With Two Particle System Rings picture
Type
Rete logo indicatorrete
Date Created
Sep 13, 2024, 8:28:42 AM
Last Edit Date
Sep 13, 2024, 8:33:45 AM

Project Information

This project demonstrates powerful new features of the Rete editor. We took the opportunity to create particle systems that react to parametric geometry nodes. You can now write custom TypeScript code with full intellisense for bitbybit and BabylonJS.

View Full Project

Script Code

{
  "id": "rete-v2-json",
  "nodes": {
    "35ea8860176ceb8a": {
      "id": "35ea8860176ceb8a",
      "name": "bitbybit.code.typeScriptEditor",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": true
        },
        "options": {
          "width": 897,
          "height": 522
        },
        "code": {
          "code": "// DO NOT REMOVE THIS FUNCTION\nconst start35ea8860176ceb8a = async (inputs: { color1: string, color2: string, position: [number, number, number], nrParticles: number}, index: number) => {\n    // ADD YOUR CODE HERE\n    const scene = bitbybit.babylon.scene.getScene();\n    if (index === 0) {\n        scene.particleSystems.forEach(ps => ps.stop());\n    }\n\n    // Create a particle system\n    var particleSystem = new BABYLON.ParticleSystem(\"particles\" + index, inputs.nrParticles, scene);\n    particleSystem.id = \"my-particles-\" + index;\n    //Texture of each particle\n    particleSystem.particleTexture = new BABYLON.Texture(\"https://playground.babylonjs.com/textures/flare.png\", scene);\n\n    // Where the particles come from\n    particleSystem.emitter = new BABYLON.Vector3(...inputs.position); // the starting location\n\n    // Colors of all particles\n    const color1 = BABYLON.Color3.FromHexString(inputs.color1);\n    const color2 = BABYLON.Color3.FromHexString(inputs.color2);\n\n    particleSystem.color1 = new BABYLON.Color4(color1.r, color1.g, color1.b, 1.0);\n    particleSystem.color2 = new BABYLON.Color4(color2.r, color2.g, color2.b, 1.0);\n    particleSystem.colorDead = new BABYLON.Color4(0, 0, 0.2, 0.0);\n\n    // Size of each particle (random between...\n    particleSystem.minSize = 0.1;\n    particleSystem.maxSize = 0.5;\n\n    // Life time of each particle (random between...\n    particleSystem.minLifeTime = 0.3;\n    particleSystem.maxLifeTime = 1.5;\n\n    // Emission rate\n    particleSystem.emitRate = 1000;\n\n    /******* Emission Space ********/\n    particleSystem.createDirectedSphereEmitter(2, new BABYLON.Vector3(-0.5, 1, -0.5), new BABYLON.Vector3(0.5, 1, 0.5));\n\n    // Speed\n    particleSystem.minEmitPower = 2;\n    particleSystem.maxEmitPower = 4;\n    particleSystem.updateSpeed = 0.005;\n    particleSystem.disposeOnStop = true;\n\n    // Start the particle system\n    particleSystem.start();\n    return inputs;\n}"
        }
      },
      "inputs": {
        "inputs": {
          "connections": [
            {
              "node": "7ce9776c3cdb0df5",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        3699.457470192023,
        1338.7147075917478
      ]
    },
    "94383f27c6e7069a": {
      "id": "94383f27c6e7069a",
      "name": "bitbybit.json.createEmpty",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        }
      },
      "inputs": {},
      "position": [
        410.68576942600765,
        1251.0524562881528
      ]
    },
    "eb263e9922c5be1e": {
      "id": "eb263e9922c5be1e",
      "name": "bitbybit.json.setValueOnProp",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "property": "nrParticles"
      },
      "inputs": {
        "value": {
          "connections": [
            {
              "node": "b5993ddcb2e6381d",
              "output": "result",
              "data": {}
            }
          ]
        },
        "json": {
          "connections": [
            {
              "node": "94383f27c6e7069a",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        867.7832941273158,
        1339.8980028713845
      ]
    },
    "b5993ddcb2e6381d": {
      "id": "b5993ddcb2e6381d",
      "name": "bitbybit.math.numberSlider",
      "data": {
        "options": {
          "min": 100,
          "max": 3000,
          "step": 10,
          "width": 350,
          "updateOnDrag": false
        },
        "number": 3000
      },
      "inputs": {},
      "position": [
        226.41777540886915,
        1504.7093107761557
      ]
    },
    "fd21f032624bf9ad": {
      "id": "fd21f032624bf9ad",
      "name": "bitbybit.json.setValueOnProp",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "property": "position"
      },
      "inputs": {
        "value": {
          "connections": [
            {
              "node": "67e4755b3cb9bb9e",
              "output": "result",
              "data": {}
            }
          ]
        },
        "json": {
          "connections": [
            {
              "node": "8199e24f86816c9c",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        2439.473276344556,
        1338.0599660397713
      ]
    },
    "1f1629e2ae5a21ba": {
      "id": "1f1629e2ae5a21ba",
      "name": "bitbybit.occt.shapes.wire.createCircleWire",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "radius": 10,
        "center": [
          0,
          0,
          0
        ],
        "direction": [
          0,
          1,
          0
        ]
      },
      "inputs": {
        "radius": {
          "connections": [
            {
              "node": "5729c77d4ed141de",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        -177.83830021944425,
        1858.0091956671577
      ]
    },
    "31f8fe312b3ad262": {
      "id": "31f8fe312b3ad262",
      "name": "bitbybit.occt.shapes.wire.divideWireByParamsToPoints",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "nrOfDivisions": 10,
        "removeStartPoint": false,
        "removeEndPoint": false
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "1f1629e2ae5a21ba",
              "output": "result",
              "data": {}
            }
          ]
        },
        "nrOfDivisions": {
          "connections": [
            {
              "node": "dfceb85d2c0106d5",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        744.1984525736938,
        1937.690697017307
      ]
    },
    "5729c77d4ed141de": {
      "id": "5729c77d4ed141de",
      "name": "bitbybit.math.numberSlider",
      "data": {
        "options": {
          "min": 5,
          "max": 30,
          "step": 1,
          "width": 350,
          "updateOnDrag": false
        },
        "number": 16
      },
      "inputs": {},
      "position": [
        -707.8726388616437,
        1893.7305203147675
      ]
    },
    "dfceb85d2c0106d5": {
      "id": "dfceb85d2c0106d5",
      "name": "bitbybit.math.numberSlider",
      "data": {
        "options": {
          "min": 5,
          "max": 100,
          "step": 1,
          "width": 350,
          "updateOnDrag": false
        },
        "number": 25
      },
      "inputs": {},
      "position": [
        161.37638574773192,
        2103.830385761359
      ]
    },
    "defd1b07fbe0cf90": {
      "id": "defd1b07fbe0cf90",
      "name": "bitbybit.occt.shapes.wire.createCircleWire",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "radius": 3,
        "center": [
          0,
          0,
          0
        ],
        "direction": [
          0,
          1,
          0
        ]
      },
      "inputs": {
        "center": {
          "connections": [
            {
              "node": "67e4755b3cb9bb9e",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        1674.7470719495707,
        1931.0041996783202
      ]
    },
    "67e4755b3cb9bb9e": {
      "id": "67e4755b3cb9bb9e",
      "name": "bitbybit.lists.flatten",
      "data": {
        "nrLevels": 1
      },
      "inputs": {
        "list": {
          "connections": [
            {
              "node": "31f8fe312b3ad262",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        1285.8659460094254,
        1835.4087230914433
      ]
    },
    "854079a679367b0a": {
      "id": "854079a679367b0a",
      "name": "bitbybit.occt.transforms.translate",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "translation": [
          0,
          0,
          0
        ]
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "defd1b07fbe0cf90",
              "output": "result",
              "data": {}
            }
          ]
        },
        "translation": {
          "connections": [
            {
              "node": "c5f7aa95b56eb47b",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        2055.3079421698235,
        2158.0793704212438
      ]
    },
    "c5f7aa95b56eb47b": {
      "id": "c5f7aa95b56eb47b",
      "name": "bitbybit.vector.vectorXYZ",
      "async": false,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "x": 0,
        "y": -1,
        "z": 0
      },
      "inputs": {},
      "position": [
        1625.461627299713,
        2287.0151769877325
      ]
    },
    "7b5c22e32c8544c7": {
      "id": "7b5c22e32c8544c7",
      "name": "bitbybit.json.setValueOnProp",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "property": "color1"
      },
      "inputs": {
        "value": {
          "connections": [
            {
              "node": "a11488e429acd6a2",
              "output": "result",
              "data": {}
            }
          ]
        },
        "json": {
          "connections": [
            {
              "node": "eb263e9922c5be1e",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        1423.5666145348887,
        863.1660946952355
      ]
    },
    "a11488e429acd6a2": {
      "id": "a11488e429acd6a2",
      "name": "bitbybit.color.hexColor",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "color": "#ff5cf1"
      },
      "inputs": {},
      "position": [
        1077.544219602157,
        992.0540990011638
      ]
    },
    "8199e24f86816c9c": {
      "id": "8199e24f86816c9c",
      "name": "bitbybit.json.setValueOnProp",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "property": "color2"
      },
      "inputs": {
        "json": {
          "connections": [
            {
              "node": "7b5c22e32c8544c7",
              "output": "result",
              "data": {}
            }
          ]
        },
        "value": {
          "connections": [
            {
              "node": "0db84e9c30ca210e",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        1910.328582846355,
        861.5017501798043
      ]
    },
    "0db84e9c30ca210e": {
      "id": "0db84e9c30ca210e",
      "name": "bitbybit.color.hexColor",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "color": "#5c7fff"
      },
      "inputs": {},
      "position": [
        1549.6305085777205,
        1242.6072677183674
      ]
    },
    "65a236487239c05d": {
      "id": "65a236487239c05d",
      "name": "bitbybit.occt.shapes.wire.createLineWire",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "start": [
          0,
          0,
          0
        ],
        "end": [
          0,
          1,
          0
        ]
      },
      "inputs": {
        "start": {
          "connections": [
            {
              "node": "ece0f10ec0ca3361",
              "output": "result",
              "data": {}
            }
          ]
        },
        "end": {
          "connections": [
            {
              "node": "2815ae785fed6efc",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        2269.6044065142764,
        2902.4369475159033
      ]
    },
    "ece0f10ec0ca3361": {
      "id": "ece0f10ec0ca3361",
      "name": "bitbybit.vector.vectorXYZ",
      "async": false,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "x": -40,
        "y": 3,
        "z": 10
      },
      "inputs": {},
      "position": [
        1737.7610704755527,
        2720.2766159043886
      ]
    },
    "2815ae785fed6efc": {
      "id": "2815ae785fed6efc",
      "name": "bitbybit.vector.vectorXYZ",
      "async": false,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "x": 40,
        "y": 3,
        "z": 10
      },
      "inputs": {},
      "position": [
        1715.3053458130585,
        3242.2501392408935
      ]
    },
    "8ed2c703d08b70ef": {
      "id": "8ed2c703d08b70ef",
      "name": "bitbybit.occt.shapes.wire.divideWireByParamsToPoints",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "nrOfDivisions": 10000,
        "removeStartPoint": false,
        "removeEndPoint": false
      },
      "inputs": {
        "nrOfDivisions": {
          "connections": [
            {
              "node": "c75a37a252b32a31",
              "output": "result",
              "data": {}
            }
          ]
        },
        "shape": {
          "connections": [
            {
              "node": "f24793577ded14ce",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        3506.441571501262,
        2768.217529047316
      ]
    },
    "39ceb233b52d4513": {
      "id": "39ceb233b52d4513",
      "name": "bitbybit.lists.getItem",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "index": 0,
        "clone": true
      },
      "inputs": {
        "list": {
          "connections": [
            {
              "node": "8ed2c703d08b70ef",
              "output": "result",
              "data": {}
            }
          ]
        },
        "index": {
          "connections": [
            {
              "node": "513ec9c383505354",
              "output": "result",
              "data": {}
            }
          ]
        },
        "exec": {
          "connections": [
            {
              "node": "513ec9c383505354",
              "output": "exec",
              "data": {}
            }
          ]
        }
      },
      "position": [
        4297.5398234162185,
        3123.50144046312
      ]
    },
    "29e9ad02960e8291": {
      "id": "29e9ad02960e8291",
      "name": "bitbybit.babylon.camera.target.create",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "position": [
          20,
          20,
          20
        ],
        "target": [
          0,
          0,
          0
        ]
      },
      "inputs": {
        "exec": {
          "connections": [
            {
              "node": "07138dd4e0a3a779",
              "output": "exec",
              "data": {}
            }
          ]
        }
      },
      "position": [
        2034.068797106458,
        3623.3685619312387
      ]
    },
    "a440b8131446f759": {
      "id": "a440b8131446f759",
      "name": "bitbybit.babylon.scene.activateCamera",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        }
      },
      "inputs": {
        "camera": {
          "connections": [
            {
              "node": "29e9ad02960e8291",
              "output": "result",
              "data": {}
            }
          ]
        },
        "exec": {
          "connections": [
            {
              "node": "29e9ad02960e8291",
              "output": "exec",
              "data": {}
            }
          ]
        }
      },
      "position": [
        2493.78956541791,
        3731.4482015870362
      ]
    },
    "513ec9c383505354": {
      "id": "513ec9c383505354",
      "name": "bitbybit.flow.counters.counterMinMax",
      "data": {
        "count": 10000,
        "min": 0,
        "max": 10000,
        "step": 1,
        "pulse": true
      },
      "inputs": {
        "exec": {
          "connections": [
            {
              "node": "f9c365744e167270",
              "output": "exec",
              "data": {}
            }
          ]
        },
        "count": {
          "connections": [
            {
              "node": "c75a37a252b32a31",
              "output": "result",
              "data": {}
            }
          ]
        },
        "max": {
          "connections": [
            {
              "node": "c75a37a252b32a31",
              "output": "result",
              "data": {}
            }
          ]
        },
        "execReset": {
          "connections": [
            {
              "node": "bbbb3e76d4984a74",
              "output": "exec",
              "data": {}
            }
          ]
        }
      },
      "position": [
        3790.1834376523543,
        3530.779734208965
      ]
    },
    "f9c365744e167270": {
      "id": "f9c365744e167270",
      "name": "bitbybit.flow.time.interval",
      "data": {
        "interval": 10
      },
      "inputs": {
        "exec": {
          "connections": [
            {
              "node": "a440b8131446f759",
              "output": "exec",
              "data": {}
            }
          ]
        }
      },
      "position": [
        3169.322640245734,
        3695.549248543201
      ]
    },
    "153a0b8f6ec4fad7": {
      "id": "153a0b8f6ec4fad7",
      "name": "bitbybit.babylon.camera.setPosition",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "position": [
          20,
          20,
          20
        ]
      },
      "inputs": {
        "position": {
          "connections": [
            {
              "node": "39ceb233b52d4513",
              "output": "result",
              "data": {}
            }
          ]
        },
        "camera": {
          "connections": [
            {
              "node": "29e9ad02960e8291",
              "output": "result",
              "data": {}
            }
          ]
        },
        "exec": {
          "connections": [
            {
              "node": "39ceb233b52d4513",
              "output": "exec",
              "data": {}
            }
          ]
        }
      },
      "position": [
        4841.526576155884,
        2877.2044804528723
      ]
    },
    "4323696d011ea6b3": {
      "id": "4323696d011ea6b3",
      "name": "bitbybit.previewData",
      "data": {
        "previewJSONControl": "[\n  998\n]"
      },
      "inputs": {
        "data": {
          "connections": [
            {
              "node": "513ec9c383505354",
              "output": "result",
              "data": {}
            }
          ]
        },
        "exec": {
          "connections": [
            {
              "node": "513ec9c383505354",
              "output": "exec",
              "data": {}
            }
          ]
        }
      },
      "position": [
        4455.6076528579315,
        3727.866284222434
      ]
    },
    "8b332ec77d39c46b": {
      "id": "8b332ec77d39c46b",
      "name": "bitbybit.babylon.camera.setTarget",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": true
        },
        "target": [
          0,
          0,
          0
        ]
      },
      "inputs": {
        "exec": {
          "connections": [
            {
              "node": "153a0b8f6ec4fad7",
              "output": "exec",
              "data": {}
            }
          ]
        },
        "camera": {
          "connections": [
            {
              "node": "29e9ad02960e8291",
              "output": "result",
              "data": {}
            }
          ]
        },
        "target": {
          "connections": [
            {
              "node": "f7be637274bd9ba2",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        5707.769939510087,
        3166.3095858813904
      ]
    },
    "c75a37a252b32a31": {
      "id": "c75a37a252b32a31",
      "name": "bitbybit.math.number",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "number": 3000
      },
      "inputs": {},
      "position": [
        2885.778924309331,
        3122.4734945571527
      ]
    },
    "f7be637274bd9ba2": {
      "id": "f7be637274bd9ba2",
      "name": "bitbybit.vector.vectorXYZ",
      "async": false,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "x": 0,
        "y": 0,
        "z": 0
      },
      "inputs": {},
      "position": [
        5231.819025926188,
        3337.9427152311864
      ]
    },
    "bbbb3e76d4984a74": {
      "id": "bbbb3e76d4984a74",
      "name": "bitbybit.flow.actions.trigger",
      "data": {},
      "inputs": {},
      "position": [
        3165.4528467662276,
        3952.8453205312885
      ]
    },
    "f24793577ded14ce": {
      "id": "f24793577ded14ce",
      "name": "bitbybit.occt.shapes.wire.interpolatePoints",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "periodic": false,
        "tolerance": 1e-7
      },
      "inputs": {
        "points": {
          "connections": [
            {
              "node": "1b768786580accbd",
              "output": "list",
              "data": {}
            }
          ]
        }
      },
      "position": [
        2778.6539700283947,
        2589.791050231812
      ]
    },
    "9e4b25c597708e98": {
      "id": "9e4b25c597708e98",
      "name": "bitbybit.vector.vectorXYZ",
      "async": false,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "x": 0,
        "y": 30,
        "z": 10
      },
      "inputs": {},
      "position": [
        1762.8378420924155,
        3000.2816120159623
      ]
    },
    "1b768786580accbd": {
      "id": "1b768786580accbd",
      "name": "bitbybit.lists.createList",
      "data": {},
      "inputs": {
        "listElements": {
          "connections": [
            {
              "node": "ece0f10ec0ca3361",
              "output": "result",
              "data": {}
            },
            {
              "node": "9e4b25c597708e98",
              "output": "result",
              "data": {}
            },
            {
              "node": "2815ae785fed6efc",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        2421.4347246688694,
        3363.931710088293
      ]
    },
    "4e6ae85edb08347b": {
      "id": "4e6ae85edb08347b",
      "name": "bitbybit.json.setValueOnProp",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "property": "color1"
      },
      "inputs": {
        "value": {
          "connections": [
            {
              "node": "7498d9d84fed363e",
              "output": "result",
              "data": {}
            }
          ]
        },
        "json": {
          "connections": [
            {
              "node": "eb263e9922c5be1e",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        1474.716560623158,
        182.99476077645465
      ]
    },
    "595b393fdd2d184c": {
      "id": "595b393fdd2d184c",
      "name": "bitbybit.json.setValueOnProp",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "property": "color2"
      },
      "inputs": {
        "value": {
          "connections": [
            {
              "node": "e159a7fb4bb7bd80",
              "output": "result",
              "data": {}
            }
          ]
        },
        "json": {
          "connections": [
            {
              "node": "4e6ae85edb08347b",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        1969.2553184006035,
        53.1324808011052
      ]
    },
    "7498d9d84fed363e": {
      "id": "7498d9d84fed363e",
      "name": "bitbybit.color.hexColor",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "color": "#5c8dff"
      },
      "inputs": {},
      "position": [
        1035.8701810777789,
        231.50605422435254
      ]
    },
    "e159a7fb4bb7bd80": {
      "id": "e159a7fb4bb7bd80",
      "name": "bitbybit.color.hexColor",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "color": "#5c7fff"
      },
      "inputs": {},
      "position": [
        1592.7807966123764,
        547.5762468552326
      ]
    },
    "1dafa78bfacbbfbb": {
      "id": "1dafa78bfacbbfbb",
      "name": "bitbybit.occt.shapes.wire.createCircleWire",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "radius": 10,
        "center": [
          0,
          0,
          0
        ],
        "direction": [
          0,
          1,
          0
        ]
      },
      "inputs": {
        "radius": {
          "connections": [
            {
              "node": "37b0ff5c07a05da6",
              "output": "result",
              "data": {}
            }
          ]
        },
        "center": {
          "connections": [
            {
              "node": "159eff93338fdfa9",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        -187.99310892228456,
        1409.411534214769
      ]
    },
    "37b0ff5c07a05da6": {
      "id": "37b0ff5c07a05da6",
      "name": "bitbybit.math.numberSlider",
      "data": {
        "number": 6.5
      },
      "inputs": {},
      "position": [
        -812.4927936599388,
        1203.7665055841742
      ]
    },
    "8443c078bd75b3be": {
      "id": "8443c078bd75b3be",
      "name": "bitbybit.occt.shapes.wire.divideWireByParamsToPoints",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "nrOfDivisions": 10,
        "removeStartPoint": false,
        "removeEndPoint": false
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "1dafa78bfacbbfbb",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        302.62769218149367,
        622.5236846820462
      ]
    },
    "e58e77fb2d6028c2": {
      "id": "e58e77fb2d6028c2",
      "name": "bitbybit.lists.flatten",
      "data": {
        "nrLevels": 1
      },
      "inputs": {
        "list": {
          "connections": [
            {
              "node": "8443c078bd75b3be",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        804.7656450551948,
        660.4029303963258
      ]
    },
    "a16466a12d979c56": {
      "id": "a16466a12d979c56",
      "name": "bitbybit.json.setValueOnProp",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "property": "position"
      },
      "inputs": {
        "json": {
          "connections": [
            {
              "node": "595b393fdd2d184c",
              "output": "result",
              "data": {}
            }
          ]
        },
        "value": {
          "connections": [
            {
              "node": "e58e77fb2d6028c2",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        2505.122929665415,
        192.65348346950339
      ]
    },
    "3abe9803ddca1518": {
      "id": "3abe9803ddca1518",
      "name": "bitbybit.lists.createList",
      "data": {},
      "inputs": {
        "listElements": {
          "connections": [
            {
              "node": "a16466a12d979c56",
              "output": "result",
              "data": {}
            },
            {
              "node": "fd21f032624bf9ad",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        2869.322500883434,
        892.4991626498971
      ]
    },
    "7ce9776c3cdb0df5": {
      "id": "7ce9776c3cdb0df5",
      "name": "bitbybit.lists.flatten",
      "data": {
        "nrLevels": 1
      },
      "inputs": {
        "list": {
          "connections": [
            {
              "node": "3abe9803ddca1518",
              "output": "list",
              "data": {}
            }
          ]
        }
      },
      "position": [
        3232.9247611087562,
        967.3125997767942
      ]
    },
    "159eff93338fdfa9": {
      "id": "159eff93338fdfa9",
      "name": "bitbybit.vector.vectorXYZ",
      "async": false,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "x": 0,
        "y": 4,
        "z": 0
      },
      "inputs": {},
      "position": [
        -688.886260920401,
        1431.4097853192948
      ]
    },
    "07138dd4e0a3a779": {
      "id": "07138dd4e0a3a779",
      "name": "bitbybit.flow.actions.trigger",
      "data": {},
      "inputs": {},
      "position": [
        -211.19018147083517,
        3419.661189052633
      ]
    }
  }
}
Plans & Pricing

Choose Your Plan

Editor plans for 3D development, API keys for server-side CAD algorithms

B2B

ENTERPRISE

Custom pricing

Custom software development, dedicated servers & CAD automation at scale.

CAD Automation & Software
  • Custom software development
  • Cloud CAD automation pipelines
  • 3D configurators (STEP & GLTF)
  • Batch export jobs
  • Custom algorithms & deployment
Infrastructure & Support
  • Custom compute allocation
  • Dedicated / VPS server tenants
  • Long-running computation jobs
  • Custom upload limits & overage
  • SLA & premium support