ParaShape Docs
Three ways to use ParaShape — pick yours:
1 · Build a model in the browser
Open the app, pick a model from the catalog, drag the parameter sliders — the 3D view updates live. Save gives it a shareable URL; Share gives you an iframe embed.
→ Getting started · Embed
2 · Write a model as JSON
A model is one JSON document. This is a complete parametric box — paste it into the builder (or hand it to AI with llms.txt as the grammar):
{
"title": "Box",
"parameters": [
{ "key": "width", "method": "length", "args": [{ "key": "length", "input": "200" }] }
],
"operations": [
{ "key": "profile", "operations": [
{ "method": "rectangle", "args": [{ "key": "point1", "input": "[0,0,0]" }, { "key": "point2", "input": "[width,150,0]" }] }
] },
{ "key": "box", "operations": [
{ "method": "extrude", "args": [{ "key": "profile", "input": "profile" }, { "key": "thickness", "input": "100" }] }
] }
]
}Args are expressions: "width" references the parameter, "width / 2 - 9" computes, Curve.length(profile) calls a function. Every top-level node is a container ({ key, operations: [...] }) holding one creation step plus any following transforms — that's the node unit you see as one card in the builder panel.
→ Nodes (every operation + args) · Expression · Schema
3 · Build your own product on the engine
The engine is a library — ParaShape is just one product on it. Evaluate the same JSON in your own app:
import { createRegistry, Model } from "@parashape/parametric"
import { nodeRegistry } from "@parashape/parametric/nodes"
const registry = createRegistry(nodeRegistry) // or your own node registry
const model = Model.fromJSON(json, { registry })
const scene = model.toScene() // → render with Three.js / SketchUp / anythingSwap nodeRegistry for your own to ship a different node set entirely (a teaching app, a furniture configurator…). Standalone geometry functions are importable without any of this: import { curve } from "@parashape/parametric/compute".
→ Full developer docs: /dev — Node registry (create your own nodes — full types) · Architecture (the layers) · Compute (all standalone functions) · Store · Scene
Reference map
| You need | Docs |
|---|---|
| Every node + its args | Nodes |
| Expression language + functions | Expression · Math · Functions |
| The JSON format + types | Schema · Types · Entities |
| Engine runtime API | Store · Scene · engine classes (/dev sidebar) |
| Standalone geometry functions | Compute |
| AI grammar (for LLMs) | llms.txt |