What this is
A generator for graffiti tags, the names writers paint. It assembles candidates from phonetic blocks: starts like KR or SK, nuclei like A or AI, and endings like ZE or RK, following the syllable patterns each style prefers. No language model is involved anywhere. Give it a seed and it returns the same names every time, which is why every batch shows the seed it used.
The six styles
Each style weights patterns and blocks differently:
- Old school — 4 to 7 characters, classic 80s New York: KR and SK starts, ZE and X endings.
- Modern — 4 to 8, clean and readable, balanced vowels.
- Wildstyle — 6 to 10, long and dense, heavier on consonants.
- Tech — 4 to 7, sharp, leaning on X, K and Z.
- Minimal — 3 to 5, short, few clusters.
- Hardcore — 5 to 9, aggressive consonant stacks.
How candidates are filtered
Every candidate is checked against a dictionary of roughly 9,300 English words so you do not end up with an ordinary word, scanned against a blocklist of offensive substrings, and then scored. The letters K, Z and X earn points, and so do starts like KR, SK, TR and endings like ZE, SK or X. Three vowels in a row, or four stacked consonants, lose points. Anything below the style's threshold is discarded, which is what the rejected counter above is reporting.
Written in TypeScript with no runtime dependencies, MIT licensed. Source on GitHub.