Schemas / Geometry / paint
rig.geometry.spline3d
v0.31.0 · draft 6 fields 3 required
Fields
| Field | Type | Meaning | |
|---|---|---|---|
degree |
int | required | Polynomial degree (typically 3) |
closed |
bool | optional | Optional. Absent = false |
controlPoints |
array<vec3>min 2 items | required | Control polygon (at least two points) |
knots |
array<number> | required | Knot vector (non-decreasing) |
weights |
array<number> | optional | Optional. Empty or absent = all weights 1 (non-rational). Same length as controlPoints when present |
fitPoints |
array<vec3> | optional | Optional. Authoring / DXF fit points; not required for evaluation when control points + knots are present |
NURBS / control-point spline in 3-space. Format when present.
The 3D sibling of rig.geometry.spline - same fields, vec3 points. Planar splines stay on spline; do not put z = 0 on spline3d to fake 2D.
A NURBS surface is rig.geometry.nurbs_surface, not a grid of spline3d curves.
Tessellation to polylines, path commands, or rig.geometry.mesh is host fulfillment - this schema is the parametric source of truth. Do not also attach rig.geometry.path3d for the same contour. Cubic path to NURBS is exact; arbitrary NURBS to cubic Bézier is not. Keep the authored form.
Appearance: rig.paint.fill_stroke.
JSON Schema
Resolves at https://rig.works/schemas/rig.geometry.spline3d.schema.json —
raw file.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://rig.works/schemas/rig.geometry.spline3d.schema.json",
"title": "rig.geometry.spline3d",
"type": "object",
"additionalProperties": false,
"properties": {
"degree": {
"$ref": "./_defs.schema.json#/$defs/int"
},
"closed": {
"$ref": "./_defs.schema.json#/$defs/bool"
},
"controlPoints": {
"type": "array",
"items": {
"$ref": "./_defs.schema.json#/$defs/vec3"
},
"minItems": 2
},
"knots": {
"type": "array",
"items": {
"type": "number"
}
},
"weights": {
"type": "array",
"items": {
"type": "number"
}
},
"fitPoints": {
"type": "array",
"items": {
"$ref": "./_defs.schema.json#/$defs/vec3"
}
}
},
"required": [
"degree",
"controlPoints",
"knots"
]
}