
A six-axis industrial arm on a pedestal, with cable harnesses along its links and a three-finger gripper.
This script is large, so only its beginning is shown here. Open it in the editor to see all of it.
[
{
"schemaVersion": 1,
"kind": "assembly",
"id": "5a1e0011-7c3b-4f2e-9d10-a7e3c0de0011",
"units": {
"length": "mm"
},
"up": "z",
"meta": {
"name": "Xeno arm",
"description": "A six-axis arm with a telescoping forearm and a three-finger gear-driven claw",
"generator": "robot-arm-app"
},
"parameters": {
"yaw": {
"value": 0,
"min": -170,
"max": 170,
"label": "Base yaw",
"unit": "deg",
"group": "Pose"
},
"shoulder": {
"value": 20,
"min": -35,
"max": 115,
"label": "Shoulder",
"unit": "deg",
"group": "Pose"
},
"elbow": {
"value": 60,
"min": -150,
"max": 150,
"label": "Elbow",
"unit": "deg",
"group": "Pose"
},
"reach": {
"value": 0.3,
"min": 0,
"max": 1,
"step": 0.01,
"label": "Reach",
"group": "Pose"
},
"roll": {
"value": 0,
"min": -180,
"max": 180,
"label": "Wrist roll",
"unit": "deg",
"group": "Pose"
},
"pitch": {
"value": 30,
"min": -115,
"max": 115,
"label": "Wrist pitch",
"unit": "deg",
"group": "Pose"
},
"twist": {
"value": 0,
"min": -180,
"max": 180,
"label": "Claw twist",
"unit": "deg",
"group": "Pose"
},
"grip": {
"value": 0.4,
"min": 0,
"max": 1,
"step": 0.01,
"label": "Grip",
"group": "Pose"
},
"emblem": {
"value": 1,
"min": 0,
"max": 1,
"step": 1,
"label": "Badge",
"group": "Options"
}
},
"configurations": [
{
"id": "rest",
"name": "Rest",
"values": {
"yaw": 0,
"shoulder": -20,
"elbow": 140,
"reach": 0,
"pitch": -40,
"grip": 0.1
}
},
{
"id": "reach",
"name": "Reach",
"values": {
"yaw": 25,
"shoulder": 55,
"elbow": 35,
"reach": 1,
"pitch": 0,
"grip": 0.2
}
},
{
"id": "strike",
"name": "Strike",
"values": {
"yaw": -30,
"shoulder": 25,
"elbow": -60,
"reach": 0.5,
"pitch": 60,
"grip": 0
}
},
{
"id": "grasp",
"name": "Grasp",
"values": {
"yaw": 35,
"shoulder": 40,
"elbow": 111,
"reach": 0.6,
"pitch": 29,
"grip": 1
}
}
],
"components": [
{
"id": "pedestal",
"source": {
"document": "5a1e0001-7c3b-4f2e-9d10-a7e3c0de0001",
"part": "pedestal"
}
},
{
"id": "spine",
"name": "Spine column",
"source": {
"document": "5a1e0015-7c3b-4f2e-9d10-a7e3c0de0015",
"part": "spine",
"parameters": {
"length": 168
}
}
},
{
"id": "anchorScrews",
"name": "Anchor screw",
"source": {
"document": "5a1e001e-7c3b-4f2e-9d10-a7e3c0de001e",
"part": "screw",
"parameters": {
"size": "M10",
"length": 16
}
},
"replicate": {
"connector": "seat",
"to": {
"component": "pedestal",
"connector": "anchors"
}
}
},
{
"id": "baseConduit0",
"name": "Base conduit",
"source": {
"document": "5a1e0016-7c3b-4f2e-9d10-a7e3c0de0016",
"part": "run0"
}
},
{
"id": "baseConduit1",
"name": "Base conduit",
"source": {
"document": "5a1e0016-7c3b-4f2e-9d10-a7e3c0de0016",
"part": "run1"
}
},
{
"id": "baseConduit2",
"name": "Base conduit",
"source": {
"document": "5a1e0016-7c3b-4f2e-9d10-a7e3c0de0016",
"part": "run2"
}
},
{
"id": "turret",
"source": {
"document": "5a1e0003-7c3b-4f2e-9d10-a7e3c0de0003",
"part": "turret"
}
},
{
"id": "torsoCableR",
"name": "Torso cable",
"source": {
"document": "5a1e0017-7c3b-4f2e-9d10-a7e3c0de0017",
"part": "right"
}
},
{
"id": "torsoCableL",
"name": "Torso cable",
"source": {
"document": "5a1e0017-7c3b-4f2e-9d10-a7e3c0de0017",
"part": "left"
}
},
{
"id": "crownCap",
"name": "Crown cap",
"source": {
"document": "5a1e0004-7c3b-4f2e-9d10-a7e3c0de0004",
"part": "crownCap"
}
},
{
"id": "capGrille",
"name": "Hex grille",
"source": {
"document": "5a1e0004-7c3b-4f2e-9d10-a7e3c0de0004",
"part": "capGrille"
}
},
{
"id": "shoulderActuator",
"name": "Shoulder actuator",
"source": {
"document": "5a1e0010-7c3b-4f2e-9d10-a7e3c0de0010",
"parameters": {
"size": 70
}
}
},
{
"id": "upperArm",
"source": {
"document": "5a1e0008-7c3b-4f2e-9d10-a7e3c0de0008",
"part": "upperArm"
}
},
{
"id": "badge",
"name": "Badge",
"source": {
"document": "5a1e001b-7c3b-4f2e-9d10-a7e3c0de001b",
"part": "badge"
},
"suppressed": "1 - emblem"
},
{
"id": "armClamp",
"name": "Cable clamp",
"source": {
"document": "5a1e0018-7c3b-4f2e-9d10-a7e3c0de0018",
"part": "clamp"
}
},
{
"id": "armCableA",
"name": "Arm cable",
"source": {
"document": "5a1e0018-7c3b-4f2e-9d10-a7e3c0de0018",
"part": "runA"
}
},
{
"id": "armCableB",
"name": "Arm cable",
"source": {
"document": "5a1e0018-7c3b-4f2e-9d10-a7e3c0de0018",
"part": "runB"
}
},
{
"id": "voidWindow",
"name": "Void windows",
"source": {
"document": "5a1e0019-7c3b-4f2e-9d10-a7e3c0de0019",
"part": "voidWindow"
}
},
{
"id": "elbowActuator",
"name": "Elbow actuator",
"source": {
"document": "5a1e0010-7c3b-4f2e-9d10-a7e3c0de0010",
"parameters": {
"size": 62
}
}
},
{
"id": "forearm",
"source": {
"document": "5a1e0009-7c3b-4f2e-9d10-a7e3c0de0009",
"part": "forearm"
}
},
{
"id": "sleeveLiner",
"name": "Sleeve liner",
"source": {
"document": "5a1e001a-7c3b-4f2e-9d10-a7e3c0de001a",
"part": "sleeveLiner"
}
},
{
"id": "extender",
"source": {
"document": "5a1e000a-7c3b-4f2e-9d10-a7e3c0de000a",
"part": "extender"
}
},
{
"id": "collar",
"source": {
"document": "5a1e000b-7c3b-4f2e-9d10-a7e3c0de000b",
"part": "collar"
}
},
{
"id": "wristActuator",
"name": "Wrist actuator",
"source": {
"document": "5a1e0010-7c3b-4f2e-9d10-a7e3c0de0010",
"parameters": {
"size": 40
}
}
},
{
"id": "palm",
"source": {
"document": "5a1e000c-7c3b-4f2e-9d10-a7e3c0de000c",
"part": "palm"
}
},
{
"id": "claw",
"source": {
"document": "5a1e000d-7c3b-4f2e-9d10-a7e3c0de000d",
"part": "claw"
}
},
{
"id": "bracket0",
"name": "Finger bracket",
"source": {
"document": "5a1e001c-7c3b-4f2e-9d10-a7e3c0de001c",
"part": "bracket"
}
},
{
"id": "phalanx0",
"source": {
"document": "5a1e0014-7c3b-4f2e-9d10-a7e3c0de0014",
"part": "phalanx"
}
},
{
"id": "idlerA0",
"name": "Idler gear",
"source": {
"document": "5a1e001d-7c3b-4f2e-9d10-a7e3c0de001d",
"part": "idler"
}
},
{
"id": "idlerB0",
"name": "Idler gear",
"source": {
"document": "5a1e001d-7c3b-4f2e-9d10-a7e3c0de001d",
"part": "idler"
}
},
{
"id": "talon0",
"source": {
"document": "5a1e000e-7c3b-4f2e-9d10-a7e3c0de000e",
"part": "talon"
}
},
{
"id": "bracket1",
"name": "Finger bracket",
"source": {
"document": "5a1e001c-7c3b-4f2e-9d10-a7e3c0de001c",
"part": "bracket"
}
},
{
"id": "phalanx1",
"source": {
"document": "5a1e0014-7c3b-4f2e-9d10-a7e3c0de0014",
"part": "phalanx"
}
},
{
"id": "idlerA1",
"name": "Idler gear",
"source": {
"document": "5a1e001d-7c3b-4f2e-9d10-a7e3c0de001d",
"part": "idler"
}
},
{
"id": "idlerB1",
"name": "Idler gear",
"source": {
"document": "5a1e001d-7c3b-4f2e-9d10-a7e3c0de001d",
"part": "idler"
}
},
{
"id": "talon1",
"source": {
"document": "5a1e000e-7c3b-4f2e-9d10-a7e3c0de000e",
"part": "talon"
}
},
{
"id": "bracket2",
"name": "Finger bracket",
"source": {
"document": "5a1e001c-7c3b-4f2e-9d10-a7e3c0de001c",
"part": "bracket"
}
},
{
"id": "phalanx2",
"source": {
"document": "5a1e0014-7c3b-4f2e-9d10-a7e3c0de0014",
"part": "phalanx"
}
},
{
"id": "idlerA2",
"name": "Idler gear",
"source": {
"document": "5a1e001d-7c3b-4f2e-9d10-a7e3c0de001d",
"part": "idler"
}
},
{
"id": "idlerB2",
"name": "Idler gear",
"source": {
"document": "5a1e001d-7c3b-4f2e-9d10-a7e3c0de001d",
"part": "idler"
}
},
{
"id": "talon2",
"source": {
"document": "5a1e000e-7c3b-4f2e-9d10-a7e3c0de000e",
"part": "talon"
}
}
],
"joints": [
{
"id": "spineSeat",
"type": "fastened",
"component": "spine",
"connector": "top",
"to": {
"component": "pedestal",
"connector": "top"
},
"flip": true,
"offset": -58
},
{
"id": "conduit0",
"type": "fastened",
"component": "baseConduit0",
"connector": "seat",
"to": {
"component": "pedestal",
"connector": "top"
},
"offset": -58,
"flip": true
},
{
"id": "conduit1",
"type": "fastened",
"component": "baseConduit1",
"connector": "seat",
"to": {
"component": "pedestal",
"connector": "top"
},
"offset": -58,
"flip": true
},
{
"id": "conduit2",
"type": "fastened",
"component": "baseConduit2",
"connector": "seat",
"to": {
"component": "pedestal",
"connector": "top"
},
"offset": -58,
"flip": true
},
{
"id": "yaw",
"type": "revolute",
"component": "turret",
"connector": "base",
"to": {
"component": "pedestal",
"connector": "top"
},
"angle": "yaw",
"limits": {
"angle": [
-170,
170
]
}
},
{
"id": "torsoCableR",
"type": "fastened",
"component": "torsoCableR",
"connector": "seat",
"to": {
"component": "turret",
"connector": "base"
},
"offset": -24,
"flip": true
},
{
"id": "torsoCableL",
"type": "fastened",
"component": "torsoCableL",
"connector": "seat",
"to": {
"component": "turret",
"connector": "base"
},
"offset": -24,
"flip": true
},
{
"id": "capSeat",
"type": "fastened",
"component": "crownCap",
"connector": "base",
"to": {
"component": "turret",
"connector": "crown"
}
},
{
"id": "grilleSeat",
"type": "fastened",
"component": "capGrille",
"connector": "seat",
"to": {
"component": "crownCap",
"connector": "top"
}
},
{
"id": "shoulderMount",
"type": "fastened",
"component": "shoulderActuator",
"connector": "mount",
"to": {
"component": "turret",
"connector": "shoulder"
}
},
{
"id": "shoulder",
"type": "revolute",
"component": "upperArm",
"connector": "base",
"to": {
"component": "shoulderActuator",
"connector": "output"
},
"angle": "shoulder",
"limits": {
"angle": [
-35,
115
]
}
},
{
"id": "badge",
"type": "fastened",
"component": "badge",
"connector": "seat",
"to": {
"component": "upperArm",
"connector": "badge"
}
},
{
"id": "armClamp",
"type": "fastened",
"component": "armClamp",
"connector": "bottom",
"to": {
"component": "upperArm",
"connector": "base"
},
"offset": -33.8,
"flip": true
},
{
"id": "armCableA",
"type": "fastened",
"component": "armCableA",
"connector": "seat",
"to": {
"component": "armClamp",
"connector": "back"
},
"offset": 106,
"flip": true
},
{
"id": "armCableB",
"type": "fastened",
"component": "armCableB",
"connector": "seat",
"to": {
"component": "armClamp",
"connector": "back"
},
"offset": 106,
"flip": true
},
{
"id": "voidWindow",
"type": "fastened",
"component": "voidWindow",
"connector": "seat",
"to": {
"component": "upperArm",
"connector": "base"
},
"offset": -32.6,
"flip": true
},
{
"id": "elbowMount",
"type": "fastened",
"component": "elbowActuator",
"connector": "mount",
"to": {
"component": "upperArm",
"connector": "elbow"
}
},
{
"id": "elbow",
"type": "revolute",
"component": "forearm",
"connector": "base",
"to": {
"component": "elbowActuator",
"connector": "output"
},
"angle": "elbow",
"limits": {
"angle": [
-150,
150
]
}
},
{
"id": "sleeveLiner",
"type": "fastened",
"component": "sleeveLiner",
"connector": "seat",
"to": {
"component": "forearm",
"connector": "sleeve"
},
"offset": -63,
"flip": true
},
{
"id": "reach",
"type": "slider",
"component": "extender",
"connector": "back",
"to": {
"component": "forearm",
"connector": "sleeve"
},
"offset": "-200 + reach * 200",
"limits": {
"offset": [
-200,
0
]
}
},
{
"id": "roll",
"type": "revolute",
"component": "collar",
"connector": "back",
"to": {
"component": "extender",
"connector": "tip"
},
"angle": "roll",
"limits": {
"angle": [
-180,
180
]
}
},
{
"id": "wristMount",
"type": "fastened",
"component": "wristActuator",
"connector": "mount",
"to": {
"component": "collar",
"connector": "pitchMount"
}
},
{
"id": "pitch",
"type": "revolute",
"component": "palm",
"connector": "base",
"to": {
"component": "wristActuator",
"connector": "output"
},
"angle": "pitch",
"limits": {
"angle": [
-115,
115
]
}
},
{
"id": "twist",
"type": "revolute",
"component": "claw",
"connector": "back",
"to": {
"component": "palm",
"connector": "head"
},
"angle": "twist"
},
{
"id": "bracketSeat0",
"type": "fastened",
"component": "bracket0",
"connector": "seat",
"to": {
"component": "claw",
"connector": "mount0"
}
},
{
"id": "curl0",
"type": "revolute",
"component": "phalanx0",
"connector": "pivot",
"to": {
"component": "bracket0",
"connector": "pivot"
},
"angle": "37 - grip * 25",
"limits": {
"angle": [
2,
47
]
},
"offset": 0.2
},
{
"id": "gearA0",
"type": "revolute",
"component": "idlerA0",
"connector": "axle",
"to": {
"component": "phalanx0",
"connector": "idlerA"
},
"angle": "10 - (1 - grip) * 25 * 1",
"limits": {
"angle": [
-90,
90
]
},
"offset": 0.2
},
{
"id": "gearB0",
"type": "revolute",
"component": "idlerB0",
"connector": "axle",
"to": {
"component": "phalanx0",
"connector": "idlerB"
},
"angle": "0 + (1 - grip) * 25 * 1",
"limits": {
"angle": [
-90,
90
]
},
"offset": 0.2
},
{
"id": "bend0",
"type": "revolute",
"component": "talon0",
"connector": "knuckle",
"to": {
"component": "phalanx0",
"connector": "knuckle"
},
"angle": "(grip - 1) * 25 * 18 / 14",
"limits": {
"angle": [
-45,
10
]
},
"offset": 0.2
},
{
"id": "bracketSeat1",
"type": "fastened",
"component": "bracket1",
"connector": "seat",
"to": {
"component": "claw",
"connector": "mount1"
}
},
{
"id": "curl1",
"type": "revolute",
"component": "phalanx1",
"connector": "pivot",
"to": {
"component": "bracket1",
"connector": "pivot"
},
"angle": "37 - grip * 25",
"limits": {
"angle": [
2,
47
]
},
"offset": 0.2
},
{
"id": "gearA1",
"type": "revolute",
"component": "idlerA1",
"connector": "axle",
"to": {
"component": "phalanx1",
"connector": "idlerA"
},
"angle": "10 - (1 - grip) * 25 * 1",
"limits": {
"angle": [
-90,
90
]
},
"offset": 0.2
},
{
"id": "gearB1",
"type": "revolute",
"component": "idlerB1",
"connector": "axle",
"to": {
"component": "phalanx1",
"connector": "idlerB"
},
"angle": "0 + (1 - grip) * 25 * 1",
"limits": {
"angle": [
-90,
90
]
},
"offset": 0.2
},
{
"id": "bend1",
"type": "revolute",
"component": "talon1",
"connector": "knuckle",
"to": {
"component": "phalanx1",
"connector": "knuckle"
},
"angle": "(grip - 1) * 25 * 18 / 14",
"limits": {
"angle": [
-45,
10
]
},
"offset": 0.2
},
{
"id": "bracketSeat2",
"type": "fastened",
"component": "bracket2",
"connector": "seat",
"to": {
"component": "claw",
"connector": "mount2"
}
},
{
"id": "curl2",
"type": "revolute",
"component": "phalanx2",
"connector": "pivot",
"to": {
"component": "bracket2",
"connector": "pivot"
},
"angle": "37 - grip * 25",
"limits": {
"angle": [
2,
47
]
},
"offset": 0.2
},
{
"id": "gearA2",
"type": "revolute",
"component": "idlerA2",
"connector": "axle",
"to": {
"component": "phalanx2",
"connector": "idlerA"
},
"angle": "10 - (1 - grip) * 25 * 1",
"limits": {
"angle": [
-90,
90
]
},
"offset": 0.2
},
{
"id": "gearB2",
"type": "revolute",
"component": "idlerB2",
"connector": "axle",
"to": {
"component": "phalanx2",
"connector": "idlerB"
},
"angle": "0 + (1 - grip) * 25 * 1",
"limits": {
"angle": [
-90,
90
]
},
"offset": 0.2
},
{
"id": "bend2",
"type": "revolute",
"component": "talon2",
"connector": "knuckle",
"to": {
"component": "phalanx2",
"connector": "knuckle"
},
"angle": "(grip - 1) * 25 * 18 / 14",
"limits": {
"angle": [
-45,
10
]
},
"offset": 0.2
}
]
},
{
"schemaVersion": 1,
"id": "5a1e0001-7c3b-4f2e-9d10-a7e3c0de0001",
"units": {
"length": "mm"
},
"up": "z",
"meta": {
"name": "Pedestal",
"generator": "robot-arm-app"
},
"parameters": {
"radius": {
"value": 150,
"min": 140,
"max": 200,
"label": "Flange radius",
"unit": "mm"
},
"height": {
"value": 300,
"min": 260,
"max": 380,
"label": "Height",
"unit": "mm"
},
"twist": {
"value": 75,
"min": 0,
"max": 140,
"label": "Root twist",
"unit": "deg"
}
},
"materials": [
{
"id": "whiteShell",
"name": "White painted composite",
"density": 1600,
"appearance": {
"color": "#eeede9",
"metallic": 0,
"roughness": 0.34,
"edgeColor": "#8a8e95"
}
},
{
"id": "blackAnodized",
"name": "Black anodised aluminium",
"standard": "EN AW-6082 T6",
"density": 2700,
"appearance": {
"color": "#18191c",
"metallic": 0.6,
"roughness": 0.38,
"edgeColor": "#4b4f56"
}
},
{
"id": "blackComposite",
"name": "Black carbon composite",
"density": 1550,
"appearance": {
"color": "#141518",
"metallic": 0.15,
"roughness": 0.3,
"edgeColor": "#4b4f56"
}
},
{
"id": "rubber",
"name": "Black cable jacket",
"density": 1200,
"appearance": {
"color": "#101113",
"metallic": 0,
"roughness": 0.62,
"edgeColor": "#4b4f56"
}
},
{
"id": "smoke",
"name": "Smoked polycarbonate",
"density": 1200,
"appearance": {
"color": "#202226",
"metallic": 0,
"roughness": 0.04,
"opacity": 0.34,
"edgeColor": "#4b4f56"
}
},
{
"id": "steel",
"name": "Stainless steel",
"standard": "1.4404",
"density": 8000,
"appearance": {
"color": "#d4d5d2",
"metallic": 1,
"roughness": 0.3,
"edgeColor": "#8a8e95"
}
},
{
"id": "acetal",
"name": "White acetal (POM)",
"density": 1410,
"appearance": {
"color": "#f2f1ec",
"metallic": 0,
"roughness": 0.42,
"edgeColor": "#8a8e95"
}
},
{
"id": "lightRing",
"name": "Opal light ring",
"density": 1200,
"appearance": {
"color": "#3cf2ff",
"metallic": 0,
"roughness": 0.22,
"emissive": "#3cf2ff",
"emissiveStrength": 2.6,
"edgeColor": "#8a8e95"
}
}
],
"features": [
{
"id": "footProfile",
"type": "sketch",
"on": {
"frame": {
"origin": [
0,
0,
0
],
"normal": [
0,
-1,
0
],
"direction": [
1,
0,
0
]
}
},
"start": [
0,
0
],
"pen": [
{
"type": "line",
"id": "floor",
"to": [
"radius - 4",
0
]
},
{
"type": "threePointArc",
"id": "rimLow",
"through": [
"radius - 1.17",
1.17
],
"to": [
"radius",
4
]
},
{
"type": "line",
"id": "rim",
"to": [
"radius",
12
]
},
{
"type": "threePointArc",
"id": "rimHigh",
"through": [
"radius - 1.17",
14.83
],
"to": [
"radius - 4",
16
]
},
{
"type": "line",
"id": "flangeTop",
"to": [
122,
16
]
},
{
"type": "cubic",
"id": "plinthRise",
"control1": [
118,
16
],
"control2": [
116,
22
],
"to": [
116,
34
]
},
{
"type": "threePointArc",
"id": "deckRound",
"through": [
114.24,
38.24
],
"to": [
110,
40
]
},
{
"type": "line",
"id": "deck",
"to": [
62,
40
]
},
{
"type": "cubic",
"id": "boss",
"control1": [
44,
40
],
"control2": [
40,
58
],
"to": [
38,
74
]
},
{
"type": "line",
"id": "cap",
"to": [
0,
74
]
},
{
"type": "close",
"id": "axis"
}
]
},
{
"id": "foot",
"type": "revolve",
"profile": "footProfile",
"axis": {
"origin": [
0,
0,
0
],
"direction": [
0,
0,
1
]
}
},
{
"id": "crownProfile",
"type": "sketch",
"on": {
"frame": {
"origin": [
0,
0,
0
],
"normal": [
0,
-1,
0
],
"direction": [
1,
0,
0
]
}
},
"start": [
0,
"height - 58"
],
"pen": [
{
"type": "line",
"id": "underside",
"to": [
104,
"height - 58"
]
},
{
"type": "threePointArc",
"id": "underRound",
"through": [
107.83,
"height - 56.83"
],
"to": [
109,
"height - 54"
]
},
{
"type": "cubic",
"id": "swell",
"control1": [
111,
"height - 36"
],
"control2": [
104,
"height - 22"
],
"to": [
100,
"height - 16"
]
},
{
"type": "threePointArc",
"id": "lip",
"through": [
99.4,
"height - 5"
],
"to": [
95,
"height"
]
},
{
"type": "line",
"id": "top",
"to": [
0,
"height"
]
},
{
"type": "close",
"id": "axis"
}
]
},
{
"id": "crown",
"type": "revolve",
"profile": "crownProfile",
"axis": {
"origin": [
0,
0,
0
],
"direction": [
0,
0,
1
]
}
},
{
"id": "root0s0",
"type": "sketch",
"on": {
"frame": {
"origin": [
"(96) * cos(45 + twist * 0)",
"(96) * sin(45 + twist * 0)",
28
],
"normal": [
0,
0,
1
],
"direction": [
"-sin(45 + twist * 0)",
"cos(45 + twist * 0)",
0
]
}
},
"start": [
38,
0
],
"pen": [
{
"type": "cubic",
"id": "f0",
"control1": [
38,
3.1416
],
"control2": [
34.71224,
6.149685000000002
],
"to": [
30.127806,
8.640450000000001
]
},
{
"type": "cubic",
"id": "f1",
"control1": [
25.543371999999998,
11.131215000000001
],
"control2": [
19.311828,
13.295055
],
"to": [
11.742645999999999,
14.265855
]
},
{
"type": "cubic",
"id": "f2",
"control1": [
4.173463999999998,
15.236655
],
"control2": [
-4.090016000000001,
14.931915
],
"to": [
-11.507806,
13.980525
]
},
{
"type": "cubic",
"id": "f3",
"control1": [
-18.925596,
13.029135
],
"control2": [
-26.064656,
11.358375
],
"to": [
-30.742646,
8.816775
]
},
{
"type": "cubic",
"id": "f4",
"control1": [
-35.420636,
6.275174999999999
],
"control2": [
-37.24,
3.0787649999999998
],
"to": [
-37.24,
0
]
},
{
"type": "cubic",
"id": "f5",
"control1": [
-37.24,
-3.0787649999999998
],
"control2": [
-35.420636,
-7.53021
],
"to": [
-30.742646,
-10.58013
]
},
{
"type": "cubic",
"id": "f6",
"control1": [
-26.064656,
-13.63005
],
"control2": [
-18.925596,
-15.634961999999998
],
"to": [
-11.507806,
-16.776629999999997
]
},
{
"type": "cubic",
"id": "f7",
"control1": [
-4.090016000000001,
-17.918297999999997
],
"control2": [
4.173463999999998,
-18.283986000000002
],
"to": [
11.742645999999999,
-17.119026
]
},
{
"type": "cubic",
"id": "f8",
"control1": [
19.311828,
-15.954066000000001
],
"control2": [
25.543371999999998,
-13.357458000000001
],
"to": [
30.127806,
-10.368540000000001
]
},
{
"type": "cubic",
"id": "f9",
"control1": [
34.71224,
-7.379622000000001
],
"control2": [
38,
-3.76992
],
"to": [
38,
0
]
}
]
},
{
"id": "root0s1",
"type": "sketch",
"on": {
"frame": {
"origin": [
"(82) * cos(45 + twist * 0.25)",
"(82) * sin(45 + twist * 0.25)",
"height * 0.3"
],
"normal": [
0,
0,
1
],
"direction": [
"-sin(45 + twist * 0.25)",
"cos(45 + twist * 0.25)",
0
]
}
},
"start": [
26,
0
],
"pen": [
{
"type": "cubic",
"id": "f0",
"control1": [
26,
2.51328
],
"control2": [
21.811659999999996,
4.518132
],
"to": [
18.930989999999998,
6.348084
]
},
{
"type": "cubic",
"id": "f1",
"control1": [
16.05032,
8.178036
],
"control2": [
13.213356000000001,
10.636044
],
"to": [
8.034442,
11.412684
]
},
{
"type": "cubic",
"id": "f2",
"control1": [
2.8555280000000005,
12.189324000000001
],
"control2": [
-2.5699699999999996,
10.970388
],
"to": [
-7.23099,
10.271412
]
},
{
"type": "cubic",
"id": "f3",
"control1": [
-11.89201,
9.572436
],
"control2": [
-17.833712,
9.0867
],
"to": [
-21.034442,
7.05342
]
},
{
"type": "cubic",
"id": "f4",
"control1": [
-24.235172,
5.02014
],
"control2": [
-23.400000000000002,
2.261952
],
"to": [
-23.400000000000002,
0
]
},
{
"type": "cubic",
"id": "f5",
"control1": [
-23.400000000000002,
-2.261952
],
"control2": [
-24.235172,
-6.6935199999999995
],
"to": [
-21.034442,
-9.40456
]
},
{
"type": "cubic",
"id": "f6",
"control1": [
-17.833712,
-12.1156
],
"control2": [
-11.89201,
-12.763248
],
"to": [
-7.23099,
-13.695216
]
},
{
"type": "cubic",
"id": "f7",
"control1": [
-2.5699699999999996,
-14.627184
],
"control2": [
2.8555280000000005,
-16.252432
],
"to": [
8.034442,
-15.216912
]
},
{
"type": "cubic",
"id": "f8",
"control1": [
13.213356000000001,
-14.181392
],
"control2": [
16.05032,
-10.904048
],
"to": [
18.930989999999998,
-8.464112
]
},
{
"type": "cubic",
"id": "f9",
"control1": [
21.811659999999996,
-6.024176000000001
],
"control2": [
26,
-3.35104
],
"to": [
26,
0
]
}
]
},
{
"id": "root0s2",
"type": "sketch",
"on": {
"frame": {
"origin": [
"(74) * cos(45 + twist * 0.5)",
"(74) * sin(45 + twist * 0.5)",
"height * 0.5"
],
"normal": [
0,
0,
1
],
"direction": [
"-sin(45 + twist * 0.5)",
"cos(45 + twist * 0.5)",
0
]
}
},
"start": [
21,
0
],
"pen": [
{
"type": "cubic",
"id": "f0",
"control1": [
21,
2.3038399999999997
],
"control2": [
17.029887000000002,
4.003559999999999
],
"to": [
14.780745000000001,
5.625102999999999
]
},
{
"type": "cubic",
"id": "f1",
"control1": [
12.531603,
7.246645999999999
],
"control2": [
10.672326,
9.749707
],
"to": [
6.489357,
10.461627
]
},
{
"type": "cubic",
"id": "f2",
"control1": [
2.306388,
11.173547
],
"control2": [
-2.0065709999999997,
9.720986
],
"to": [
-5.645745,
9.101609
]
},
{
"type": "cubic",
"id": "f3",
"control1": [
-9.284919,
8.482232
],
"control2": [
-14.404151999999998,
8.329475
],
"to": [
-16.989357,
6.465635
]
},
{
"type": "cubic",
"id": "f4",
"control1": [
-19.574562,
4.601794999999999
],
"control2": [
-18.27,
2.0043320000000002
],
"to": [
-18.27,
0
]
},
{
"type": "cubic",
"id": "f5",
"control1": [
-18.27,
-2.0043320000000002
],
"control2": [
-19.574562,
-6.275174999999999
],
"to": [
-16.989357,
-8.816775
]
},
{
"type": "cubic",
"id": "f6",
"control1": [
-14.404151999999998,
-11.358375
],
"control2": [
-9.284919,
-11.56668
],
"to": [
-5.645745,
-12.411285
]
},
{
"type": "cubic",
"id": "f7",
"control1": [
-2.0065709999999997,
-13.255889999999999
],
"control2": [
2.306388,
-15.236655
],
"to": [
6.489357,
-14.265855
]
},
{
"type": "cubic",
"id": "f8",
"control1": [
10.672326,
-13.295055
],
"control2": [
12.531603,
-9.881789999999999
],
"to": [
14.780745000000001,
-7.670595
]
},
{
"type": "cubic",
"id": "f9",
"control1": [
17.029887000000002,
-5.4594
],
"control2": [
21,
-3.1416
],
"to": [
21,
0
]
}
]
},
{
"id": "root0s3",
"type": "sketch",
"on": {
"frame": {
"origin": [
"(78) * cos(45 + twist * 0.75)",
"(78) * sin(45 + twist * 0.75)",
"height * 0.72"
],
"normal": [
0,
0,
1
],
"direction": [
"-sin(45 + twist * 0.75)",
"cos(45 + twist * 0.75)",
0
]
}
},
"start": [
22,
0
],
"pen": [
{
"type": "cubic",
"id": "f0",
"control1": [
22,
2.3038399999999997
],
"control2": [
18.45602,
4.141621000000001
],
"to": [
16.01853,
5.819077
]
},
{
"type": "cubic",
"id": "f1",
"control1": [
13.581039999999998,
7.4965329999999994
],
"control2": [
11.180532,
9.749707
],
"to": [
6.798374,
10.461627
]
},
{
"type": "cubic",
"id": "f2",
"control1": [
2.4162159999999995,
11.173547
],
"control2": [
-2.1745899999999994,
10.056189
],
"to": [
-6.11853,
9.415461
]
},
{
"type": "cubic",
"id": "f3",
"control1": [
-10.062470000000001,
8.774733000000001
],
"control2": [
-15.090063999999998,
8.329475
],
"to": [
-17.798374,
6.465635
]
},
{
"type": "cubic",
"id": "f4",
"control1": [
-20.506684,
4.601794999999999
],
"control2": [
-19.8,
2.073456
],
"to": [
-19.8,
0
]
},
{
"type": "cubic",
"id": "f5",
"control1": [
-19.8,
-2.073456
],
"control2": [
-20.506684,
-6.275174999999999
],
"to": [
-17.798374,
-8.816775
]
},
{
"type": "cubic",
"id": "f6",
"control1": [
-15.090063999999998,
-11.358375
],
"control2": [
-10.062470000000001,
-11.965545
],
"to": [
-6.11853,
-12.839265000000001
]
},
{
"type": "cubic",
"id": "f7",
"control1": [
-2.1745899999999994,
-13.712985000000002
],
"control2": [
2.4162159999999995,
-15.236655
],
"to": [
6.798374,
-14.265855
]
},
{
"type": "cubic",
"id": "f8",
"control1": [
11.180532,
-13.295055
],
"control2": [
13.581039999999998,
-10.222545
],
"to": [
16.01853,
-7.935105
]
},
{
"type": "cubic",
"id": "f9",
"control1": [
18.45602,
-5.647665
],
"control2": [
22,
-3.1416
],
"to": [
22,
0
]
}
]
},
{
"id": "root0s4",
"type": "sketch",
"on": {
"frame": {
"origin": [
"(86) * cos(45 + twist * 1)",
"(86) * sin(45 + twist * 1)",
"height - 44"
],
"normal": [
0,
0,
1
],
"direction": [
"-sin(45 + twist * 1)",
"cos(45 + twist * 1)",
0
]
}
},
"start": [
30,
0
],
"pen": [
{
"type": "cubic",
"id": "f0",
"control1": [
30,
2.72272
],
"control2": [
27.124740000000003,
5.275335
],
"to": [
23.54238,
7.411976
]
},
{
"type": "cubic",
"id": "f1",
"control1": [
19.96002,
9.548617
],
"control2": [
15.246179999999999,
11.522381000000001
],
"to": [
9.27051,
12.363741000000001
]
},
{
"type": "cubic",
"id": "f2",
"control1": [
3.2948399999999998,
13.205101
],
"control2": [
-3.195990000000001,
12.808952
],
"to": [
-8.99238,
11.992825
]
},
{
"type": "cubic",
"id": "f3",
"control1": [
-14.78877,
11.176698
],
"control2": [
-20.57736,
9.843925
],
"to": [
-24.270509999999998,
7.641205
]
},
{
"type": "cubic",
"id": "f4",
"control1": [
-27.963659999999997,
5.438485
],
"control2": [
-29.099999999999998,
2.641028
],
"to": [
-29.099999999999998,
0
]
},
{
"type": "cubic",
"id": "f5",
"control1": [
-29.099999999999998,
-2.641028
],
"control2": [
-27.963659999999997,
-7.111865
],
"to": [
-24.270509999999998,
-9.992345
]
},
{
"type": "cubic",
"id": "f6",
"control1": [
-20.57736,
-12.872825
],
"control2": [
-14.78877,
-14.615682000000001
],
"to": [
-8.99238,
-15.682925000000001
]
},
{
"type": "cubic",
"id": "f7",
"control1": [
-3.195990000000001,
-16.750168000000002
],
"control2": [
3.2948399999999998,
-17.268209
],
"to": [
9.27051,
-16.167969
]
},
{
"type": "cubic",
"id": "f8",
"control1": [
15.246179999999999,
-15.067729
],
"control2": [
19.96002,
-12.486653
],
"to": [
23.54238,
-9.692584
]
},
{
"type": "cubic",
"id": "f9",
"control1": [
27.124740000000003,
-6.898515
],
"control2": [
30,
-3.5604799999999996
],
"to": [
30,
0
]
}
]
},
{
"id": "root0",
"type": "loft",
"profiles": [
"root0s0",
"root0s1",
"root0s2",
"root0s3",
"root0s4"
]
},
{
"id": "root1s0",
"type": "sketch",
"on": {
"frame": {
"origin": [
"(96) * cos(165 + twist * 0)",
"(96) * sin(165 + twist * 0)",
28
],
"normal": [
0,
0,
1
],
"direction": [
"-sin(165 + twist * 0)",
"cos(165 + twist * 0)",
0
]
}
},
"start": [
38,
0
],
"pen": [
{
"type": "cubic",
"id": "f0",
"control1": [
38,
3.1416
],
"control2": [
34.71224,
6.149685000000002
],
"to": [
30.127806,
8.640450000000001
]
},
{
"type": "cubic",
"id": "f1",
"control1": [
25.543371999999998,
11.131215000000001
],
"control2": [
19.311828,
13.295055
],
"to": [
11.742645999999999,
14.265855
]
},
{
"type": "cubic",
"id": "f2",
"control1": [
4.173463999999998,
15.236655
],
"control2": [
-4.090016000000001,
14.931915
],
"to": [
-11.507806,
13.980525
]
},
{
"type": "cubic",
"id": "f3",
"control1": [
-18.925596,
13.029135
],
"control2": [
-26.064656,
11.358375
],
"to": [
-30.742646,
8.816775
]
},
{
"type": "cubic",
"id": "f4",
"control1": [
-35.420636,
6.275174999999999
],
"control2": [
-37.24,
3.0787649999999998
],
"to": [
-37.24,
0
]
},
{
"type": "cubic",
"id": "f5",
"control1": [
-37.24,
-3.0787649999999998
],
"control2": [
-35.420636,
-7.53021
],
"to": [
-30.742646,
-10.58013
]
},
{
"type": "cubic",
"id": "f6",
"control1": [
-26.064656,
-13.63005
],
"control2": [
-18.925596,
-15.634961999999998
],
"to": [
-11.507806,
-16.776629999999997
]
},
{
"type": "cubic",
"id": "f7",
"control1": [
-4.090016000000001,
-17.918297999999997
],
"control2": [
4.173463999999998,
-18.283986000000002
],
"to": [
11.742645999999999,
-17.119026
]
},
{
"type": "cubic",
"id": "f8",
"control1": [
19.311828,
-15.954066000000001
],
"control2": [
25.543371999999998,
-13.357458000000001
],
"to": [
30.127806,
-10.368540000000001
]
},
{
"type": "cubic",
"id": "f9",
"control1": [
34.71224,
-7.379622000000001
],
"control2": [
38,
-3.76992
],
"to": [
38,
0
]
}
]
},
{
"id": "root1s1",
"type": "sketch",
"on": {
"frame": {
"origin": [
"(82) * cos(165 + twist * 0.25)",
"(82) * sin(165 + twist * 0.25)",
"height * 0.3"
],
"normal": [
0,
0,
1
],
"direction": [
"-sin(165 + twist * 0.25)",
"cos(165 + twist * 0.25)",
0
]
}
},
"start": [
26,
0
],
"pen": [
{
"type": "cubic",
"id": "f0",
"control1": [
26,
2.51328
],
"control2": [
21.811659999999996,
4.518132
],
"to": [
18.930989999999998,
6.348084
]
},
{
"type": "cubic",
"id": "f1",
"control1": [
16.05032,
8.178036
],
"control2": [
13.213356000000001,
10.636044
],
"to": [
8.034442,
11.412684
]
},
{
"type": "cubic",
"id": "f2",
"control1": [
2.8555280000000005,
12.189324000000001
],
"control2": [
-2.5699699999999996,
10.970388
],
"to": [
-7.23099,
10.271412
]
},
{
"type": "cubic",
"id": "f3",
"control1": [
-11.89201,
9.572436
],
"control2": [
-17.833712,
9.0867
],
"to": [
-21.034442,
7.05342
]
},
{
"type": "cubic",
"id": "f4",
"control1": [
-24.235172,
5.02014
],
"control2": [
-23.400000000000002,
2.261952
],
"to": [
-23.400000000000002,
0
]
},
{
"type": "cubic",
"id": "f5",
"control1": [
-23.400000000000002,
-2.261952
],
"control2": [
-24.235172,
-6.6935199999999995
],
"to": [
-21.034442,
-9.40456
]
},
{
"type": "cubic",
"id": "f6",
"control1": [
-17.833712,
-12.1156
],
"control2": [
-11.89201,
-12.763248
],
"to": [
-7.23099,
-13.695216
]
},
{
"type": "cubic",
"id": "f7",
"control1": [
-2.5699699999999996,
-14.627184
],
"control2": [
2.8555280000000005,
-16.252432
],
"to": [
8.034442,
-15.216912
]
},
{
"type": "cubic",
"id": "f8",
"control1": [
13.213356000000001,
-14.181392
],
"control2": [
16.05032,
-10.904048
],
"to": [
18.930989999999998,
-8.464112
]
},
{
"type": "cubic",
"id": "f9",
"control1": [
21.811659999999996,
-6.024176000000001
],
"control2": [
26,
-3.35104
],
"to": [
26,
0
]
}
]
},
{
"id": "root1s2",
"type": "sketch",
"on": {
"frame": {
"origin": [
"(74) * cos(165 + twist * 0.5)",
"(74) * sin(165 + twist * 0.5)",
"height * 0.5"
],
"normal": [
0,
0,
1
],
"direction": [
"-sin(165 + twist * 0.5)",
"cos(165 + twist * 0.5)",
0
]
}
},
"start": [
21,
0
],
"pen": [
{
"type": "cubic",
"id": "f0",
"control1": [
21,
2.3038399999999997
],
"control2": [
17.029887000000002,
4.003559999999999
],
"to": [
14.780745000000001,
5.625102999999999
]
},
{
"type": "cubic",
"id": "f1",
"control1": [
12.531603,
7.246645999999999
],
"control2": [
10.672326,
9.749707
],
"to": [
6.489357,
10.461627
]
},
{
"type": "cubic",
"id": "f2",
"control1": [
2.306388,
11.173547
],
"control2": [
-2.0065709999999997,
9.720986
],
"to": [
-5.645745,
9.101609
]
},
{
"type": "cubic",
"id": "f3",
"control1": [
-9.284919,
8.482232
],
"control2": [
-14.404151999999998,
8.329475
],
"to": [
-16.989357,
6.465635
]
},
{
"type": "cubic",
"id": "f4",
"control1": [
-19.574562,
4.601794999999999
],
"control2": [
-18.27,
2.0043320000000002
],
"to": [
-18.27,
0
]
},
{
"type": "cubic",
"id": "f5",
"control1": [
-18.27,
-2.0043320000000002
],
"control2": [
-19.574562,
-6.275174999999999
],
"to": [
-16.989357,
-8.816775
]
},
{
"type": "cubic",
"id": "f6",
"control1": [
-14.404151999999998,
-11.358375
],
"control2": [
-9.284919,
-11.56668
],
"to": [
-5.645745,
-12.411285
]
},
{
"type": "cubic",
"id": "f7",
"control1": [
-2.0065709999999997,
-13.255889999999999
],
"control2": [
2.306388,
-15.236655
],
"to": [
6.489357,
-14.265855
]
},
{
"type": "cubic",
"id": "f8",
"control1": [
10.672326,
-13.295055
],
"control2": [
12.531603,
-9.881789999999999
],
"to": [
14.780745000000001,
-7.670595
]
},
{
"type": "cubic",
"id": "f9",
"control1": [
17.029887000000002,
-5.4594
],
"control2": [
21,
-3.1416
],
"to": [
21,
0
]
}
]
},
{
"id": "root1s3",
"type": "sketch",
"on": {
"frame": {
"origin": [
"(78) * cos(165 + twist * 0.75)",
"(78) * sin(165 + twist * 0.75)",
"height * 0.72"
],
"normal": [
0,
0,
1
],
"direction": [
"-sin(165 + twist * 0.75)",
"cos(165 + twist * 0.75)",
0
]
}
},
"start": [
22,
0
],
"pen": [
{
"type": "cubic",
"id": "f0",
"control1": [
22,
2.3038399999999997
],
"control2": [
18.45602,
4.141621000000001
],
"to": [
16.01853,
5.819077
]
},
{
"type": "cubic",
"id": "f1",
"control1": [
13.581039999999998,
7.4965329999999994
],
"control2": [
11.180532,
9.749707
],
"to": [
6.798374,
10.461627
]
},
{
"type": "cubic",
"id": "f2",
"control1": [
2.4162159999999995,
11.173547
],
"control2": [
-2.1745899999999994,
10.056189
],
Editor plans for 3D development, API keys for server-side CAD algorithms
Cloud storage, private projects & 3D tools for Bitbybit editors
* "Unlimited" means high limits that most users won't reach. Compare the plans
Run CAD algorithms on managed cloud servers from your own backend applications
Custom software development, dedicated servers & CAD automation at scale.