Product media placeholder
Replace this area with a screenshot or short walkthrough video during the media sweep.
Shared non-text geometry source. F381 P2.1. Companion to `glyphGeometry` — emits the same typed-port output shape from any non-text `geometrySource` kind: `round` / `spike` / `blob` / `svgPath` / `clipPath` / `rawVertices`. Use the same generators as `meshAttractor`'s geometrySource param. Pair its outputs with `softMesh.geometrySource` + `physicsStaticBody{kind:fromGeometry}` so visible blob silhouette + rigid bowl collider stay aligned by construction (kills the legacy `physicsBlob` + `physicsBowlFromBlob` drift bug class).
Inputs
| Port | Type | Description |
|---|---|---|
world | any | Optional. When wired from `physicsWorld.world`, the geometry node uses the world's `frameSelector` to compute body-coord origin. |
Outputs
| Port | Type | Description |
|---|---|---|
vertices | float32buffer | Rest-pose vertex buffer in body coords. |
subpathStarts | uint16buffer | Subpath Starts |
ringSubpathCounts | uint16buffer | Entry i = number of subpaths in ring i (1 outer + N holes). First subpath per ring is outer; remaining are holes. Critical for collider/renderer consumers that need to distinguish outer silhouettes from interior holes. |
sharpFlags | uint16buffer | Sharp Flags |
bboxMinX | float | BBox Min X |
bboxMinY | float | BBox Min Y |
bboxMaxX | float | BBox Max X |
bboxMaxY | float | BBox Max Y |
bodyCenterX | float | Body Centre X |
bodyCenterY | float | Body Centre Y |
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
selector | elementSelector | "" | CSS selector for the host element. Used for sizing (auto-radius fallback) and resolving the physics frame. |
geometrySource | meshGeometrySource | {"kind":"round","segmentCount":32} | Pick a geometry kind: round / spike / blob / svgPath / clipPath / rawVertices. `textOutline` is rejected here — use `glyphGeometry` for text. |
radius | float | -1 | -1 = auto (~40% of min host dimension). |
cornerSharpnessDeg | float | 25 | Corner Sharpness (°) min 0; max 90; step 5 |
Use cases
- Soft-walled ball pit — one `shapeGeometry{kind:round}` feeds a `softMesh` (visible deformable bowl) AND a `physicsStaticBody{fromGeometry}` (rigid collider). Balls collide with the visibly deforming bowl, no per-frame vertex re-derivation.
- Cursor-reactive logo — `shapeGeometry{kind:svgPath}` feeds a `softMesh` + `softMeshRender`. Cursor warps the logo silhouette.
Related nodes
Envelope
Use shapeGeometry as the node type inside a graph node envelope. Add id, optional params, optional connections, and optional activeWhen based on the guide context.
Generated source
Registry faster-motion-docs/node-registry.jsonCategory page /help/faster-motion/faster-motion-node-category-effects/