Script: Parametric Roof

Parametric Roof picture
Type
Rete logo indicatorrete
Date Created
Sep 24, 2024, 8:29:10 PM
Last Edit Date
Feb 4, 2026, 1:06:03 PM

Project Information

This project shows a conceptual architectural pavillion and demonstrates how animations can be created by using control flow.

View Full Project

Script Code

{
  "id": "rete-v2-json",
  "nodes": {
    "2141c8e0c65fa7da": {
      "id": "2141c8e0c65fa7da",
      "name": "bitbybit.code.jsonEditor",
      "customName": "json editor",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": true
        },
        "options": {
          "width": 531,
          "height": 489
        },
        "code": {
          "code": "{\n    \"groundCrv\": [\n        [\n            -150,\n            2,\n            -25\n        ],\n        [\n            0,\n            2,\n            -15\n        ],\n        [\n            130,\n            2,\n            -25\n        ]\n    ],\n    \"groundMid\": [\n        [\n            -160,\n            1.7,\n            0\n        ],\n        [\n            140,\n            1.7,\n            0\n        ]\n    ],\n    \"firstCrv\": [\n        [\n            -120,\n            3,\n            -50\n        ],\n        [\n            -70,\n            3,\n            -40\n        ],\n        [\n            0,\n            3,\n            -45\n        ],\n        [\n            20,\n            3,\n            -40\n        ],\n        [\n            120,\n            3,\n            -30\n        ]\n    ],\n    \"secondCrv\": [\n        [\n            -140,\n            20,\n            -20\n        ],\n        [\n            -70,\n            13,\n            -30\n        ],\n        [\n            0,\n            18,\n            -38\n        ],\n        [\n            20,\n            15,\n            -30\n        ],\n        [\n            140,\n            15,\n            -20\n        ]\n    ],\n    \"midCrv\": [\n        [\n            -180,\n            8,\n            0\n        ],\n        [\n            -70,\n            11,\n            0\n        ],\n        [\n            0,\n            17,\n            0\n        ],\n        [\n            20,\n            17,\n            0\n        ],\n        [\n            120,\n            20,\n            0\n        ]\n    ]\n}"
        }
      },
      "inputs": {},
      "position": [
        -1011.1636098398882,
        1135.3665620504978
      ]
    },
    "d29e1b8a1c8c74ed": {
      "id": "d29e1b8a1c8c74ed",
      "name": "bitbybit.json.getValueOnProp",
      "customName": "get value on prop",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "property": "firstCrv"
      },
      "inputs": {
        "json": {
          "connections": [
            {
              "node": "2141c8e0c65fa7da",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        -33.70956581183346,
        551.6437507413409
      ]
    },
    "88d68426958ecbe5": {
      "id": "88d68426958ecbe5",
      "name": "bitbybit.babylon.scene.adjustActiveArcRotateCamera",
      "customName": "adjust active arc rotate 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": "4ce5724dfd434a1a",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        777.8293414965153,
        6453.683118244296
      ]
    },
    "4ce5724dfd434a1a": {
      "id": "4ce5724dfd434a1a",
      "name": "bitbybit.vector.vectorXYZ",
      "customName": "vector xyz",
      "async": false,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "x": 100,
        "y": 100,
        "z": 100
      },
      "inputs": {},
      "position": [
        239.34671837049655,
        6432.81169155438
      ]
    },
    "b332864f3338a6be": {
      "id": "b332864f3338a6be",
      "name": "bitbybit.occt.shapes.wire.interpolatePoints",
      "customName": "interpolate points",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "periodic": false,
        "tolerance": 1e-7
      },
      "inputs": {
        "points": {
          "connections": [
            {
              "node": "d29e1b8a1c8c74ed",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        407.4218051853469,
        548.8687611109417
      ]
    },
    "394dbb8f8d9af670": {
      "id": "394dbb8f8d9af670",
      "name": "bitbybit.occt.transforms.mirrorAlongNormal",
      "customName": "mirror along normal",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "origin": [
          0,
          0,
          0
        ],
        "normal": [
          0,
          0,
          1
        ]
      },
      "inputs": {
        "normal": {
          "connections": [
            {
              "node": "444bcfade47e2d72",
              "output": "result",
              "data": {}
            }
          ]
        },
        "shape": {
          "connections": [
            {
              "node": "8dbd393001bbf3fa",
              "output": "result",
              "data": {}
            },
            {
              "node": "b332864f3338a6be",
              "output": "result",
              "data": {}
            },
            {
              "node": "c476a952ed8808a7",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        1019.5900804437351,
        -215.55473448138764
      ]
    },
    "444bcfade47e2d72": {
      "id": "444bcfade47e2d72",
      "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": 1
      },
      "inputs": {},
      "position": [
        444.2920043531883,
        -362.1279250520986
      ]
    },
    "4541778dea83fc92": {
      "id": "4541778dea83fc92",
      "name": "bitbybit.json.getValueOnProp",
      "customName": "get value on prop",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "property": "secondCrv"
      },
      "inputs": {
        "json": {
          "connections": [
            {
              "node": "2141c8e0c65fa7da",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        -31.02860581243722,
        902.7355891042737
      ]
    },
    "8dbd393001bbf3fa": {
      "id": "8dbd393001bbf3fa",
      "name": "bitbybit.occt.shapes.wire.interpolatePoints",
      "customName": "interpolate points",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "periodic": false,
        "tolerance": 1e-7
      },
      "inputs": {
        "points": {
          "connections": [
            {
              "node": "4541778dea83fc92",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        408.0168694926353,
        897.8594811608025
      ]
    },
    "fa783ac83eed1a87": {
      "id": "fa783ac83eed1a87",
      "name": "bitbybit.json.getValueOnProp",
      "customName": "get value on prop",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "property": "midCrv"
      },
      "inputs": {
        "json": {
          "connections": [
            {
              "node": "2141c8e0c65fa7da",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        -28.59126636214556,
        1253.7953857887971
      ]
    },
    "dddb4068c63edb9e": {
      "id": "dddb4068c63edb9e",
      "name": "bitbybit.occt.shapes.wire.interpolatePoints",
      "customName": "interpolate points",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "periodic": false,
        "tolerance": 1e-7
      },
      "inputs": {
        "points": {
          "connections": [
            {
              "node": "fa783ac83eed1a87",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        409.45134064579713,
        1250.0277873979517
      ]
    },
    "15bc5458f930353b": {
      "id": "15bc5458f930353b",
      "name": "bitbybit.math.numberSlider",
      "customName": "number slider",
      "data": {
        "options": {
          "min": 10,
          "max": 100,
          "step": 1,
          "width": 350,
          "updateOnDrag": false
        },
        "number": 97
      },
      "inputs": {},
      "position": [
        2548.937829580217,
        2014.5964754538468
      ]
    },
    "39ac8546b995944c": {
      "id": "39ac8546b995944c",
      "name": "bitbybit.lists.createList",
      "customName": "create list",
      "data": {},
      "inputs": {
        "listElements": {
          "connections": [
            {
              "node": "05e9ffc7bfb58f40",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        4601.22527979044,
        36.70325592342385
      ]
    },
    "b1afbc87fdcf61fc": {
      "id": "b1afbc87fdcf61fc",
      "name": "bitbybit.lists.flipLists",
      "customName": "flip lists",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "clone": true
      },
      "inputs": {
        "list": {
          "connections": [
            {
              "node": "39ac8546b995944c",
              "output": "list",
              "data": {}
            }
          ]
        }
      },
      "position": [
        4898.980788661791,
        -1.7785582330523084
      ]
    },
    "6272f9e90a124f6f": {
      "id": "6272f9e90a124f6f",
      "name": "bitbybit.lists.flatten",
      "customName": "flatten",
      "data": {
        "nrLevels": 1
      },
      "inputs": {
        "list": {
          "connections": [
            {
              "node": "b1afbc87fdcf61fc",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        5236.67588420026,
        38.265379027048766
      ]
    },
    "55ba73eab06a9f3f": {
      "id": "55ba73eab06a9f3f",
      "name": "bitbybit.lists.createList",
      "customName": "create list",
      "data": {},
      "inputs": {
        "listElements": {
          "connections": [
            {
              "node": "394dbb8f8d9af670",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        1415.663596711456,
        -180.74572459783894
      ]
    },
    "c050b3f2a73226d1": {
      "id": "c050b3f2a73226d1",
      "name": "bitbybit.lists.getItem",
      "customName": "get item",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "index": 0,
        "clone": true
      },
      "inputs": {
        "list": {
          "connections": [
            {
              "node": "55ba73eab06a9f3f",
              "output": "list",
              "data": {}
            }
          ]
        }
      },
      "position": [
        1778.158356913739,
        -817.2357715185209
      ]
    },
    "94243d236e5f531d": {
      "id": "94243d236e5f531d",
      "name": "bitbybit.lists.getItem",
      "customName": "get item",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "index": 1,
        "clone": true
      },
      "inputs": {
        "list": {
          "connections": [
            {
              "node": "55ba73eab06a9f3f",
              "output": "list",
              "data": {}
            }
          ]
        }
      },
      "position": [
        1791.7517496482885,
        -459.8766398845204
      ]
    },
    "05e9ffc7bfb58f40": {
      "id": "05e9ffc7bfb58f40",
      "name": "bitbybit.occt.shapes.wire.divideWireByEqualDistanceToPoints",
      "customName": "divide wire by equal distance to points",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "nrOfDivisions": 10,
        "removeStartPoint": false,
        "removeEndPoint": false
      },
      "inputs": {
        "nrOfDivisions": {
          "connections": [
            {
              "node": "15bc5458f930353b",
              "output": "result",
              "data": {}
            }
          ]
        },
        "shape": {
          "connections": [
            {
              "node": "bbf9e532b2f33551",
              "output": "result",
              "data": {}
            },
            {
              "node": "c476a952ed8808a7",
              "output": "result",
              "data": {}
            },
            {
              "node": "b332864f3338a6be",
              "output": "result",
              "data": {}
            },
            {
              "node": "8dbd393001bbf3fa",
              "output": "result",
              "data": {}
            },
            {
              "node": "dddb4068c63edb9e",
              "output": "result",
              "data": {}
            },
            {
              "node": "c050b3f2a73226d1",
              "output": "result",
              "data": {}
            },
            {
              "node": "94243d236e5f531d",
              "output": "result",
              "data": {}
            },
            {
              "node": "4ae925a9d7d1fba6",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        3994.045487023849,
        -13.61651655061928
      ]
    },
    "251939c4347aa98f": {
      "id": "251939c4347aa98f",
      "name": "bitbybit.code.jsonEditor",
      "customName": "json editor",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": true
        },
        "options": {
          "width": 515,
          "height": 489
        },
        "code": {
          "code": "{\n    \"groundCrv\": [\n        [\n            -150,\n            0,\n            -30\n        ],\n        [\n            0,\n            0,\n            -25\n        ],\n        [\n            130,\n            0,\n            -30\n        ]\n    ],\n    \"groundMid\": [\n        [\n            -170,\n            0,\n            0\n        ],\n        [\n            150,\n            0,\n            0\n        ]\n    ],\n    \"firstCrv\": [\n        [\n            -110,\n            3,\n            -60\n        ],\n        [\n            -80,\n            3,\n            -48\n        ],\n        [\n            0,\n            3,\n            -51\n        ],\n        [\n            20,\n            3,\n            -44\n        ],\n        [\n            110,\n            3,\n            -38\n        ]\n    ],\n    \"secondCrv\": [\n        [\n            -145,\n            30,\n            -20\n        ],\n        [\n            -70,\n            14,\n            -30\n        ],\n        [\n            0,\n            20,\n            -38\n        ],\n        [\n            20,\n            18,\n            -31\n        ],\n        [\n            141,\n            21,\n            -23\n        ]\n    ],\n    \"midCrv\": [\n        [\n            -182,\n            13,\n            0\n        ],\n        [\n            -70,\n            14,\n            0\n        ],\n        [\n            0,\n            18,\n            0\n        ],\n        [\n            20,\n            18,\n            0\n        ],\n        [\n            123,\n            23,\n            0\n        ]\n    ]\n}"
        }
      },
      "inputs": {},
      "position": [
        -985.4252563357683,
        3328.643824613821
      ]
    },
    "17ce2d7978440ca2": {
      "id": "17ce2d7978440ca2",
      "name": "bitbybit.json.getValueOnProp",
      "customName": "get value on prop",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "property": "firstCrv"
      },
      "inputs": {
        "json": {
          "connections": [
            {
              "node": "251939c4347aa98f",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        70.18029801298002,
        2935.817643279044
      ]
    },
    "327c214029432955": {
      "id": "327c214029432955",
      "name": "bitbybit.occt.shapes.wire.interpolatePoints",
      "customName": "interpolate points",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "periodic": false,
        "tolerance": 1e-7
      },
      "inputs": {
        "points": {
          "connections": [
            {
              "node": "17ce2d7978440ca2",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        511.7429276016881,
        2931.4864491513367
      ]
    },
    "702dc7b04765686e": {
      "id": "702dc7b04765686e",
      "name": "bitbybit.json.getValueOnProp",
      "customName": "get value on prop",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "property": "secondCrv"
      },
      "inputs": {
        "json": {
          "connections": [
            {
              "node": "251939c4347aa98f",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        63.72526367990599,
        3287.645033758151
      ]
    },
    "578fb2e05605cb2c": {
      "id": "578fb2e05605cb2c",
      "name": "bitbybit.json.getValueOnProp",
      "customName": "get value on prop",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "property": "midCrv"
      },
      "inputs": {
        "json": {
          "connections": [
            {
              "node": "251939c4347aa98f",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        67.81800788767683,
        3640.7610743839755
      ]
    },
    "5ec61935d36be9a1": {
      "id": "5ec61935d36be9a1",
      "name": "bitbybit.occt.transforms.mirrorAlongNormal",
      "customName": "mirror along normal",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "origin": [
          0,
          0,
          0
        ],
        "normal": [
          0,
          0,
          1
        ]
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "e2a686150c47f771",
              "output": "result",
              "data": {}
            },
            {
              "node": "327c214029432955",
              "output": "result",
              "data": {}
            },
            {
              "node": "45964f2e0b5b64fa",
              "output": "result",
              "data": {}
            }
          ]
        },
        "normal": {
          "connections": [
            {
              "node": "c78a7f68d4ffbf38",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        2328.563782330384,
        2251.678083678445
      ]
    },
    "45964f2e0b5b64fa": {
      "id": "45964f2e0b5b64fa",
      "name": "bitbybit.occt.shapes.wire.interpolatePoints",
      "customName": "interpolate points",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "periodic": false,
        "tolerance": 1e-7
      },
      "inputs": {
        "points": {
          "connections": [
            {
              "node": "702dc7b04765686e",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        511.8572129017445,
        3283.386963874665
      ]
    },
    "a7a763256336deec": {
      "id": "a7a763256336deec",
      "name": "bitbybit.occt.shapes.wire.interpolatePoints",
      "customName": "interpolate points",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "periodic": false,
        "tolerance": 1e-7
      },
      "inputs": {
        "points": {
          "connections": [
            {
              "node": "578fb2e05605cb2c",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        512.661307011848,
        3635.5272461486525
      ]
    },
    "6442120c90648c5f": {
      "id": "6442120c90648c5f",
      "name": "bitbybit.json.getValueOnProp",
      "customName": "get value on prop",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "property": "groundCrv"
      },
      "inputs": {
        "json": {
          "connections": [
            {
              "node": "251939c4347aa98f",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        69.49230338035625,
        2586.917341095514
      ]
    },
    "e2a686150c47f771": {
      "id": "e2a686150c47f771",
      "name": "bitbybit.occt.shapes.wire.interpolatePoints",
      "customName": "interpolate points",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "periodic": false,
        "tolerance": 1e-7
      },
      "inputs": {
        "points": {
          "connections": [
            {
              "node": "6442120c90648c5f",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        515.3114390432236,
        2580.9905531489026
      ]
    },
    "52bd498ab70dea45": {
      "id": "52bd498ab70dea45",
      "name": "bitbybit.json.getValueOnProp",
      "customName": "get value on prop",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "property": "groundCrv"
      },
      "inputs": {
        "json": {
          "connections": [
            {
              "node": "2141c8e0c65fa7da",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        -36.17338755521891,
        205.78123248622688
      ]
    },
    "c476a952ed8808a7": {
      "id": "c476a952ed8808a7",
      "name": "bitbybit.occt.shapes.wire.interpolatePoints",
      "customName": "interpolate points",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "periodic": false,
        "tolerance": 1e-7
      },
      "inputs": {
        "points": {
          "connections": [
            {
              "node": "52bd498ab70dea45",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        406.7932319649232,
        202.22167688069965
      ]
    },
    "4ae925a9d7d1fba6": {
      "id": "4ae925a9d7d1fba6",
      "name": "bitbybit.lists.getItem",
      "customName": "get item",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "index": 2,
        "clone": true
      },
      "inputs": {
        "list": {
          "connections": [
            {
              "node": "55ba73eab06a9f3f",
              "output": "list",
              "data": {}
            }
          ]
        }
      },
      "position": [
        1790.5494866113038,
        -101.29757172173004
      ]
    },
    "6ccf70606125afaa": {
      "id": "6ccf70606125afaa",
      "name": "bitbybit.lists.createList",
      "customName": "create list",
      "data": {},
      "inputs": {
        "listElements": {
          "connections": [
            {
              "node": "228efc4d1f888856",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        5927.9994519034435,
        41.78958745449405
      ]
    },
    "d4f30d42144870e7": {
      "id": "d4f30d42144870e7",
      "name": "bitbybit.json.getValueOnProp",
      "customName": "get value on prop",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "property": "groundMid"
      },
      "inputs": {
        "json": {
          "connections": [
            {
              "node": "2141c8e0c65fa7da",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        -28.480433902161494,
        1608.2556424146976
      ]
    },
    "bbf9e532b2f33551": {
      "id": "bbf9e532b2f33551",
      "name": "bitbybit.occt.shapes.wire.interpolatePoints",
      "customName": "interpolate points",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "periodic": false,
        "tolerance": 1e-7
      },
      "inputs": {
        "points": {
          "connections": [
            {
              "node": "d4f30d42144870e7",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        410.19291204325526,
        1604.9728140368584
      ]
    },
    "9411595a87c62859": {
      "id": "9411595a87c62859",
      "name": "bitbybit.json.getValueOnProp",
      "customName": "get value on prop",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "property": "groundMid"
      },
      "inputs": {
        "json": {
          "connections": [
            {
              "node": "251939c4347aa98f",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        66.35794548156406,
        3990.844804992488
      ]
    },
    "506d575be102584f": {
      "id": "506d575be102584f",
      "name": "bitbybit.occt.shapes.wire.interpolatePoints",
      "customName": "interpolate points",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "periodic": false,
        "tolerance": 1e-7
      },
      "inputs": {
        "points": {
          "connections": [
            {
              "node": "9411595a87c62859",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        513.1385643361,
        3986.6824826883253
      ]
    },
    "d89a1d5a1e974915": {
      "id": "d89a1d5a1e974915",
      "name": "bitbybit.occt.shapes.wire.divideWireByEqualDistanceToPoints",
      "customName": "divide wire by equal distance to points",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "nrOfDivisions": 10,
        "removeStartPoint": false,
        "removeEndPoint": false
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "506d575be102584f",
              "output": "result",
              "data": {}
            },
            {
              "node": "e2a686150c47f771",
              "output": "result",
              "data": {}
            },
            {
              "node": "327c214029432955",
              "output": "result",
              "data": {}
            },
            {
              "node": "45964f2e0b5b64fa",
              "output": "result",
              "data": {}
            },
            {
              "node": "a7a763256336deec",
              "output": "result",
              "data": {}
            },
            {
              "node": "5a1dfc2850035d90",
              "output": "result",
              "data": {}
            },
            {
              "node": "4a24e7e29ef71945",
              "output": "result",
              "data": {}
            },
            {
              "node": "2c317494dd605859",
              "output": "result",
              "data": {}
            }
          ]
        },
        "nrOfDivisions": {
          "connections": [
            {
              "node": "15bc5458f930353b",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        4453.947511864185,
        2876.674745919857
      ]
    },
    "2c317494dd605859": {
      "id": "2c317494dd605859",
      "name": "bitbybit.lists.getItem",
      "customName": "get item",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "index": 0,
        "clone": true
      },
      "inputs": {
        "list": {
          "connections": [
            {
              "node": "12f218da6adad069",
              "output": "list",
              "data": {}
            }
          ]
        }
      },
      "position": [
        3835.098462042953,
        3155.3734364287475
      ]
    },
    "12f218da6adad069": {
      "id": "12f218da6adad069",
      "name": "bitbybit.lists.createList",
      "customName": "create list",
      "data": {},
      "inputs": {
        "listElements": {
          "connections": [
            {
              "node": "5ec61935d36be9a1",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        3259.9568962851276,
        3546.4860820211097
      ]
    },
    "4a24e7e29ef71945": {
      "id": "4a24e7e29ef71945",
      "name": "bitbybit.lists.getItem",
      "customName": "get item",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "index": 1,
        "clone": true
      },
      "inputs": {
        "list": {
          "connections": [
            {
              "node": "12f218da6adad069",
              "output": "list",
              "data": {}
            }
          ]
        }
      },
      "position": [
        3820.709130338897,
        3502.563370162088
      ]
    },
    "5a1dfc2850035d90": {
      "id": "5a1dfc2850035d90",
      "name": "bitbybit.lists.getItem",
      "customName": "get item",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "index": 2,
        "clone": true
      },
      "inputs": {
        "list": {
          "connections": [
            {
              "node": "12f218da6adad069",
              "output": "list",
              "data": {}
            }
          ]
        }
      },
      "position": [
        3819.5557880575943,
        3867.892427571672
      ]
    },
    "5eee580a0583b527": {
      "id": "5eee580a0583b527",
      "name": "bitbybit.lists.createList",
      "customName": "create list",
      "data": {},
      "inputs": {
        "listElements": {
          "connections": [
            {
              "node": "d89a1d5a1e974915",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        4973.453419907302,
        2919.403951742829
      ]
    },
    "e24c9f10b11f3633": {
      "id": "e24c9f10b11f3633",
      "name": "bitbybit.lists.flipLists",
      "customName": "flip lists",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "clone": true
      },
      "inputs": {
        "list": {
          "connections": [
            {
              "node": "5eee580a0583b527",
              "output": "list",
              "data": {}
            }
          ]
        }
      },
      "position": [
        5249.098496490702,
        2878.584341374409
      ]
    },
    "8bdad22ce3888bcf": {
      "id": "8bdad22ce3888bcf",
      "name": "bitbybit.lists.flatten",
      "customName": "flatten",
      "data": {
        "nrLevels": 1
      },
      "inputs": {
        "list": {
          "connections": [
            {
              "node": "e24c9f10b11f3633",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        5586.085980852036,
        2919.7006925096784
      ]
    },
    "228efc4d1f888856": {
      "id": "228efc4d1f888856",
      "name": "bitbybit.occt.shapes.wire.createPolygonWire",
      "customName": "polygon wire",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        }
      },
      "inputs": {
        "points": {
          "connections": [
            {
              "node": "6272f9e90a124f6f",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        5572.459499292551,
        -1.284727774934936
      ]
    },
    "42fe119d5fc096af": {
      "id": "42fe119d5fc096af",
      "name": "bitbybit.occt.shapes.wire.createPolygonWire",
      "customName": "polygon wire",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        }
      },
      "inputs": {
        "points": {
          "connections": [
            {
              "node": "8bdad22ce3888bcf",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        5907.582250249989,
        2884.3937221940955
      ]
    },
    "1baf25ae9d3bcfc0": {
      "id": "1baf25ae9d3bcfc0",
      "name": "bitbybit.lists.createList",
      "customName": "create list",
      "data": {},
      "inputs": {
        "listElements": {
          "connections": [
            {
              "node": "42fe119d5fc096af",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        6247.478591446974,
        2922.771570394819
      ]
    },
    "16362693434e9793": {
      "id": "16362693434e9793",
      "name": "bitbybit.lists.getByPattern",
      "customName": "get by pattern",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "pattern": [
          true,
          true,
          false
        ]
      },
      "inputs": {
        "list": {
          "connections": [
            {
              "node": "6ccf70606125afaa",
              "output": "list",
              "data": {}
            }
          ]
        },
        "pattern": {
          "connections": [
            {
              "node": "3ab65476d215d1cf",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        8091.098677565874,
        537.4717100359244
      ]
    },
    "7ad02f1b16aaf89a": {
      "id": "7ad02f1b16aaf89a",
      "name": "bitbybit.code.jsonEditor",
      "customName": "json editor",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": true
        },
        "code": {
          "code": "{\n    \"first\": [\n        true,\n        false,\n        false,\n        false,\n        false\n    ],\n    \"second\": [\n        false,\n        true,\n        false,\n        false,\n        false\n    ],\n    \"third\": [\n        false,\n        false,\n        true,\n        false,\n        false\n    ]\n}"
        }
      },
      "inputs": {},
      "position": [
        6783.891236925038,
        955.4641207649864
      ]
    },
    "6c7aeb45051a152c": {
      "id": "6c7aeb45051a152c",
      "name": "bitbybit.lists.getByPattern",
      "customName": "get by pattern",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "pattern": [
          true,
          true,
          false
        ]
      },
      "inputs": {
        "list": {
          "connections": [
            {
              "node": "6ccf70606125afaa",
              "output": "list",
              "data": {}
            }
          ]
        },
        "pattern": {
          "connections": [
            {
              "node": "a5d562013644dc67",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        8100.2535592678,
        1167.3604861633746
      ]
    },
    "b100ed787318cc7f": {
      "id": "b100ed787318cc7f",
      "name": "bitbybit.lists.getByPattern",
      "customName": "get by pattern",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "pattern": [
          true,
          true,
          false
        ]
      },
      "inputs": {
        "list": {
          "connections": [
            {
              "node": "1baf25ae9d3bcfc0",
              "output": "list",
              "data": {}
            }
          ]
        },
        "pattern": {
          "connections": [
            {
              "node": "a5d562013644dc67",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        8095.402467547123,
        1484.539307245581
      ]
    },
    "552aeb9c499cb26d": {
      "id": "552aeb9c499cb26d",
      "name": "bitbybit.lists.createList",
      "customName": "create list",
      "data": {},
      "inputs": {
        "listElements": {
          "connections": [
            {
              "node": "16362693434e9793",
              "output": "result",
              "data": {}
            },
            {
              "node": "11d88918b6cb5a27",
              "output": "result",
              "data": {}
            },
            {
              "node": "6c7aeb45051a152c",
              "output": "result",
              "data": {}
            },
            {
              "node": "b100ed787318cc7f",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        9269.930030547825,
        853.2399819001105
      ]
    },
    "51c8e17ac6a9058e": {
      "id": "51c8e17ac6a9058e",
      "name": "bitbybit.lists.mergeElementsOfLists",
      "customName": "merge elements of lists",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "level": 0
      },
      "inputs": {
        "lists": {
          "connections": [
            {
              "node": "037f68854a1f3973",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        10255.506711989387,
        551.1033625674486
      ]
    },
    "68c4ea6f3b41da1d": {
      "id": "68c4ea6f3b41da1d",
      "name": "bitbybit.lists.flatten",
      "customName": "flatten",
      "data": {
        "nrLevels": 1
      },
      "inputs": {
        "list": {
          "connections": [
            {
              "node": "51c8e17ac6a9058e",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        10700.521472933482,
        588.3110953716575
      ]
    },
    "708d37e7bbbece89": {
      "id": "708d37e7bbbece89",
      "name": "bitbybit.occt.operations.loftAdvanced",
      "customName": "loft advanced",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "makeSolid": false,
        "closed": true,
        "periodic": false,
        "straight": true,
        "nrPeriodicSections": 10,
        "useSmoothing": false,
        "maxUDegree": 3,
        "tolerance": 1e-7,
        "parType": "approxCentripetal"
      },
      "inputs": {
        "shapes": {
          "connections": [
            {
              "node": "68c4ea6f3b41da1d",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        11101.809309828339,
        550.3177537588565
      ]
    },
    "a6e557667fc54862": {
      "id": "a6e557667fc54862",
      "name": "bitbybit.draw.drawAnyAsync",
      "customName": "draw any async",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        }
      },
      "inputs": {
        "entity": {
          "connections": [
            {
              "node": "3c228e8570917f16",
              "output": "result",
              "data": {}
            }
          ]
        },
        "options": {
          "connections": [
            {
              "node": "177f6e4fe97cf58c",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        12529.794428742143,
        658.039293182469
      ]
    },
    "3c228e8570917f16": {
      "id": "3c228e8570917f16",
      "name": "bitbybit.occt.shapes.compound.makeCompound",
      "customName": "make compound",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        }
      },
      "inputs": {
        "shapes": {
          "connections": [
            {
              "node": "9ecb74b18c62727a",
              "output": "list",
              "data": {}
            }
          ]
        }
      },
      "position": [
        12136.55656414713,
        557.8473554680761
      ]
    },
    "9ecb74b18c62727a": {
      "id": "9ecb74b18c62727a",
      "name": "bitbybit.lists.createList",
      "customName": "create list",
      "data": {},
      "inputs": {
        "listElements": {
          "connections": [
            {
              "node": "708d37e7bbbece89",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        11789.352999138118,
        597.3819743803119
      ]
    },
    "6617ea95abbc8c2c": {
      "id": "6617ea95abbc8c2c",
      "name": "bitbybit.babylon.scene.backgroundColour",
      "customName": "background colour",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "colour": "#ffffff"
      },
      "inputs": {},
      "position": [
        491.63943668014053,
        4693.663053669703
      ]
    },
    "dad4a71ea4c0d94a": {
      "id": "dad4a71ea4c0d94a",
      "name": "bitbybit.babylon.scene.fog",
      "customName": "fog",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "mode": "linear",
        "color": "#ffffff",
        "density": 1,
        "start": 50,
        "end": 500
      },
      "inputs": {},
      "position": [
        539.1841663140073,
        4986.072199122432
      ]
    },
    "7fe9561b4247cee9": {
      "id": "7fe9561b4247cee9",
      "name": "bitbybit.occt.shapes.face.createCircleFace",
      "customName": "circle face",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "radius": 200,
        "center": [
          0,
          0,
          0
        ],
        "direction": [
          0,
          1,
          0
        ]
      },
      "inputs": {
        "center": {
          "connections": [
            {
              "node": "48f4ecc6a417e7ce",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        526.317254282646,
        5425.839991662625
      ]
    },
    "0f9b432b4bbe0b0e": {
      "id": "0f9b432b4bbe0b0e",
      "name": "bitbybit.draw.drawAnyAsync",
      "customName": "draw any async",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        }
      },
      "inputs": {
        "entity": {
          "connections": [
            {
              "node": "7fe9561b4247cee9",
              "output": "result",
              "data": {}
            }
          ]
        },
        "options": {
          "connections": [
            {
              "node": "e5a361a25c43cd69",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        1120.9893580841556,
        5541.978780784776
      ]
    },
    "e5a361a25c43cd69": {
      "id": "e5a361a25c43cd69",
      "name": "bitbybit.draw.optionsOcctShapeSimple",
      "customName": "options occt shape simple",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "precision": 0.01,
        "drawFaces": true,
        "faceColour": "#ffffff",
        "drawEdges": false,
        "edgeColour": "#000000",
        "edgeWidth": 20,
        "drawTwoSided": true,
        "backFaceColour": "#0000ff",
        "backFaceOpacity": 1
      },
      "inputs": {},
      "position": [
        688.8091108176063,
        5865.234955562281
      ]
    },
    "11d88918b6cb5a27": {
      "id": "11d88918b6cb5a27",
      "name": "bitbybit.lists.getByPattern",
      "customName": "get by pattern",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "pattern": [
          true,
          true,
          false
        ]
      },
      "inputs": {
        "list": {
          "connections": [
            {
              "node": "6ccf70606125afaa",
              "output": "list",
              "data": {}
            }
          ]
        },
        "pattern": {
          "connections": [
            {
              "node": "c109e55800c961f9",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        8092.796051484439,
        852.7474360138933
      ]
    },
    "037f68854a1f3973": {
      "id": "037f68854a1f3973",
      "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": "552aeb9c499cb26d",
              "output": "list",
              "data": {}
            }
          ]
        }
      },
      "position": [
        9837.78367583498,
        551.1329615114264
      ]
    },
    "3f131b7b59759890": {
      "id": "3f131b7b59759890",
      "name": "bitbybit.babylon.scene.drawDirectionalLight",
      "customName": "draw directional light",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "direction": [
          -100,
          -100,
          -100
        ],
        "intensity": 1,
        "diffuse": "#ffffff",
        "specular": "#ffffff",
        "shadowGeneratorMapSize": 5000,
        "enableShadows": true,
        "shadowDarkness": 0,
        "shadowUsePercentageCloserFiltering": true,
        "transparencyShadow": false,
        "shadowContactHardeningLightSizeUVRatio": 0.3,
        "shadowBias": 0.001,
        "shadowNormalBias": 0.004,
        "shadowMaxZ": 1000,
        "shadowMinZ": 0,
        "shadowRefreshRate": 1
      },
      "inputs": {},
      "position": [
        1376.022240996424,
        6093.64454130112
      ]
    },
    "c2b0c1d6eb785a53": {
      "id": "c2b0c1d6eb785a53",
      "name": "bitbybit.babylon.material.pbrMetallicRoughness.create",
      "customName": "pbr metallic roughness",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "name": "Custom Material",
        "baseColor": "#ffffff",
        "emissiveColor": "#000000",
        "metallic": 0.7,
        "roughness": 0.5,
        "alpha": 1,
        "backFaceCulling": false,
        "zOffset": 0
      },
      "inputs": {},
      "position": [
        11531.083945658671,
        1161.3888240862607
      ]
    },
    "551475f965f08602": {
      "id": "551475f965f08602",
      "name": "bitbybit.lists.getByPattern",
      "customName": "get by pattern",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "pattern": [
          true,
          true,
          false
        ]
      },
      "inputs": {
        "pattern": {
          "connections": [
            {
              "node": "e41d5e7d3a378b95",
              "output": "result",
              "data": {}
            }
          ]
        },
        "list": {
          "connections": [
            {
              "node": "abfc05f0edf782b9",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        8437.54848590832,
        5196.220468434237
      ]
    },
    "61834284200276ca": {
      "id": "61834284200276ca",
      "name": "bitbybit.lists.createList",
      "customName": "create list",
      "data": {},
      "inputs": {
        "listElements": {
          "connections": [
            {
              "node": "1d34b94a9c37fb62",
              "output": "result",
              "data": {}
            },
            {
              "node": "551475f965f08602",
              "output": "result",
              "data": {}
            },
            {
              "node": "6a6c1c9050ccacef",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        9119.190221307723,
        5220.858932864529
      ]
    },
    "6c9e014236f70414": {
      "id": "6c9e014236f70414",
      "name": "bitbybit.lists.mergeElementsOfLists",
      "customName": "merge elements of lists",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "level": 0
      },
      "inputs": {
        "lists": {
          "connections": [
            {
              "node": "61834284200276ca",
              "output": "list",
              "data": {}
            }
          ]
        }
      },
      "position": [
        9448.718194262547,
        5182.72999350528
      ]
    },
    "57644cfe633ff99b": {
      "id": "57644cfe633ff99b",
      "name": "bitbybit.lists.flatten",
      "customName": "flatten",
      "data": {
        "nrLevels": 1
      },
      "inputs": {
        "list": {
          "connections": [
            {
              "node": "6c92979b94510474",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        11206.331717853685,
        5294.339125094344
      ]
    },
    "6c92979b94510474": {
      "id": "6c92979b94510474",
      "name": "bitbybit.lists.removeItemAtIndex",
      "customName": "remove item at index",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "index": 0,
        "clone": true
      },
      "inputs": {
        "index": {
          "connections": [
            {
              "node": "580ac5fdf73a2152",
              "output": "result",
              "data": {}
            }
          ]
        },
        "list": {
          "connections": [
            {
              "node": "6c9e014236f70414",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        10808.601957440667,
        5260.732172192355
      ]
    },
    "a51f72d806ecf6b5": {
      "id": "a51f72d806ecf6b5",
      "name": "bitbybit.lists.listLength",
      "customName": "list length",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "clone": true
      },
      "inputs": {
        "list": {
          "connections": [
            {
              "node": "6c9e014236f70414",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        9848.25425763514,
        5416.280792631722
      ]
    },
    "580ac5fdf73a2152": {
      "id": "580ac5fdf73a2152",
      "name": "bitbybit.math.twoNrOperation",
      "customName": "two nr operation",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "first": 1,
        "second": 1,
        "operation": "subtract"
      },
      "inputs": {
        "first": {
          "connections": [
            {
              "node": "a51f72d806ecf6b5",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        10272.57951857607,
        5415.099391506843
      ]
    },
    "1d34b94a9c37fb62": {
      "id": "1d34b94a9c37fb62",
      "name": "bitbybit.lists.getByPattern",
      "customName": "get by pattern",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "pattern": [
          true,
          true,
          false
        ]
      },
      "inputs": {
        "pattern": {
          "connections": [
            {
              "node": "8fc557e3fcb82755",
              "output": "result",
              "data": {}
            }
          ]
        },
        "list": {
          "connections": [
            {
              "node": "abfc05f0edf782b9",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        8422.236976045464,
        4868.690024531359
      ]
    },
    "a46ef6a6f24746c9": {
      "id": "a46ef6a6f24746c9",
      "name": "bitbybit.occt.operations.loftAdvanced",
      "customName": "loft advanced",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "makeSolid": false,
        "closed": false,
        "periodic": false,
        "straight": true,
        "nrPeriodicSections": 10,
        "useSmoothing": false,
        "maxUDegree": 3,
        "tolerance": 0.1,
        "parType": "approxCentripetal"
      },
      "inputs": {
        "shapes": {
          "connections": [
            {
              "node": "57644cfe633ff99b",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        11553.586458074653,
        5247.252682996481
      ]
    },
    "9484fa4d51b0136b": {
      "id": "9484fa4d51b0136b",
      "name": "bitbybit.occt.shapes.compound.makeCompound",
      "customName": "make compound",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        }
      },
      "inputs": {
        "shapes": {
          "connections": [
            {
              "node": "2794ac25160d26ec",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        13102.158584849456,
        4759.452151546731
      ]
    },
    "73e28e3ec3fd055c": {
      "id": "73e28e3ec3fd055c",
      "name": "bitbybit.draw.drawAnyAsync",
      "customName": "draw any async",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        }
      },
      "inputs": {
        "entity": {
          "connections": [
            {
              "node": "9484fa4d51b0136b",
              "output": "result",
              "data": {}
            },
            {
              "node": "8bf13dbe59754b32",
              "output": "result",
              "data": {}
            },
            {
              "node": "e80e48cbab781929",
              "output": "result",
              "data": {}
            },
            {
              "node": "10fb6f03aa7c48c1",
              "output": "result",
              "data": {}
            }
          ]
        },
        "options": {
          "connections": [
            {
              "node": "1056cf37a9a40430",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        16609.27129832407,
        3440.033296180158
      ]
    },
    "2372bf253a34de0d": {
      "id": "2372bf253a34de0d",
      "name": "bitbybit.babylon.material.pbrMetallicRoughness.create",
      "customName": "pbr metallic roughness",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "name": "Custom Material",
        "baseColor": "#000000",
        "emissiveColor": "#000000",
        "metallic": 0.1,
        "roughness": 0.3,
        "alpha": 1,
        "backFaceCulling": false,
        "zOffset": 0
      },
      "inputs": {},
      "position": [
        15017.076961361468,
        2632.898209091113
      ]
    },
    "6a6c1c9050ccacef": {
      "id": "6a6c1c9050ccacef",
      "name": "bitbybit.lists.getByPattern",
      "customName": "get by pattern",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "pattern": [
          true,
          true,
          false
        ]
      },
      "inputs": {
        "pattern": {
          "connections": [
            {
              "node": "20bf2e47bcb390e9",
              "output": "result",
              "data": {}
            }
          ]
        },
        "list": {
          "connections": [
            {
              "node": "cdb0e85910829878",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        8444.250375991167,
        5534.286677254532
      ]
    },
    "9b111b2055737f50": {
      "id": "9b111b2055737f50",
      "name": "bitbybit.babylon.mesh.setVisibility",
      "customName": "set visibility",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "visibility": 0.99,
        "includeChildren": true
      },
      "inputs": {
        "babylonMesh": {
          "connections": [
            {
              "node": "73e28e3ec3fd055c",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        17150.056048989685,
        3105.093409559608
      ]
    },
    "d18aee61e4a41132": {
      "id": "d18aee61e4a41132",
      "name": "bitbybit.occt.shapes.face.getFace",
      "customName": "get face",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "index": 12
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "a46ef6a6f24746c9",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        13207.770551320787,
        5736.928584190227
      ]
    },
    "ffcfc6757e15afc8": {
      "id": "ffcfc6757e15afc8",
      "name": "bitbybit.occt.shapes.face.getFace",
      "customName": "get face",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "index": 11
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "a46ef6a6f24746c9",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        13220.4914492478,
        5417.196812348438
      ]
    },
    "4119831841df0b71": {
      "id": "4119831841df0b71",
      "name": "bitbybit.occt.shapes.face.subdivideToRectangleHoles",
      "customName": "subdivide to rectangle holes",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "nrRectanglesU": 20,
        "nrRectanglesV": 10,
        "holesToFaces": true,
        "offsetFromBorderU": 0.05,
        "offsetFromBorderV": 0.05
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "ffcfc6757e15afc8",
              "output": "result",
              "data": {}
            },
            {
              "node": "d18aee61e4a41132",
              "output": "result",
              "data": {}
            }
          ]
        },
        "scalePatternU": {
          "connections": [
            {
              "node": "0aa4b88b6e1c8bbb",
              "output": "result",
              "data": {}
            }
          ]
        },
        "filletPattern": {
          "connections": [
            {
              "node": "d57a34e58a0a8ba0",
              "output": "result",
              "data": {}
            }
          ]
        },
        "inclusionPattern": {
          "connections": [
            {
              "node": "68de73d996dda94a",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        14718.063928012954,
        5615.610509329856
      ]
    },
    "332bcb1bca323ac3": {
      "id": "332bcb1bca323ac3",
      "name": "bitbybit.code.jsonEditor",
      "customName": "json editor",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": true
        },
        "code": {
          "code": "{\n    \"scalePatternU\": [\n        0.95\n    ],\n    \"scalePatternV\": [\n        0.4\n    ],\n    \"fillet\": [\n        0\n    ],\n    \"inclusion\": [\n        true,\n        false,\n        false,\n        true\n    ]\n}"
        }
      },
      "inputs": {},
      "position": [
        12954.131865155165,
        6262.737133651694
      ]
    },
    "0aa4b88b6e1c8bbb": {
      "id": "0aa4b88b6e1c8bbb",
      "name": "bitbybit.json.getValueOnProp",
      "customName": "get value on prop",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "property": "scalePatternU"
      },
      "inputs": {
        "json": {
          "connections": [
            {
              "node": "332bcb1bca323ac3",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        13861.510905695448,
        5850.216952584603
      ]
    },
    "d57a34e58a0a8ba0": {
      "id": "d57a34e58a0a8ba0",
      "name": "bitbybit.json.getValueOnProp",
      "customName": "get value on prop",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "property": "fillet"
      },
      "inputs": {
        "json": {
          "connections": [
            {
              "node": "332bcb1bca323ac3",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        13853.500256703686,
        6210.178837712655
      ]
    },
    "68de73d996dda94a": {
      "id": "68de73d996dda94a",
      "name": "bitbybit.json.getValueOnProp",
      "customName": "get value on prop",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "property": "inclusion"
      },
      "inputs": {
        "json": {
          "connections": [
            {
              "node": "332bcb1bca323ac3",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        13842.91600349521,
        6545.430740402506
      ]
    },
    "f3e65bf7c39fee23": {
      "id": "f3e65bf7c39fee23",
      "name": "bitbybit.draw.drawAnyAsync",
      "customName": "draw any async",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        }
      },
      "inputs": {
        "entity": {
          "connections": [
            {
              "node": "9498fd49bd833c72",
              "output": "result",
              "data": {}
            },
            {
              "node": "9cd2d33e6ef93bf3",
              "output": "result",
              "data": {}
            },
            {
              "node": "f1e9bcd097be5021",
              "output": "result",
              "data": {}
            },
            {
              "node": "c23cc2cbfb52e058",
              "output": "result",
              "data": {}
            },
            {
              "node": "d65c2169025e884d",
              "output": "result",
              "data": {}
            }
          ]
        },
        "options": {
          "connections": [
            {
              "node": "1056cf37a9a40430",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        18483.629838894267,
        4226.680195937489
      ]
    },
    "2794ac25160d26ec": {
      "id": "2794ac25160d26ec",
      "name": "bitbybit.lists.removeItemsAtIndexes",
      "customName": "remove items at indexes",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "clone": true
      },
      "inputs": {
        "indexes": {
          "connections": [
            {
              "node": "ddb45c3bec2f44f1",
              "output": "result",
              "data": {}
            }
          ]
        },
        "list": {
          "connections": [
            {
              "node": "127621b2065eb451",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        12697.987823624922,
        4762.038295994501
      ]
    },
    "2f2a1b0c0c197a09": {
      "id": "2f2a1b0c0c197a09",
      "name": "bitbybit.text.create",
      "customName": "create",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "text": "[2,5,11,12]"
      },
      "inputs": {},
      "position": [
        12062.874915426815,
        4947.862707196508
      ]
    },
    "ddb45c3bec2f44f1": {
      "id": "ddb45c3bec2f44f1",
      "name": "bitbybit.json.parse",
      "customName": "parse",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "text": "[0, 0, 0]"
      },
      "inputs": {
        "text": {
          "connections": [
            {
              "node": "2f2a1b0c0c197a09",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        12355.00644720433,
        4944.172843034169
      ]
    },
    "127621b2065eb451": {
      "id": "127621b2065eb451",
      "name": "bitbybit.occt.shapes.face.getFaces",
      "customName": "get faces",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        }
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "a46ef6a6f24746c9",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        12049.760111585683,
        4633.896717840741
      ]
    },
    "12c5b65352c84a49": {
      "id": "12c5b65352c84a49",
      "name": "bitbybit.occt.shapes.edge.getEdges",
      "customName": "get edges",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        }
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "a46ef6a6f24746c9",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        12556.327984959653,
        7327.44591499822
      ]
    },
    "b74a773ebc0289c5": {
      "id": "b74a773ebc0289c5",
      "name": "bitbybit.occt.operations.pipePolylineWireNGon",
      "customName": "pipe polyline wire ngon",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "radius": 0.15,
        "nrCorners": 6,
        "makeSolid": true,
        "trihedronEnum": "isConstantNormal",
        "forceApproxC1": false
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "d9b5b14b6d5ec4e4",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        13616.079031120506,
        7317.3161188226495
      ]
    },
    "d9b5b14b6d5ec4e4": {
      "id": "d9b5b14b6d5ec4e4",
      "name": "bitbybit.occt.shapes.wire.createWireFromEdge",
      "customName": "wire from edge",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        }
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "5bb1f8c972ca693b",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        13218.15064943389,
        7321.021474879645
      ]
    },
    "5bb1f8c972ca693b": {
      "id": "5bb1f8c972ca693b",
      "name": "bitbybit.lists.flatten",
      "customName": "flatten",
      "data": {
        "nrLevels": 1
      },
      "inputs": {
        "list": {
          "connections": [
            {
              "node": "12c5b65352c84a49",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        12891.955450684743,
        7363.008227795833
      ]
    },
    "313711e095ce13dc": {
      "id": "313711e095ce13dc",
      "name": "bitbybit.occt.shapes.compound.makeCompound",
      "customName": "make compound",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        }
      },
      "inputs": {
        "shapes": {
          "connections": [
            {
              "node": "be513e4e0ce8c4c5",
              "output": "list",
              "data": {}
            }
          ]
        }
      },
      "position": [
        14339.477858483573,
        7316.335282663917
      ]
    },
    "be513e4e0ce8c4c5": {
      "id": "be513e4e0ce8c4c5",
      "name": "bitbybit.lists.createList",
      "customName": "create list",
      "data": {},
      "inputs": {
        "listElements": {
          "connections": [
            {
              "node": "b74a773ebc0289c5",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        14037.57918090435,
        7354.027006020924
      ]
    },
    "3c75c00deb8b3f8e": {
      "id": "3c75c00deb8b3f8e",
      "name": "bitbybit.draw.drawAnyAsync",
      "customName": "draw any async",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        }
      },
      "inputs": {
        "entity": {
          "connections": [
            {
              "node": "313711e095ce13dc",
              "output": "result",
              "data": {}
            }
          ]
        },
        "options": {
          "connections": [
            {
              "node": "e0104903a6c3ac9a",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        14900.865598993116,
        7426.449117785533
      ]
    },
    "e0104903a6c3ac9a": {
      "id": "e0104903a6c3ac9a",
      "name": "bitbybit.draw.optionsOcctShapeSimple",
      "customName": "options occt shape simple",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "precision": 0.01,
        "drawFaces": true,
        "faceColour": "#303030",
        "drawEdges": false,
        "edgeColour": "#ffffff",
        "edgeWidth": 2,
        "drawTwoSided": false,
        "backFaceColour": "#0000ff",
        "backFaceOpacity": 1
      },
      "inputs": {},
      "position": [
        14208.42105760819,
        7614.092234670309
      ]
    },
    "f640987cdbe58e67": {
      "id": "f640987cdbe58e67",
      "name": "bitbybit.occt.operations.makeThickSolidSimple",
      "customName": "make thick solid simple",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "offset": 0.1
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "49bbdf1c2e9683ea",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        17260.132243067925,
        5168.155079148574
      ]
    },
    "49bbdf1c2e9683ea": {
      "id": "49bbdf1c2e9683ea",
      "name": "bitbybit.lists.getItem",
      "customName": "get item",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "index": 0,
        "clone": true
      },
      "inputs": {
        "list": {
          "connections": [
            {
              "node": "4119831841df0b71",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        16778.286747097547,
        5249.719182978626
      ]
    },
    "7c9c1893d068d98b": {
      "id": "7c9c1893d068d98b",
      "name": "bitbybit.lists.removeItemAtIndex",
      "customName": "remove item at index",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "index": 0,
        "clone": true
      },
      "inputs": {
        "list": {
          "connections": [
            {
              "node": "4119831841df0b71",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        15232.04574148203,
        5799.825961358667
      ]
    },
    "9498fd49bd833c72": {
      "id": "9498fd49bd833c72",
      "name": "bitbybit.occt.shapes.compound.makeCompound",
      "customName": "make compound",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        }
      },
      "inputs": {
        "shapes": {
          "connections": [
            {
              "node": "b53faf759ddfa3dc",
              "output": "list",
              "data": {}
            }
          ]
        }
      },
      "position": [
        17928.603193171064,
        5113.383672697855
      ]
    },
    "b53faf759ddfa3dc": {
      "id": "b53faf759ddfa3dc",
      "name": "bitbybit.lists.createList",
      "customName": "create list",
      "data": {},
      "inputs": {
        "listElements": {
          "connections": [
            {
              "node": "f640987cdbe58e67",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        17618.641902186733,
        5177.439052471114
      ]
    },
    "e80e48cbab781929": {
      "id": "e80e48cbab781929",
      "name": "bitbybit.occt.shapes.compound.makeCompound",
      "customName": "make compound",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        }
      },
      "inputs": {
        "shapes": {
          "connections": [
            {
              "node": "dfc185420b39f4e9",
              "output": "list",
              "data": {}
            }
          ]
        }
      },
      "position": [
        16260.430255745821,
        5753.62909385102
      ]
    },
    "62894d4d40ea90df": {
      "id": "62894d4d40ea90df",
      "name": "bitbybit.lists.flatten",
      "customName": "flatten",
      "data": {
        "nrLevels": 1
      },
      "inputs": {
        "list": {
          "connections": [
            {
              "node": "7c9c1893d068d98b",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        15594.146589477481,
        5826.638365970703
      ]
    },
    "dfc185420b39f4e9": {
      "id": "dfc185420b39f4e9",
      "name": "bitbybit.lists.createList",
      "customName": "create list",
      "data": {},
      "inputs": {
        "listElements": {
          "connections": [
            {
              "node": "62894d4d40ea90df",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        15932.459059684583,
        5797.963887533808
      ]
    },
    "3147ebf20b4ced08": {
      "id": "3147ebf20b4ced08",
      "name": "bitbybit.occt.shapes.face.getFace",
      "customName": "get face",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "index": 5
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "a46ef6a6f24746c9",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        13823.467535679387,
        4900.545337453155
      ]
    },
    "1633d0f4252a37d8": {
      "id": "1633d0f4252a37d8",
      "name": "bitbybit.occt.shapes.face.getFace",
      "customName": "get face",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "index": 2
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "a46ef6a6f24746c9",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        14190.090100897312,
        5092.858719865801
      ]
    },
    "1fc1505de936968b": {
      "id": "1fc1505de936968b",
      "name": "bitbybit.occt.shapes.face.subdivideToRectangleHoles",
      "customName": "subdivide to rectangle holes",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "nrRectanglesU": 3,
        "nrRectanglesV": 2,
        "holesToFaces": false,
        "offsetFromBorderU": 0.01,
        "offsetFromBorderV": 0.01
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "1633d0f4252a37d8",
              "output": "result",
              "data": {}
            },
            {
              "node": "3147ebf20b4ced08",
              "output": "result",
              "data": {}
            }
          ]
        },
        "scalePatternU": {
          "connections": [
            {
              "node": "0aa4b88b6e1c8bbb",
              "output": "result",
              "data": {}
            }
          ]
        },
        "filletPattern": {
          "connections": [
            {
              "node": "d57a34e58a0a8ba0",
              "output": "result",
              "data": {}
            }
          ]
        },
        "inclusionPattern": {
          "connections": [
            {
              "node": "68de73d996dda94a",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        14719.0420720103,
        4901.678475633215
      ]
    },
    "d6426f52e7198342": {
      "id": "d6426f52e7198342",
      "name": "bitbybit.lists.createList",
      "customName": "create list",
      "data": {},
      "inputs": {
        "listElements": {
          "connections": [
            {
              "node": "6baa547ce0bffb32",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        15764.881450947803,
        5063.835388660815
      ]
    },
    "9cd2d33e6ef93bf3": {
      "id": "9cd2d33e6ef93bf3",
      "name": "bitbybit.occt.shapes.compound.makeCompound",
      "customName": "make compound",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        }
      },
      "inputs": {
        "shapes": {
          "connections": [
            {
              "node": "d6426f52e7198342",
              "output": "list",
              "data": {}
            }
          ]
        }
      },
      "position": [
        16045.508936091643,
        5018.662312227248
      ]
    },
    "6baa547ce0bffb32": {
      "id": "6baa547ce0bffb32",
      "name": "bitbybit.lists.flatten",
      "customName": "flatten",
      "data": {
        "nrLevels": 1
      },
      "inputs": {
        "list": {
          "connections": [
            {
              "node": "1fc1505de936968b",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        15448.667601195586,
        5066.004650601803
      ]
    },
    "fc6c64ba37d99d09": {
      "id": "fc6c64ba37d99d09",
      "name": "bitbybit.babylon.io.loadAssetIntoSceneFromRootUrl",
      "customName": "load asset into scene from root url",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "assetFile": "tree1.glb",
        "rootUrl": "https://cdn.jsdelivr.net/gh/bitbybit-dev/bitbybit-assets@0.0.1/nature/trees/white/",
        "hidden": false
      },
      "inputs": {},
      "position": [
        4369.784313802553,
        7547.669071312409
      ]
    },
    "d73f4ac3b068221e": {
      "id": "d73f4ac3b068221e",
      "name": "bitbybit.lists.repeat",
      "customName": "repeat",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "times": 10
      },
      "inputs": {
        "item": {
          "connections": [
            {
              "node": "fc6c64ba37d99d09",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        4856.058528093586,
        8029.879805625724
      ]
    },
    "51f393c183e9ec01": {
      "id": "51f393c183e9ec01",
      "name": "bitbybit.lists.flatten",
      "customName": "flatten",
      "data": {
        "nrLevels": 1
      },
      "inputs": {
        "list": {
          "connections": [
            {
              "node": "d73f4ac3b068221e",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        5172.197999202663,
        8066.250721787771
      ]
    },
    "91c497689ad7cebc": {
      "id": "91c497689ad7cebc",
      "name": "bitbybit.lists.flatten",
      "customName": "flatten",
      "data": {
        "nrLevels": 1
      },
      "inputs": {
        "list": {
          "connections": [
            {
              "node": "1d2c3ac5e38dfa61",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        4853.380555962458,
        8383.23206479346
      ]
    },
    "9854fd685f3490be": {
      "id": "9854fd685f3490be",
      "name": "bitbybit.babylon.mesh.clone",
      "customName": "clone",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        }
      },
      "inputs": {
        "babylonMesh": {
          "connections": [
            {
              "node": "51f393c183e9ec01",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        5493.196866590789,
        8027.426818668153
      ]
    },
    "7887419835b83306": {
      "id": "7887419835b83306",
      "name": "bitbybit.babylon.mesh.setPosition",
      "customName": "set position",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": true,
          "flatten": 0,
          "forceExecution": false
        }
      },
      "inputs": {
        "babylonMesh": {
          "connections": [
            {
              "node": "9854fd685f3490be",
              "output": "result",
              "data": {}
            }
          ]
        },
        "position": {
          "connections": [
            {
              "node": "91c497689ad7cebc",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        6045.815403380652,
        8327.622833539368
      ]
    },
    "9d29e264938c3ecf": {
      "id": "9d29e264938c3ecf",
      "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": "327c214029432955",
              "output": "result",
              "data": {}
            }
          ]
        },
        "translation": {
          "connections": [
            {
              "node": "1b72cf373be06755",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        3752.528005503308,
        6630.863921470181
      ]
    },
    "1b72cf373be06755": {
      "id": "1b72cf373be06755",
      "name": "bitbybit.vector.vectorXYZ",
      "customName": "vector xyz",
      "async": false,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "x": 0,
        "y": -3,
        "z": -25
      },
      "inputs": {},
      "position": [
        3334.400881141721,
        6781.135656957198
      ]
    },
    "1d2c3ac5e38dfa61": {
      "id": "1d2c3ac5e38dfa61",
      "name": "bitbybit.occt.shapes.wire.divideWireByParamsToPoints",
      "customName": "divide wire by params to points",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "nrOfDivisions": 4,
        "removeStartPoint": false,
        "removeEndPoint": false
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "9d29e264938c3ecf",
              "output": "result",
              "data": {}
            },
            {
              "node": "aaf4480e0461ea5f",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        4361.431495820367,
        8343.644352955384
      ]
    },
    "0b0ccff8eb00463b": {
      "id": "0b0ccff8eb00463b",
      "name": "bitbybit.occt.operations.offset",
      "customName": "offset",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "distance": 5,
        "tolerance": 0.1
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "9d29e264938c3ecf",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        5884.212103346742,
        6345.9524811404435
      ]
    },
    "f1e9bcd097be5021": {
      "id": "f1e9bcd097be5021",
      "name": "bitbybit.occt.operations.extrude",
      "customName": "extrude",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "direction": [
          0,
          1,
          0
        ]
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "d4ed42a78eea0ad4",
              "output": "result",
              "data": {}
            }
          ]
        },
        "direction": {
          "connections": [
            {
              "node": "de2709b8303b16f7",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        7088.2216278160195,
        6614.629324946411
      ]
    },
    "375971c56c40c667": {
      "id": "375971c56c40c667",
      "name": "bitbybit.occt.operations.offset",
      "customName": "offset",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "distance": 4.5,
        "tolerance": 0.1
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "9d29e264938c3ecf",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        5410.107199455559,
        6590.311268236095
      ]
    },
    "1d52ab43c1eda1b7": {
      "id": "1d52ab43c1eda1b7",
      "name": "bitbybit.occt.shapes.wire.reversedWire",
      "customName": "reversed wire",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        }
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "375971c56c40c667",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        5859.717923362179,
        6058.627388210285
      ]
    },
    "d4ed42a78eea0ad4": {
      "id": "d4ed42a78eea0ad4",
      "name": "bitbybit.occt.shapes.face.createFaceFromWires",
      "customName": "face from wires",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "planar": true
      },
      "inputs": {
        "shapes": {
          "connections": [
            {
              "node": "14f9f1a8681b0788",
              "output": "list",
              "data": {}
            }
          ]
        }
      },
      "position": [
        6597.472362852639,
        6306.298502386775
      ]
    },
    "14f9f1a8681b0788": {
      "id": "14f9f1a8681b0788",
      "name": "bitbybit.lists.createList",
      "customName": "create list",
      "data": {},
      "inputs": {
        "listElements": {
          "connections": [
            {
              "node": "0b0ccff8eb00463b",
              "output": "result",
              "data": {}
            },
            {
              "node": "1d52ab43c1eda1b7",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        6291.305832329201,
        6340.254395751301
      ]
    },
    "ece28072a689b9cc": {
      "id": "ece28072a689b9cc",
      "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.1,
        "z": 0
      },
      "inputs": {},
      "position": [
        6573.63607091846,
        7407.144817150539
      ]
    },
    "f2678d83cc0114d6": {
      "id": "f2678d83cc0114d6",
      "name": "bitbybit.occt.shapes.face.createFaceFromWire",
      "customName": "face from wire",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "planar": true
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "375971c56c40c667",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        6356.793497163486,
        7035.551582380986
      ]
    },
    "8bf13dbe59754b32": {
      "id": "8bf13dbe59754b32",
      "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": "f2678d83cc0114d6",
              "output": "result",
              "data": {}
            }
          ]
        },
        "translation": {
          "connections": [
            {
              "node": "ece28072a689b9cc",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        7084.721312152956,
        7017.928082380099
      ]
    },
    "527a8b47f1e1adf3": {
      "id": "527a8b47f1e1adf3",
      "name": "bitbybit.babylon.mesh.hide",
      "customName": "hide",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "includeChildren": true
      },
      "inputs": {
        "babylonMesh": {
          "connections": [
            {
              "node": "fc6c64ba37d99d09",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        4866.253415941975,
        7651.597134954472
      ]
    },
    "b958fb8a77ae29ae": {
      "id": "b958fb8a77ae29ae",
      "name": "bitbybit.babylon.mesh.show",
      "customName": "show",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "includeChildren": true
      },
      "inputs": {
        "babylonMesh": {
          "connections": [
            {
              "node": "9854fd685f3490be",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        6063.207275134529,
        8006.238456524772
      ]
    },
    "aaf4480e0461ea5f": {
      "id": "aaf4480e0461ea5f",
      "name": "bitbybit.occt.transforms.mirror",
      "customName": "mirror",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "origin": [
          0,
          0,
          0
        ],
        "direction": [
          0,
          0,
          1
        ]
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "9d29e264938c3ecf",
              "output": "result",
              "data": {}
            }
          ]
        },
        "direction": {
          "connections": [
            {
              "node": "3b7ce7ad81ab1f03",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        3754.371984366334,
        8382.530265143743
      ]
    },
    "c78a7f68d4ffbf38": {
      "id": "c78a7f68d4ffbf38",
      "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": 1
      },
      "inputs": {},
      "position": [
        1936.317965833196,
        2450.4503431447874
      ]
    },
    "3b7ce7ad81ab1f03": {
      "id": "3b7ce7ad81ab1f03",
      "name": "bitbybit.vector.vectorXYZ",
      "customName": "vector xyz",
      "async": false,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "x": 1,
        "y": 0,
        "z": 0
      },
      "inputs": {},
      "position": [
        3339.310673702604,
        8515.788133128935
      ]
    },
    "2f3ec7fd9711b8bf": {
      "id": "2f3ec7fd9711b8bf",
      "name": "bitbybit.babylon.scene.drawDirectionalLight",
      "customName": "draw directional light",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "direction": [
          -100,
          -100,
          -100
        ],
        "intensity": 2,
        "diffuse": "#ffffff",
        "specular": "#ffffff",
        "shadowGeneratorMapSize": 5000,
        "enableShadows": true,
        "shadowDarkness": 0,
        "shadowUsePercentageCloserFiltering": true,
        "transparencyShadow": false,
        "shadowContactHardeningLightSizeUVRatio": 0.3,
        "shadowBias": 0.001,
        "shadowNormalBias": 0.004,
        "shadowMaxZ": 1000,
        "shadowMinZ": 0,
        "shadowRefreshRate": 1
      },
      "inputs": {
        "direction": {
          "connections": [
            {
              "node": "7a52af9ba4985812",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        2551.130837183609,
        6168.605127113914
      ]
    },
    "7a52af9ba4985812": {
      "id": "7a52af9ba4985812",
      "name": "bitbybit.vector.vectorXYZ",
      "customName": "vector xyz",
      "async": false,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "x": 100,
        "y": -100,
        "z": -100
      },
      "inputs": {},
      "position": [
        2062.782744536089,
        6191.699175914045
      ]
    },
    "2a31985479728131": {
      "id": "2a31985479728131",
      "name": "bitbybit.babylon.mesh.setScale",
      "customName": "set scale",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": true,
          "flatten": 0,
          "forceExecution": false
        }
      },
      "inputs": {
        "babylonMesh": {
          "connections": [
            {
              "node": "9854fd685f3490be",
              "output": "result",
              "data": {}
            }
          ]
        },
        "scale": {
          "connections": [
            {
              "node": "90bb818ea06329f6",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        6053.534679685223,
        8651.202318513002
      ]
    },
    "90bb818ea06329f6": {
      "id": "90bb818ea06329f6",
      "name": "bitbybit.vector.vectorXYZ",
      "customName": "vector xyz",
      "async": false,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": true,
          "flatten": 0,
          "forceExecution": false
        },
        "x": 0,
        "y": 0,
        "z": 0
      },
      "inputs": {
        "x": {
          "connections": [
            {
              "node": "088c096307fbc401",
              "output": "result",
              "data": {}
            }
          ]
        },
        "y": {
          "connections": [
            {
              "node": "088c096307fbc401",
              "output": "result",
              "data": {}
            }
          ]
        },
        "z": {
          "connections": [
            {
              "node": "088c096307fbc401",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        5619.984949070205,
        8694.56915351741
      ]
    },
    "9891393e8e247e0d": {
      "id": "9891393e8e247e0d",
      "name": "bitbybit.math.randomNumbers",
      "customName": "random numbers",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "low": 2,
        "high": 3,
        "count": 10
      },
      "inputs": {},
      "position": [
        4789.331370652602,
        8743.544534162478
      ]
    },
    "088c096307fbc401": {
      "id": "088c096307fbc401",
      "name": "bitbybit.lists.flatten",
      "customName": "flatten",
      "data": {
        "nrLevels": 1
      },
      "inputs": {
        "list": {
          "connections": [
            {
              "node": "9891393e8e247e0d",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        5215.960999112428,
        8780.041975149777
      ]
    },
    "de2709b8303b16f7": {
      "id": "de2709b8303b16f7",
      "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.2,
        "z": 0
      },
      "inputs": {},
      "position": [
        6624.6444542782,
        6654.700727641708
      ]
    },
    "0b78b5f8430a4900": {
      "id": "0b78b5f8430a4900",
      "name": "bitbybit.lists.createList",
      "customName": "create list",
      "data": {},
      "inputs": {
        "listElements": {
          "connections": [
            {
              "node": "b332864f3338a6be",
              "output": "result",
              "data": {}
            },
            {
              "node": "c476a952ed8808a7",
              "output": "result",
              "data": {}
            },
            {
              "node": "bbf9e532b2f33551",
              "output": "result",
              "data": {}
            },
            {
              "node": "4ae925a9d7d1fba6",
              "output": "result",
              "data": {}
            },
            {
              "node": "94243d236e5f531d",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        2892.2769969926744,
        1568.0107029381138
      ]
    },
    "47e2b0222db68038": {
      "id": "47e2b0222db68038",
      "name": "bitbybit.occt.shapes.wire.divideWireByEqualDistanceToPoints",
      "customName": "divide wire by equal distance to points",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "nrOfDivisions": 10,
        "removeStartPoint": false,
        "removeEndPoint": false
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "1f5e328f9c7a615e",
              "output": "result",
              "data": {}
            }
          ]
        },
        "nrOfDivisions": {
          "connections": [
            {
              "node": "15bc5458f930353b",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        3513.1104886397147,
        1918.6495139519175
      ]
    },
    "1f5e328f9c7a615e": {
      "id": "1f5e328f9c7a615e",
      "name": "bitbybit.lists.flatten",
      "customName": "flatten",
      "data": {
        "nrLevels": 1
      },
      "inputs": {
        "list": {
          "connections": [
            {
              "node": "0b78b5f8430a4900",
              "output": "list",
              "data": {}
            }
          ]
        }
      },
      "position": [
        3197.221473665987,
        1577.4015887889568
      ]
    },
    "210092532d9c4fb2": {
      "id": "210092532d9c4fb2",
      "name": "bitbybit.lists.createList",
      "customName": "create list",
      "data": {},
      "inputs": {
        "listElements": {
          "connections": [
            {
              "node": "47e2b0222db68038",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        3927.6624426023445,
        1956.2123256246996
      ]
    },
    "561e668ea7648188": {
      "id": "561e668ea7648188",
      "name": "bitbybit.lists.flipLists",
      "customName": "flip lists",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "clone": true
      },
      "inputs": {
        "list": {
          "connections": [
            {
              "node": "210092532d9c4fb2",
              "output": "list",
              "data": {}
            }
          ]
        }
      },
      "position": [
        4207.1125954586405,
        1917.7856604293488
      ]
    },
    "f778297d4c174100": {
      "id": "f778297d4c174100",
      "name": "bitbybit.lists.flatten",
      "customName": "flatten",
      "data": {
        "nrLevels": 1
      },
      "inputs": {
        "list": {
          "connections": [
            {
              "node": "561e668ea7648188",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        4552.671133748111,
        1953.6375312254615
      ]
    },
    "c62f1348d0c6a842": {
      "id": "c62f1348d0c6a842",
      "name": "bitbybit.occt.shapes.wire.createPolylineWire",
      "customName": "polyline wire",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        }
      },
      "inputs": {
        "points": {
          "connections": [
            {
              "node": "f778297d4c174100",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        4884.668070661551,
        1913.4788472587406
      ]
    },
    "882fa4f7fdc13878": {
      "id": "882fa4f7fdc13878",
      "name": "bitbybit.lists.createList",
      "customName": "create list",
      "data": {},
      "inputs": {
        "listElements": {
          "connections": [
            {
              "node": "c62f1348d0c6a842",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        5216.4652100146395,
        1950.3552300865372
      ]
    },
    "fa0c358feedcaece": {
      "id": "fa0c358feedcaece",
      "name": "bitbybit.occt.operations.loftAdvanced",
      "customName": "loft advanced",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "makeSolid": false,
        "closed": false,
        "periodic": false,
        "straight": true,
        "nrPeriodicSections": 10,
        "useSmoothing": false,
        "maxUDegree": 3,
        "tolerance": 1e-7,
        "parType": "approxCentripetal"
      },
      "inputs": {
        "shapes": {
          "connections": [
            {
              "node": "882fa4f7fdc13878",
              "output": "list",
              "data": {}
            }
          ]
        }
      },
      "position": [
        5529.315951229128,
        1911.413882616731
      ]
    },
    "c23cc2cbfb52e058": {
      "id": "c23cc2cbfb52e058",
      "name": "bitbybit.occt.operations.extrude",
      "customName": "extrude",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "direction": [
          0,
          1,
          0
        ]
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "fa0c358feedcaece",
              "output": "result",
              "data": {}
            }
          ]
        },
        "direction": {
          "connections": [
            {
              "node": "c3b60b6239d1e8cf",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        6337.27626326134,
        2029.900736295811
      ]
    },
    "c3b60b6239d1e8cf": {
      "id": "c3b60b6239d1e8cf",
      "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.2,
        "z": 0
      },
      "inputs": {},
      "position": [
        5868.656087917998,
        2284.642623936689
      ]
    },
    "88fcba2fdf3e3ffe": {
      "id": "88fcba2fdf3e3ffe",
      "name": "bitbybit.code.jsonEditor",
      "customName": "json editor",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": true
        },
        "code": {
          "code": "{\n    \"first\": [\n        true,\n        false,\n        false,\n        false,\n        false\n    ],\n    \"second\": [\n        false,\n        true,\n        false,\n        false,\n        false\n    ],\n    \"third\": [\n        false,\n        false,\n        false,\n        false,\n        true\n    ]\n}"
        }
      },
      "inputs": {},
      "position": [
        6829.810131006403,
        5361.127489288293
      ]
    },
    "20bf2e47bcb390e9": {
      "id": "20bf2e47bcb390e9",
      "name": "bitbybit.json.getValueOnProp",
      "customName": "get value on prop",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "property": "third"
      },
      "inputs": {
        "json": {
          "connections": [
            {
              "node": "88fcba2fdf3e3ffe",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        7691.622433414901,
        5639.569130469796
      ]
    },
    "8fc557e3fcb82755": {
      "id": "8fc557e3fcb82755",
      "name": "bitbybit.json.getValueOnProp",
      "customName": "get value on prop",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "property": "first"
      },
      "inputs": {
        "json": {
          "connections": [
            {
              "node": "88fcba2fdf3e3ffe",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        7696.927658827299,
        5005.4380327896915
      ]
    },
    "e41d5e7d3a378b95": {
      "id": "e41d5e7d3a378b95",
      "name": "bitbybit.json.getValueOnProp",
      "customName": "get value on prop",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "property": "second"
      },
      "inputs": {
        "json": {
          "connections": [
            {
              "node": "88fcba2fdf3e3ffe",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        7691.4716417622085,
        5319.5951659955645
      ]
    },
    "cdb0e85910829878": {
      "id": "cdb0e85910829878",
      "name": "bitbybit.lists.removeItemsAtIndexes",
      "customName": "remove items at indexes",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "clone": true
      },
      "inputs": {
        "indexes": {
          "connections": [
            {
              "node": "fb72972fed0c6055",
              "output": "result",
              "data": {}
            }
          ]
        },
        "list": {
          "connections": [
            {
              "node": "1baf25ae9d3bcfc0",
              "output": "list",
              "data": {}
            }
          ]
        }
      },
      "position": [
        7702.718922055917,
        4417.111624578376
      ]
    },
    "f631bf777945f60a": {
      "id": "f631bf777945f60a",
      "name": "bitbybit.text.create",
      "customName": "create",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "text": "[0,1,2]"
      },
      "inputs": {},
      "position": [
        6938.681323462009,
        4641.032048763184
      ]
    },
    "fb72972fed0c6055": {
      "id": "fb72972fed0c6055",
      "name": "bitbybit.json.parse",
      "customName": "parse",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "text": "[0, 0, 0]"
      },
      "inputs": {
        "text": {
          "connections": [
            {
              "node": "f631bf777945f60a",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        7244.86574839875,
        4631.677627310639
      ]
    },
    "abfc05f0edf782b9": {
      "id": "abfc05f0edf782b9",
      "name": "bitbybit.lists.removeItemsAtIndexes",
      "customName": "remove items at indexes",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "clone": true
      },
      "inputs": {
        "indexes": {
          "connections": [
            {
              "node": "537e6d1e7c230b12",
              "output": "result",
              "data": {}
            }
          ]
        },
        "list": {
          "connections": [
            {
              "node": "6ccf70606125afaa",
              "output": "list",
              "data": {}
            }
          ]
        }
      },
      "position": [
        7700.736041375083,
        4031.817698477808
      ]
    },
    "e3940224dfa54852": {
      "id": "e3940224dfa54852",
      "name": "bitbybit.text.create",
      "customName": "create",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "text": "[0,1]"
      },
      "inputs": {},
      "position": [
        6964.670417735346,
        4064.818892380273
      ]
    },
    "537e6d1e7c230b12": {
      "id": "537e6d1e7c230b12",
      "name": "bitbybit.json.parse",
      "customName": "parse",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "text": "[0, 0, 0]"
      },
      "inputs": {
        "text": {
          "connections": [
            {
              "node": "e3940224dfa54852",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        7269.988382996353,
        4063.187792807334
      ]
    },
    "aa12fa65cc5cbd53": {
      "id": "aa12fa65cc5cbd53",
      "name": "bitbybit.draw.drawGridMesh",
      "customName": "draw grid mesh",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "width": 400,
        "height": 400,
        "subdivisions": 10,
        "majorUnitFrequency": 10,
        "minorUnitVisibility": 0.45,
        "gridRatio": 0.5,
        "opacity": 0.5,
        "backFaceCulling": false,
        "mainColor": "#000000",
        "secondaryColor": "#000000"
      },
      "inputs": {},
      "position": [
        -156.54430804112772,
        5305.894109900132
      ]
    },
    "48f4ecc6a417e7ce": {
      "id": "48f4ecc6a417e7ce",
      "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.5,
        "z": 0
      },
      "inputs": {},
      "position": [
        189.70192012201102,
        5477.384434379658
      ]
    },
    "3ab65476d215d1cf": {
      "id": "3ab65476d215d1cf",
      "name": "bitbybit.json.getValueOnProp",
      "customName": "get value on prop",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "property": "first"
      },
      "inputs": {
        "json": {
          "connections": [
            {
              "node": "7ad02f1b16aaf89a",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        7522.229268256582,
        414.65365540489375
      ]
    },
    "c109e55800c961f9": {
      "id": "c109e55800c961f9",
      "name": "bitbybit.json.getValueOnProp",
      "customName": "get value on prop",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "property": "second"
      },
      "inputs": {
        "json": {
          "connections": [
            {
              "node": "7ad02f1b16aaf89a",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        7530.926327857407,
        736.0609451038835
      ]
    },
    "a5d562013644dc67": {
      "id": "a5d562013644dc67",
      "name": "bitbybit.json.getValueOnProp",
      "customName": "get value on prop",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "property": "third"
      },
      "inputs": {
        "json": {
          "connections": [
            {
              "node": "7ad02f1b16aaf89a",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        7543.347408738516,
        1083.1760797850643
      ]
    },
    "d65c2169025e884d": {
      "id": "d65c2169025e884d",
      "name": "bitbybit.occt.transforms.mirror",
      "customName": "mirror",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "origin": [
          0,
          0,
          0
        ],
        "direction": [
          0,
          0,
          1
        ]
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "f1e9bcd097be5021",
              "output": "result",
              "data": {}
            }
          ]
        },
        "direction": {
          "connections": [
            {
              "node": "cdd01f6473baf131",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        8048.49911446787,
        6660.598894323685
      ]
    },
    "10fb6f03aa7c48c1": {
      "id": "10fb6f03aa7c48c1",
      "name": "bitbybit.occt.transforms.mirror",
      "customName": "mirror",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "origin": [
          0,
          0,
          0
        ],
        "direction": [
          0,
          0,
          1
        ]
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "8bf13dbe59754b32",
              "output": "result",
              "data": {}
            }
          ]
        },
        "direction": {
          "connections": [
            {
              "node": "cdd01f6473baf131",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        8057.021624647837,
        7082.745418122249
      ]
    },
    "cdd01f6473baf131": {
      "id": "cdd01f6473baf131",
      "name": "bitbybit.vector.vectorXYZ",
      "customName": "vector xyz",
      "async": false,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "x": 1,
        "y": 0,
        "z": 0
      },
      "inputs": {},
      "position": [
        7605.729884471654,
        6856.8206789859705
      ]
    },
    "177f6e4fe97cf58c": {
      "id": "177f6e4fe97cf58c",
      "name": "bitbybit.draw.optionsOcctShape",
      "customName": "options occt shape",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "faceOpacity": 1,
        "edgeOpacity": 1,
        "edgeColour": "#ffffff",
        "faceColour": "#ff0000",
        "vertexColour": "#ff00ff",
        "edgeWidth": 2,
        "vertexSize": 0.03,
        "drawEdges": false,
        "drawFaces": true,
        "drawVertices": false,
        "precision": 0.01,
        "drawEdgeIndexes": false,
        "edgeIndexHeight": 0.06,
        "edgeIndexColour": "#ff00ff",
        "drawFaceIndexes": false,
        "faceIndexHeight": 0.06,
        "faceIndexColour": "#0000ff",
        "drawTwoSided": false,
        "backFaceColour": "#0000ff",
        "backFaceOpacity": 1,
        "edgeArrowSize": 0,
        "edgeArrowAngle": 15
      },
      "inputs": {
        "faceMaterial": {
          "connections": [
            {
              "node": "c2b0c1d6eb785a53",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        12031.42999717262,
        985.0855035634197
      ]
    },
    "1056cf37a9a40430": {
      "id": "1056cf37a9a40430",
      "name": "bitbybit.draw.optionsOcctShape",
      "customName": "options occt shape",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "faceOpacity": 1,
        "edgeOpacity": 1,
        "edgeColour": "#ffffff",
        "faceColour": "#ff0000",
        "vertexColour": "#ff00ff",
        "edgeWidth": 2,
        "vertexSize": 0.03,
        "drawEdges": false,
        "drawFaces": true,
        "drawVertices": false,
        "precision": 0.01,
        "drawEdgeIndexes": false,
        "edgeIndexHeight": 0.06,
        "edgeIndexColour": "#ff00ff",
        "drawFaceIndexes": false,
        "faceIndexHeight": 0.06,
        "faceIndexColour": "#0000ff",
        "drawTwoSided": false,
        "backFaceColour": "#0000ff",
        "backFaceOpacity": 1,
        "edgeArrowSize": 0,
        "edgeArrowAngle": 15
      },
      "inputs": {
        "faceMaterial": {
          "connections": [
            {
              "node": "2372bf253a34de0d",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        15905.351241683094,
        2546.0203045069347
      ]
    }
  }
}