Graffiti Name Generator
Procedural graffiti tags, no AI
Generate a tag ↗A writer picks a tag once and paints it for years, so the name has to be short, pronounceable, and not already a word in the dictionary. This generates candidates procedurally rather than asking a model for them: blocks are assembled into a name, filtered, and scored, which means the same seed always returns the same batch and a run of a hundred names finishes in milliseconds with nothing on the server side.
Six styles weight the patterns and the blocks differently, from minimal three-character tags to the long consonant stacks of wildstyle, and each one carries its own length defaults and scoring nudges. Everything that defines a style lives in JSON, so tuning one is editing weights rather than code.
The engine is a TypeScript library with no runtime dependencies that works the same in Node and in the browser. The same code backs a CLI and the web demo, where the selected tag is sprayed onto a concrete wall by a WebGL shader that handles the overspray, the drips, and the grain.
Assemble
Each style picks a syllable pattern such as CVC or CCVCC, then fills the slots from weighted phonetic blocks; starts like KR or SK, nuclei like A or AI, endings like ZE or RK.
Filter
Candidates are checked against roughly 9,300 English words so results are not ordinary words, scanned against a blocklist of offensive substrings, and rejected when they stack consonants outside the approved clusters.
Score
K, Z and X earn points, so do starts like KR, SK, TR and endings like ZE, SK or X. Three vowels in a row or four stacked consonants lose them, and anything below the style threshold is discarded.