← Mesajemba PopText

PopText

// this logo is animated with PopText itself

// from the studio · Blender extension

Animated, decorated 3D text for Blender, built for motion designers, not just modelers.

Turn a single line (or block) of text into a fully decorated, fully animated title in minutes. Add stroke and outline, dynamic bevel, per-character entrance and exit animation, idle motion, hand-lettered "text pose" shapes, and animated glow, fade, and color-cycle materials, all from one panel in the 3D viewport.

// why popText

One addon, the whole pipeline

Non-destructive by default

Decoration stays live and editable. Nothing commits to a mesh until you explicitly ask it to.

Built on native Blender features

Outline, bevel, and animation lean on Blender's own hardened tools: curve offset, drivers, shader nodes. Not a fragile custom mesh pipeline that breaks on every font.

Designed for iteration

Presets, a fast re-apply pose workflow, and a consistent panel mean five looks in the time it used to take to set up one.

Never leaves the N-panel

Decoration → pose → animation → material, without bouncing between separate tools or add-ons.

// what it does

One panel, a fully animated title

No keyframing by hand, no separate stroke or bevel add-ons to stack. PopText handles the whole pass from a single control panel next to your text object.

PopText decoration panel screenshot

🖋 Decoration (live, non-destructive)

  • Extrude & Bevel: static, or fully animated (dynamic) bevel driven over time
  • Outline / Stroke: an actual edge-hugging rim, generated from the same curve engine Blender's own text extrusion uses
  • Solid Outline mode: optionally close the outline into a fully solid, 3D-printable shape
  • Depth Scale: control how thick the outline reads along the letter's depth axis
  • Second outline layer: a fully independent second stroke (own thickness, depth scale, solid mode, material) for a double-stroke look
  • Independent Fill and Outline materials
PopText per-character animation screenshot

🎬 Per-character animation

  • Animation In: Scale In (with Squash & Stretch), Start Offset, and Start Rotation, each with its own interpolation curve and easing
  • Animation Out: a full mirror of Animation In, with completely independent timing and shape
  • Reveal Order: left to right, right to left, center outward, or random
  • Idle Animation: perpetual Float, Pulse, or Jitter motion via drivers. Runs forever, no baking needed
  • Text Pose: four shape presets (Random, Arch, Wave, Slant) with a Character Pivot option so rotation always looks natural
  • One Animate Characters button auto-detects whether to animate a fresh copy or your existing hand-tweaked pose
  • Hide Original After Animate/Pose: automatically tucks the source text out of the viewport and render once its replacement exists, on by default
PopText material animation screenshot

🌈 Material animation

  • Per-target color: Fill, Outline, and Outline 2 each get their own independently animated Base Color, not one shared color forced across all of them
  • One material per target, not per individual letter, all sharing the same underlying fade/glow/color-cycle timing
  • Independently-timed Fade In and Fade Out
  • Glow: static or pulsing emission
  • Color Cycle: a rainbow-cycling "LED marquee" effect, with per-character phase offset for a traveling wave
PopText presets panel screenshot

💾 Presets & organization

  • Save, load, and delete named presets for your whole PopText setup, stored in your Blender preferences, so you can reuse a look across any file or project
  • Every generated object lands in a clean, dedicated PopText collection structure, so your scene stays tidy no matter how many variations you generate

// get started

Installation

  1. Download the PopText .zip file (don't unzip it).

  2. In Blender: Edit > Preferences > Add-ons > Install..., select the zip.

  3. Enable PopText in the add-ons list.

  4. Restart Blender after this first install. For later updates, using Reload Scripts (Scripting workspace, or F3 > search "Reload Scripts") or toggling the add-on off/on in Preferences is enough, a full restart isn't required anymore.

Requires Blender 5.2 LTS or newer · no external dependencies, no Python packages to install
Currently a feature-complete beta (v0.14.x), not yet 1.0. Everything documented on this page works and has been tested through real use, see Known Limitations in the manual for the honest details on what's still getting real-world mileage.

Getting started

  1. Add a text object (Shift+A > Text) or select an existing one, and type your text.

  2. Open the sidebar in the 3D viewport (press N) and click the PopText tab.

  3. Click Add PopText.

Your text object (and its outline, once you enable one) is automatically moved into a PopText collection in the Outliner, keeping your scene organized. The panel is divided into collapsible sections. Click the arrow next to a section title to expand or collapse it.

// reference

The manual

Click a chapter to expand it. Your browser's find-in-page (Ctrl/Cmd+F) will search inside collapsed chapters too.

01Decoration

These settings apply directly to your text object and stay fully editable, so you can keep retyping the text and adjusting these values anytime.

Extrusion & Bevel

Depth
How far the text extrudes into 3D.
Bevel Depth / Bevel Resolution
Rounds the edges. Higher resolution = smoother rounding.
Dynamic Bevel
Turns the bevel amount into an animated driver instead of a fixed value, easing from 0 to your target amount over Bevel Animation Speed frames.

Outline

Enable Outline
Turns on a stroke/rim around each letter.
Outline Thickness
How far the outline extends outward.
Depth Scale
Scales the outline along the letter's depth axis, independent of its outward thickness. 1.0 is natural depth; lower values make a thinner sliver, higher values extend it further than the letter's own extrude depth.
Solid Outline
When off (default), the outline is an open, edge-hugging rim only. When on, it includes front/back caps for a fully closed, 3D-printable shape.
Outline Material
A separate material just for the outline.
Rebuild Outline
The outline updates automatically whenever you change these settings, but if you directly retype the text body in Edit Mode, click this to refresh it manually.

Outline 2

A second, fully independent outline layer with its own Thickness, Depth Scale, Solid Outline toggle, and material, for a double-stroke look. Two fixed layers, not an open-ended list, enough for a double or triple-stroke title without the extra UI a fully dynamic system would need.

Fill Material

Applies to the main body of the letters.

Advanced (collapsed by default)

Character Merge Overlap Threshold
Some rounded/geometric fonts (confirmed with Fredoka) draw a letter like lowercase "p" from two contours that don't share vertices, which can split it into two separate character objects, with the extra piece then linking to a neighbor's outline instead of its own. Lowering this threshold fixes that for a specific font, at the cost of being more likely to merge genuinely separate adjacent characters elsewhere, a real tradeoff, not a free fix. Saved per-object (and included in Presets), not a global setting.
Tip: if you rotate the original text object (e.g. to stand it upright instead of lying flat), decoration and later animation both correctly follow the new orientation, so you don't need to redo anything.
02Presets

At the top of the panel:

Save
Prompts for a name and stores your entire current PopText setup (decoration, pose, animation, material settings) to Blender's own preferences, so it's available in every .blend file, not just this one.
Load
Pick a saved preset from the dropdown and apply it to the selected text object.
Delete
Remove a saved preset you no longer need.
03Character Pivot

A single dropdown that affects everything that rotates a character: Text Pose, Start/End Rotation, and idle Jitter.

Baseline (default)
Pivot sits at the bottom of each letter, derived per line by clustering where most characters actually rest, not from each character's own bounding box.
Middle
Pivot sits at the vertical center.
Meanline
Pivot sits at the top of each letter, using the same per-line clustering as Baseline.
Set this once before generating a pose or animation. It's what keeps a whole word's rotation looking uniform instead of each letter spinning around a different point, since Baseline and Meanline are computed from where most letters in the line agree, not from a single letter's own quirks (a descender like "g" no longer pulls its own pivot lower than its neighbors).
04Text Pose

A static pose applied to a copy of your text. Your original stays untouched and editable.

  1. Expand the Text Pose section.
  2. Choose a Pose Style (see below).
  3. Adjust Position Amount and Rotation Amount. What each one controls depends on the style you picked (check the tooltip on each field for specifics).
  4. Scale Jitter always layers on top of any style, for a bit of size variation.
  5. Pose Seed: change this for a different random result. The same seed always reproduces the same pose.
  6. Click Apply Text Pose.

Pose styles

Random
Per-character random position/rotation jitter.
Arch
Characters follow a smile-shaped curve, each one rotating to lean naturally along it.
Wave
A repeating ripple; use Wave Frequency to control how many cycles run across the line.
Slant
A progressive diagonal shear, like an italic baseline.
Fast iteration: once a pose group exists, clicking Apply Text Pose again re-applies your changed settings directly to the same pieces instead of rebuilding from scratch. That's much faster than the first click, so feel free to nudge sliders and re-click repeatedly to dial in a look.

Multi-line text: each line poses independently. An Arch on a two-line block gives each line its own arch, not one arch spanning both lines.

05Idle Animation

Perpetual motion added after a character's reveal. It's driver-based, so it runs forever without needing to be baked or re-rendered if you extend your timeline.

  1. Expand Idle Animation and enable it.
  2. Choose a style (see below).
  3. Idle Speed / Idle Amount control the motion's speed and strength.
Float
Gentle vertical bob.
Pulse
Slow breathing scale.
Jitter
Small continuous rotational wobble.
Phase Stagger
0 moves every character in sync; higher values spread the motion into a traveling wave across the text.
06Animation In / Animation Out

These build the actual per-character reveal/exit animation, applied when you click Animate Characters. Both sections share the same structure, fully independent of each other:

Scale In/Out
Character grows from (or shrinks to) nothing. Optional Squash & Stretch overshoot.
Start/End Offset
Character starts (or ends) displaced from its position. Pick a Direction (Up/Down/Left/Right/Front/Back/Random) and a Distance. A live hint shows that distance as a percentage of the letter's own height.
Start/End Rotation
Character starts (or ends) rotated away from its final orientation. Pick an Axis (X/Y/Z/Random) and an Angle.
Interpolation / Easing
How the motion curves: Sine, Quad, Cubic, Back (overshoot), Bounce, Elastic, Constant (hard cut), or Linear, each paired with Ease In, Ease Out, or Ease In-Out.
Duration
How many frames the transition itself takes.
Reveal/Exit Order & timing
Left-to-right, right-to-left, center-outward, or random, plus Start Frame / Duration Per Character to control how many frames apart each character starts.

Preset dropdown (top of Animation In): a quick-load shortcut. Pick Pop In, Rise & Settle, Flip In, Slide In, Instant, Stretch In, or Explode → Assemble to fill in a sensible starting combination of the fields above, which you can then hand-tune freely.

Use Pose as Landing Position: when enabled, characters animate into a freshly generated Text Pose instead of a perfectly aligned position. This generates a new pose each time (not your hand-tweaked one from Text Pose). See Animate Characters below for how to reuse an existing pose instead.
07Material Animation

Independent of the position-based animation above. It covers fade, glow, and color effects, applied per target (Fill, Outline, Outline 2), each built from its own material but sharing the same underlying fade/glow/color-cycle logic since none of that depends on color.

Expand Material Animation and enable it. (This overrides Fill/Outline/Outline 2 Material above for the animated copy only. Your live original text is unaffected.)

Base Color
Set independently per target: Fill, Outline, and Outline 2 each keep their own color, pre-filled from whatever material they already had assigned.
Fade In / Fade Out
Each has its own Start Frame, Duration, Order, and Duration Per Character, fully independent of the position animation's timing. Shared across all targets.
Glow
Color and Strength, with an optional Pulse (its own Speed and Phase Stagger). Shared across all targets.
Color Cycle
A rainbow-cycling emission color; works on its own without needing Glow separately enabled. Has its own Speed and Phase Stagger too. Shared across all targets.
08Animate Characters

The large button at the bottom of the panel. This is the one action that bakes everything above (Animation In/Out, Idle, Material Animation, and optionally Text Pose) onto a new, separate copy of your text, named "Pop <your text>". Your original text object is never modified.

It automatically detects which mode to use:

  • If you've already run Apply Text Pose on this text and that pose group still exists, clicking Animate Characters animates those exact, possibly hand-tweaked pieces in place.
  • Otherwise, it generates a fresh set of pieces from your live text.

To go back to generating fresh (ignoring an old pose), delete that pose's Empty object in the Outliner. The next click will no longer find it and falls back automatically.

Each run creates its own new collection (inside the top-level PopText collection) so multiple attempts don't pile up in one place.

Hide Original After Animate/Pose (on by default): once a run succeeds, the original text's collection is automatically hidden from viewport and render, since the point of Animate Characters or Apply Text Pose is to produce a replacement, leaving the now-redundant original visible was usually just clutter. Turn it off if you want to compare the original against the result side by side.
09Known Limitations

PopText is actively developed, and these are real, currently-accepted tradeoffs, not things we're unaware of. Worth a read before relying on PopText for a specific font or workflow.

Outline generation on some typefaces

Outline growth happens per line, not per character, since there's no clean way to isolate one character's growth the way a blank line can isolate a whole line's.

  • At large thickness relative to letter spacing, two adjacent characters' outline geometry can touch and fuse into one mesh piece that can't be split apart afterward. PopText detects this and warns you (status bar + Info log) rather than silently producing a wrong result, but doesn't prevent it outright.
  • Some rounded/geometric fonts (confirmed with Fredoka) can split a letter into two separate character objects; the Character Merge Overlap Threshold (Advanced, in Decoration) can fix this per font, at the cost of being more likely to wrongly merge separate adjacent characters elsewhere.
  • A small number of spike/artifact faces can still appear on specific glyphs on certain typefaces. A defensive pass removes geometry that ends up implausibly far from where it should be, but since it works by deleting bad faces outright, it can leave a small gap rather than a fully closed surface, and rare borderline cases can slip past its threshold undetected.

Character Pivot is geometrically derived, not read from font data

Blender's font API doesn't expose real ascender/descender/x-height/cap-height metrics, so Baseline and Meanline are inferred by clustering where most characters in a line actually sit or top out. Falls back to a plain whole-line bounding box for very short lines or unusual letter composition (all-caps, all-descenders) where no clear majority can form.

Dot/accent regrouping isn't font-aware

Reuniting a loose mesh island with its base character (like the dot of "i" with its stem) is done by bounding-box overlap, not by understanding glyph structure. Can misfire on unusual fonts or extreme kerning.

Left-to-right text is the tested case

Character ordering (reveal/exit stagger, Text Pose shape progression) assumes left-to-right reading order. Right-to-left scripts and complex script shaping haven't been designed for or tested.

Material Animation builds its own materials

It can read a one-time starting color from your assigned material, but it can't preserve custom textures or a complex existing shader graph. Animating on top of arbitrary existing materials would mean editing a node graph we don't control, a deliberate scope decision, not an oversight.

Two outline layers, not an unbounded number

A deliberate design choice, covers a double or triple-stroke look without the UI complexity a fully dynamic system would need, not a technical ceiling, but worth knowing either way.

Non-uniform object scale + rotation

Can shear or skew, same as any Blender object. A general 3D limitation, not specific to PopText, but worth knowing given how much PopText leans on rotation. Apply non-uniform scale (Object > Apply > Scale) before decorating for predictable results.

PopText is a feature-complete beta (0.14.x), not yet 1.0. Everything documented here works and has been tested through real use, but the newest features have had one confirmed round of testing each, versus many rounds for older ones, so 1.0 is being held back deliberately until they get more real-world mileage.

// stuck on something?

Troubleshooting

Nothing happens when I click a button.

Make sure the text object itself is selected and active (not one of its generated pieces or the outline object).

Outline material/thickness doesn't update.

Click Rebuild Outline. This is needed after directly retyping text in Edit Mode, since that specific kind of edit doesn't trigger a live refresh automatically.

Just installed an update and something seems off.

Fully restart Blender rather than just toggling the add-on off and on.

Multi-line text and outlines/animation behaving oddly.

Multi-line support is handled per-line internally; if you hit an edge case, splitting the lines into separate text objects is a reliable fallback.

Ready to add PopText to your pipeline?

GPL-3.0-or-later. Blender 5.2 LTS or newer. No external dependencies. Everything ships in the extension.

Available on

Superhive is the new name for Blender Market.

Back to the manual ↑