UltraTextGen Research · Study 3 · Unicode text tools

Zalgo Generator Benchmark 2026: Testing Creative Control Across 13 Tools

We ran 13 Zalgo and corrupted-text generators through one procedure on September 29, 2026: the same ten inputs, the same fifteen creative tasks, and 3,774 captured outputs measured on one scale.

Main finding No generator led every dimension. Two of the 12 we could test let you shape corruption across a sentence; four could remove Zalgo; the three fastest to a copied result (Glyphy, FontCraft, Pixelied) have no intensity, placement or shape controls.

Published
Benchmark date
Version
1.1, updated
Evidence
Operated controls, read page code, measured outputs

Canonical URL: https://ultratextgen.com/research/zalgo-generator-benchmark/
UltraTextGen Research · Version 1.1 · Published September 29, 2026 · Updated September 30, 2026

What the benchmark found

  • 2 of 12

    tested generators let you shape corruption across a sentence

    UltraTextGen (6 progression shapes plus Uniform and Random, which combine with its other settings) and Textavia's Glitch Text Generator (11 fixed shape presets). Textavia's increase, decrease and peak presets followed their intended profile more closely; UltraTextGen's graded Valley fit better than Textavia's hard-edged Edges Only.

    Measured output Page code

  • 4 of 12

    can remove Zalgo from pasted text

    UltraTextGen, Zalgo.io, LingoJam and Zalgo.org. All four kept é and à typed the normal way, and all four stripped accents typed as a letter plus a separate accent mark.

    Operated in a browser

  • 2 clicks

    from page load to copied output on the fastest tools

    Glyphy, FontCraft, Pixelied, Zalgo.io and Textavia's Zalgo page needed 2 interactions. UltraTextGen needed 4: its sample text must be cleared, and on a 1280 × 800 screen the output sits below the fold.

    Operated in a browser

  • 5 of 12

    broke the 👁 emoji when adding marks

    LingoJam, Glyphy, Zalgo.org, PSD-Dude and Zalgo.io split the emoji in two, so the copied text shows a broken character.

    Measured output

Not tested in apps What these results do not show

Every result comes from the generator pages themselves. We did not paste output into Discord, X, Instagram or any other app, so nothing here says what survives on a platform. UltraTextGen publishes this study and is one of the 13 tools. The method was written before testing, and an automated AI reviewer checked the verdicts with tool names replaced by letters; the method document still named UltraTextGen as the subject, so that review was not fully blind. Read the limitations

Who is strongest where

Each row names the tested generator or generators the evidence supports, and nothing is summed into an overall score. These are the results as tested on September 29, 2026; version 1.1 shows what changed after UltraTextGen's update.

DimensionStrongest in the tested sampleBasis
Fastest to a copied resultGlyphy, FontCraft, Pixelied2 interactions, a useful result before you type, controls in the first screen on phone and desktop
Shape across the textUltraTextGen and Textavia Glitch Text GeneratorOnly two with shapes; Textavia fits slopes and peak more closely, UltraTextGen's shapes combine with its other settings and its graded Valley fits better
PlacementPSD-Dude; UltraTextGen for middle-onlyPSD-Dude alone sets a separate amount above, through and below; UltraTextGen alone has an amount-adjustable middle-only setting that measured 100% overlay marks
Mark type and coverageUltraTextGenOnly tested tool with a mark-family choice and a frequency control separate from the amount
Removing ZalgoUltraTextGen, Zalgo.io, LingoJam, Zalgo.orgAll four behaved the same on every accent test
Same result every timeZalgo.io; Coddy, FontCraft, PixeliedZalgo.io has a user toggle; the other three always repeat
Sharing a setupUltraTextGenOnly tested tool that saves settings in the URL; the random marks still change
Platform utilityUltraTextGen and Zalgo.ioUltraTextGen checks 4 platform limits live; Zalgo.io has a platform-safe intensity cap and output statistics
Preset selectionTextavia Glitch Text Generator55 ready-made styles, shown as result cards under "Category filters" once you type; at least 5 pairs give the same effect
Highest measured classic ceiling that holdsSymbolDB105 marks on one letter in Custom mode; Zalgo.org reached 528 but resets on the next keystroke
Text integrityUltraTextGen, Coddy, Textavia Glitch Text GeneratorEmoji intact, spaces left clean, no characters added
Measured output diversityNo defensible leaderAll 12 drew on 94 to 116 different marks

Where UltraTextGen performed strongly

  • UltraTextGen was the only tested generator with a choice of mark family (all, bars, letters, symbols, noise) and a frequency control that sets how many letters get marks, separate from how many marks each gets.
  • Of the 10 creative tasks that need no shape control, UltraTextGen directly produced 9, Textavia's Glitch Text Generator 8, and Zalgo.io, Coddy and PSD-Dude 7 each. Counting all 15, it was 14 against 13 for Textavia; the task list includes several effects UltraTextGen names as presets, which favours it.
  • UltraTextGen's Mid position is the only amount-adjustable middle-only setting that measured 100% overlay marks. The other adjustable middle modes measured 0% to 90%, because their "middle" lists also hold marks that sit above or below. It mixes five overlay marks, so it does not draw one clean strike line.
  • UltraTextGen was the only tested generator that saves text and settings in the page URL and the only one that checks the output against platform limits (Discord message, Discord nickname, X post and Instagram bio) as you type.

Where other generators performed strongly

  • Textavia's Glitch Text Generator tracked its intended increase, decrease and peak profiles more closely than UltraTextGen's equivalents (r 0.94 to 0.95 against 0.81 to 0.86), and it offers 55 presets.
  • Zalgo.io was the only tested generator with a "same result each time" toggle and a platform-safe cap (it limits intensity to 5: 7.4 instead of 26.6 marks per letter on Extreme). It reaches a copied result in 2 interactions, with its input, output and Copy button in the first desktop screen.
  • PSD-Dude was the only tested generator with a separate amount for marks above, through and below, and it offers an animated GIF export.
  • Coddy gives the same output for the same text and settings, even after a reload, and combines above, through and below freely.
  • Glyphy, FontCraft and Pixelied need no settings at all: type once and copy. FontCraft's 400 styles include 12 fixed Zalgo levels that repeat exactly.
  • SymbolDB reached 105 marks on one letter, the highest measured classic ceiling that held. UltraTextGen measured 92 with every position on (100 with one position, by its code).

Version 1.1: UltraTextGen after its update

The benchmark found gaps in UltraTextGen. On September 30, 2026 UltraTextGen shipped changes aimed at them, and we re-ran its test with the same browser procedure and scripts. The other 11 generators were not re-tested: their results are still those of September 29.

UltraTextGenSeptember 29 (1.0)September 30 (1.1)
Interactions to a copied result42
Output and Copy in the first desktop screenNo (output at about 1,400 px)Yes (output starts at 551 px of 800)
Text box in the first phone screenNoYes, with the Copy button; the output starts just below it (English page)
Same output from a shared linkSettings onlyExact output (a seed travels in the link)
Separate amount per zoneNoYes: above, through and below
Fit to a platform limitCheck onlyCheck, plus one tap to shrink the effect until it fits
Most classic marks on one letter92300 with one position, 272 with all (measured)
Thai Cascade depthUp to 150Up to 1,000, upward or downward, with a kaomoji carrier
Animated GIFNo (PNG image only)Yes, made in the browser
Multi-part emoji (flags, families)Split by marksKept whole

Shapes at 100% frequency

Version 1.0 could not test UltraTextGen's shapes at 100% frequency. Version 1.1 did. At 100%, every letter gets marks and only which marks is random, so each single output follows its shape as closely as the average: r 0.85 for Slope Up, Slope Down, Pyramid and Valley, and 0.91 for Steps. At the default 80% frequency, single outputs measured 0.37 to 0.52. Textavia's shape presets still fit better on average (0.94 to 0.95), while their single outputs measured about 0.60.

Decoders on other tools' output

Version 1.0 tested each decoder only on its own tool. Version 1.1 ran all 3,726 usable captured outputs through UltraTextGen's decoder and through the character ranges read in the other three decoders' page code. UltraTextGen's decoder left no combining mark in any output. The range Zalgo.io's code strips left marks in 3% of outputs, and the range LingoJam's and Zalgo.org's code strips left marks in 68%, because it stops at U+0361.

Decoding cannot restore letters a generator changed: Glyphy's underscores, PSD-Dude's added spaces and letter swaps, SymbolDB's symbol templates and FontCraft's dropped accents all survive every decoder.

What still favours other generators

  • Glyphy, FontCraft and Pixelied need no settings at all; UltraTextGen now matches their 2 interactions but shows far more controls.
  • Textavia's Glitch Text Generator offers 55 ready-made styles (result cards, not a menu) to UltraTextGen's 8 presets, and its averaged shape fit is closer.
  • Zalgo.io's "Consistent" toggle and PSD-Dude's per-zone sliders did the same jobs first; UltraTextGen now has equivalents, not unique features.
  • FontCraft's 400 styles include ready-made decorations no Zalgo engine produces.

The data behind this section is in the version 1.1 files under Data.

What the study asked and why

Research question. How much intentional control does each popular Zalgo generator give over the result, and what does its output measure like when every tool gets the same input?

Why. Zalgo generators look alike in search results and many pages claim "full control" or "50+ styles". We wanted to know which controls exist when you operate the page, not which ones the page copy lists. UltraTextGen builds one of these generators, so it is part of the sample and is tested the same way.

What counts as supported. A capability is supported only if the user can request it. Random output that happens to rise or peak does not count as a shape. A page claim with no working control is recorded as a claim, not a capability.

Which tools were tested and why

On September 29, 2026 we searched seven phrases on two web search indexes: zalgo text generator, zalgo generator, corrupted text generator, glitch text generator, cursed text generator, creepy text generator and demonic text generator. The selection rule was fixed before any tool was tested: keep every generator site that appeared for at least 3 of the 7 phrases, then add at most two with a stated reason.

GeneratorPage testedWhy includedStatus
Coddycoddy.tech glitch text generatorAppeared for 7 of 7 phrasesTested
LingoJamlingojam.com ZalgoText7 of 7Tested
Glyphyglyphy.io zalgo text7 of 7Tested
Creative Fabricacreativefabrica.com zalgo text generator7 of 7Blocked: a bot check returned HTTP 403 to every browser and request
Zalgo.orgzalgo.org5 of 7Tested
SymbolDBsymboldb.org zalgo generator5 of 7Tested
PSD-Dudepsd-dude.com zalgo text4 of 7Tested
FontCraftfontcraft.com zalgo text4 of 7Tested
Pixeliedpixelied.com glitch text3 of 7Tested
Textavia Zalgotextavia.com zalgoAdded: textavia.com appeared for 2 of 7 (one phrase per page); checked for a shape featureTested
Textavia Glitch Text Generatortextavia.com glitch text converterAdded during testing: the Textavia page that carries the shape presets, returned for corrupted text generatorTested
Zalgo.iozalgo.ioAdded: UltraTextGen's own page compared itself with Zalgo.io; 0 of 7 in this sampleTested
UltraTextGenultratextgen.com Zalgo textSubject of the studyTested

Results that were not generators (videos, TV listings, dictionaries) were left out; none of them reached 3 phrases. Sites that appeared for only 1 or 2 phrases (fsymbols, CodeShack, TextTrick, Monocalc, FontGenerator.org and others) were not tested. The exact addresses tested are in tools.csv, and every search result is in serp-sample.csv.

Capability results by generator

"No" means the full list of controls on the page was checked and the capability was absent. "Not found" means we looked and did not find it, which is weaker. "Partly" is explained in the capabilities data, one row per tool and capability with its evidence.

Capabilities found on each generator page on September 29, 2026. Creative Fabrica is not shown: it blocked every test.

CapabilityUltraTextGenZalgo.ioCoddyPSD-DudeTextavia Glitch Text GeneratorLingoJamZalgo.orgSymbolDBGlyphyFontCraftPixeliedTextavia Zalgo
Basic generation
Output updates as you typeYesYesYesYesYesYesYesYesYesYesYesYes
Regenerate buttonYesNoYesPartlyPartlyNoNoNoPartlyNoNoNo
Adjustable intensityYesYesYesYesPartlyYesPartlyYesPartlyPartlyPartlyYes
Placement
Above-only on requestYesYesYesYesYesNoNoYesNoPartlyPartlyNo
Below-only on requestYesYesYesYesYesNoNoPartlyNoPartlyPartlyNo
Middle-only (measured overlay share)Yes, 100% overlayPartly, 15%–16% overlayPartly, 73%–90% overlayPartly, 29%–32% overlayPartly, 16%–26% overlayFixed single markFixed single markNoNoFixed single markFixed single markNo
Any combination of zonesPartlyYesYesYesPartlyNoNoYesNoNoNoNo
Separate amount per zoneNoNoNoYesNoNoNoNoNoNoNoNo
Mark control
Choice of mark familyYesNoNoNoNoNoNoNoNoPartlyPartlyNo
Frequency separate from amountYesNoNoNoPartlyNoNoNoNoNoNoNo
Shape
Progression shapes6 + Uniform, Random; combinableNoNoNo11 fixed presetsNoNoNoNoNoNoNo
Presets
Presets or fixed styles744255NoNo5012 levels12 of 400 styles22 of 48 styles3 levels
Recoverability
Built-in decoderYesYesNoNoNoYesYesNoNoNoNoNo
Reproducibility
Same output againPartlyPartlyYesNoNoNoNoNoNoYesYesNo
"Same result" toggleNoYesNoNoNoNoNoNoNoNoNoNo
Settings saved in the URLYesNoNoNoNoNoNoNoNoNoNoNo
Platform utility
Output length shownYesYesNoNoNoNoNoNoNoNoNoYes
Platform limit checkYesNoNoNoNoNoNoNoNoNoNoNo
Platform-safe modeNoYesNoNoNoNoNoNoNoNoNoNo
Text integrity
👁 emoji survives generationYesNoYesNoYesNoNoYesNoYesYesYes
Extras
Image or GIF exportYesNoNoYesNoNoNoNoNoNoNoNo

Evidence behind each cell is one of: operated in a browser, read in the page's own code, or measured from captured output. Claims found only in page copy were never counted as capabilities.

Fifteen creative tasks

For each effect we asked: can a user produce it on request? Each verdict was checked against measured output where a measurement applies, such as the share of marks in the middle zone for "middle only".

Can the user produce each effect on request? Direct: a control or preset does it. Approx.: reachable with a stated limitation.

TaskUltraTextGenZalgo.ioCoddyPSD-DudeTextavia Glitch Text GeneratorLingoJamZalgo.orgSymbolDBGlyphyFontCraftPixeliedTextavia Zalgo
LightDirectDirectDirectDirectDirectDirectApprox.DirectDirectDirectDirectDirect
ExtremeDirectDirectDirectDirectDirectDirectApprox.DirectDirectDirectDirectDirect
Above onlyDirectDirectDirectDirectDirectNoNoDirectNoApprox.Approx.No
Below onlyDirectDirectDirectDirectDirectNoNoApprox.NoApprox.Approx.No
Middle onlyDirectApprox.Approx.Approx.Approx.Approx.Approx.NoNoApprox.Approx.No
Mostly readableDirectDirectDirectDirectDirectDirectApprox.DirectApprox.DirectDirectDirect
Dense, unreadableDirectDirectDirectDirectDirectDirectDirectDirectDirectDirectDirectDirect
Gradually increasingDirectNoNoNoDirectNoNoNoNoNoNoNo
Gradually decreasingDirectNoNoNoDirectNoNoNoNoNoNoNo
WaveDirectNoNoNoDirectNoNoNoNoNoNoNo
Middle peakDirectNoNoNoDirectNoNoNoNoNoNoNo
Middle valleyDirectNoNoNoDirectNoNoNoNoNoNoNo
StrikethroughApprox.Approx.Approx.Approx.Approx.Approx.Approx.NoNoDirectDirectNo
Tiny stackDirectApprox.Approx.Approx.DirectApprox.Approx.DirectApprox.DirectDirectApprox.
Roots (downward)DirectDirectDirectDirectDirectNoNoApprox.NoApprox.Approx.No
Direct, of 1514777134163664
Approx., of 15133323622441

Two verdicts are worth reading closely. UltraTextGen's strikethrough is "approximated": its Middle position mixes five overlay marks, while a one-mark strikethrough style such as FontCraft's or Pixelied's draws a clean line. And Zalgo.org's extreme result is "approximated" because its slider resets on the next keystroke.

How closely the shapes follow their promise

Two tools offer progression shapes, so we captured 20 outputs of a 100-character sentence for each shape and compared the marks on every letter with the shape's ideal profile.

A 100-character sentence with 81 letters and digits, 20 outputs per shape. r is the Pearson correlation with the ideal profile (1 = perfect fit, 0 = none). "Average profile": r of the 20 outputs averaged letter by letter. "Single output": the median r of the 20 outputs taken one at a time. UltraTextGen ran at its default 80% frequency; its replicate run is in brackets.

ShapeUltraTextGen optionr, average profiler, single outputTextavia Glitch presetr, average profiler, single output
Gradually increasingSlope Up0.86 (0.81)0.58 (0.53)Progressive0.940.61
Gradually decreasingSlope Down0.84 (0.83)0.51 (0.52)Decay0.950.60
Middle peakPyramid0.81 (0.82)0.53 (0.55)Center Focus0.950.61
Middle valleyValley0.75 (0.80)0.37 (0.37)Edges Only0.320.29
StepsSteps0.83 (0.82)0.38 (0.41)None found––

Averaged over 20 outputs, both tools implement what they promise. A single output is noisier on both, because each letter still gets a random number of marks: that is the result a user actually copies. Textavia's Edges Only is a hard edge on the first and last two letters rather than a graded valley, so it fits a valley poorly by design.

Waves. Both wave options repeat, and they are different waves. UltraTextGen's averaged profile has its dominant rhythm at 2 cycles across the text, where its other shapes peak at 1: two long swells, whatever the length. Textavia's repeats about every 6 letters (14 cycles), which shows more clearly in a single output.

Two cautions. The ideal valley and steps profiles match UltraTextGen's own formulas, so they favour its versions of those two shapes. And UltraTextGen ran at its default 80% frequency, which leaves about one letter in five unmarked and lowers its r; a run at 100% did not execute.

How they combine. UltraTextGen's shapes apply on top of any position, mark family, frequency and amount. Textavia's are fixed presets, each with its own marks and amount.

Output measurements

Every captured output was measured by one script. A mark is any Unicode combining mark; its zone (above, middle, below) comes from Unicode's combining class, not from each tool's own labels.

Default state, input "hello". Marks per letter: mean ± population standard deviation over the captured outputs. Zones use Unicode combining classes.

GeneratorOutputsMarks per letterAbove / middle / belowLength (UTF-16)Most classic marks on one letter, any setting tested
UltraTextGen204.56 ± 0.9050% / 17% / 33%27.892*
Zalgo.io208.03 ± 0.9644% / 5% / 51%45.149
Coddy203.37 ± 0.8343% / 13% / 44%21.918
PSD-Dude2016.05 ± 1.2347% / 3% / 50%155.339
Textavia Glitch Text Generator201.52 ± 0.25100% / 0% / 0%12.625
LingoJam2017.03 ± 2.4447% / 6% / 47%90.293
Zalgo.org2019.90 ± 3.0047% / 5% / 48%104.5528
SymbolDB206.79 ± 1.0952% / 0% / 48%39.0105
Glyphy201.52 ± 0.4453% / 5% / 42%12.850
FontCraft53.0067% / 0% / 33%20.046
Pixelied51.800% / 100% / 0%15.021
Textavia Zalgo203.90 ± 0.4050% / 0% / 50%24.515

* UltraTextGen: 92 with every position on, as measured. By its code, one position alone reaches 100 and the Steps shape up to 125 (not measured). Its separate Thai Cascade mode stacked 150 copies of one Thai tone mark, which this column does not count as classic marks.

  • Default strength varies 13-fold. On "hello", Glyphy's first card and Textavia's converter add about 1.5 marks per letter by default; Zalgo.org adds about 19.9.
  • Length is the cost. Every mark is a character. Zalgo.org's default "hello" averaged 104.5 UTF-16 units, over three times Discord's 32-character nickname limit.
  • Diversity is similar. Across all their captured outputs, every tested tool used between 94 and 116 different marks. That range also depends on how many settings each tool has, so it is not a ranking.
  • Text integrity differs. Glyphy's mark list includes a plain underscore, so 8 of 44 default outputs changed the text itself. PSD-Dude adds a space between letters by default. FontCraft removed the accents from "café déjà vu".

Ease of use, measured separately from power

Ease and control pull in opposite directions in this sample, so they are reported apart and never combined.

Interactions counted from page load; typing your text counts as one. Screens: 1280 × 800 desktop, 390 × 664 phone viewport. "Partly": only part of the generator is in the first screen.

GeneratorTo first Zalgo of your textTo copied outputUseful before you typeGenerator controls in first screen, desktopSame, phone
UltraTextGen34YesPartlyNo
Zalgo.io12NoPartlyPartly
Coddy23YesYesNo
PSD-Dude23YesYesPartly
Textavia Glitch Text Generator34YesPartlyUntested
LingoJam13NoYesYes
Zalgo.org13PartlyYesNo
SymbolDB23YesYesPartly
Glyphy12YesYesYes
FontCraft12YesYesYes
Pixelied12YesYesYes
Textavia Zalgo12NoPartlyPartly

UltraTextGen opens with "Hello World" already converted, so a result is ready before you type. To convert your own text you clear the sample, type, and on a 1280 × 800 screen scroll to the output, which starts about 1,400 pixels down the page. On a phone the text box itself starts below the first screen. That is the largest usability gap UltraTextGen showed in this benchmark.

How much intentional control each tool gives

We did not multiply slider positions into a number of "possible states". The controls are not independent (UltraTextGen's amount and shape both scale the same count), many settings look identical once rendered, and a big number would reward long sliders over useful ones. Instead we count seven independent axes a user can set on purpose. This model was built after the data was collected:

  1. amount of corruption,
  2. which zones get marks (above, middle, below),
  3. a separate amount per zone,
  4. which family of marks is used,
  5. how many letters are touched (frequency),
  6. how corruption changes along the text (shape),
  7. getting the same result again.
1 = a working control, 0.5 = partly (fixed styles, presets only, or a side effect), 0 = none. The total counts axes; it is not a quality score.
GeneratorAxes of control, of 7Which
UltraTextGen5.5amount, zones, mark family, frequency, shape, repeat result (partly)
Zalgo.io3amount, zones, repeat result
Coddy3amount, zones, repeat result
PSD-Dude3amount, zones, per-zone amount
FontCraft2.5amount (partly), zones (partly), mark family (partly), repeat result
Pixelied2.5amount (partly), zones (partly), mark family (partly), repeat result
Textavia Glitch Text Generator2amount (partly), zones (partly), frequency (partly), shape (partly)
SymbolDB2amount, zones
LingoJam1amount
Textavia Zalgo1amount
Zalgo.org0.5amount (partly)
Glyphy0.5amount (partly)

No tested generator had all seven. UltraTextGen covered 5.5, missing a per-zone amount (PSD-Dude has one) and a way to repeat an exact result (Zalgo.io, Coddy, FontCraft and Pixelied have one). The task results above measure the same question from the output side.

Page claims that did not hold

Pages were read as well as operated. These claims did not match what the page did on September 29, 2026. UltraTextGen's own page is included. Its claims below were corrected on its English page in the same release as this study. On its translated pages, the statements about other generators and the Extreme tooltip were corrected too; the translated intro, decoder and sharing text still carry some older wording about UltraTextGen itself until their next update.

  • UltraTextGen said Extreme gives "up to 100 marks a letter"; with the default Position All it gives 92, and 100 only with a single position. It said the decoder "strips every Unicode combining mark" and that decoding is lossless; it strips six mark ranges, and like every tested decoder it removes accents typed as a separate mark. It said a shared link opens your "exact configuration"; the settings return, but the random marks change.
  • SymbolDB lists "50+ unique styles". Measured, the 50 templates reduce to about four mark patterns, and templates named Top, Middle or Bottom place marks about half above and half below.
  • PSD-Dude calls Glitch Intensity the master Zalgo control; in the page code it only sets how often letters are swapped for look-alikes, and it did not change the marks.
  • Zalgo.org's slider shows one height, but every keystroke resets it to 17.
  • Zalgo.io's text describes a separate slider for each direction; the page has three on/off direction buttons and one intensity slider. Its "Middle" button measured 15% middle marks.
  • Coddy's intensity slider starts at 1, but in its code values from 1 to 12 add no marks; at 1, all 10 captured outputs were plain text.

Platform claims on every page, including UltraTextGen's, were recorded but not tested, because no output was pasted into an app.

Method

Environment. Chromium driven by Playwright 1.56, logged out, at 1280 × 800 and as an iPhone 13 profile (390 × 664 viewport). Each page was loaded live on September 29, 2026. Output was read from the page as text, never from a screenshot.

Planned before testing. The selection rule, the ten dimensions, the evidence types, the inputs, the fifteen tasks and the measurement definitions were written down before the first tool was tested. The method file was committed together with the first results, so that order rests on the session record. Eight amendments are recorded: Textavia counted as two tools, the phone viewport size, the shape-fidelity procedure, Creative Fabrica kept as untested, the text-integrity and extras rows, the control-axis model, the shape ideals and a record-keeping note. The text-integrity rows and the control-axis model were added after data collection.

Inputs. hello, HE COMES, something is watching me, 123456, café déjà vu, 👁 hello 👁, a 100-character sentence, a punctuation string, a string with runs of spaces, and a mixed-case string. 20 outputs of "hello" in each tool's default state (5 for FontCraft and Pixelied, which always repeat), 3 of every other input, and 5 to 10 per preset and per placement option.

Evidence types. Operated in a browser; read in the page's own code; measured from captured output. Page copy alone was recorded as a claim. When a cell needed a judgement, the rule was applied the same way to every tool, and each change a reviewer made is recorded in the data.

Measurement. Marks per letter counts combining marks on letters and digits. Zones use Unicode's canonical combining class: class 1 (overlay) is middle; classes 214, 216, 228, 230, 232 and 234 are above; 202, 218, 220, 222, 233 and 240 are below; any other mark, such as an enclosing mark or a Thai tone mark, counts as other. Length is UTF-16 code units, the count most text boxes and character counters report.

Review. After collection, an automated AI reviewer received the data with tool names replaced by letters and was asked for strengths by dimension, claims that should not be published, and a bias check. The method document still named UltraTextGen as the subject, so the review was not fully blind. It flagged that UltraTextGen led many dimensions and re-examined each lead against the data; the leads it did not uphold are not claimed here. Four more automated reviews then checked every number on this page against the data files.

Limitations

  • The publisher is in the sample. UltraTextGen runs this study and one of the tools. The method written before testing, the published data and the automated review reduce that bias; they do not remove it.
  • The task list favours rich generators. Several tasks (tiny stack, roots, strikethrough) are effects UltraTextGen names as presets. Tasks were judged by their output, not by the name of a control, but a different task list could rank tools differently.
  • One day, one sample. Pages change. Every result is dated September 29, 2026. Search results were read from two indexes, logged out and in the US; Google's own results page could not be read by the test browser.
  • Creative Fabrica is untested. Any "only tested generator" statement here covers 12 generators, not 13.
  • Version 1.1 re-tested only UltraTextGen. UltraTextGen fixed its own gaps after reading this study, and only its test was re-run, on its updated build served locally the day before release. Competitors may also have changed since September 29.
  • Deeper evidence for UltraTextGen. UltraTextGen's code was read from its source and run in a test harness as well as operated in the browser; competitors' code was read from their live pages. That surfaced UltraTextGen's own false claims, but it is an asymmetry.
  • Embed was not searched for off-page. UltraTextGen has an embed page; we did not look for embed options on other sites beyond each generator page, so no "only" claim is made about embedding.
  • One emoji. The emoji test used 👁, a single character. UltraTextGen's code also adds marks inside multi-part emoji such as flags and family sequences, which splits them; that was read in the code, not measured here.
  • No app testing. Nothing here says whether output survives Discord, X, Instagram or Roblox.
  • Small task samples. Creative-task verdicts rest on 2 to 3 outputs each plus the page's code; shape fidelity rests on 20 outputs per shape.
  • A replicate, not a variant. A second batch of UltraTextGen shape outputs was meant to run at 100% frequency; the setting did not apply, so it is published as a replicate at the default.

Data, samples and reproducibility

FileContentsSize
zalgo-generator-benchmark.pdfThe full study, version 1.1, printed from this page243 KB
capabilities.csvStart here: one row per generator and capability, with the result, value, evidence type and evidence134 KB
creative-tasks.csvThe 15 creative tasks for every generator, with how each was produced and the measured check47 KB
output-measurements.csvMeasured output per generator, input and setting: marks per letter, zones, unique marks, length136 KB
shape-fidelity.csvShape fit and wave test for the two generators with progression shapes3 KB
samples.jsonAll 3,774 captured outputs plus the 20-per-shape samples, exactly as each page produced them (split emoji halves stored as U+FFFD)1.6 MB
tools.csvThe 13 generators, the address tested, why each was included and whether it could be tested1 KB
serp-sample.csvEvery search result used to choose the sample: phrase, index, position, address, date20 KB
inputs.jsonThe ten standard inputs1 KB
measure.pyThe measurement script; rebuilds output-measurements.csv from samples.json5 KB
v1.1-ultratextgen-changes.csvVersion 1.1: every UltraTextGen capability that changed, before and after, with its evidence4 KB
v1.1-ultratextgen-samples.jsonVersion 1.1: 474 UltraTextGen outputs captured on September 30, 2026 with the same procedure178 KB
v1.1-shape-fidelity-ultratextgen.csvVersion 1.1: UltraTextGen shape fit at the default and at 100% frequency1 KB
v1.1-cross-decode.csvVersion 1.1: every tool's outputs through each decoder2 KB

To reproduce the output measurements, put measure.py, samples.json and inputs.json in one folder and run python3 measure.py (Python 3.9 or later, standard library only). It writes output-measurements.csv, byte-identical to the published file. The generators themselves change over time, so a new capture will differ from this one.

To use the generator this study tests, open the UltraTextGen Zalgo text generator. To choose between the tools by what you want to make, compare Zalgo generators by use case.

How to cite this study

UltraTextGen Research. “Zalgo Generator Benchmark 2026: Testing Creative Control Across 13 Tools.” Version 1.1, September 30, 2026. https://ultratextgen.com/research/zalgo-generator-benchmark/

Please cite the version number. A later version will keep this address and state what changed. Version 1.1 (September 30, 2026) added UltraTextGen's re-test, the 100% frequency shape run and the cross-tool decoder test; nothing else changed. Last updated September 30, 2026.