City Name Generator
Generate realistic fictional city names based on linguistic rules from 12+ cultural origins. Markov-chain syllable logic with phonotactic constraints.
About
Fictional city naming is a phonotactic problem. A name like "Velmoria" feels authentic because it follows Latin-Romance consonant-vowel alternation patterns. A name like "Xbrtfq" does not. This generator applies linguistic syllable-chaining rules drawn from 12 real cultural families - Germanic, Slavic, East Asian, Arabic, Celtic, and others - to produce names that pass the human ear test. Each generated name is scored for pronounceability using a CV-pattern ratio where the consonant cluster length c never exceeds the phonotactic maximum for the selected language family. Garbage output is filtered before display.
The tool is designed for writers, game designers, and worldbuilders who need volume without sacrificing plausibility. Generating 50 names per batch, filtered by origin and suffix pattern, replaces hours of manual brainstorming. Limitation: names are algorithmically plausible, not culturally vetted. A generated "Japanese-style" name follows Japanese phonotactics (mora structure, no final consonants except n) but is not guaranteed to carry appropriate meaning in Japanese.
Formulas
Each city name is constructed by chaining k syllables sampled from a culture-specific phoneme table. The syllable count is bounded:
Each syllable follows a pattern template P drawn from the culture's allowed set (e.g., CV, CVC, CCVC). A consonant cluster validity check enforces:
where Cmax is the culture-specific maximum consonant cluster length from the reference table. Pronounceability is scored by calculating the consonant-to-vowel ratio R:
Names with R > 3.0 are rejected as unpronounceable. The + 1 in the denominator prevents division by zero for vowel-less edge cases. Cultural suffixes are appended with probability psuffix = 0.6, drawn from the culture's suffix pool. The final name is title-cased and deduplicated against previously generated results in the current session.
Where k = number of syllables, P = syllable pattern template, Cmax = max consonant cluster for culture, R = pronounceability ratio, nconsonants = consonant count, nvowels = vowel count, psuffix = suffix application probability.
Reference Data
| Language Family | Typical Suffixes | Syllable Pattern | Max Consonant Cluster | Example Real Cities | Common Phonemes |
|---|---|---|---|---|---|
| Germanic | -burg, -heim, -feld, -stadt | CVC, CVCC | 3 | Hamburg, Mannheim | /x/, /ts/, /pf/ |
| Romance (Latin) | -ia, -ona, -ello, -enza | CV, CVC | 2 | Firenze, Valencia | /ɲ/, /ʎ/, /tʃ/ |
| Slavic | -grad, -ov, -sk, -ice | CCV, CCVC | 4 | Volgograd, Brno | /ʒ/, /ʂ/, /ts/ |
| Celtic | -wen, -dun, -aber, -llan | CVC, VC | 2 | Aberdeen, Llandudno | /θ/, /ð/, /x/ |
| Arabic | -abad, -stan, -iyya, -pur | CVC, CVCC | 2 | Islamabad, Riyadh | /ʕ/, /ħ/, /q/ |
| East Asian (JP) | -shi, -mura, -kawa, -yama | CV, CVN | 1 | Hiroshima, Yokohama | /ɾ/, /ɴ/ |
| East Asian (CN) | -zhou, -jing, -cheng, -shan | CV, CVC | 1 | Beijing, Hangzhou | /tɕ/, /ʂ/, /ɕ/ |
| Nordic | -fjord, -vik, -holm, -by | CVC, CVCC | 3 | Reykjavik, Stockholm | /j/, /ɡ/, /sk/ |
| African | -ongo, -anda, -ane, -osi | CV, CVCV | 2 | Kampala, Nairobi | /ŋ/, /ɓ/, /ɗ/ |
| Polynesian | -nui, -roa, -iti, -anga | CV, VCV | 1 | Honolulu, Apia | /ʔ/, /ŋ/, /ɾ/ |
| Mesoamerican | -tlan, -pan, -can, -mal | CVC, CVCCV | 2 | Tenochtitlan, Copán | /tɬ/, /ʃ/, /k/ |
| Fantasy (Generic) | -dor, -rath, -lyn, -mere | CVC, CV | 2 | Gondor, Rivendell | Mixed origins |
| Sci-Fi | -ax, -ion, -ex, -prime | CVC, VC | 2 | Coruscant, Arrakis | Hard stops, sibilants |
| Elvish/Tolkien | -iel, -ath, -nost, -wen | CV, CVC | 2 | Lothlórien, Gondolin | /l/, /ð/, /r/ |