Script: 3D text with URL

3D text with URL picture
Type
Rete logo indicatorrete
Date Created
Aug 22, 2025, 10:25:02 AM
Last Edit Date
Oct 3, 2025, 4:36:18 PM

Project Information

This project demonstrates how to use custom fonts to create 3D texts with bitbybit.dev

View Full Project

Script Code

{
  "id": "rete-v2-json",
  "nodes": {
    "b3297ff085f1f4ee": {
      "id": "b3297ff085f1f4ee",
      "name": "bitbybit.advanced.text3d.createWithUrl",
      "customName": "text with url",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "text": "bitbybit.dev",
        "fontUrl": "https://fonts.cdnfonts.com/s/5873/SUPREME_.woff",
        "fontSize": 1.5,
        "height": 1,
        "rotation": 0,
        "origin": [
          0,
          0,
          0
        ],
        "direction": [
          0,
          1,
          0
        ],
        "originAlignment": "centerMiddle"
      },
      "inputs": {},
      "position": [
        -385.8929710077027,
        757.0749291611836
      ]
    },
    "ec823488ecf5e423": {
      "id": "ec823488ecf5e423",
      "name": "bitbybit.occt.shapes.solid.createBox",
      "customName": "box",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "width": 15,
        "length": 3,
        "height": 0.5,
        "center": [
          0,
          0,
          0
        ],
        "originOnCenter": true
      },
      "inputs": {},
      "position": [
        753.2438725629071,
        339.4075919183322
      ]
    },
    "334c1734473f0b7e": {
      "id": "334c1734473f0b7e",
      "name": "bitbybit.json.getValueOnProp",
      "customName": "get value on prop",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "property": "compound"
      },
      "inputs": {
        "json": {
          "connections": [
            {
              "node": "b3297ff085f1f4ee",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        94.75381286117005,
        803.5999599815236
      ]
    },
    "9405c72586a03d41": {
      "id": "9405c72586a03d41",
      "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": "07fc182251899d41",
              "output": "result",
              "data": {}
            }
          ]
        },
        "options": {
          "connections": [
            {
              "node": "ee2e15c99c39e958",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        1709.3343245206647,
        553.8351391309516
      ]
    },
    "07fc182251899d41": {
      "id": "07fc182251899d41",
      "name": "bitbybit.occt.booleans.difference",
      "customName": "difference",
      "async": true,
      "drawable": true,
      "data": {
        "genericNodeData": {
          "hide": true,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "keepEdges": false
      },
      "inputs": {
        "shape": {
          "connections": [
            {
              "node": "ec823488ecf5e423",
              "output": "result",
              "data": {}
            }
          ]
        },
        "shapes": {
          "connections": [
            {
              "node": "86527decc37cc56a",
              "output": "list",
              "data": {}
            }
          ]
        }
      },
      "position": [
        1183.9643945819935,
        458.4276790292966
      ]
    },
    "86527decc37cc56a": {
      "id": "86527decc37cc56a",
      "name": "bitbybit.lists.createList",
      "customName": "create list",
      "data": {},
      "inputs": {
        "listElements": {
          "connections": [
            {
              "node": "334c1734473f0b7e",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        752.0635353748404,
        775.1448981714449
      ]
    },
    "ee2e15c99c39e958": {
      "id": "ee2e15c99c39e958",
      "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": "#000000",
        "faceColour": "#0033ff",
        "vertexColour": "#ff00ff",
        "edgeWidth": 1,
        "vertexSize": 0.03,
        "drawEdges": true,
        "drawFaces": true,
        "drawVertices": false,
        "precision": 0.01,
        "drawEdgeIndexes": false,
        "edgeIndexHeight": 0.06,
        "edgeIndexColour": "#ff00ff",
        "drawFaceIndexes": false,
        "faceIndexHeight": 0.06,
        "faceIndexColour": "#0000ff"
      },
      "inputs": {},
      "position": [
        1193.6719963981675,
        876.6259308198167
      ]
    },
    "004669f5c2b07e6c": {
      "id": "004669f5c2b07e6c",
      "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": 1024,
        "enableShadows": true,
        "shadowDarkness": 0,
        "shadowUsePercentageCloserFiltering": true,
        "shadowContactHardeningLightSizeUVRatio": 0.2,
        "shadowBias": 0.0001,
        "shadowNormalBias": 0.002,
        "shadowMaxZ": 1000,
        "shadowMinZ": 0
      },
      "inputs": {},
      "position": [
        -508.8072454845545,
        1378.3052580939054
      ]
    },
    "fd83eb0d4bf5bc57": {
      "id": "fd83eb0d4bf5bc57",
      "name": "bitbybit.babylon.scene.backgroundColour",
      "customName": "background colour",
      "async": false,
      "drawable": false,
      "data": {
        "genericNodeData": {
          "hide": false,
          "oneOnOne": false,
          "flatten": 0,
          "forceExecution": false
        },
        "colour": "#404045"
      },
      "inputs": {},
      "position": [
        -19.665892997162018,
        1386.862215154544
      ]
    },
    "5acca2102a3535dd": {
      "id": "5acca2102a3535dd",
      "name": "bitbybit.previewData",
      "customName": "preview data",
      "data": {
        "options": {
          "width": 525,
          "height": 301
        },
        "previewJSONControl": "[\n  {\n    \"compound\": {\n      \"hash\": -1315325379,\n      \"type\": \"occ-shape\"\n    },\n    \"type\": \"parametric-model\",\n    \"name\": \"text3d\",\n    \"characterCenterCoordinates\": [\n      [\n        -4.5739495081102755,\n        0.5000000000000001,\n        0.11345064931282589\n      ],\n      [\n        -3.5995846123363777,\n        0.4999999999999999,\n        0.07128898154145075\n      ],\n      [\n        -2.605581924744616,\n        0.5,\n        0.06696685529506868\n      ],\n      [\n        -1.9319999999999993,\n        0.5,\n        0.36824999999999997\n      ],\n      [\n        -1.240147942099755,\n        0.5000000000000002,\n        0.054142588071154525\n      ],\n      [\n        -0.5952899999999991,\n        0.5,\n        0.07500000000000001\n      ],\n      [\n        0.06633911113969725,\n        0.5,\n        0.06986773218420377\n      ],\n      [\n        1.0700360796086288,\n        0.5000000000000001,\n        0.12489281743384477\n      ],\n      [\n        2.070339111139699,\n        0.5000000000000001,\n        0.06986773218420385\n      ],\n      [\n        3.102352057900245,\n        0.5,\n        0.054142588071154414\n      ],\n      [\n        3.7472100000000017,\n        0.5,\n        0.07500000000000002\n      ],\n      [\n        4.408839111139699,\n        0.5,\n        0.06986773218420379\n      ]\n    ],\n    \"characterParts\": [\n      {\n        \"id\": \"character-0\",\n        \"shapes\": {\n          \"compound\": {\n            \"hash\": -2120382324,\n            \"type\": \"occ-shape\"\n          }\n        }\n      },\n      {\n        \"id\": \"character-1\",\n        \"shapes\": {\n          \"compound\": {\n            \"hash\": -2120382355,\n            \"type\": \"occ-shape\"\n          }\n        }\n      },\n      {\n        \"id\": \"character-2\",\n        \"shapes\": {\n          \"compound\": {\n            \"hash\": -2120382386,\n            \"type\": \"occ-shape\"\n          }\n        }\n      },\n      {\n        \"id\": \"character-3\",\n        \"shapes\": {\n          \"compound\": {\n            \"hash\": -1315325100,\n            \"type\": \"occ-shape\"\n          }\n        }\n      },\n      {\n        \"id\": \"character-4\",\n        \"shapes\": {\n          \"compound\": {\n            \"hash\": -1315325131,\n            \"type\": \"occ-shape\"\n          }\n        }\n      },\n      {\n        \"id\": \"character-5\",\n        \"shapes\": {\n          \"compound\": {\n            \"hash\": -1315325162,\n            \"type\": \"occ-shape\"\n          }\n        }\n      },\n      {\n        \"id\": \"character-6\",\n        \"shapes\": {\n          \"compound\": {\n            \"hash\": -1315325193,\n            \"type\": \"occ-shape\"\n          }\n        }\n      },\n      {\n        \"id\": \"character-7\",\n        \"shapes\": {\n          \"compound\": {\n            \"hash\": -1315325224,\n            \"type\": \"occ-shape\"\n          }\n        }\n      },\n      {\n        \"id\": \"character-8\",\n        \"shapes\": {\n          \"compound\": {\n            \"hash\": -1315325255,\n            \"type\": \"occ-shape\"\n          }\n        }\n      },\n      {\n        \"id\": \"character-9\",\n        \"shapes\": {\n          \"compound\": {\n            \"hash\": -1315325286,\n            \"type\": \"occ-shape\"\n          }\n        }\n      },\n      {\n        \"id\": \"character-10\",\n        \"shapes\": {\n          \"compound\": {\n            \"hash\": -1315325317,\n            \"type\": \"occ-shape\"\n          }\n        }\n      },\n      {\n        \"id\": \"character-11\",\n        \"shapes\": {\n          \"compound\": {\n            \"hash\": -1315325348,\n            \"type\": \"occ-shape\"\n          }\n        }\n      }\n    ],\n    \"advanceWidth\": 10.021500000000001,\n    \"boundingBox\": {\n      \"x1\": 0.0945,\n      \"y1\": -0.9765,\n      \"x2\": 10.021500000000001,\n      \"y2\": 0\n    },\n    \"shapes\": [\n      {\n        \"id\": \"1\",\n        \"shape\": {\n          \"hash\": -1315325379,\n          \"type\": \"occ-shape\"\n        }\n      },\n      {\n        \"id\": \"text-3d-character-11-compound-0\",\n        \"shape\": {\n          \"hash\": -1315325348,\n          \"type\": \"occ-shape\"\n        }\n      },\n      {\n        \"id\": \"text-3d-character-10-compound-1\",\n        \"shape\": {\n          \"hash\": -1315325317,\n          \"type\": \"occ-shape\"\n        }\n      },\n      {\n        \"id\": \"text-3d-character-9-compound-2\",\n        \"shape\": {\n          \"hash\": -1315325286,\n          \"type\": \"occ-shape\"\n        }\n      },\n      {\n        \"id\": \"text-3d-character-8-compound-3\",\n        \"shape\": {\n          \"hash\": -1315325255,\n          \"type\": \"occ-shape\"\n        }\n      },\n      {\n        \"id\": \"text-3d-character-7-compound-4\",\n        \"shape\": {\n          \"hash\": -1315325224,\n          \"type\": \"occ-shape\"\n        }\n      },\n      {\n        \"id\": \"text-3d-character-6-compound-5\",\n        \"shape\": {\n          \"hash\": -1315325193,\n          \"type\": \"occ-shape\"\n        }\n      },\n      {\n        \"id\": \"text-3d-character-5-compound-6\",\n        \"shape\": {\n          \"hash\": -1315325162,\n          \"type\": \"occ-shape\"\n        }\n      },\n      {\n        \"id\": \"text-3d-character-4-compound-7\",\n        \"shape\": {\n          \"hash\": -1315325131,\n          \"type\": \"occ-shape\"\n        }\n      },\n      {\n        \"id\": \"text-3d-character-3-compound-8\",\n        \"shape\": {\n          \"hash\": -1315325100,\n          \"type\": \"occ-shape\"\n        }\n      },\n      {\n        \"id\": \"text-3d-character-2-compound-9\",\n        \"shape\": {\n          \"hash\": -2120382386,\n          \"type\": \"occ-shape\"\n        }\n      },\n      {\n        \"id\": \"text-3d-character-1-compound-10\",\n        \"shape\": {\n          \"hash\": -2120382355,\n          \"type\": \"occ-shape\"\n        }\n      },\n      {\n        \"id\": \"text-3d-character-0-compound-11\",\n        \"shape\": {\n          \"hash\": -2120382324,\n          \"type\": \"occ-shape\"\n        }\n      }\n    ]\n  }\n]"
      },
      "inputs": {
        "data": {
          "connections": [
            {
              "node": "b3297ff085f1f4ee",
              "output": "result",
              "data": {}
            }
          ]
        }
      },
      "position": [
        57.3191859620293,
        90.71752886147215
      ]
    }
  }
}
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