Script: Mechanical Arm 3D Model

Mechanical Arm 3D Model picture
Type
designer
Date Created
Oct 13, 2026, 8:16:04 PM
Last Edit Date
Oct 16, 2026, 7:01:18 PM

Project Information

Example of the desk robot arm modelled in Designer - our new CAD editing tool

View Full Project

Script Code

[
  {
    "features": [
      {
        "id": "profile",
        "on": {
          "plane": "XY"
        },
        "pen": [
          {
            "id": "floor",
            "length": 72,
            "type": "hLine"
          },
          {
            "id": "toe",
            "length": 7,
            "type": "vLine"
          },
          {
            "radius": 2,
            "type": "filletCorner"
          },
          {
            "id": "ledge",
            "length": -14,
            "type": "hLine"
          },
          {
            "radius": 3,
            "type": "filletCorner"
          },
          {
            "id": "flank",
            "sagitta": 5,
            "to": [
              44,
              34
            ],
            "type": "sagittaArc"
          },
          {
            "id": "collar",
            "length": 8,
            "type": "vLine"
          },
          {
            "radius": 3,
            "type": "filletCorner"
          },
          {
            "id": "top",
            "length": -44,
            "type": "hLine"
          },
          {
            "id": "axis",
            "type": "close"
          }
        ],
        "start": [
          0,
          0
        ],
        "type": "sketch"
      },
      {
        "angle": 360,
        "axis": {
          "direction": [
            0,
            1,
            0
          ],
          "origin": [
            0,
            0,
            0
          ]
        },
        "id": "base",
        "profile": "profile",
        "type": "revolve"
      },
      {
        "at": [
          {
            "id": "m1",
            "x": 46,
            "y": 46
          },
          {
            "id": "m2",
            "x": -46,
            "y": 46
          },
          {
            "id": "m3",
            "x": -46,
            "y": -46
          },
          {
            "id": "m4",
            "x": 46,
            "y": -46
          }
        ],
        "body": "base",
        "counterbore": {
          "depth": 2,
          "diameter": 9
        },
        "depth": 0,
        "diameter": 5,
        "id": "mounts",
        "on": {
          "from": "profile.ledge",
          "of": "base",
          "role": "side"
        },
        "type": "hole"
      }
    ],
    "id": "3caa3532-a05d-437b-adb8-4855d83ecbe1",
    "materials": [
      {
        "appearance": {
          "color": "#c7ccd1"
        },
        "density": 2700,
        "id": "aluminium-6061",
        "name": "Aluminium 6061",
        "standard": "EN AW-6061"
      }
    ],
    "meta": {
      "name": "Base"
    },
    "parameters": {},
    "parts": [
      {
        "appearance": {
          "color": "#2a2d31",
          "metallic": 0.6,
          "roughness": 0.3
        },
        "body": "base",
        "connectors": [
          {
            "id": "top",
            "on": {
              "from": "profile.top",
              "of": "base",
              "role": "side"
            }
          },
          {
            "axis": {
              "of": "mounts",
              "role": "wall"
            },
            "id": "bolts",
            "on": {
              "from": "profile.ledge",
              "of": "base",
              "role": "side"
            }
          }
        ],
        "id": "base",
        "material": "aluminium-6061",
        "name": "Base"
      }
    ],
    "schemaVersion": 1,
    "units": {
      "length": "mm"
    }
  },
  {
    "features": [
      {
        "id": "lug",
        "on": {
          "offset": -20,
          "plane": "XY"
        },
        "pen": [
          {
            "id": "foot",
            "length": 64,
            "type": "hLine"
          },
          {
            "id": "rise",
            "length": 8,
            "type": "vLine"
          },
          {
            "id": "flareFront",
            "sagitta": 3.5,
            "to": [
              20,
              26
            ],
            "type": "sagittaArc"
          },
          {
            "id": "front",
            "length": 34,
            "type": "vLine"
          },
          {
            "id": "crown",
            "to": [
              -20,
              60
            ],
            "type": "tangentArc"
          },
          {
            "id": "back",
            "length": -34,
            "type": "vLine"
          },
          {
            "id": "flareBack",
            "sagitta": 3.5,
            "to": [
              -32,
              10
            ],
            "type": "sagittaArc"
          },
          {
            "id": "drop",
            "type": "close"
          }
        ],
        "start": [
          -32,
          2
        ],
        "type": "sketch"
      },
      {
        "distance": 9,
        "id": "lugA",
        "profile": "lug",
        "type": "extrude"
      },
      {
        "id": "hub",
        "on": {
          "face": {
            "count": 1,
            "of": "lugA",
            "role": "start"
          }
        },
        "pen": [
          {
            "centre": [
              0,
              -60
            ],
            "id": "rim",
            "radius": 14,
            "type": "circle"
          }
        ],
        "type": "sketch"
      },
      {
        "body": "lugA",
        "distance": 3,
        "id": "hubA",
        "profile": "hub",
        "type": "boss"
      },
      {
        "body": "lugA",
        "edges": {
          "between": [
            {
              "of": "lugA",
              "role": "start"
            },
            {
              "of": "lugA",
              "role": "side"
            }
          ],
          "count": 8
        },
        "id": "lugOuter",
        "radius": 2,
        "type": "fillet"
      },
      {
        "body": "lugA",
        "edges": {
          "between": [
            {
              "of": "lugA",
              "role": "end"
            },
            {
              "of": "lugA",
              "role": "side"
            }
          ],
          "count": 8
        },
        "id": "lugInner",
        "radius": 2,
        "type": "fillet"
      },
      {
        "body": "lugA",
        "edges": {
          "between": [
            {
              "of": "hubA",
              "role": "end"
            },
            {
              "of": "hubA",
              "role": "side"
            }
          ],
          "count": 1
        },
        "id": "hubRound",
        "radius": 1,
        "type": "fillet"
      },
      {
        "body": "lugA",
        "id": "fork",
        "plane": {
          "normal": [
            0,
            0,
            1
          ],
          "origin": [
            0,
            0,
            0
          ]
        },
        "type": "mirror"
      },
      {
        "id": "drum",
        "on": {
          "plane": "XY"
        },
        "pen": [
          {
            "id": "seat",
            "length": 44,
            "type": "hLine"
          },
          {
            "id": "wall",
            "length": 14,
            "type": "vLine"
          },
          {
            "radius": 4,
            "type": "filletCorner"
          },
          {
            "id": "deck",
            "length": -44,
            "type": "hLine"
          },
          {
            "id": "axis",
            "type": "close"
          }
        ],
        "start": [
          0,
          0
        ],
        "type": "sketch"
      },
      {
        "angle": 360,
        "axis": {
          "direction": [
            0,
            1,
            0
          ],
          "origin": [
            0,
            0,
            0
          ]
        },
        "id": "turntable",
        "profile": "drum",
        "type": "revolve"
      },
      {
        "body": "turntable",
        "id": "seat",
        "operation": "union",
        "tools": [
          "lugA"
        ],
        "type": "boolean"
      },
      {
        "at": [
          {
            "id": "p",
            "x": 0,
            "y": -60
          }
        ],
        "body": "turntable",
        "depth": 0,
        "diameter": 8,
        "id": "pivot",
        "on": {
          "of": "hubA",
          "role": "end"
        },
        "type": "hole"
      }
    ],
    "id": "6e83338d-98a5-4077-8153-8396d1dbf440",
    "materials": [
      {
        "appearance": {
          "color": "#e9e4d8"
        },
        "density": 1040,
        "id": "abs",
        "name": "ABS"
      }
    ],
    "meta": {
      "name": "Shoulder"
    },
    "parameters": {},
    "parts": [
      {
        "appearance": {
          "color": "#eceef1",
          "metallic": 0,
          "roughness": 0.4
        },
        "body": "turntable",
        "connectors": [
          {
            "id": "bottom",
            "on": {
              "from": "drum.seat",
              "of": "turntable",
              "role": "side"
            }
          },
          {
            "axis": {
              "from": "p",
              "of": "pivot",
              "role": "wall"
            },
            "id": "pivot",
            "on": {
              "count": 1,
              "of": "lugA",
              "role": "end"
            }
          },
          {
            "axis": {
              "from": "p",
              "of": "pivot",
              "role": "wall"
            },
            "id": "boltFace",
            "on": {
              "copy": {
                "index": 1,
                "of": "fork"
              },
              "of": "hubA",
              "role": "end"
            }
          },
          {
            "axis": {
              "from": "p",
              "of": "pivot",
              "role": "wall"
            },
            "id": "nutFace",
            "on": {
              "count": 1,
              "of": "hubA",
              "role": "end"
            }
          }
        ],
        "id": "turntable",
        "material": "abs",
        "name": "Shoulder"
      }
    ],
    "schemaVersion": 1,
    "units": {
      "length": "mm"
    }
  },
  {
    "features": [
      {
        "id": "side",
        "on": {
          "offset": "-width / 2",
          "plane": "XY"
        },
        "pen": [
          {
            "id": "belly",
            "sagitta": "tip / 4",
            "to": [
              "length",
              "-tip"
            ],
            "type": "sagittaArc"
          },
          {
            "id": "nose",
            "through": [
              "length + tip",
              0
            ],
            "to": [
              "length",
              "tip"
            ],
            "type": "threePointArc"
          },
          {
            "id": "spine",
            "sagitta": "tip / 4",
            "to": [
              0,
              "hub"
            ],
            "type": "sagittaArc"
          },
          {
            "id": "heel",
            "through": [
              "-hub",
              0
            ],
            "to": [
              0,
              "-hub"
            ],
            "type": "threePointArc"
          }
        ],
        "start": [
          0,
          "-hub"
        ],
        "type": "sketch"
      },
      {
        "distance": "width",
        "id": "link",
        "profile": "side",
        "type": "extrude"
      },
      {
        "body": "link",
        "edges": {
          "between": [
            {
              "count": 1,
              "of": "link",
              "role": "end"
            },
            {
              "of": "link",
              "role": "side"
            }
          ],
          "count": 4
        },
        "id": "frontRim",
        "radius": 2,
        "type": "fillet"
      },
      {
        "body": "link",
        "edges": {
          "between": [
            {
              "count": 1,
              "of": "link",
              "role": "start"
            },
            {
              "of": "link",
              "role": "side"
            }
          ],
          "count": 4
        },
        "id": "backRim",
        "radius": 2,
        "type": "fillet"
      },
      {
        "id": "boss",
        "on": {
          "offset": "-(gap + 10) / 2",
          "plane": "XY"
        },
        "pen": [
          {
            "centre": [
              "length",
              0
            ],
            "id": "rim",
            "radius": "tip",
            "type": "circle"
          }
        ],
        "type": "sketch"
      },
      {
        "body": "link",
        "distance": "gap + 10",
        "id": "hubs",
        "profile": "boss",
        "type": "extrude"
      },
      {
        "body": "link",
        "edges": {
          "between": [
            {
              "count": 1,
              "of": "hubs",
              "role": "end"
            },
            {
              "of": "hubs",
              "role": "side"
            }
          ],
          "count": 1
        },
        "id": "hubFront",
        "radius": 1.5,
        "type": "fillet"
      },
      {
        "body": "link",
        "edges": {
          "between": [
            {
              "count": 1,
              "of": "hubs",
              "role": "start"
            },
            {
              "of": "hubs",
              "role": "side"
            }
          ],
          "count": 1
        },
        "id": "hubBack",
        "radius": 1.5,
        "type": "fillet"
      },
      {
        "id": "slot",
        "on": {
          "offset": "-gap / 2",
          "plane": "XY"
        },
        "pen": [
          {
            "id": "under",
            "length": "tip + 8",
            "type": "hLine"
          },
          {
            "id": "mouth",
            "length": "2 * tip + 2",
            "type": "vLine"
          },
          {
            "id": "over",
            "length": "-(tip + 8)",
            "type": "hLine"
          },
          {
            "id": "seat",
            "through": [
              "length - tip - 1",
              0
            ],
            "to": [
              "length",
              "-(tip + 1)"
            ],
            "type": "threePointArc"
          }
        ],
        "start": [
          "length",
          "-(tip + 1)"
        ],
        "type": "sketch"
      },
      {
        "body": "link",
        "distance": "gap",
        "id": "fork",
        "join": "cut",
        "profile": "slot",
        "type": "extrude"
      },
      {
        "id": "window",
        "on": {
          "face": {
            "count": 1,
            "of": "link",
            "role": "end"
          }
        },
        "pen": [
          {
            "id": "lower",
            "length": "length - hub - tip - 24",
            "type": "hLine"
          },
          {
            "id": "far",
            "to": [
              "length - tip - 12",
              "tip / 2 - 1"
            ],
            "type": "tangentArc"
          },
          {
            "id": "upper",
            "length": "-(length - hub - tip - 24)",
            "type": "hLine"
          },
          {
            "id": "near",
            "to": [
              "hub + 12",
              "1 - tip / 2"
            ],
            "type": "tangentArc"
          }
        ],
        "start": [
          "hub + 12",
          "1 - tip / 2"
        ],
        "type": "sketch"
      },
      {
        "body": "link",
        "id": "lighten",
        "profile": "window",
        "through": true,
        "type": "pocket"
      },
      {
        "body": "link",
        "edges": {
          "between": [
            {
              "count": 1,
              "of": "link",
              "role": "end"
            },
            {
              "of": "lighten",
              "role": "side"
            }
          ],
          "count": 4
        },
        "id": "windowFront",
        "radius": 1.5,
        "type": "fillet"
      },
      {
        "body": "link",
        "edges": {
          "between": [
            {
              "count": 1,
              "of": "link",
              "role": "start"
            },
            {
              "of": "lighten",
              "role": "side"
            }
          ],
          "count": 4
        },
        "id": "windowBack",
        "radius": 1.5,
        "type": "fillet"
      },
      {
        "at": [
          {
            "id": "a",
            "x": 0,
            "y": 0
          }
        ],
        "body": "link",
        "depth": 0,
        "diameter": 8,
        "id": "root",
        "on": {
          "count": 1,
          "of": "link",
          "role": "end"
        },
        "type": "hole"
      },
      {
        "at": [
          {
            "id": "b",
            "x": "length",
            "y": 0
          }
        ],
        "body": "link",
        "depth": 0,
        "diameter": 8,
        "id": "end",
        "on": {
          "count": 1,
          "of": "hubs",
          "role": "end"
        },
        "type": "hole"
      }
    ],
    "id": "68cb53ab-b943-4060-97df-046d598d91f2",
    "materials": [
      {
        "appearance": {
          "color": "#c7ccd1"
        },
        "density": 2700,
        "id": "aluminium-6061",
        "name": "Aluminium 6061",
        "standard": "EN AW-6061"
      }
    ],
    "meta": {
      "name": "Link"
    },
    "parameters": {
      "gap": {
        "max": 30,
        "min": 6,
        "unit": "mm",
        "value": 14
      },
      "hub": {
        "max": 30,
        "min": 8,
        "unit": "mm",
        "value": 16
      },
      "length": {
        "max": 300,
        "min": 80,
        "unit": "mm",
        "value": 160
      },
      "tip": {
        "max": 30,
        "min": 8,
        "unit": "mm",
        "value": 13
      },
      "width": {
        "max": 40,
        "min": 10,
        "unit": "mm",
        "value": 22
      }
    },
    "parts": [
      {
        "appearance": {
          "color": "#eceef1",
          "metallic": 0,
          "roughness": 0.4
        },
        "body": "link",
        "connectors": [
          {
            "axis": {
              "from": "a",
              "of": "root",
              "role": "wall"
            },
            "id": "proximal",
            "on": {
              "count": 1,
              "of": "link",
              "role": "start"
            }
          },
          {
            "axis": {
              "from": "b",
              "of": "end",
              "role": "wall"
            },
            "id": "distal",
            "on": {
              "count": 1,
              "of": "fork",
              "role": "start"
            }
          },
          {
            "axis": {
              "from": "b",
              "of": "end",
              "role": "wall"
            },
            "id": "boltFace",
            "on": {
              "count": 1,
              "of": "hubs",
              "role": "end"
            }
          },
          {
            "axis": {
              "from": "b",
              "of": "end",
              "role": "wall"
            },
            "id": "nutFace",
            "on": {
              "count": 1,
              "of": "hubs",
              "role": "start"
            }
          }
        ],
        "id": "link",
        "material": "aluminium-6061",
        "name": "Link"
      }
    ],
    "schemaVersion": 1,
    "units": {
      "length": "mm"
    }
  },
  {
    "features": [
      {
        "id": "knuckle",
        "on": {
          "offset": -5,
          "plane": "XY"
        },
        "pen": [
          {
            "id": "chin",
            "to": [
              22,
              -9
            ],
            "type": "line"
          },
          {
            "id": "face",
            "length": 18,
            "type": "vLine"
          },
          {
            "id": "brow",
            "to": [
              0,
              11
            ],
            "type": "line"
          },
          {
            "id": "heel",
            "through": [
              -11,
              0
            ],
            "to": [
              0,
              -11
            ],
            "type": "threePointArc"
          }
        ],
        "start": [
          0,
          -11
        ],
        "type": "sketch"
      },
      {
        "distance": 10,
        "id": "wrist",
        "profile": "knuckle",
        "type": "extrude"
      },
      {
        "id": "plate",
        "on": {
          "face": {
            "count": 1,
            "from": "knuckle.face",
            "of": "wrist",
            "role": "side"
          }
        },
        "pen": [
          {
            "centre": [
              0,
              0
            ],
            "id": "rim",
            "radius": 12,
            "type": "circle"
          }
        ],
        "type": "sketch"
      },
      {
        "body": "wrist",
        "distance": 6,
        "id": "flange",
        "profile": "plate",
        "type": "boss"
      },
      {
        "body": "wrist",
        "edges": {
          "between": [
            {
              "count": 1,
              "of": "wrist",
              "role": "end"
            },
            {
              "of": "wrist",
              "role": "side"
            }
          ],
          "count": 3
        },
        "id": "frontRim",
        "radius": 1.5,
        "type": "fillet"
      },
      {
        "body": "wrist",
        "edges": {
          "between": [
            {
              "count": 1,
              "of": "wrist",
              "role": "start"
            },
            {
              "of": "wrist",
              "role": "side"
            }
          ],
          "count": 3
        },
        "id": "backRim",
        "radius": 1.5,
        "type": "fillet"
      },
      {
        "body": "wrist",
        "edges": {
          "between": [
            {
              "count": 1,
              "of": "flange",
              "role": "end"
            },
            {
              "of": "flange",
              "role": "side"
            }
          ],
          "count": 1
        },
        "id": "flangeRim",
        "radius": 1.5,
        "type": "fillet"
      },
      {
        "at": [
          {
            "id": "c",
            "x": 0,
            "y": 0
          }
        ],
        "body": "wrist",
        "depth": 0,
        "diameter": 8,
        "id": "pin",
        "on": {
          "count": 1,
          "of": "wrist",
          "role": "end"
        },
        "type": "hole"
      }
    ],
    "id": "c54522fa-3677-461b-aa58-f6671402a2d4",
    "materials": [
      {
        "appearance": {
          "color": "#c7ccd1"
        },
        "density": 2700,
        "id": "aluminium-6061",
        "name": "Aluminium 6061",
        "standard": "EN AW-6061"
      }
    ],
    "meta": {
      "name": "Wrist"
    },
    "parameters": {},
    "parts": [
      {
        "appearance": {
          "color": "#2a2d31",
          "metallic": 0.6,
          "roughness": 0.3
        },
        "body": "wrist",
        "connectors": [
          {
            "axis": {
              "from": "c",
              "of": "pin",
              "role": "wall"
            },
            "id": "pin",
            "on": {
              "count": 1,
              "of": "wrist",
              "role": "start"
            }
          },
          {
            "id": "tool",
            "on": {
              "count": 1,
              "of": "flange",
              "role": "end"
            }
          }
        ],
        "id": "wrist",
        "material": "aluminium-6061",
        "name": "Wrist"
      }
    ],
    "schemaVersion": 1,
    "units": {
      "length": "mm"
    }
  },
  {
    "features": [
      {
        "id": "outline",
        "on": {
          "plane": "XZ"
        },
        "pen": [
          {
            "id": "south",
            "length": 58,
            "type": "hLine"
          },
          {
            "id": "southEast",
            "to": [
              35,
              -10
            ],
            "type": "tangentArc"
          },
          {
            "id": "east",
            "length": 20,
            "type": "vLine"
          },
          {
            "id": "northEast",
            "to": [
              29,
              16
            ],
            "type": "tangentArc"
          },
          {
            "id": "north",
            "length": -58,
            "type": "hLine"
          },
          {
            "id": "northWest",
            "to": [
              -35,
              10
            ],
            "type": "tangentArc"
          },
          {
            "id": "west",
            "length": -20,
            "type": "vLine"
          },
          {
            "id": "southWest",
            "to": [
              -29,
              -16
            ],
            "type": "tangentArc"
          }
        ],
        "start": [
          -29,
          -16
        ],
        "type": "sketch"
      },
      {
        "distance": 16,
        "id": "palm",
        "profile": "outline",
        "type": "extrude"
      },
      {
        "body": "palm",
        "edges": {
          "between": [
            {
              "count": 1,
              "of": "palm",
              "role": "end"
            },
            {
              "of": "palm",
              "role": "side"
            }
          ],
          "count": 8
        },
        "id": "frontRim",
        "radius": 2,
        "type": "fillet"
      },
      {
        "body": "palm",
        "edges": {
          "between": [
            {
              "count": 1,
              "of": "palm",
              "role": "start"
            },
            {
              "of": "palm",
              "role": "side"
            }
          ],
          "count": 8
        },
        "id": "backRim",
        "radius": 2,
        "type": "fillet"
      },
      {
        "id": "guideA",
        "on": {
          "face": {
            "count": 1,
            "of": "palm",
            "role": "end"
          }
        },
        "pen": [
          {
            "id": "inner",
            "length": 25,
            "type": "hLine"
          },
          {
            "id": "end",
            "length": 8,
            "type": "vLine"
          },
          {
            "id": "outer",
            "length": -25,
            "type": "hLine"
          },
          {
            "id": "stop",
            "type": "close"
          }
        ],
        "start": [
          -31,
          -4
        ],
        "type": "sketch"
      },
      {
        "body": "palm",
        "distance": 5,
        "id": "railA",
        "profile": "guideA",
        "type": "pocket"
      },
      {
        "id": "guideB",
        "on": {
          "face": {
            "count": 1,
            "of": "palm",
            "role": "end"
          }
        },
        "pen": [
          {
            "id": "inner",
            "length": 25,
            "type": "hLine"
          },
          {
            "id": "end",
            "length": 8,
            "type": "vLine"
          },
          {
            "id": "outer",
            "length": -25,
            "type": "hLine"
          },
          {
            "id": "stop",
            "type": "close"
          }
        ],
        "start": [
          6,
          -4
        ],
        "type": "sketch"
      },
      {
        "body": "palm",
        "distance": 5,
        "id": "railB",
        "profile": "guideB",
        "type": "pocket"
      },
      {
        "at": [
          {
            "id": "s1",
            "x": 30,
            "y": 11
          },
          {
            "id": "s2",
            "x": -30,
            "y": 11
          },
          {
            "id": "s3",
            "x": -30,
            "y": -11
          },
          {
            "id": "s4",
            "x": 30,
            "y": -11
          }
        ],
        "body": "palm",
        "counterbore": {
          "depth": 1.5,
          "diameter": 5.5
        },
        "depth": 0,
        "diameter": 3,
        "id": "screws",
        "on": {
          "count": 1,
          "of": "palm",
          "role": "end"
        },
        "type": "hole"
      },
      {
        "id": "mount",
        "on": {
          "face": {
            "count": 1,
            "of": "palm",
            "role": "start"
          }
        },
        "pen": [
          {
            "centre": [
              0,
              0
            ],
            "id": "rim",
            "radius": 12,
            "type": "circle"
          }
        ],
        "type": "sketch"
      },
      {
        "body": "palm",
        "distance": 6,
        "id": "neck",
        "profile": "mount",
        "type": "boss"
      },
      {
        "body": "palm",
        "edges": {
          "between": [
            {
              "count": 1,
              "of": "palm",
              "role": "start"
            },
            {
              "of": "neck",
              "role": "side"
            }
          ],
          "count": 1
        },
        "id": "neckBlend",
        "radius": 3,
        "type": "fillet"
      }
    ],
    "id": "be490518-ef47-4a5d-ab12-8e38cf58d7ec",
    "materials": [
      {
        "appearance": {
          "color": "#e9e4d8"
        },
        "density": 1040,
        "id": "abs",
        "name": "ABS"
      }
    ],
    "meta": {
      "name": "Gripper"
    },
    "parameters": {},
    "parts": [
      {
        "appearance": {
          "color": "#eceef1",
          "metallic": 0,
          "roughness": 0.4
        },
        "body": "palm",
        "connectors": [
          {
            "id": "mount",
            "on": {
              "count": 1,
              "of": "neck",
              "role": "end"
            }
          },
          {
            "id": "jawA",
            "on": {
              "from": "guideA.end",
              "of": "railA",
              "role": "side"
            },
            "origin": [
              -6,
              13.5,
              0
            ]
          },
          {
            "id": "jawB",
            "on": {
              "from": "guideB.stop",
              "of": "railB",
              "role": "side"
            },
            "origin": [
              6,
              13.5,
              0
            ]
          },
          {
            "axis": {
              "of": "screws",
              "role": "wall"
            },
            "id": "screws",
            "on": {
              "count": 1,
              "of": "palm",
              "role": "end"
            }
          }
        ],
        "id": "palm",
        "material": "abs",
        "name": "Gripper"
      }
    ],
    "schemaVersion": 1,
    "units": {
      "length": "mm"
    }
  },
  {
    "features": [
      {
        "id": "profile",
        "on": {
          "offset": -7,
          "plane": "XY"
        },
        "pen": [
          {
            "id": "base",
            "length": 10,
            "type": "hLine"
          },
          {
            "id": "back",
            "length": 18,
            "type": "vLine"
          },
          {
            "id": "taper",
            "to": [
              6,
              36
            ],
            "type": "line"
          },
          {
            "id": "top",
            "length": -6,
            "type": "hLine"
          },
          {
            "id": "t1",
            "to": [
              -1.2,
              34
            ],
            "type": "line"
          },
          {
            "id": "t2",
            "to": [
              0,
              32
            ],
            "type": "line"
          },
          {
            "id": "t3",
            "to": [
              -1.2,
              30
            ],
            "type": "line"
          },
          {
            "id": "t4",
            "to": [
              0,
              28
            ],
            "type": "line"
          },
          {
            "id": "t5",
            "to": [
              -1.2,
              26
            ],
            "type": "line"
          },
          {
            "id": "t6",
            "to": [
              0,
              24
            ],
            "type": "line"
          },
          {
            "id": "t7",
            "to": [
              -1.2,
              22
            ],
            "type": "line"
          },
          {
            "id": "t8",
            "to": [
              0,
              20
            ],
            "type": "line"
          },
          {
            "id": "face",
            "type": "close"
          }
        ],
        "start": [
          0,
          0
        ],
        "type": "sketch"
      },
      {
        "distance": 14,
        "id": "jaw",
        "profile": "profile",
        "type": "extrude"
      },
      {
        "id": "carriage",
        "on": {
          "offset": -4,
          "plane": "XY"
        },
        "pen": [
          {
            "id": "sole",
            "length": 13.5,
            "type": "hLine"
          },
          {
            "id": "end",
            "length": 7,
            "type": "vLine"
          },
          {
            "id": "top",
            "length": -13.5,
            "type": "hLine"
          },
          {
            "id": "toe",
            "type": "close"
          }
        ],
        "start": [
          0.5,
          -5
        ],
        "type": "sketch"
      },
      {
        "body": "jaw",
        "distance": 8,
        "id": "foot",
        "profile": "carriage",
        "type": "extrude"
      },
      {
        "at": [
          {
            "id": "s1",
            "x": 5,
            "y": 5
          },
          {
            "id": "s2",
            "x": 5,
            "y": 13
          }
        ],
        "body": "jaw",
        "counterbore": {
          "depth": 1.5,
          "diameter": 5.5
        },
        "depth": 0,
        "diameter": 3,
        "id": "screws",
        "on": {
          "count": 1,
          "of": "jaw",
          "role": "end"
        },
        "type": "hole"
      }
    ],
    "id": "f7714e95-5ddd-46d6-b4d9-a2bdacab96a7",
    "materials": [
      {
        "appearance": {
          "color": "#c7ccd1"
        },
        "density": 2700,
        "id": "aluminium-6061",
        "name": "Aluminium 6061",
        "standard": "EN AW-6061"
      }
    ],
    "meta": {
      "name": "Jaw"
    },
    "parameters": {},
    "parts": [
      {
        "appearance": {
          "color": "#2a2d31",
          "metallic": 0.6,
          "roughness": 0.3
        },
        "body": "jaw",
        "connectors": [
          {
            "id": "slide",
            "on": {
              "from": "carriage.toe",
              "of": "foot",
              "role": "side"
            }
          },
          {
            "axis": {
              "of": "screws",
              "role": "wall"
            },
            "id": "screws",
            "on": {
              "count": 1,
              "of": "jaw",
              "role": "end"
            }
          }
        ],
        "id": "jaw",
        "material": "aluminium-6061",
        "name": "Jaw"
      }
    ],
    "schemaVersion": 1,
    "units": {
      "length": "mm"
    }
  },
  {
    "features": [
      {
        "id": "shank",
        "on": {
          "plane": "XZ"
        },
        "pen": [
          {
            "centre": [
              0,
              0
            ],
            "id": "rim",
            "radius": "d / 2",
            "type": "circle"
          }
        ],
        "type": "sketch"
      },
      {
        "distance": "length",
        "id": "screw",
        "profile": "shank",
        "type": "extrude"
      },
      {
        "id": "crown",
        "on": {
          "offset": "length",
          "plane": "XZ"
        },
        "pen": [
          {
            "centre": [
              0,
              0
            ],
            "id": "rim",
            "radius": "0.8 * d",
            "type": "circle"
          }
        ],
        "type": "sketch"
      },
      {
        "body": "screw",
        "distance": "0.7 * d",
        "id": "head",
        "profile": "crown",
        "type": "extrude"
      },
      {
        "id": "hex",
        "on": {
          "face": {
            "count": 1,
            "of": "head",
            "role": "end"
          }
        },
        "pen": [
          {
            "id": "h1",
            "to": [
              "0.15 * d",
              "0.26 * d"
            ],
            "type": "line"
          },
          {
            "id": "h2",
            "to": [
              "-0.15 * d",
              "0.26 * d"
            ],
            "type": "line"
          },
          {
            "id": "h3",
            "to": [
              "-0.3 * d",
              0
            ],
            "type": "line"
          },
          {
            "id": "h4",
            "to": [
              "-0.15 * d",
              "-0.26 * d"
            ],
            "type": "line"
          },
          {
            "id": "h5",
            "to": [
              "0.15 * d",
              "-0.26 * d"
            ],
            "type": "line"
          },
          {
            "id": "h6",
            "type": "close"
          }
        ],
        "start": [
          "0.3 * d",
          0
        ],
        "type": "sketch"
      },
      {
        "body": "screw",
        "distance": "0.4 * d",
        "id": "drive",
        "profile": "hex",
        "type": "pocket"
      },
      {
        "body": "screw",
        "edges": {
          "between": [
            {
              "count": 1,
              "of": "head",
              "role": "end"
            },
            {
              "of": "head",
              "role": "side"
            }
          ],
          "count": 1
        },
        "id": "round",
        "radius": "0.08 * d",
        "type": "fillet"
      },
      {
        "body": "screw",
        "distance": "0.1 * d",
        "edges": {
          "between": [
            {
              "count": 1,
              "of": "screw",
              "role": "start"
            },
            {
              "of": "screw",
              "role": "side"
            }
          ],
          "count": 1
        },
        "id": "lead",
        "type": "chamfer"
      }
    ],
    "id": "aaedf3fd-c9e8-4774-ba6e-c42a2d73dc44",
    "materials": [
      {
        "appearance": {
          "color": "#8a9099"
        },
        "density": 7850,
        "id": "steel",
        "name": "Steel",
        "standard": "S235"
      }
    ],
    "meta": {
      "name": "Screw"
    },
    "parameters": {
      "d": {
        "max": 20,
        "min": 2,
        "unit": "mm",
        "value": 8
      },
      "length": {
        "max": 120,
        "min": 4,
        "unit": "mm",
        "value": 40
      }
    },
    "parts": [
      {
        "appearance": {
          "color": "#1d1f22",
          "metallic": 0.85,
          "roughness": 0.35
        },
        "body": "screw",
        "connectors": [
          {
            "axis": {
              "from": "shank.rim",
              "of": "screw",
              "role": "side"
            },
            "id": "seat",
            "on": {
              "count": 1,
              "of": "head",
              "role": "start"
            }
          }
        ],
        "id": "screw",
        "material": "steel",
        "name": "Screw"
      }
    ],
    "schemaVersion": 1,
    "units": {
      "length": "mm"
    }
  },
  {
    "features": [
      {
        "id": "hex",
        "on": {
          "plane": "XZ"
        },
        "pen": [
          {
            "id": "f1",
            "to": [
              "0.46 * d",
              "0.8 * d"
            ],
            "type": "line"
          },
          {
            "id": "f2",
            "to": [
              "-0.46 * d",
              "0.8 * d"
            ],
            "type": "line"
          },
          {
            "id": "f3",
            "to": [
              "-0.92 * d",
              0
            ],
            "type": "line"
          },
          {
            "id": "f4",
            "to": [
              "-0.46 * d",
              "-0.8 * d"
            ],
            "type": "line"
          },
          {
            "id": "f5",
            "to": [
              "0.46 * d",
              "-0.8 * d"
            ],
            "type": "line"
          },
          {
            "id": "f6",
            "type": "close"
          }
        ],
        "start": [
          "0.92 * d",
          0
        ],
        "type": "sketch"
      },
      {
        "distance": "0.8 * d",
        "id": "nut",
        "profile": "hex",
        "type": "extrude"
      },
      {
        "body": "nut",
        "distance": "0.08 * d",
        "edges": {
          "between": [
            {
              "count": 1,
              "of": "nut",
              "role": "end"
            },
            {
              "of": "nut",
              "role": "side"
            }
          ],
          "count": 6
        },
        "id": "topBevel",
        "type": "chamfer"
      },
      {
        "body": "nut",
        "distance": "0.08 * d",
        "edges": {
          "between": [
            {
              "count": 1,
              "of": "nut",
              "role": "start"
            },
            {
              "of": "nut",
              "role": "side"
            }
          ],
          "count": 6
        },
        "id": "underBevel",
        "type": "chamfer"
      },
      {
        "at": [
          {
            "id": "c",
            "x": 0,
            "y": 0
          }
        ],
        "body": "nut",
        "depth": 0,
        "diameter": "d",
        "id": "bore",
        "on": {
          "count": 1,
          "of": "nut",
          "role": "end"
        },
        "type": "hole"
      }
    ],
    "id": "a2d1fb0a-f013-4b4e-b5fd-ea0f479308c0",
    "materials": [
      {
        "appearance": {
          "color": "#8a9099"
        },
        "density": 7850,
        "id": "steel",
        "name": "Steel",
        "standard": "S235"
      }
    ],
    "meta": {
      "name": "Nut"
    },
    "parameters": {
      "d": {
        "max": 20,
        "min": 2,
        "unit": "mm",
        "value": 8
      }
    },
    "parts": [
      {
        "appearance": {
          "color": "#1d1f22",
          "metallic": 0.85,
          "roughness": 0.35
        },
        "body": "nut",
        "connectors": [
          {
            "axis": {
              "from": "c",
              "of": "bore",
              "role": "wall"
            },
            "id": "seat",
            "on": {
              "count": 1,
              "of": "nut",
              "role": "start"
            }
          }
        ],
        "id": "nut",
        "material": "steel",
        "name": "Nut"
      }
    ],
    "schemaVersion": 1,
    "units": {
      "length": "mm"
    }
  },
  {
    "components": [
      {
        "at": {
          "direction": [
            1,
            0,
            0
          ],
          "normal": [
            0,
            0,
            1
          ],
          "origin": [
            0,
            0,
            0
          ]
        },
        "id": "base",
        "source": {
          "document": "3caa3532-a05d-437b-adb8-4855d83ecbe1",
          "part": "base"
        }
      },
      {
        "id": "turntable",
        "source": {
          "document": "6e83338d-98a5-4077-8153-8396d1dbf440",
          "part": "turntable"
        }
      },
      {
        "id": "upper",
        "source": {
          "document": "68cb53ab-b943-4060-97df-046d598d91f2",
          "parameters": {
            "length": 160
          },
          "part": "link"
        }
      },
      {
        "id": "fore",
        "source": {
          "document": "68cb53ab-b943-4060-97df-046d598d91f2",
          "parameters": {
            "gap": 10,
            "hub": 13,
            "length": 130,
            "tip": 11,
            "width": 14
          },
          "part": "link"
        }
      },
      {
        "id": "wrist",
        "source": {
          "document": "c54522fa-3677-461b-aa58-f6671402a2d4",
          "part": "wrist"
        }
      },
      {
        "id": "gripper",
        "source": {
          "document": "be490518-ef47-4a5d-ab12-8e38cf58d7ec",
          "part": "palm"
        }
      },
      {
        "id": "jawA",
        "source": {
          "document": "f7714e95-5ddd-46d6-b4d9-a2bdacab96a7",
          "part": "jaw"
        }
      },
      {
        "id": "jawB",
        "source": {
          "document": "f7714e95-5ddd-46d6-b4d9-a2bdacab96a7",
          "part": "jaw"
        }
      },
      {
        "id": "shoulderBolt",
        "replicate": {
          "connector": "seat",
          "to": {
            "component": "turntable",
            "connector": "boltFace"
          }
        },
        "source": {
          "document": "aaedf3fd-c9e8-4774-ba6e-c42a2d73dc44",
          "parameters": {
            "d": 8,
            "length": 55
          },
          "part": "screw"
        }
      },
      {
        "id": "shoulderNut",
        "replicate": {
          "connector": "seat",
          "to": {
            "component": "turntable",
            "connector": "nutFace"
          }
        },
        "source": {
          "document": "a2d1fb0a-f013-4b4e-b5fd-ea0f479308c0",
          "parameters": {
            "d": 8
          },
          "part": "nut"
        }
      },
      {
        "id": "elbowBolt",
        "replicate": {
          "connector": "seat",
          "to": {
            "component": "upper",
            "connector": "boltFace"
          }
        },
        "source": {
          "document": "aaedf3fd-c9e8-4774-ba6e-c42a2d73dc44",
          "parameters": {
            "d": 8,
            "length": 34
          },
          "part": "screw"
        }
      },
      {
        "id": "elbowNut",
        "replicate": {
          "connector": "seat",
          "to": {
            "component": "upper",
            "connector": "nutFace"
          }
        },
        "source": {
          "document": "a2d1fb0a-f013-4b4e-b5fd-ea0f479308c0",
          "parameters": {
            "d": 8
          },
          "part": "nut"
        }
      },
      {
        "id": "wristBolt",
        "replicate": {
          "connector": "seat",
          "to": {
            "component": "fore",
            "connector": "boltFace"
          }
        },
        "source": {
          "document": "aaedf3fd-c9e8-4774-ba6e-c42a2d73dc44",
          "parameters": {
            "d": 8,
            "length": 30
          },
          "part": "screw"
        }
      },
      {
        "id": "wristNut",
        "replicate": {
          "connector": "seat",
          "to": {
            "component": "fore",
            "connector": "nutFace"
          }
        },
        "source": {
          "document": "a2d1fb0a-f013-4b4e-b5fd-ea0f479308c0",
          "parameters": {
            "d": 8
          },
          "part": "nut"
        }
      },
      {
        "id": "baseScrews",
        "replicate": {
          "connector": "seat",
          "offset": -2,
          "to": {
            "component": "base",
            "connector": "bolts"
          }
        },
        "source": {
          "document": "aaedf3fd-c9e8-4774-ba6e-c42a2d73dc44",
          "parameters": {
            "d": 5,
            "length": 9
          },
          "part": "screw"
        }
      },
      {
        "id": "palmScrews",
        "replicate": {
          "connector": "seat",
          "offset": -1.5,
          "to": {
            "component": "gripper",
            "connector": "screws"
          }
        },
        "source": {
          "document": "aaedf3fd-c9e8-4774-ba6e-c42a2d73dc44",
          "parameters": {
            "d": 3,
            "length": 8
          },
          "part": "screw"
        }
      },
      {
        "id": "jawScrewsA",
        "replicate": {
          "connector": "seat",
          "offset": -1.5,
          "to": {
            "component": "jawA",
            "connector": "screws"
          }
        },
        "source": {
          "document": "aaedf3fd-c9e8-4774-ba6e-c42a2d73dc44",
          "parameters": {
            "d": 3,
            "length": 10
          },
          "part": "screw"
        }
      },
      {
        "id": "jawScrewsB",
        "replicate": {
          "connector": "seat",
          "offset": -1.5,
          "to": {
            "component": "jawB",
            "connector": "screws"
          }
        },
        "source": {
          "document": "aaedf3fd-c9e8-4774-ba6e-c42a2d73dc44",
          "parameters": {
            "d": 3,
            "length": 10
          },
          "part": "screw"
        }
      }
    ],
    "id": "b248251e-418e-4914-be69-769e7df2690a",
    "joints": [
      {
        "angle": "yaw",
        "component": "turntable",
        "connector": "bottom",
        "id": "yaw",
        "limits": {
          "angle": [
            -170,
            170
          ]
        },
        "to": {
          "component": "base",
          "connector": "top"
        },
        "type": "revolute"
      },
      {
        "angle": "shoulder",
        "component": "upper",
        "connector": "proximal",
        "id": "shoulder",
        "limits": {
          "angle": [
            -10,
            120
          ]
        },
        "to": {
          "component": "turntable",
          "connector": "pivot"
        },
        "type": "revolute"
      },
      {
        "angle": "elbow",
        "component": "fore",
        "connector": "proximal",
        "id": "elbow",
        "limits": {
          "angle": [
            -150,
            150
          ]
        },
        "to": {
          "component": "upper",
          "connector": "distal"
        },
        "type": "revolute"
      },
      {
        "angle": "wrist",
        "component": "wrist",
        "connector": "pin",
        "id": "wristJoint",
        "limits": {
          "angle": [
            -90,
            90
          ]
        },
        "to": {
          "component": "fore",
          "connector": "distal"
        },
        "type": "revolute"
      },
      {
        "component": "gripper",
        "connector": "mount",
        "id": "mount",
        "to": {
          "component": "wrist",
          "connector": "tool"
        },
        "type": "fastened"
      },
      {
        "component": "jawA",
        "connector": "slide",
        "id": "gripA",
        "limits": {
          "offset": [
            0,
            11
          ]
        },
        "offset": "grip",
        "to": {
          "component": "gripper",
          "connector": "jawA"
        },
        "type": "slider"
      },
      {
        "component": "jawB",
        "connector": "slide",
        "id": "gripB",
        "limits": {
          "offset": [
            0,
            11
          ]
        },
        "offset": "grip",
        "to": {
          "component": "gripper",
          "connector": "jawB"
        },
        "type": "slider"
      }
    ],
    "kind": "assembly",
    "meta": {
      "name": "Desk arm"
    },
    "parameters": {
      "elbow": {
        "max": 150,
        "min": -150,
        "unit": "deg",
        "value": -80
      },
      "grip": {
        "max": 11,
        "min": 0,
        "unit": "mm",
        "value": 4
      },
      "shoulder": {
        "max": 120,
        "min": -10,
        "unit": "deg",
        "value": 60
      },
      "wrist": {
        "max": 90,
        "min": -90,
        "unit": "deg",
        "value": -40
      },
      "yaw": {
        "max": 170,
        "min": -170,
        "unit": "deg",
        "value": -35
      }
    },
    "schemaVersion": 1,
    "units": {
      "length": "mm"
    }
  }
]
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