Text

Text as vector shapes from font outlines.

What it does

Text converts a string into vector shapes, tracing the outlines of a system font's glyphs. Like Circle and Rectangle it is an analytic shape by default: crisp at any size, composited as a flat 2D layer. Each character becomes its own shape, with correct holes for letters such as O, A, and B, and the run is laid out with real font shaping, so kerning, ligatures, and multi-line wrapping come from the font rather than an approximation.

Turn Analytical off to convert the glyphs into a Geometry mesh for the 3D scene, for extruding letters, texturing them, or bringing them into a simulation. Font, size, weight, alignment, and spacing update the shapes live as you type or animate the Text input, so titles, captions, and data callouts can be driven from upstream string logic.

When to use it

ParameterTypeDefault
textString"Text"
font_familyString"Arial"
font_styleString"Regular"
font_sizeNumber72
font_weightNumber0
font_widthNumber0
font_slantNumber0
optical_sizeNumber0
alignmentString"Left"
vertical_alignmentString"Top"
line_heightNumber1.200
character_spacingNumber0
word_spacingNumber0
line_spacingNumber0
paragraph_spacingNumber0
ligaturesBooleantrue
discretionary_ligaturesBooleanfalse
small_capsString"Off"
numeral_styleString"Default"
numeral_spacingString"Default"
stylistic_setNumber0
contextual_alternatesBooleantrue
fractionsBooleanfalse
kerningBooleantrue
box_sizeVec2(0, 0)
shrink_to_fitBooleanfalse
overflowString"Visible"
fillOneOf([Color, FieldOf(Color), ColorArray, Field, Material, MaterialArray, RasterArray])rgba(1.00, 1.00, 1.00, 1.00)
strokeOneOf([Color, FieldOf(Color), ColorArray, Field, Material, MaterialArray, RasterArray])rgba(0.00, 0.00, 0.00, 1.00)
stroke_widthNumber0
analyticalBooleantrue
positionVec3(0, 0, 0)
rotationVec3(0, 0, 0)
scaleVec3(1, 1, 1)
anchorVec3(0, 0, 0)
opacityNumber1

Gotchas

An empty Text field, or a font that fails to load, produces an empty result rather than an error, so the node can be left blank while an upstream string is still being wired.

Box Size is 0 by default, meaning auto-size, and the text box grows to fit what you type. Give Box Size real width and height values to turn on Overflow behaviour (Wrap, Hidden, Truncate) and Shrink To Fit.

Scale multiplies the whole line as one block around the Anchor point, not each letter around its own centre, so a scaled line reads as a single resized word rather than letters drifting apart or piling up.

Stroke Width defaults to 0, so no outline is drawn until it is raised. Wire a Stroke colour in first for an outlined look.

Worked example

  1. Add a Text node and type your string into Text.

  2. Pick Font Family and Font Style, and set Font Size.

  3. Adjust Alignment and Line Height for multi-line text.

  4. Wire a Color or Image node into Fill to drive the surface from the graph; raise Stroke Width and set Stroke for an outline.

  5. For lettering that fits a fixed area, set Box Size and choose an Overflow mode (Wrap, Hidden, or Truncate).

  6. For 3D lettering, turn Analytical off to get a mesh you can extrude or texture.

See also

Circle · Pen · Mesh · Curves (lines & paths)