Skip to content
Shapemetry

Model - Wiring

API reference for src/functionRegistry/wiring, src/nodesRegistry/wiring on @huukhanhnguyen/model, reachable from ./nodes.

See the Guide for the ModelJSON / evaluate pipeline.

API reference

Signatures are generated from the live package .d.ts - not hand-written.

nodeNamespaces

const

Computation namespaces — the PascalCase expression substrate (Point., Vector., NurbsCurve., Surface., Face., Plane., Axis.*). Registered via RegistryInput.namespaces (no module-load side effects).

Mirrors nodesRegistry/: catalog.ts is the SSOT (what exists), this file WIRES it (where each entry's implementation comes from).

const nodeNamespaces: FunctionNamespaces

nodeRegistry

const

node registry wiring — transforms the raw catalog (catalog.ts, display metadata) into engine OperationDefinitions with compute functions wired to the standalone compute substrate (@huukhanhnguyen/model/compute).

v21 wiring shapes (stream state = Entity[]):

  • producer (old generator) → create: fn(...orderedArgs) → Entity[]; the ENGINE concats [...input, ...created]
  • transform/prop → mapCompute: maps ALL entities INCLUDING nested groups (a transform composes onto a group's placement; a prop stamps the wrapper = per-copy)
  • geometry transform → applyGeometry(input, entityOp(fn, args, types)) — nested blocks pass through untouched

The engine's own CORE_NODES already provide the builtins (scalar values, clone, blockExplode/looseToBlock/makeBlock) — those catalog entries are display-only here and get filtered. The container form is grammar, not a method (v21) — no entry, no definition.

const nodeRegistry: RegistryInput
Last updated: 📖 1 min readEdit on GitHub