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
A title, caption, label, or logotype as editable vector shapes
Text that stays crisp at any zoom: leave Analytical on
3D lettering, extruded, textured, or simulated: turn Analytical off for a mesh
Text fitted inside a fixed area: set Box Size and use Overflow and Shrink To Fit
Per-character or per-word control downstream, such as colour gradients across a word or staggered animation per letter, since each glyph arrives as its own shape
| Parameter | Type | Default | What it does |
|---|---|---|---|
text | String | "Text" | The text to convert to shapes |
font_family | String | "Arial" | Select font family from system fonts |
font_style | String | "Regular" | Font style variant (falls back gracefully if unavailable) |
font_size | Number | 72 | Font size in points |
font_weight | Number | 0 | Variable font weight (100=Thin, 400=Regular, 700=Bold, 900=Black). 0 = font default. |
font_width | Number | 0 | Variable font width percentage (50=Condensed, 100=Normal, 200=Expanded). 0 = font default. |
font_slant | Number | 0 | Variable font slant in degrees (-20 = italic). 0 = font default. |
optical_size | Number | 0 | Variable font optical size (typically matches font size). 0 = font default. |
alignment | String | "Left" | Horizontal text alignment. One of: Left, Center, Right. |
vertical_alignment | String | "Top" | Vertical text alignment within text box. One of: Top, Middle, Bottom, Baseline. |
line_height | Number | 1.200 | Line height as multiplier of font size |
character_spacing | Number | 0 | Additional spacing between characters |
word_spacing | Number | 0 | Additional spacing between words |
line_spacing | Number | 0 | Additional spacing between lines (added to line height) |
paragraph_spacing | Number | 0 | Additional spacing between paragraphs (double newlines) |
ligatures | Boolean | true | Enable standard ligatures (fi, fl, etc.) |
discretionary_ligatures | Boolean | false | Enable decorative/discretionary ligatures |
small_caps | String | "Off" | Convert letters to small capital forms. One of: Off, Lower to Small Caps, All Small Caps. |
numeral_style | String | "Default" | Numeral glyph style (old style = varying heights, lining = uniform height). One of: Default, Old Style, Lining. |
numeral_spacing | String | "Default" | Numeral spacing (tabular = fixed width for alignment, proportional = natural width). One of: Default, Tabular, Proportional. |
stylistic_set | Number | 0 | Stylistic set number (font-specific alternate glyph sets, 0 = none) |
contextual_alternates | Boolean | true | Enable contextual alternate glyphs |
fractions | Boolean | false | Enable automatic fraction formatting (e.g., 1/2 becomes ½) |
kerning | Boolean | true | Enable kerning (spacing adjustments between specific letter pairs) |
box_size | Vec2 | (0, 0) | Text box size in points (W, H). Set to 0 for auto-sizing. |
shrink_to_fit | Boolean | false | Scale text down to fit within text box dimensions |
overflow | String | "Visible" | How text behaves when it exceeds the box: Visible (no clipping), Wrap (word wrap), Hidden (clip), Truncate (clip with ellipsis). One of: Visible, Wrap, Hidden, Truncate. |
fill | Color or Color Field or Color[] or Field or Material or Material[] or Frame Sequence | rgba(1.00, 1.00, 1.00, 1.00) | Fill color, or connect a Fill/Color/Image node |
stroke | Color or Color Field or Color[] or Field or Material or Material[] or Frame Sequence | rgba(0.00, 0.00, 0.00, 1.00) | Stroke color, or connect a Stroke/Color node |
stroke_width | Number | 0 | Stroke width (0 = no stroke) |
analytical | Boolean | true | Analytic: emit resolution-independent CRC glyph paths (composites as a flat 2D layer). Turn off to ear-clip the glyphs into a Geometry mesh for the 3D scene. |
position | Vec3 | (0, 0, 0) | Translation (X, Y, Z) |
rotation | Vec3 | (0, 0, 0) | Rotation in degrees (X, Y, Z) |
scale | Vec3 | (1, 1, 1) | Scale (X, Y, Z) |
anchor | Vec3 | (0, 0, 0) | Pivot offset (X, Y, Z) — rotation/scale orbit this point |
opacity | Number | 1 | Layer opacity (0 = transparent, 1 = opaque). Editable, wirable, keyframable. |
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
Add a Text node and type your string into Text.
Pick Font Family and Font Style, and set Font Size.
Adjust Alignment and Line Height for multi-line text.
Wire a Color or Image node into Fill to drive the surface from the graph; raise Stroke Width and set Stroke for an outline.
For lettering that fits a fixed area, set Box Size and choose an Overflow mode (Wrap, Hidden, or Truncate).
For 3D lettering, turn Analytical off to get a mesh you can extrude or texture.
See also
Circle · Pen · Mesh · Curves (lines & paths)