Developer docs
The ParaShape engine is a library — the app at parashape.com is one product built on it. You can evaluate the same Model JSON in your own app, ship a completely different node set, or just import the geometry functions.
import { createRegistry, Model } from "@parashape/parametric"
import { nodeRegistry } from "@parashape/parametric/nodes" // ParaShape's node set — or your own
const registry = createRegistry(nodeRegistry)
const model = Model.fromJSON(json, { registry })
const scene = model.toScene() // render with Three.js / SketchUp / anythingJust the geometry, no engine: import { curve, solid } from "@parashape/parametric/compute".
Where to go
| Page | What it answers |
|---|---|
| Architecture | The layers (engine / compute / node registries / frontends), the one-way rules, how evaluation runs. |
| Node registry | Create your own nodes — a complete example + the full RegistryInput/NodeDefinition types, verbatim from source. |
| Compute | All standalone geometry/value functions in @parashape/parametric/compute. |
| Chain & entities | The v21 value model — fold state, group/instancing, planarity rules, wiring a custom operation. |
| Store | The async asset layer (models / fonts / images / materials) — pre-loading from raw JSON, session registry. |
| Scene | SceneJSON — the renderer contract your host consumes. |
| Viewport bridge | The ViewportBridge contract for hover feedback — for a frontend integrating packages/ui. |
| Engine classes (sidebar) | Runtime API: Model, OperationNode, ContainerNode, NodeCollection, … |
Writing models / using the app instead? → User docs.