Most name generators work in one of two ways. Some pick from a big list of names. Others glue random syllables together. Lists repeat and run out; syllable-glue produces names that look fantasy-ish but mean nothing and often can't be said. Namewright does something closer to what real languages do. This page explains how.
1. One concept, one word
At the heart of the system is a shared list of about 140 concepts: star, moon, iron, wolf, oath, sorrow, bright, ancient and so on. Every tongue has exactly one root for each concept, and that root never changes. In Sylthae (our elven tongue) star is sael; in Dûrakh (our dwarven tongue) stone is dur; in Xarthic (our dragonborn tongue) dragon is vorax.
That consistency is what makes the names feel real. Two elves named for the moon share a sound. A clan's names echo each other. And because we always know which root went into a name, every name can be translated.
2. A sound system for each tongue
Each tongue has a phonology: the consonants it likes at the start of a syllable, the vowels it uses, the sounds it allows at the end, and how often each turns up. Sylthae leans on l, th, s and open vowels; Gruhk on g, gr, k and deep u and o sounds. Roots are derived from that phonology deterministically (the same tongue and concept always produce the same word), and a handful are hand-tuned so that key words sound right.
Human cultures are different. Rather than invent, we use genuine historical name-elements: Old English and Germanic (wulf, ethel, -ric, -hild), Old Irish and Welsh (bran, gwen, -wen), and Latin (stell, noct, -ifer), each with its real meaning.
3. Building a name
A name follows one of its tongue's patterns: root + root, root + gendered ending, or root + root + ending. The parts are chosen (optionally steered by a theme, a first letter or a length), then joined.
Joining is where most generators fail, and where ours does the most work. When two roots meet, the junction is repaired the way real languages repair it:
- Two identical sounds merge (sael + lirae → Saelirae).
- Clashing vowels either form an allowed diphthong, lose one vowel, or gain a gliding consonant, depending on the tongue.
- An unpronounceable consonant pile-up gets a linking vowel from that tongue's inventory.
4. Filtering
Every candidate then passes a set of checks before you see it:
- Pronounceability: no runs of more than three consonant sounds, no tripled letters, no stuttering repeats like "thethe", and a syllable limit per tongue.
- Immersion: no accidental English words. "Bosh", "Seen" and "Manor" are rejected.
- Decency: offensive strings are screened, word by word.
- Respect for other creators: famous fictional characters and sample names printed in official sourcebooks are excluded, and our tongues avoid Tolkien's invented vocabulary.
- Variety: no root may open more than two names in a batch, and names you have already seen in a session are not repeated.
5. Meaning and pronunciation
Because each part is known, the meaning is assembled from the glosses: an adjective and a noun read as "Bright star", two nouns as "Star-song". The pronunciation guide splits the name into syllables, respells each for English readers, and capitalises the stressed syllable according to the tongue's stress rule.
6. Testing
An automated suite generates 3,000 names for every people and checks uniqueness (above 97% of full names are distinct for every procedural tongue), length, cluster limits, the offensive and canon filters, and speed (about a millisecond per batch of twelve). It also confirms that a shared link reproduces exactly the same names, and that gender, first-letter, length and surname options are honoured.
Why it matters
A name with a meaning is a story prompt. A name you can pronounce gets used. A name that sounds like its siblings makes a world feel lived in. That is the whole idea.