Help guide

Glyph Geometry node

Updated June 21, 2026

Glyph Geometry node

Product media placeholder

Replace this area with a screenshot or short walkthrough video during the media sweep.

Shared text-outline geometry source. F381 P2.1. Emits typed vertex buffers + bbox + bodyCenter from `text + fontFamily + fontSize + fontWeight` once at init (static). Wire the outputs into BOTH `softMesh.geometrySource` (visible deformable mesh, P2.3) AND `physicsStaticBody{kind:fromGeometry}` (rigid collider, P2.2) so the visible mesh and rigid collider are aligned by construction — kills the entire class of "physicsTextOutline.radius drifted from physicsSoftText.radius" bugs that the legacy paired-node pattern required authors to avoid by hand. Uses the same WASM glyph extractor pipeline as the legacy nodes (rustybuzz + ttf-parser → earcut), so geometry is bit-identical to what a softMesh with `geometrySource:textOutline` would produce.

Type glyphGeometryCategory effectsContext sharedDynamic ports noCompound no

Inputs

PortTypeDescription
worldanyOptional. When wired from `physicsWorld.world`, the geometry node uses the world's `frameSelector` to compute body-coord origin. Without a wire, host element acts as its own frame.

Outputs

PortTypeDescription
verticesfloat32bufferRest-pose vertex buffer in body coords. Wire into consumers' `geometrySource` ports.
subpathStartsuint16bufferVertex-pair start index of each subpath. Glyph outer + counter holes flat in traversal order.
ringSubpathCountsuint16bufferEntry i = number of subpaths in glyph i (1 outer + N counter holes — e.g. P/R/O/d/e have 1 hole each, H/Y/S/I/C have 0). First subpath per glyph is outer; remaining are holes. Lets `physicsStaticBody{kind:fromGeometry}` build colliders only for letter silhouettes (balls land on top of an "o", not inside its counter).
sharpFlagsuint16bufferSharp-corner flag per vertex.
bboxMinXfloatBBox Min X
bboxMinYfloatBBox Min Y
bboxMaxXfloatBBox Max X
bboxMaxYfloatBBox Max Y
bodyCenterXfloatSnapshot rest centroid in body coords.
bodyCenterYfloatBody Centre Y

Parameters

ParameterTypeDefaultDescription
selectorelementSelector""CSS selector for the host element. Used for sizing (auto-radius fallback) and resolving the physics frame.
textstring"Text"Text
fontFamilystring"sans-serif"Font Family
fontSizefloat220Font Size (px)
fontWeightstring"400"CSS weight string. Must match a loaded `FontFace`.
radiusfloat-1-1 = auto: `min(hostW, hostH) * 0.4`. The whole word is refit to fit `2 * radius`.
cornerSharpnessDegfloat25Corner Sharpness (°) min 0; max 90; step 5

Use cases

  • Balls-on-text — one `glyphGeometry` feeds a `softMesh` (visible deformable letters) AND a `physicsStaticBody{fromGeometry}` (rigid collider). Balls bounce off the actual letter shapes, no manual radius drift.
  • Logotype cursor warp — `glyphGeometry` feeds a `softMesh` + `softMeshRender`. No physics body needed; geometry node simply provides the rest pose.

Related nodes

Envelope

Use glyphGeometry 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/

Was this guide helpful?

Sunny Arora

Written by

Sunny Arora

Get technical deep dives delivered to your inbox

Join creators and developers who get exclusive insights, tutorials, and behind-the-scenes content every week.

No spam. Unsubscribe anytime.

Continue Exploring

You might also enjoy