docs / Annotate & present
Annotate & present
Adjust a model's appearance without changing its geometry: text, color, lighting, camera, motion.
finish('copper') gives the bracket copper's colour and surface in one call. Change it to finish('abs') and the same bracket looks like black plastic. Glass and clearcoat still go through material({...}).
const bracket = box(60, 40, 12)
.fillet(2)
.hole('top', { u: 0, v: 0, diameter: 12, depth: 'through' });
return bracket.finish('copper');referenceImage and custom TTF fonts via fontPath need a filesystem and are CLI-only. Colour, material, camera and lighting all run here.
Calls
| Call | What it does |
|---|---|
sketch : { text(content: string, opts: { size: Editable<number>; align?: "left" | "center" | "right"; position?: [Editable<number>, Editable<number>]; rotation?: Editable<number>; font?: string }): Sketch } | Sketch primitives namespace. |
fontPath(p: string) => FontPath | Brand a string as a font filesystem path (TTF). |
Shape.embossText(opts: { textContent: string; fontFamily?: string; size: Editable<number>; depth: Editable<number>; align?: 'left' | 'center' | 'right'; anchorU?: Editable<number>; anchorV?: Editable<number>; rotation?: Editable<number>; scaleMode?: 'original' | 'native' | 'bounds'; face: FaceSelector | string }) => Shape | Raise or recess text on a target face. |
Shape.color(name: ColorToken | `#${string}`) => Shape | Set HUE ONLY: a role color (servo/gear/beam/shaft/plate/pin/frame/tool) or a literal #rrggbb hex. |
Shape.finish(name: FinishToken, opts?: { color?: string; face?: string }) => Shape | PREFERRED way to make a part look like a real material. |
Shape.material(opts: PBRMaterial & { face?: string }) => Shape | ADVANCED / renderer-level escape hatch exposing raw PBR floats for glass, clearcoat, anisotropy, and image textures when no .finish() token fits. |
referenceImage(path: string, opts: { plane, anchor?, scale?, opacity?, flipU?, flipV? }) => ReferenceImageHandle | Overlay a reference image on a plane for tracing or design review. |
setRenderEnvironment(spec: { preset?: 'studio' | 'softbox' | 'neutral' | 'outdoor' | 'warehouse'; url?: string; intensity?: number; rotation?: number }) => RenderEnvironmentHandle | Set the HDRI / image-based-lighting environment for the rendered scene. |
setCameraTarget(x: number, y: number, z: number) => CameraTargetHandle | Override the camera look-at target for setRenderPose and headless engineering renders. |
setCameraDistance(distance: number) => CameraTargetHandle | Override the camera framing distance (mm from target). |
animationView(spec: { param: string; from: number; to: number; durationMs: number; fps?: number } | { name?: string; tracks: Array<{ param: string; keys: Array<{ atMs: number; value: number; ease?: "linear" | "step" | "easeIn" | "easeOut" | "easeInOut" }> }>; fps?: number }) => AnimationViewHandle | Declare an animation timeline for offline kinematic-motion MP4 capture. |