FLESHNOTE / DOCS / NLP & INTELLIGENCE / NAME & PLACE GENERATORS

Name & Location Generators

PHONOLOGY

Technical specifications for FleshNote's procedural syllable phonology, cultural fantasy presets, real-world name databases, and multilingual geographical place name morphology.

Procedural Phonology Engine (`phonology.py`) #

FleshNote generates organic fantasy names by simulating natural phonetic phonotactics rather than randomly shuffling letters. The engine in backend/tools/name_gen/ configures:

  • Vowel & Consonant Frequencies: Weighted probability matrices defining onset consonants, nucleus vowels, and coda codas per syllable.
  • Phonotactic Constraints: Prevents unpronounceable consonant clusters (e.g. "bkzq") and allows custom apostrophe or hyphen insertion rules.
  • Fantasy Presets: Pre-tuned matrices for high fantasy cultures (Elven, Dwarven, Nordic, Eldritch, Cyberpunk, Orcish).

Real-World Historical Name Databases #

For real-world and historical fiction, FleshNote queries curated name databases stored in backend/tools/name_gen/data/real/:

Language / Culture Database File Size & Contents Status
Hungarian hungarian.csv 68 KB — Comprehensive historical and modern Hungarian given names and surnames. SUPPORTED
Polish polish.csv 21 KB — Curated Polish given names, patronymics, and surnames. SUPPORTED
English english.csv Classic Anglo-Saxon and contemporary English names. SUPPORTED
German / French / Other Missing Community contribution opportunity to supply cultural name databases. WANTED

Questionnaire-Driven Location Generator (`locations.py`) #

Rather than outputting generic random fantasy labels, FleshNote's Location Name Generator Modal (LocationNameGeneratorModal.jsx) queries the writer with 6 worldbuilding prompts and parses the answers through spaCy, NLTK WordNet, and language-specific morphological compilers:

Questionnaire Field Underlying Linguistic Extraction Synonym & NLP Handling
1. Geography
e.g. "snowy peaks with frozen waterfalls"
Extracts NOUN, PROPN, and ADJ tokens using spaCy POS tagging. Enriched ~50% with concrete WordNet synsets (excluding abstract/emotional definitions).
2. History
e.g. "site of the ancient dragon siege"
Extracts thematic nouns and event markers (e.g. war, siege, crown, ruin). Enriched with historical synonyms or language-specific thematic supplements.
3. Founder / Clan
e.g. "King Karoly" or "Eldrin"
Filters specifically for PROPN tokens. Strictly NO synonym enrichment — proper names are preserved intact for patronymic compounding.
4. Native Tongue
e.g. Conlang or foreign roots
Raw token split without grammatical mutation. Passed verbatim to preserve the author's custom constructed language roots.
5. Mythos
e.g. Ancient deities or constellations
Extracts celestial and mythological nouns. Enriched with mythic WordNet synsets.
6. Phonetic Drift (0–100%) Simulates historical sound change across centuries. Applies vowel elision, consonant softening, and letter contraction (mimicking real-world shifts like Eoforwic → York).

Per-Language Geographical Morphology (`location_langs/`) #

The extracted keywords are dispatched to the project's active story language compiler in backend/tools/name_gen/location_langs/:

1. English Compounding Rules (`en.py`)

Constructs names via Anglo-Saxon and Norse toponymic templates:

  • Settlement Suffixes: -stead, -haven, -ford, -vale, -mire, -reach, -gate, -burg.
  • Founder Templates: "Founder's Rest", "Founder's Ford", "Fort [Founder]".
  • Compound Synthesis: Combines geography adjectives + history nouns (e.g. "Frostvale", "Oldhaven", "Dragoncrest").

2. Hungarian Toponymic Rules (`hu.py`)

Implements authentic Hungarian settlement naming (földrajzi névtan) and vowel harmony agreement:

  • Settlement Suffixes: -vár (fortress), -falva (village), -háza (estate), -újváros (newtown), -szék (seat), -telep (settlement), -szállás (quarters).
  • Geographical Landmarks: -patak (creek), -hegy (mountain), -völgy (valley), -erdő (forest), -szirt (cliff), -bérc (peak), -tó (lake).
  • Thematic WordNet Supplements: When WordNet lacks Hungarian synonyms for fantasy terms (e.g. háború, sárkány, táltos, varázs), _HU_THEMATIC_SUPPLEMENTS injects curated historical alternatives (ostrom, küzdelem, fenevad, bestia, bűbáj).
  • Example Outputs: "Károlyfalva", "Sárkányvár", "Feketepatak", "Táltosbérc".

3. Polish Toponymic Rules (`pl.py`)

Follows Slavic geographical morphology with grammatical gender agreement:

  • Toponymic Suffixes: -ice, -ów, -góra, -wola, -dół, -no, -sk.
  • Adjective Gender Agreement: Inflects modifiers to match landmark gender (Masculine: -ski, Feminine: -ska, Neuter: -skie).
  • Example Outputs: "Smocza Góra", "Krakowiec", "Wilcza Wola", "Czarne Doły".
On This Page