Generator node

Kinetic Text

Kinetic typography for Transcription Segments: every word animates by its OWN age — fade, slide up, scale in or typewriter on arrival; hold, fade or drift away after Decay Time. Volatile words (still being guessed) render as a ghost tail that snaps solid on finalization — the correction is the animation. Ages come from the DATA, so a Timeline scrub replays the choreography deterministically. Greedy word-wrap against Max Width, alignment, per-word draw bounded at 128 words with fingerprint-cached layout.

Inputs

PortTypeDefault
EnableOff: the node's texture is cleared and nothing draws. The page/box state is kept, so re-enabling continues where it was.booltrue
SegmentsThe word stream from a Transcription node's Segments output (per-word text, timing, sentence ids). Live streams write through the paced page writer; Timeline files play karaoke-exact on the audio clock — scrub-safe.structure—
SizeFont size in Grafit units (cap height ≈ this tall on screen). Default 0.08. Not clamped; the Block box auto-shrinks text that cannot fit.float0.08
ColorText RGBA. Alpha multiplies every word on top of its animation; the box outline and caret reuse the RGB.color—
AppearHow a word enters: Fade, Slide Up, Scale In, or Typewriter (left-to-right reveal). The same animation plays in REVERSE when a full page clears or a Block sentence swaps out.int0
Appear TimeEntrance duration in seconds when Auto Timing is off (and for Live words, which carry no spoken duration). The page-clear animation has its own knobs: Clear and Clear Time.float0.25
Auto TimingOn (default): the node paces itself — Timeline entrances last each word's SPOKEN duration (0.06–0.6 s, karaoke-exact), live words land on an adaptive ~0.24 s beat. Off: you set the pace — Word Interval (live beat) and Appear/Decay Time knobs rule.booltrue
Word IntervalSeconds between word reveals when Auto Timing is off — the writing beat of a LIVE stream (0.25 = four words a second; clamped 0.05–5, compresses temporarily when speech runs ahead). Timeline ignores it: there each word lands at its spoken moment.float0.25
DecayWHEN a word leaves: Hold keeps it until the page clears; Clear Out lets it leave early — after Decay Words (live) or Hold Time (Timeline), over Decay Time. HOW it leaves is always the Clear style — one unified exit language.int0
Decay TimeHow many seconds the LEAVE animation takes once a word's hold is over — the speed of the Fade/Drift itself, on both clocks. Small = words snap away, large = long dissolves. Clamped to at least 0.05. Ignored on Hold.float0.6
Hold TimeTimeline: seconds a word holds before its leave begins. With Auto Timing on, the whole sentence holds until it ENDS and starts leaving this many seconds later; off, each word counts from its own entrance. 0 = leave immediately. Live streams count words instead (Decay Words).float2
Decay WordsLive: how many of the newest words stay — a word starts leaving once this many newer ones are written (the visible tail is a word count, not seconds). 0 = no per-word decay: the page fills the whole area and only a full page clears. Timeline uses Hold Time instead.int8
ClearThe ONE exit style — page clears AND per-word Decay both use it. Unwrite erases along the writing direction (the pen re-tracing); Backspace un-writes from the end; Together fades at once; Instant is a hard cut; Drift floats the words up as they fade.int0
Clear TimeTotal seconds the clear takes, start to finish, whatever the word count (clamped 0.05–10). The live writer waits this long after a page turn before writing on — fresh ink never lands on leaving words. Hidden on Instant.float0.8
LayoutPage: words write onto a fixed page that fills to the brim, then clears by the appear animation reversed — nothing ever moves. Block: one sentence fitted into the Max Width × Box Height box, crossfading at sentence boundaries (a Live stream routes Block through the page writer too).int0
Sentence BreakPage mode: what a sentence end does. Flow (default) keeps filling the area width-first; New Line starts a fresh line; New Page clears the page. With Max Lines 0 + Flow the page never clears — pair with Decay.int0
Max WidthWrap width in Grafit units (viewport short edge = 2). 0 = single line, no wrapping. In Block mode this is the box width; the debug outline shows it.float1.7
Max LinesPage height in lines — a word that would need one more turns the page. 0 = unlimited (the page then only clears on Sentence Break: New Page). Block mode ignores it; Box Height rules there.int6
Box HeightBlock only, Grafit units. 0 = the box grows with the text. >0 = hard frame: text auto-shrinks until it fits Max Width × this height. Also sets the live page frame's line capacity.float0
Box DebugDraws the Max Width × Box Height outline at 40% alpha so the frame can be composed before any words exist. Design aid only — not part of the output look.boolfalse
CaretLive only: a blinking write caret at the page cursor — the 'someone is writing this down' feedback that bridges the recognizer's latency.booltrue
SpeakingLive only: cable Transcription's Speaking output here — the caret turns solid while speech is actually heard, blinks while idle.boolfalse
Line GapSpace between lines in Grafit units, added to the measured glyph height. Negative tightens — the measured height carries font padding, so go below 0 for truly dense lines; the pitch is floored at 25% of the glyph height. Default 0.02.float0.02
H AlignBlock/Timeline: Left, Center or Right inside the box (or the tight text block when no box is set). Hidden in Page mode and Live — the page writer owns positions there.int1
V AlignBlock/Timeline: Top, Middle or Bottom inside the box; without a box it anchors the block above/on/below Y. Hidden in Page mode and Live.int1
CorrectionsWhat a LIVE finalization may do to standing ink. All: every revision swaps in place. Fitting (default): digit↔spelled-number reshuffles (5 vs five) never land, other swaps only when the new text fits the frozen slot. Off: written ink is final. Future pages always use the corrected text.int1
Color ModeSingle: everything in Color. By Class: each lexical class gets its own ink (the class color ports appear) — a live shader tint; late-arriving tags fade in over 0.6 s. Untagged words keep the base Color.int0
Noun ColorBy Class: ink for nouns and numbers — the anchor color.color—
Verb ColorBy Class: ink for verbs — the motion words.color—
Adjective ColorBy Class: ink for adjectives and adverbs.color—
Name ColorBy Class: ink for names — people, places, organizations. The accent.color—
Function ColorBy Class: ink for function words — the quiet gray.color—
XHorizontal anchor of the page/box center, Grafit units (0 = screen center). Not clamped.float0
YVertical anchor of the page/box center, Grafit units (0 = screen center). Not clamped.float0

Outputs

PortType
Imageimage
Widthfloat
Heightfloat
Active Countint

How It Works

Each incoming segment word gets its own quad (word textures cached by the font atlas — spoken language repeats words constantly). The word's age drives its life: Appear (Fade / Slide Up / Scale In / Typewriter) eased over Appear Time, a hold, then Decay (Hold = stay until the window drops the word; Fade; Drift = fade while rising) after Decay Time. Words with final:false multiply by Ghost Opacity — the live guess shimmers, the finalized word lands. Negative age (Timeline mode future words) stays invisible until its moment.

Layout has two modes. Roll (default — built for LIVE captions): a word's line and x-position FREEZE the moment it is finalized; only the ghost tail re-flows, and new lines scroll the block upward with an eased roll — live text never dances. Block: a wrapped, aligned block re-laid on content change — right for Timeline poetry and static texts. Both are cache-disciplined: ages tick every frame, geometry does not rebuild. Output is a standard generator Image for Canvas / Composite.

Live-mode ages survive finalization (the engine keeps each word's first-seen timestamp), so a word animates ONCE when the ghost shows it — the finalization is only the alpha snap.

Use Cases

  • Kinetic captions — Transcription Segments → Kinetic Text → Canvas: speech becomes choreography (ships as the Kinetic Captions example).
  • Timeline poetry — Timeline-mode Segments: scrub the player and watch the text choreography run backwards.
  • Ghost emphasis — Ghost Opacity 0.15 + Appear Typewriter: the guess types itself faintly, the truth stamps in.
  • Active Count → particle emission: busier speech, busier screen.

Open Kinetic Text in the interactive catalog →

Kinetic Text is one of 381 nodes in Grafit Pro.

Free download. Every feature for 7 days, no card. Then €99.99 once — or keep playing your projects as a Player.

More Generator nodes