Script: Lofted Surface With Nice Pattern Of Holes

Lofted Surface With Nice Pattern Of Holes picture
Type
Rete logo indicatorrete
Author
matas
Date Created
Sep 19, 2024, 4:28:46 PM
Last Edit Date
Feb 5, 2026, 5:07:23 PM

Project Information

In the latest release we introduced quite a few algorithms to divide faces into wires. You can now place rectangular cells on your faces that follow the curvature of the face.

View Full Project

Script Code

{
  "id": "rete-v2-json",
  "nodes": {
    "90420c7b2708e354": {
      "id": "90420c7b2708e354",
      "name": "bitbybit.code.jsonEditor",
      "customName": "json editor",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": true
        },
        "options": {
          "width": 481,
          "height": 979
        },
        "code": {
          "code": "[\n    [\n        [\n            -10,\n            0,\n            -10\n        ],\n        [\n            0,\n            3,\n            -10\n        ],\n        [\n            10,\n            -1,\n            -10\n        ],\n        [\n            20,\n            2,\n            -10\n        ]\n    ],\n    [\n        [\n            -10,\n            -5,\n            0\n        ],\n        [\n            0,\n            -3,\n            0\n        ],\n        [\n            10,\n            1,\n            0\n        ],\n        [\n            20,\n            -2,\n            0\n        ]\n    ],\n    [\n        [\n            -10,\n            0,\n            10\n        ],\n        [\n            0,\n            3,\n            10\n        ],\n        [\n            10,\n            -1,\n            10\n        ],\n        [\n            20,\n            2,\n            10\n        ]\n    ]\n]"
        }
      },
      "inputs": {},
      "position": [
        -168.59622778301753,
        463.834825149606
      ]
    },
    "85a6aa767c738114": {
      "id": "85a6aa767c738114",
      "name": "bitbybit.occt.shapes.wire.interpolatePoints",
      "customName": "interpolate points",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "periodic": false,
        "tolerance": 1e-7
      },
      "inputs": {
        "points": {
          "connections": [
            {
              "node": "62d5b80d5d4e65f9",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        899.479532427647,
        426.6107277606166
      ]
    },
    "62d5b80d5d4e65f9": {
      "id": "62d5b80d5d4e65f9",
      "name": "bitbybit.lists.flatten",
      "customName": "flatten",
      "data": {
        "nrLevels": 1
      },
      "inputs": {
        "list": {
          "connections": [
            {
              "node": "90420c7b2708e354",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        485.377531321797,
        469.0267657841954
      ]
    },
    "3454913e9c9deca0": {
      "id": "3454913e9c9deca0",
      "name": "bitbybit.occt.operations.loft",
      "customName": "loft",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "makeSolid": false
      },
      "inputs": {
        "shapes": {
          "connections": [
            {
              "node": "3d9116f706be759d",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        2158.8027134131744,
        599.5810456195659
      ]
    },
    "e513fb452f585a7d": {
      "id": "e513fb452f585a7d",
      "name": "bitbybit.lists.createList",
      "customName": "create list",
      "data": {},
      "inputs": {
        "listElements": {
          "connections": [
            {
              "node": "85a6aa767c738114",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        1325.6450615933732,
        492.5534098813184
      ]
    },
    "3d9116f706be759d": {
      "id": "3d9116f706be759d",
      "name": "bitbybit.lists.reverse",
      "customName": "reverse",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "clone": true
      },
      "inputs": {
        "list": {
          "connections": [
            {
              "node": "e513fb452f585a7d",
              "output": "list",
              "data": {}
            }
          ]
        }
      },
      "position": [
        1672.5620987684135,
        491.48464808777317
      ]
    },
    "19131c72ac017780": {
      "id": "19131c72ac017780",
      "name": "bitbybit.occt.shapes.face.subdivideToWires",
      "customName": "subdivide to wires",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "nrDivisions": 100,
        "isU": false,
        "shiftHalfStep": false,
        "removeStart": false,
        "removeEnd": false
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "e8e046144a3311dd",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        3448.730682084074,
        764.4293637738893
      ]
    },
    "e8e046144a3311dd": {
      "id": "e8e046144a3311dd",
      "name": "bitbybit.occt.shapes.face.getFace",
      "customName": "get face",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "index": 0
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "0dcd3b8ebf4e6899",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        3063.527732838047,
        754.1873041585432
      ]
    },
    "7e738fd93e7a10b4": {
      "id": "7e738fd93e7a10b4",
      "name": "bitbybit.occt.shapes.face.subdivideToWires",
      "customName": "subdivide to wires",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "nrDivisions": 20,
        "isU": true,
        "shiftHalfStep": false,
        "removeStart": false,
        "removeEnd": false
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "e8e046144a3311dd",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        3450.931664822865,
        268.0587644086597
      ]
    },
    "9c4aaa8b20ade50f": {
      "id": "9c4aaa8b20ade50f",
      "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": 16,
        "nrRectanglesV": 16,
        "holesToFaces": true,
        "offsetFromBorderU": 0,
        "offsetFromBorderV": 0
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "e8e046144a3311dd",
              "output": "result",
              "data": {}
            }
          ]
        },
        "scalePatternU": {
          "connections": [
            {
              "node": "5eb9685b45867100",
              "output": "list",
              "data": {}
            }
          ]
        },
        "scalePatternV": {
          "connections": [
            {
              "node": "5eb9685b45867100",
              "output": "list",
              "data": {}
            }
          ]
        },
        "filletPattern": {
          "connections": [
            {
              "node": "480bcb0410647f95",
              "output": "list",
              "data": {}
            }
          ]
        },
        "inclusionPattern": {
          "connections": [
            {
              "node": "fbbd3314b672bf00",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        3545.0711805351148,
        1456.5368628186404
      ]
    },
    "7b5fa75e9f30a5ea": {
      "id": "7b5fa75e9f30a5ea",
      "name": "bitbybit.math.number",
      "customName": "number",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "number": 0.9
      },
      "inputs": {},
      "position": [
        2639.3303063716317,
        1186.122859398079
      ]
    },
    "5eb9685b45867100": {
      "id": "5eb9685b45867100",
      "name": "bitbybit.lists.createList",
      "customName": "create list",
      "data": {},
      "inputs": {
        "listElements": {
          "connections": [
            {
              "node": "7b5fa75e9f30a5ea",
              "output": "result",
              "data": {}
            },
            {
              "node": "49c999f7c8fdcee7",
              "output": "result",
              "data": {}
            },
            {
              "node": "7cb0f6f4beab44c0",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        3091.475754912195,
        1493.9306805278245
      ]
    },
    "49c999f7c8fdcee7": {
      "id": "49c999f7c8fdcee7",
      "name": "bitbybit.math.number",
      "customName": "number",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "number": 0.5
      },
      "inputs": {},
      "position": [
        2644.5393599813915,
        1449.80186275328
      ]
    },
    "480bcb0410647f95": {
      "id": "480bcb0410647f95",
      "name": "bitbybit.lists.createList",
      "customName": "create list",
      "data": {},
      "inputs": {
        "listElements": {
          "connections": [
            {
              "node": "036f45ca8c5e3d23",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        3115.728435185603,
        1878.8315004255805
      ]
    },
    "036f45ca8c5e3d23": {
      "id": "036f45ca8c5e3d23",
      "name": "bitbybit.math.number",
      "customName": "number",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "number": 0.5
      },
      "inputs": {},
      "position": [
        2707.1444457691828,
        1960.175441568799
      ]
    },
    "3aacb77b390c2534": {
      "id": "3aacb77b390c2534",
      "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.5
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "bafc3f855085a758",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        4483.7631180325525,
        1368.7654219780236
      ]
    },
    "bafc3f855085a758": {
      "id": "bafc3f855085a758",
      "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": "9c4aaa8b20ade50f",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        4035.276660561456,
        1388.855020811246
      ]
    },
    "2cf9a46a222530f3": {
      "id": "2cf9a46a222530f3",
      "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": [
        393.66000528568816,
        3050.014074509845
      ]
    },
    "47504ac24671dbcd": {
      "id": "47504ac24671dbcd",
      "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": "3aacb77b390c2534",
              "output": "result",
              "data": {}
            },
            {
              "node": "bbccb96cbe50adb2",
              "output": "result",
              "data": {}
            }
          ]
        },
        "options": {
          "connections": [
            {
              "node": "83bdfbc681e64e0c",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        5888.587550256646,
        1524.1326546106734
      ]
    },
    "83bdfbc681e64e0c": {
      "id": "83bdfbc681e64e0c",
      "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.005,
        "drawFaces": true,
        "faceColour": "#feebff",
        "drawEdges": true,
        "edgeColour": "#c285ff",
        "edgeWidth": 3,
        "drawTwoSided": true,
        "backFaceColour": "#0000ff",
        "backFaceOpacity": 1
      },
      "inputs": {},
      "position": [
        4929.661465064165,
        1730.2452209195435
      ]
    },
    "4b3d00c48d3adb28": {
      "id": "4b3d00c48d3adb28",
      "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": 3,
        "diffuse": "#ffffff",
        "specular": "#ffffff",
        "shadowGeneratorMapSize": 4000,
        "enableShadows": true,
        "shadowDarkness": 0,
        "shadowUsePercentageCloserFiltering": true,
        "transparencyShadow": false,
        "shadowContactHardeningLightSizeUVRatio": 0.2,
        "shadowBias": 0.0001,
        "shadowNormalBias": 0.002,
        "shadowMaxZ": 1000,
        "shadowMinZ": 0,
        "shadowRefreshRate": 1
      },
      "inputs": {},
      "position": [
        780.1875312834118,
        2154.6248257489447
      ]
    },
    "7cb0f6f4beab44c0": {
      "id": "7cb0f6f4beab44c0",
      "name": "bitbybit.math.number",
      "customName": "number",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "number": 0.7
      },
      "inputs": {},
      "position": [
        2640.6246535621003,
        1693.7192860753512
      ]
    },
    "bbccb96cbe50adb2": {
      "id": "bbccb96cbe50adb2",
      "name": "bitbybit.occt.shapes.face.createCircleFace",
      "customName": "circle face",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "radius": 30,
        "center": [
          0,
          0,
          0
        ],
        "direction": [
          0,
          1,
          0
        ]
      },
      "inputs": {},
      "position": [
        4487.5403282470315,
        939.6379640985385
      ]
    },
    "a268edcb49a503ac": {
      "id": "a268edcb49a503ac",
      "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": [
        5854.0171023346775,
        3038.9698471258075
      ]
    },
    "0dcd3b8ebf4e6899": {
      "id": "0dcd3b8ebf4e6899",
      "name": "bitbybit.occt.transforms.translate",
      "customName": "translate",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "translation": [
          0,
          0,
          0
        ]
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "3454913e9c9deca0",
              "output": "result",
              "data": {}
            }
          ]
        },
        "translation": {
          "connections": [
            {
              "node": "56751905ba956fe7",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        2706.340345993787,
        643.9215585765378
      ]
    },
    "56751905ba956fe7": {
      "id": "56751905ba956fe7",
      "name": "bitbybit.vector.vectorXYZ",
      "customName": "vector xyz",
      "async": false,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "x": 0,
        "y": 8,
        "z": 0
      },
      "inputs": {},
      "position": [
        2139.5117809779,
        935.9628107178058
      ]
    },
    "fbbd3314b672bf00": {
      "id": "fbbd3314b672bf00",
      "name": "bitbybit.code.jsonEditor",
      "customName": "json editor",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": true
        },
        "options": {
          "width": 382,
          "height": 100
        },
        "code": {
          "code": "[false, true, true, true, true]"
        }
      },
      "inputs": {},
      "position": [
        2574.3784224267006,
        2310.8905640441967
      ]
    },
    "5ced08d5c8998d14": {
      "id": "5ced08d5c8998d14",
      "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": 4000,
        "enableShadows": true,
        "shadowDarkness": 0,
        "shadowUsePercentageCloserFiltering": true,
        "transparencyShadow": false,
        "shadowContactHardeningLightSizeUVRatio": 0.2,
        "shadowBias": 0.0001,
        "shadowNormalBias": 0.002,
        "shadowMaxZ": 1000,
        "shadowMinZ": 0,
        "shadowRefreshRate": 1
      },
      "inputs": {
        "direction": {
          "connections": [
            {
              "node": "51c6da67e21090c0",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        775.9615460921598,
        2662.953034354943
      ]
    },
    "51c6da67e21090c0": {
      "id": "51c6da67e21090c0",
      "name": "bitbybit.vector.vectorXYZ",
      "customName": "vector xyz",
      "async": false,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "x": -100,
        "y": -50,
        "z": 50
      },
      "inputs": {},
      "position": [
        380.2127717247557,
        2638.588369968027
      ]
    },
    "dbda98396bee6892": {
      "id": "dbda98396bee6892",
      "name": "bitbybit.previewData",
      "customName": "preview data",
      "data": {},
      "inputs": {
        "data": {
          "connections": [
            {
              "node": "9c4aaa8b20ade50f",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        3451.9711077420147,
        2197.2061593421067
      ]
    },
    "a15055e53f5d721e": {
      "id": "a15055e53f5d721e",
      "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": "81382d96212c225b",
              "output": "result",
              "data": {}
            }
          ]
        },
        "options": {
          "connections": [
            {
              "node": "9595dcc8772bb0b4",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        5307.1396129417835,
        2291.598518819986
      ]
    },
    "266f8f2d824233ab": {
      "id": "266f8f2d824233ab",
      "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": "9c4aaa8b20ade50f",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        4120.406887267644,
        2255.5847908799615
      ]
    },
    "81382d96212c225b": {
      "id": "81382d96212c225b",
      "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": "266f8f2d824233ab",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        4568.144848379295,
        2334.718887687748
      ]
    },
    "9595dcc8772bb0b4": {
      "id": "9595dcc8772bb0b4",
      "name": "bitbybit.draw.optionsOcctShapeMaterial",
      "customName": "options occt shape material",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "precision": 0.01,
        "drawEdges": false,
        "edgeColour": "#ffffff",
        "edgeWidth": 2
      },
      "inputs": {
        "faceMaterial": {
          "connections": [
            {
              "node": "ac659c8e589ac1a8",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        4755.0833024432495,
        2747.463749971537
      ]
    },
    "ac659c8e589ac1a8": {
      "id": "ac659c8e589ac1a8",
      "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": "#858dff",
        "emissiveColor": "#000000",
        "metallic": 0.7,
        "roughness": 0.23,
        "alpha": 1,
        "backFaceCulling": false,
        "zOffset": 1
      },
      "inputs": {},
      "position": [
        4309.586255057997,
        2847.6436163843605
      ]
    },
    "e8a3e88f235223f7": {
      "id": "e8a3e88f235223f7",
      "name": "bitbybit.babylon.mesh.setVisibility",
      "customName": "set visibility",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "visibility": 0.5,
        "includeChildren": true
      },
      "inputs": {
        "babylonMesh": {
          "connections": [
            {
              "node": "a15055e53f5d721e",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        5851.3970032556035,
        2656.645479921963
      ]
    },
    "bac3ca6a6e833557": {
      "id": "bac3ca6a6e833557",
      "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": 0.1,
        "start": 15,
        "end": 200
      },
      "inputs": {},
      "position": [
        875.7146112292747,
        3205.9036342187555
      ]
    },
    "cbb4008d97f5beab": {
      "id": "cbb4008d97f5beab",
      "name": "bitbybit.flow.time.interval",
      "customName": "interval",
      "data": {
        "interval": 10,
        "expire": 0
      },
      "inputs": {
        "exec": {
          "connections": [
            {
              "node": "72bb16935661b751",
              "output": "exec",
              "data": {}
            }
          ]
        }
      },
      "position": [
        6835.374832943834,
        3185.993637671605
      ]
    },
    "72bb16935661b751": {
      "id": "72bb16935661b751",
      "name": "bitbybit.flow.actions.trigger",
      "customName": "trigger",
      "data": {},
      "inputs": {},
      "position": [
        6373.861446528374,
        3224.576611202435
      ]
    },
    "1543a287e9e1ef68": {
      "id": "1543a287e9e1ef68",
      "name": "bitbybit.vector.vectorXYZ",
      "customName": "vector xyz",
      "async": false,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "x": 0,
        "y": 0,
        "z": 0
      },
      "inputs": {
        "exec": {
          "connections": [
            {
              "node": "d8901ce9f7577b91",
              "output": "exec",
              "data": {}
            }
          ]
        },
        "y": {
          "connections": [
            {
              "node": "d8901ce9f7577b91",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        7662.488366410835,
        2982.359623857477
      ]
    },
    "d8901ce9f7577b91": {
      "id": "d8901ce9f7577b91",
      "name": "bitbybit.flow.counters.counterMinMax",
      "customName": "counter min max",
      "data": {
        "count": 0,
        "min": 0,
        "max": 360,
        "step": 0.01,
        "pulse": false,
        "end": false
      },
      "inputs": {
        "exec": {
          "connections": [
            {
              "node": "cbb4008d97f5beab",
              "output": "exec",
              "data": {}
            }
          ]
        }
      },
      "position": [
        7191.308743943527,
        3091.628354790906
      ]
    },
    "f79c19dbcb13ce9c": {
      "id": "f79c19dbcb13ce9c",
      "name": "bitbybit.babylon.mesh.setRotation",
      "customName": "set rotation",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        }
      },
      "inputs": {
        "babylonMesh": {
          "connections": [
            {
              "node": "47504ac24671dbcd",
              "output": "result",
              "data": {}
            },
            {
              "node": "a15055e53f5d721e",
              "output": "result",
              "data": {}
            },
            {
              "node": "a268edcb49a503ac",
              "output": "result",
              "data": {}
            }
          ]
        },
        "rotation": {
          "connections": [
            {
              "node": "1543a287e9e1ef68",
              "output": "result",
              "data": {}
            }
          ]
        },
        "exec": {
          "connections": [
            {
              "node": "1543a287e9e1ef68",
              "output": "exec",
              "data": {}
            }
          ]
        }
      },
      "position": [
        8193.45825658468,
        2516.3996697388307
      ]
    }
  }
}
Plans & Pricing

Choose Your Plan

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

B2B

ENTERPRISE

Custom pricing

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

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