Lays out each word once (CPU) into flat tables the GPU glyph_trail particle
node uploads as storage buffers. Per glyph it stores the atlas UV rect plus
the quad's center + half-extents (all atlas px, baseline-relative, y-down);
the shader places each glyph by arc length along a particle's trail and scales
px → world. Words with no drawable glyphs contribute an empty run.
Lays out each word once (CPU) into flat tables the GPU
glyph_trailparticle node uploads as storage buffers. Per glyph it stores the atlas UV rect plus the quad's center + half-extents (all atlas px, baseline-relative, y-down); the shader places each glyph by arc length along a particle's trail and scales px → world. Words with no drawable glyphs contribute an empty run.