Skip to content
ParaShape

Nodes

Source: engine_catalog via EngineClient.catalog() at build. Wire types:

// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { ConstantSignature } from "./ConstantSignature.js";
import type { ExpressionBudgets } from "./ExpressionBudgets.js";
import type { FunctionSignature } from "./FunctionSignature.js";
import type { KeywordSignature } from "./KeywordSignature.js";
import type { NamespaceDefinition } from "./NamespaceDefinition.js";
import type { NodeDefinition } from "./NodeDefinition.js";
import type { OperatorsCatalog } from "./OperatorsCatalog.js";
import type { PropertySignature } from "./PropertySignature.js";
import type { ShadingCapability } from "./ShadingCapability.js";

/**
 * `engine_catalog`'s wire shape: the node table, the shading→capability
 * table (`document::vocabulary::SHADINGS`) a shading picker reads to grey
 * out exposure for a mode that cannot meter, and the full expression
 * vocabulary — namespace/builtin function tables, constants, keyword
 * literals, array/string methods, operators, properties, blocked member
 * names, and the sandbox's numeric budgets. Session-free. Named
 * `ShadingCapability` because `scene::Shading` is the mode-name enum.
 */
export type Catalog = { 
/**
 * derived — every registered node's definition.
 */
nodes: Array<NodeDefinition>, 
/**
 * derived — the shading→capability table.
 */
shadings: Array<ShadingCapability>, 
/**
 * derived — every expression namespace's function table, in
 * `expression::namespaces::NAMES` order.
 */
namespaces: Array<NamespaceDefinition>, 
/**
 * derived — the five builtin function groups (`Math`, `Number`,
 * `Object`, `Array`, `Global`), in `expression::builtins::BUILTIN_NAMES`
 * order. `Number`/`Array` each appear twice across `builtins`/`Global`
 * when a root is both an object with members and itself callable — see
 * `expression::builtins::GLOBAL_FUNCTIONS`'s doc comment.
 */
builtins: Array<NamespaceDefinition>, 
/**
 * derived — `Math`'s and `Number`'s numeric constants (`Math.PI`,
 * `Number.EPSILON`, …), which are values, not functions, so `builtins`
 * cannot carry them.
 */
constants: Array<ConstantSignature>, 
/**
 * derived — every `Value::Array` method, in
 * `expression::eval::ARRAY_METHODS` order.
 */
arrayMethods: Array<FunctionSignature>, 
/**
 * derived — every `Value::Text` method, in
 * `expression::eval::STRING_METHODS` order.
 */
stringMethods: Array<FunctionSignature>, 
/**
 * derived — the binary and unary operator tables.
 */
operators: OperatorsCatalog, 
/**
 * derived — fixed member names `Value::member` (`expression/value.rs`)
 * resolves directly, outside every method/function table above (a
 * plain field read, no call) — `expression::value::PROPERTIES`.
 */
properties: Array<PropertySignature>, 
/**
 * derived — every keyword literal (`true`, `false`, `null`,
 * `undefined`) the parser/evaluator resolve without a scope lookup —
 * `expression::value::KEYWORD_LITERALS`.
 */
keywords: Array<KeywordSignature>, 
/**
 * derived — member names `Value::member` refuses outright (a JS
 * prototype sandbox-escape name) — what a stored expression is REFUSED,
 * not what it is granted — `expression::eval::BLOCKED_KEYS`.
 */
blockedMemberNames: Array<string>, 
/**
 * derived — the expression sandbox's numeric budgets (`eval.rs`/
 * `parser.rs`/`document::model`'s own `pub const`s).
 */
budgets: ExpressionBudgets, };
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { ArgDefinition } from "./ArgDefinition.js";
import type { FoldRole } from "./FoldRole.js";
import type { NodeType } from "./NodeType.js";

/**
 * One catalog entry. `context`/`args[].value_type`/`returns` stay raw
 * type strings (`"curveData[] | meshData[]"`), not a second type system.
 */
export type NodeDefinition = { 
/**
 * identity — the method name a node's `method` names.
 */
method: string, 
/**
 * derived — how the fold treats it (producer, transform, …).
 */
role: FoldRole, 
/**
 * derived — the document-shape family it belongs to.
 */
nodeType: NodeType, 
/**
 * derived — the stream types (or node bodies) it is legal in.
 */
context: Array<string>, 
/**
 * derived — its args, in order.
 */
args: Array<ArgDefinition>, 
/**
 * derived — the type it returns.
 */
returns: string, 
/**
 * derived — the key base a new node of this method takes.
 */
defaultKey?: string, 
/**
 * derived — the editor's display name.
 */
label: string, 
/**
 * derived — the editor's one-line help.
 */
tooltip: string, };
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.

export type ArgDefinition = { 
/**
 * identity — the arg's key on its node.
 */
key: string, 
/**
 * derived — the value type the arg's expression must evaluate to.
 */
valueType: string, 
/**
 * derived — the expression an absent arg takes.
 */
default: string, 
/**
 * derived — the default domain `min` expression.
 */
min?: string, 
/**
 * derived — the default domain `max` expression.
 */
max?: string, 
/**
 * derived — the default domain `options` expression.
 */
options?: string, 
/**
 * derived — the editor's one-line help.
 */
tooltip: string, };
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.

/**
 * The document-shape family a catalog entry belongs to — finer than
 * `role`, so a caller can tell `createObject` from `createBlock` or a
 * lane step's own lane.
 */
export type NodeType = "objectChain" | "objectNest" | "placement" | "material" | "layer" | "pattern" | "view" | "component" | "step" | "value" | "behavior";
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.

/**
 * How a catalog entry folds: binding, producer, transform, or a bare
 * schema-only step the graph resolves itself.
 */
export type FoldRole = "binding" | "producer" | "transform" | "step";
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.

export type ShadingCapability = { 
/**
 * identity — the shading mode's name, matching `views[].properties.shading`.
 */
name: string, 
/**
 * derived — whether this mode can meter an authored exposure value.
 */
exposure: boolean, };

137 methods across 11 node types. Shadings: wireframe, shaded, realistic.

step

applyAttribute

Attribute · transform · returns objectData[] · context: curve, mesh, pointCloud, block

Default key: attribute.

Stamp a free-form key/value on every row.

keytypedefaultminmaxoptionstooltip
keystring'type'
valueobject | function''

applyLayer

Layer · transform · returns objectData[] · context: curve, mesh, pointCloud, block

Default key: layer.

Whole-object layer claim, lifted at the fold — data unchanged.

keytypedefaultminmaxoptionstooltip
layerstring | function'Layer1'Key of a layers[] record.

applyLineStyle

Line Style · transform · returns objectData[] · context: curve

Default key: lineStyle.

Stamp every curve edge's dash pattern.

keytypedefaultminmaxoptionstooltip
lineStylestring | function'solid'

applyVisible

Visible · transform · returns objectData[] · context: curve, mesh, pointCloud, block

Default key: visible.

Whole-object visibility claim, lifted at the fold.

keytypedefaultminmaxoptionstooltip
visiblebinary | functiontrue

arcCenterStartEnd

Arc (Center) · producer · returns curveData[] · context: curve

Default key: arc.

Circular arc from center, start on the rim, and end direction.

keytypedefaultminmaxoptionstooltip
centerpoint[0,0]Arc center; radius is the distance to startPoint.
startPointpoint[10,0]Where the arc begins; sets the radius.
endPointpoint[0,10]Sweep direction, snapped onto the radius.
segmentsinteger321Edges sampled along this curve. Closed curves need at least 3.

arcTangentEnd

Arc (Tangent) · producer · returns curveData[] · context: curve

Default key: arc.

Arc leaving an axis and ending at a point.

keytypedefaultminmaxoptionstooltip
axisline{ origin: [0,0,0], direction: [0,1,0] }Start point plus leaving tangent ({ origin, direction }).
endPointpoint[10,0]Where the arc ends.
segmentsinteger321Edges sampled along this curve. Closed curves need at least 3.

arcThreePoints

Arc (3 Points) · producer · returns curveData[] · context: curve

Default key: arc.

Circular arc through three points.

keytypedefaultminmaxoptionstooltip
startPointpoint[0,0]First endpoint the arc passes through.
middlePointpoint[5,5]Point on the arc between start and end.
endPointpoint[10,0]Last endpoint the arc passes through.
segmentsinteger321Edges sampled along this curve. Closed curves need at least 3.

arrayCurve

Array Along Curve · transform · returns objectData[] · context: curve, mesh, pointCloud, block

Default key: array.

Copies distributed along a path curve's own frame.

keytypedefaultminmaxoptionstooltip
curvecurveDataPath curve the copies distribute along.
copiesinteger4
angleangle0Extra rotation about the tangent.

arrayDistances

Array by Distances · transform · returns objectData[] · context: curve, mesh, pointCloud, block

Default key: array.

Copies at explicit cumulative distances along a direction.

keytypedefaultminmaxoptionstooltip
directionvector[1,0,0]Normalized; magnitude ignored.
distanceslength[][300,400,500]Cumulative gap after each copy.

arrayLinear

Linear Array · transform · returns objectData[] · context: curve, mesh, pointCloud, block

Default key: array.

Copies stepped by a constant vector.

keytypedefaultminmaxoptionstooltip
vectorvector[100,0,0]Per-copy step.
copiesinteger2Copies added.

arrayRadial

Radial Array · transform · returns objectData[] · context: curve, mesh, pointCloud, block

Default key: array.

Copies spaced evenly about an axis.

keytypedefaultminmaxoptionstooltip
axisline{ origin: [0,0,0], direction: [0,0,1] }
copiesinteger5Copies added, evenly over 360deg.

centerMark

Center Mark · producer · returns curveData[] · context: curve

Default key: centerMark.

The cross at a circle's centre; plain linework, measures nothing.

keytypedefaultminmaxoptionstooltip
centerpoint[0,0,0]
styleobject

circle

Circle · producer · returns curveData[] · context: curve

Default key: circle.

Closed circle in the plane of center + normal.

keytypedefaultminmaxoptionstooltip
centerpoint[0,0]Circle center.
radiuslength10Circle radius.
normalvector[0,0,1]Plane normal; default Z-up.
segmentsinteger321Edges sampled along this curve. Closed curves need at least 3.

clone

Clone · producer · returns objectData[] · context: curve, mesh, block

Default key: clone.

Starts the chain with another object as it exists — content and placements — by key.

keytypedefaultminmaxoptionstooltip
sourceobjectData[][]Node to copy — an independent deep copy.

cubicBezier

Cubic Bezier · producer · returns curveData[] · context: curve

Default key: bezier.

Cubic Bezier through start/end with two tangent controls.

keytypedefaultminmaxoptionstooltip
startpoint[0,0,0]Start point (on curve).
control1point[3,10,0]First tangent control point.
control2point[7,10,0]Second tangent control point.
endpoint[10,0,0]End point (on curve).
segmentsinteger321Edges sampled along this curve. Closed curves need at least 3.

curveChamfer

Curve Chamfer · transform · returns objectData[] · context: curve

Default key: chamfer.

Cuts every interior corner the filter selects (default: every corner).

keytypedefaultminmaxoptionstooltip
distancelength5
filterfunction(p, i) => true

curveExtrude

Extrude · transform · returns meshData[] · context: curve, mesh

Default key: extrude.

Push curves into solids along their normal.

keytypedefaultminmaxoptionstooltip
thicknesslength10
capsbinary1

curveFill

Fill · transform · returns meshData[] · context: curve

Default key: fill.

Fill closed curves into flat faces.

No args.

curveFillet

Curve Fillet · transform · returns objectData[] · context: curve

Default key: fillet.

Rounds every interior corner the filter selects (default: every corner).

keytypedefaultminmaxoptionstooltip
radiuslength5
filterfunction(p, i) => true

curveFrom

Curve From · producer · returns curveData[] · context: curve

Default key: curveFrom.

Bakes point rows, a curve value or a raw { vertices, edges } Curve into document geometry.

keytypedefaultminmaxoptionstooltip
curvepoint[] | curveData | object[[0,0,0],[100,0,0],[100,100,0]]
degreenumber1NURBS degree, auto-clamped; 1 = a polyline through the points.

curveFromFace

Curves From Face · producer · returns curveData[] · context: curve

Default key: outline.

Every boundary loop of the referenced mesh's faces, outer and holes alike.

keytypedefaultminmaxoptionstooltip
sourcemeshData[]Node whose face boundaries to outline.

curveFunction

Curve From Function · producer · returns curveData[] · context: curve

Default key: curve.

Sample a formula t => [x,y,z] into a raw sampled polyline.

keytypedefaultminmaxoptionstooltip
pointfunction(t) => [50 * Math.cos(t * 6 * Math.PI), 50 * Math.sin(t * 6 * Math.PI), t * 300]Callback t => [x,y,z], t in [0,1].
samplesnumber642Points sampled along t.
closedbinary0Join the end back to the start.

curveIntersect

Curve Intersect · transform · returns objectData[] · context: curve

Default key: intersect.

2D boolean intersection.

keytypedefaultminmaxoptionstooltip
curvecurveData

curveLoft

Loft · transform · returns meshData[] · context: curve

Default key: loft.

Skin a surface through the chain's curves in order.

keytypedefaultminmaxoptionstooltip
degreenumber31 = ruled, >1 requested smoothness (loft itself is linear between equal-count sections).

curveOffset

Offset Curve · transform · returns objectData[] · context: curve

Default key: offset.

Offsets every closed loop by distance.

keytypedefaultminmaxoptionstooltip
distancelength10Positive = outward, negative = inward.

curveOvercut

Curve Overcut · transform · returns objectData[] · context: curve

Default key: overcut.

CNC corner-clearance relief (dogbone/T-bone) at every corner the filter selects.

keytypedefaultminmaxoptionstooltip
radiuslength5
typestring'dogbone'['dogbone', 'longTbone', 'shortTbone']
reductionlength0
filterfunction(p, i) => true

curveProject

Project Onto Mesh · transform · returns objectData[] · context: curve

Default key: project.

Cast each vertex along the direction, snap to the nearest mesh hit.

keytypedefaultminmaxoptionstooltip
targetmeshData[]
directionvector[0,0,-1]

curveRevolve

Revolve · transform · returns meshData[] · context: curve

Default key: revolve.

Spin the chain's curves about an axis into a solid.

keytypedefaultminmaxoptionstooltip
axisline{ origin: [0,0,0], direction: [0,0,1] }
angleangle360
segmentsinteger483Tessellation density (no NURBS carrier to defer to).

curveSelfUnion

Curve Self Union · transform · returns objectData[] · context: curve

Default key: union.

Fuse all closed curves in the stream into one region.

No args.

curveSimplify

Simplify Curve · transform · returns objectData[] · context: curve

Default key: simplify.

Douglas-Peucker vertex reduction.

keytypedefaultminmaxoptionstooltip
tolerancelength1

curveSmooth

Smooth Curve · transform · returns objectData[] · context: curve

Default key: smooth.

Chaikin corner-cutting.

keytypedefaultminmaxoptionstooltip
iterationsinteger21

curveSplit

Curve Split · transform · returns objectData[] · context: curve

Default key: split.

Splits a single chain into two at the given parameter.

keytypedefaultminmaxoptionstooltip
parameternumber0.5Normalized arc-length position.

curveSubtract

Curve Subtract · transform · returns objectData[] · context: curve

Default key: subtract.

2D boolean difference.

keytypedefaultminmaxoptionstooltip
curvecurveData

curveSweep

Sweep · transform · returns meshData[] · context: curve

Default key: sweep.

Sweep the chain's profile along a curve.

keytypedefaultminmaxoptionstooltip
curvecurveData[]Path the profile is swept along.
capsbinary1End faces for an open path with a closed profile.
twistangle0Total profile rotation about the path tangent, start to end.
scalenumber1Profile scale factor at the path's end (1 at the start).

curveThicken

Thicken Curve · transform · returns objectData[] · context: curve

Default key: thicken.

Strokes an open or closed chain into a closed strip.

keytypedefaultminmaxoptionstooltip
distancelength10Offset on each side; the strip is twice this wide.
joinTypestring'miter'['round', 'miter', 'square']
endTypestring'round'['round', 'square', 'butt']

curveUnion

Curve Union · transform · returns objectData[] · context: curve

Default key: union.

2D boolean union.

keytypedefaultminmaxoptionstooltip
curvecurveData

dimensionAngular

Angular Dimension · producer · returns angularDimensionData[] · context: curve, mesh, block

Default key: dimension.

The angle at vertex between point1 and point2, arced through arcPoint.

keytypedefaultminmaxoptionstooltip
vertexpoint[0,0,0]
point1point[100,0,0]
point2point[0,100,0]
arcPointpoint[12,12,0]
styleobject
textstring''

dimensionLinear

Linear Dimension · producer · returns linearDimensionData[] · context: curve, mesh, block

Default key: dimension.

Distance between two points on a dimension line through linePoint.

keytypedefaultminmaxoptionstooltip
point1point[0,0,0]
point2point[100,0,0]
linePointpoint[0,10,0]A point the dimension line passes through.
styleobject
textstring''

dimensionRadial

Radial Dimension · producer · returns radialDimensionData[] · context: curve, mesh, block

Default key: dimension.

A leader from a circle/arc's rim, labelled with its radius.

keytypedefaultminmaxoptionstooltip
curvecurveDataCircle/arc to measure — its centre, radius and plane are recovered by fitting.
angleangle45Where around the circle the leader points, degrees.
styleobject
textstring''

edgeFillet

Edge Fillet · transform · returns objectData[] · context: mesh

Default key: fillet.

Rounds selected edges.

keytypedefaultminmaxoptionstooltip
filterfunction(p1, p2) => true
radiuslength2
segmentsinteger12

ellipseArc

Ellipse Arc · producer · returns curveData[] · context: curve

Default key: ellipse.

Elliptical arc (or full ellipse at 360°) from two axis vectors.

keytypedefaultminmaxoptionstooltip
centerpoint[0,0]Ellipse center.
xAxisvector[10,0]Major-axis vector; its length is the X radius.
yAxisvector[0,5]Minor-axis vector; its length is the Y radius. The plane is xAxis × yAxis.
angleangle360Sweep in degrees: 360 = full closed ellipse, under 360 = open arc.
segmentsinteger321Edges sampled along this curve. Closed curves need at least 3.

faceContours

Face Contours · transform · returns curveData[] · context: mesh

Default key: contours.

Slices faces at evenly spaced Z levels into contour curves; replaces the faces.

keytypedefaultminmaxoptionstooltip
spacinglength5000
basenumber0

faceEdgeDissolve

Dissolve Edges · transform · returns objectData[] · context: mesh

Default key: edgeDissolve.

Fuse the two coplanar faces sharing each selected edge.

keytypedefaultminmaxoptionstooltip
filterfunction(p1, p2) => true

faceExtrude

Face Extrude · transform · returns objectData[] · context: mesh

Default key: extrude.

Push selected faces along their own normal.

keytypedefaultminmaxoptionstooltip
thicknesslength10
filterfunction(points, normal) => true

faceMaterial

Material · transform · returns objectData[] · context: curve, mesh, block

Default key: faceMaterial.

Stamp a materials[] key on the whole document or matching faces.

keytypedefaultminmaxoptionstooltip
materialmaterial | function''Key of a materials[] record; stamps the rows, or the matching ones under a filter.
filterfunction

hatch

Hatch · producer · returns hatchData[] · context: curve, mesh, block

Default key: hatch.

A region plus the name of the pattern that fills it.

keytypedefaultminmaxoptionstooltip
regioncurveDataThe filled region: a closed world-space ring.
patternstringpatterns[] record key.
angleangle0
scalenumber1
originobject
colorcolor
fillobject

imageObject

Image · producer · returns imageData[] · context: curve, mesh, block

Default key: image.

A picture placed on a rectangle, plus its border frame.

keytypedefaultminmaxoptionstooltip
namestring''A url-method parameter key or a direct URI.
atpoint[0, 0, 0]Frame's local top-left corner.
widthlength80
heightlength00 = width * 3/4.

keepData

Keep Entities · transform · returns objectData[] · context: curve, mesh, pointCloud, block

Default key: keep.

Keep only the documents the predicate accepts.

keytypedefaultminmaxoptionstooltip
keepfunction(center, type, index) => true

lattice

Mesh Lattice · transform · returns objectData[] · context: mesh

Default key: lattice.

Hollow every mesh into a strut frame along design edges.

keytypedefaultminmaxoptionstooltip
thicknesslength2

leader

Leader · producer · returns leaderData[] · context: curve, mesh, block

Default key: leader.

An arrow from target to landing, carrying text.

keytypedefaultminmaxoptionstooltip
targetspoint[][[0,0,0]]Points the arrow(s) reach; one arrow per point, all landing at landing.
landingpoint[20,10,0]
textstring''
styleobject

looseToBlock

Loose to Blocks · transform · returns objectData[] · context: curve, mesh, pointCloud, block

Default key: block.

Collect loose curves/meshes into blocks by connectivity — each connected cluster becomes one nested block.

No args.

mesh

Mesh · producer · returns meshData[] · context:

Default key: mesh.

Starts the stream with exactly this Mesh.

keytypedefaultminmaxoptionstooltip
dataobject{"vertices":[{"position":[0,0,0]},{"position":[1000,0,0]},{"position":[0,1000,0]}],"edges":[{"start","end"},{"start","end"},{"start","end"}],"faces":[{"loops":[[0,1,2]]}]}The Mesh itself: { vertices, edges, faces }.

mirror

Mirror · transform · returns objectData[] · context: curve, mesh, pointCloud, block

Default key: mirror.

Reflects across a plane; a mesh reverses winding to stay outward-positive.

keytypedefaultminmaxoptionstooltip
planeplane{ point: [0,0,0], normal: [1,0,0] }
keepOriginalbinary11 keeps the original and adds the reflection.

move

Move · transform · returns objectData[] · context: curve, mesh, pointCloud, block

Default key: move.

Translate every document in the stream.

keytypedefaultminmaxoptionstooltip
vectorvector[0,0,1]

nurbsCurve

NURBS Curve · producer · returns curveData[] · context: curve

Default key: nurbs.

NURBS curve from a control net, then baked to a polyline.

keytypedefaultminmaxoptionstooltip
pointspoint[][[0,0,0],[3,5,0],[7,5,0],[10,0,0]]Control points of the hull; the curve is pulled toward them, not through.
degreenumber3Polynomial degree; must be >= 1 and <= points.length-1.
knotsnumber[][]Knot vector (length = points.length + degree + 1). Empty = clamped-uniform.
weightsnumber[][]Per-point weight > 0. Empty = uniform 1.
segmentsinteger321Edges sampled along this curve. Closed curves need at least 3.

nurbsSurface

NURBS Surface · producer · returns meshData[] · context: mesh

Default key: nurbsSurface.

NURBS surface from a control net, baked to a triangle mesh.

keytypedefaultminmaxoptionstooltip
controlPointspoint[][] | surface[[[0,0,0],[70,0,0],[130,0,0],[200,0,0]],[[0,70,20],[70,70,40],[130,70,40],[200,70,20]],[[0,130,20],[70,130,40],[130,130,40],[200,130,20]],[[0,200,0],[70,200,0],[130,200,0],[200,200,0]]]Control net, rows along U, columns along V. Or a surface parameter value.
degreeUinteger31
degreeVinteger31
knotsUnumber[][]Empty = clamped-uniform.
knotsVnumber[][]Empty = clamped-uniform.
segmentsUinteger321Grid edges along U. INHERITED from curve segments default 32.
segmentsVinteger321Grid edges along V.

patchFromCorners

Patch From Corners · producer · returns meshData[] · context: mesh

Default key: patch.

A 4-corner bilinear patch.

keytypedefaultminmaxoptionstooltip
corner0point[0,0,0]
corner1point[100,0,0]
corner2point[100,100,0]
corner3point[0,100,0]

placeComponent

Place Component · producer · returns objectData[] · context: curve, mesh, block

Default key: component.

Starts the chain with a components[] entry evaluated under args, as one block.

keytypedefaultminmaxoptionstooltip
componentstringKey of a components lane entry.
argsobjectOverrides the component's own parameter values for this placement.

pointCloud

Render Points · producer · returns pointCloudData[] · context: pointCloud

Default key: point.

Render-only markers, not construction geometry.

keytypedefaultminmaxoptionstooltip
positionspoint[][[0,0,0]]Marker positions to visualize.

polygon

Polygon · producer · returns curveData[] · context: curve

Default key: polygon.

A regular polygon in the XY plane.

keytypedefaultminmaxoptionstooltip
centerpoint[0,0]
radiuslength50
sidesinteger6Minimum 3.

polyline

Polyline · producer · returns curveData[] · context: curve

Default key: polyline.

A straight-sided chain through the given points.

keytypedefaultminmaxoptionstooltip
pointspoint[][[0,0,0],[100,0,0],[100,0,100]]Ordered vertices.
closedbinary0Close the loop back to the first point.

quadraticBezier

Quadratic Bezier · producer · returns curveData[] · context: curve

Default key: bezier.

Quadratic Bezier through start/end with one control.

keytypedefaultminmaxoptionstooltip
startpoint[0,0,0]Start point (on curve).
controlpoint[5,10,0]Tangent control (pulled toward, not on curve).
endpoint[10,0,0]End point (on curve).
segmentsinteger321Edges sampled along this curve. Closed curves need at least 3.

rectangle

Rectangle · producer · returns curveData[] · context: curve

Default key: rectangle.

A closed 4-vertex rectangle in the plane of least spread.

keytypedefaultminmaxoptionstooltip
point1point[0,0,0]One corner.
point2point[100,100,0]Opposite corner; the smallest-spread axis is the plane normal.

resize

Resize · transform · returns objectData[] · context: curve, mesh, pointCloud, block

Default key: resize.

Non-uniform scale to a target bounding-box size.

keytypedefaultminmaxoptionstooltip
sizeXlength | function1
sizeYlength | function1
sizeZlength | function1

reverse

Reverse · transform · returns objectData[] · context: curve, mesh

Default key: reverse.

Flip curve order / face winding.

No args.

revisionCloud

Revision Cloud · producer · returns curveData[] · context: curve

Default key: revisionCloud.

Chain of small outward-bulging arcs, baked to segments per bump.

keytypedefaultminmaxoptionstooltip
boundarypoint[][[0,0,0],[100,0,0],[100,100,0],[0,100,0]]
bumpRadiuslength15Clamped to 45% of the bump chord.
bumpSpacinglength40

rotate

Rotate · transform · returns objectData[] · context: curve, mesh, pointCloud, block

Default key: rotate.

Rotate every document about an axis.

keytypedefaultminmaxoptionstooltip
axisline{ origin: [0,0,0], direction: [0,0,1] }
angleangle | function0

scale

Scale · transform · returns objectData[] · context: curve, mesh, pointCloud, block

Default key: scale.

Scale every document about a point by per-axis factors.

keytypedefaultminmaxoptionstooltip
factorsobject | function[1, 1, 1]
centerpoint[0, 0, 0]

scatter

Scatter · transform · returns objectData[] · context: curve, mesh, pointCloud, block

Default key: scatter.

Random area-weighted placement across a mesh's surface.

keytypedefaultminmaxoptionstooltip
facemeshData[]
copiesinteger20
seednumber0

sectionPlane

Section Plane · producer · returns sectionData[] · context: curve, mesh, block

Default key: section.

A cutting plane a section view reads.

keytypedefaultminmaxoptionstooltip
pointpoint[0,0,0]A point on the cutting plane.
normalvector[1,0,0]Section views look along -normal.
activeobject | functiontruetrue/false, or a non-empty list of view keys the plane cuts in.

solidify

Solidify (Shell) · transform · returns objectData[] · context: mesh

Default key: shell.

Hollows a solid to a wall thickness.

keytypedefaultminmaxoptionstooltip
thicknesslength30.1Wall thickness, offset inward.

solidIntersect

Solid Intersect · transform · returns objectData[] · context: mesh

Default key: intersect.

3D CSG intersection.

keytypedefaultminmaxoptionstooltip
solidmeshData[]

solidSelfUnion

Solid Self Union · transform · returns objectData[] · context: mesh

Default key: union.

Fuse every mesh body in the stream into one (3D CSG, no operand).

No args.

solidSubtract

Solid Subtract · transform · returns objectData[] · context: mesh

Default key: subtract.

3D CSG difference.

keytypedefaultminmaxoptionstooltip
solidmeshData[]

solidUnion

Solid Union · transform · returns objectData[] · context: mesh

Default key: union.

3D CSG union.

keytypedefaultminmaxoptionstooltip
solidmeshData[]

spline

Spline · producer · returns curveData[] · context: curve

Default key: spline.

Interpolating spline through the given points, then baked.

keytypedefaultminmaxoptionstooltip
pointspoint[][[0,0,0],[40,0,40],[80,0,20],[120,0,60]]Points the spline interpolates through.
degreenumber3Polynomial degree; must be >= 1 and <= points.length-1.
segmentsinteger321Edges sampled along this curve. Closed curves need at least 3.

straightSkeleton

Straight Skeleton · producer · returns meshData[] · context: mesh

Default key: skeleton.

Straight skeleton of a simple polygon, as lifted roof faces.

keytypedefaultminmaxoptionstooltip
boundarypoint[][[0,0,0],[6000,0,0],[6000,4000,0],[0,4000,0]]
pitchangle30

subdivision

Mesh Subdivision · transform · returns objectData[] · context: mesh

Default key: subdivision.

Catmull-Clark-subdivide every mesh in the stream.

keytypedefaultminmaxoptionstooltip
iterationsinteger11Catmull-Clark passes.

textCurve

Text · producer · returns curveData[] · context: curve

Default key: text.

Glyph outline curves, width-wrapped and placed on a plane.

keytypedefaultminmaxoptionstooltip
positionpoint[0,0,0]
textstring''
fontfont
widthlength0
styleobject
normalvector[0,0,1]
xAxisvector[1,0,0]

textOnCurve

Text On Path · transform · returns objectData[] · context: curve

Default key: text.

Glyphs laid along the chain's own path curve; the chain is consumed.

keytypedefaultminmaxoptionstooltip
textstring'Hello'
fontfont
fontSizelength10

triangulate

Triangulate · producer · returns meshData[] · context: mesh

Default key: triangulate.

Delaunay TIN from scattered points.

keytypedefaultminmaxoptionstooltip
pointspoint[][[0,0,0],[1000,0,0],[1000,1000,0],[0,1000,50],[500,500,150]]

vertexFillet

Vertex Fillet · transform · returns objectData[] · context: mesh

Default key: vertexFillet.

Rounds selected vertices.

keytypedefaultminmaxoptionstooltip
filterfunction(point) => true
radiuslength2
segmentsinteger12

behavior

faceCamera

Face camera · step · returns `` · context: behaviors

Default key: faceCamera.

Keeps this face turned toward the viewer, upright about world Z, turning about the object's own pivot.

keytypedefaultminmaxoptionstooltip
normalvectorUnit normal of the face that turns toward the viewer; the turn is about the object's pivot, upright about world Z.

opening

Opening · step · returns meshData · context: behaviors

Default key: opening.

Cuts this object's extruded profile out of every sibling solid, per placement.

keytypedefaultminmaxoptionstooltip
shapepoint[] | curveDataClosed profile in this object's local space: point rows or a curve value.
directionvectorExtrusion vector, mm — its length is the depth; overshoot the host so both faces open.

objectNest

createBlock

Create Block · step · returns blockData[] · context: objects

Default key: block.

A nest of objects.

No args.

objectChain

createObject

Create Object · step · returns objectData[] · context: objects

Default key: object.

An ordinary objects[] entry, its own data chain folded from empty.

No args.

material

addMaterial

Material · step · returns material · context: materials

Default key: material.

Surface appearance record, identified by its node key; PBR factors live on properties.

keytypedefaultminmaxoptionstooltip
baseColorcolorSurface color, #rrggbb.
textureurlBase color map address.
tileWidthlength10000Physical tile width.
tileHeightlength10000Physical tile height.

alphaCutout

Alpha cutout · step · returns number · context: materials

Default key: alphaCutout.

Presence derives alphaMode MASK.

keytypedefaultminmaxoptionstooltip
valuenumber0.501

ambientOcclusionMap

AO map · step · returns string · context: materials

Default key: ambientOcclusionMap.

Ambient-occlusion map address.

keytypedefaultminmaxoptionstooltip
valueurl

clearcoat

Clearcoat · step · returns number · context: materials

Default key: clearcoat.

Varnish/gloss paint.

keytypedefaultminmaxoptionstooltip
amountnumber01
roughnessnumber01

colorFactor

Color factor · step · returns number · context: materials

Default key: colorFactor.

How far baseColor tints the texture, 0..1.

keytypedefaultminmaxoptionstooltip
valuenumber101

cutPattern

Cut pattern · step · returns string · context: materials

Default key: cutPattern.

patterns[] record key drawn where a section cuts this material.

keytypedefaultminmaxoptionstooltip
valuestring

displacement

Displacement · step · returns string · context: materials

Default key: displacement.

Height map + amplitude, tessellated geometry only.

keytypedefaultminmaxoptionstooltip
urlurl
scalelength1

doubleSided

Double sided · step · returns binary · context: materials

Default key: doubleSided.

Render both faces of a surface.

keytypedefaultminmaxoptionstooltip
valuebinary0

emissive

Emissive · step · returns color · context: materials

Default key: emissive.

Self-lit color + strength + map.

keytypedefaultminmaxoptionstooltip
colorcolor
intensitynumber10
mapurl

metallic

Metallic · step · returns number · context: materials

Default key: metallic.

Metalness, 0..1.

keytypedefaultminmaxoptionstooltip
valuenumber001

metallicMap

Metallic map · step · returns string · context: materials

Default key: metallicMap.

Metallic map address.

keytypedefaultminmaxoptionstooltip
valueurl

normalMap

Normal map · step · returns string · context: materials

Default key: normalMap.

Normal map address.

keytypedefaultminmaxoptionstooltip
valueurl

opacity

Opacity · step · returns number · context: materials

Default key: opacity.

Surface opacity, 0..1.

keytypedefaultminmaxoptionstooltip
valuenumber101

roughness

Roughness · step · returns number · context: materials

Default key: roughness.

Microfacet roughness, 0..1.

keytypedefaultminmaxoptionstooltip
valuenumber101

roughnessMap

Roughness map · step · returns string · context: materials

Default key: roughnessMap.

Roughness map address.

keytypedefaultminmaxoptionstooltip
valueurl

sheen

Sheen · step · returns color · context: materials

Default key: sheen.

Fabric/upholstery sheen.

keytypedefaultminmaxoptionstooltip
colorcolor
roughnessnumber01

transmission

Transmission · step · returns number · context: materials

Default key: transmission.

Glass walls (KHR_materials_transmission).

keytypedefaultminmaxoptionstooltip
amountnumber01
iornumber1.51
thicknesslength
attenuationColorcolor
attenuationDistancelength

layer

addLayer

Layer · step · returns layer · context: layers

Default key: layer.

A key a row carries, so a view can hide everything carrying it.

No args.

pattern

addPattern

Pattern · step · returns pattern · context: patterns

Default key: pattern.

Hatch pattern record, identified by its node key; its line families are lineFamily steps.

No args.

lineFamily

Line Family · step · returns pattern · context: patterns

Default key: lineFamily.

One infinite parallel-line family drawn over a hatch region.

keytypedefaultminmaxoptionstooltip
angleangle0Direction of the family, degrees counter-clockwise from hatch-space +X.
originobject[0, 0]A point the first line passes through, in hatch space [x, y]. Not rewritten on a unit change.
shiftlength0Slide along the line direction between one line and the next; visible once dashes breaks the line up.
spacinglengthDistance across, between one line and the next. Strictly greater than 0.
dasheslength[]Repeating pen cycle (SVG stroke-dasharray spelling); absent = a solid line.
lineWidthlengthStroke width. Absent = the renderer's hairline.
colorcolor#rrggbb. Absent = inherit from the placement's material.
dotSizelengthDiameter painted for a zero-length dash. Absent = lineWidth.

component

createComponent

Component · step · returns component · context: components

Default key: component.

A component written inline — evaluates to exactly this document.

keytypedefaultminmaxoptionstooltip
dataobject{"title":"Component","objects":[]}The component document itself: a whole Model JSON.

loadComponent

Load Component · step · returns component · context: components

Default key: component.

A component the host fetches by id, only when a placement pulls it.

keytypedefaultminmaxoptionstooltip
idstringPlatform model id; the host fetches its latest published document.

view

view

View · step · returns view · context: views

Default key: view.

A camera pose with a projection switch — perspective reads fov, orthographic reads height.

keytypedefaultminmaxoptionstooltip
positionpoint[1000, 1000, 1000]Eye position.
targetpoint[0, 0, 0]Look-at point; must differ from position.
upvector[0, 0, 1]Up direction; must not be parallel to (target - position).
projectionstring'perspective'['perspective', 'orthographic']Which lens is read — 'perspective' (fov) or 'orthographic' (height).
fovnumber451179Vertical field of view, degrees — read only when projection is 'perspective'.
heightlength20000World height seen by the frame, mm, not an elevation — read only when projection is 'orthographic'.

value

angle

Angle · binding · returns angle · context: parameters

Default key: angle.

keytypedefaultminmaxoptionstooltip
valueangle0

boolean

Boolean · binding · returns binary · context: parameters

Default key: boolean.

keytypedefaultminmaxoptionstooltip
valuebinary0

color

Color · binding · returns color · context: parameters

Default key: color.

keytypedefaultminmaxoptionstooltip
valuecolor'#ffffff'

curve

Curve · binding · returns curve · context: parameters

Default key: curve.

A curve value; point rows or a reference to a built curve.

keytypedefaultminmaxoptionstooltip
controlPointspoint[][[0, 0, 0], [1000, 0, 0]]
degreenumber1NURBS degree, auto-clamped; 1 = a polyline through the points.

function

Function · binding · returns function · context: parameters

Default key: function.

keytypedefaultminmaxoptionstooltip
valuefunction(data, index) => index

integer

Integer · binding · returns integer · context: parameters

Default key: integer.

keytypedefaultminmaxoptionstooltip
valueinteger0

length

Length · binding · returns length · context: parameters

Default key: length.

keytypedefaultminmaxoptionstooltip
valuelength0

lengths

Length List · binding · returns length[] · context: parameters

Default key: lengths.

keytypedefaultminmaxoptionstooltip
valuelength[][]

number

Number · binding · returns number · context: parameters

Default key: number.

keytypedefaultminmaxoptionstooltip
valuenumber0

object

Object · binding · returns object · context: parameters

Default key: object.

keytypedefaultminmaxoptionstooltip
valueobject{}

surface

Surface · binding · returns surface · context: parameters

Default key: surface.

A NURBS surface value (control net). Bake with nurbsSurface.

keytypedefaultminmaxoptionstooltip
controlPointspoint[][] | surface[[[0,0,0],[1000,0,0]],[[0,1000,0],[1000,1000,0]]]
degreeUinteger11
degreeVinteger11
knotsUnumber[][]Empty = clamped-uniform.
knotsVnumber[][]Empty = clamped-uniform.

text

Text · binding · returns string · context: parameters

Default key: text.

keytypedefaultminmaxoptionstooltip
valuestring''

url

URL · binding · returns url · context: parameters

Default key: url.

keytypedefaultminmaxoptionstooltip
valueurl''

placement

attributes

Attributes · step · returns object · context: properties, materials, layers, patterns

Default key: attributes.

Free-form domain bag.

keytypedefaultminmaxoptionstooltip
valueobject | function{}

axes

Axes · step · returns binary · context: views

Default key: axes.

World-axes visibility for this view; absent = host default (on).

keytypedefaultminmaxoptionstooltip
valuebinaryWorld-axes visibility for this view; absent = host default (on).

background

Background · step · returns color · context: views

Default key: background.

A view's clear color.

keytypedefaultminmaxoptionstooltip
valuecolorViewport clear color. Absent = the host's own background.

copies

Copies · step · returns integer · context: properties

Default key: copies.

Copies ADDED — absent or 0 is one placement.

keytypedefaultminmaxoptionstooltip
valueinteger00

exposure

Exposure · step · returns number · context: views

Default key: exposure.

A view's metered-exposure multiplier; realistic shading only.

keytypedefaultminmaxoptionstooltip
valuenumber0Linear multiplier on metered auto-exposure. Shading 'realistic' only; absent = 1.

layer

Layer · step · returns string · context: properties

Default key: layer.

layers[] record key per placement.

keytypedefaultminmaxoptionstooltip
valuestring | function''

material

Material · step · returns string · context: curve, mesh, block

Default key: material.

materials[] record key per placement.

keytypedefaultminmaxoptionstooltip
valuematerial | function''

name

Name · step · returns string · context: properties

Default key: name.

Placement name (BaseInstance.name).

keytypedefaultminmaxoptionstooltip
valuestring | function''

pivot

Pivot · step · returns point · context: properties

Default key: pivot.

The placement's own turning point.

keytypedefaultminmaxoptionstooltip
valuepointAbsent = the content's own bbox min corner, except a chain-produced block (placeComponent/clone), which pivots at its own origin.

rotation

Rotation · step · returns vector · context: properties

Default key: rotation.

M = T(t)T(p)RST(-p).

keytypedefaultminmaxoptionstooltip
valueobject | function[0, 0, 0]Degrees, applied RzRyRx about the pivot.

scale

Scale · step · returns vector · context: properties

Default key: scale.

M = T(t)T(p)RST(-p) — the object's own placement, not the chain scale step.

keytypedefaultminmaxoptionstooltip
valueobject | function[1, 1, 1]Per-axis factors, about the pivot.

shading

Shading · step · returns string · context: views

Default key: shading.

A view's display mode.

keytypedefaultminmaxoptionstooltip
valuestring['wireframe', 'shaded', 'realistic']'shaded' is the self-lit matcap editing look (default); 'realistic' is the only mode materializing lights and the environment; 'wireframe' is the line overlay.

shadows

Shadows · step · returns binary · context: views

Default key: shadows.

Analytic sun-study overlay for this view; absent = off.

keytypedefaultminmaxoptionstooltip
valuebinaryAnalytic sun-study overlay for this view; absent = off.

translation

Translation · step · returns vector · context: properties

Default key: translation.

M = T(t)T(p)RST(-p).

keytypedefaultminmaxoptionstooltip
valueobject | function[0, 0, 0]

visible

Visible · step · returns binary · context: properties, layers

Default key: visible.

true/false, or a non-empty list of view keys.

keytypedefaultminmaxoptionstooltip
valueobject | functiontrue

shadings

nameexposure
wireframefalse
shadedfalse
realistictrue
📖 35 min read