-
Notifications
You must be signed in to change notification settings - Fork 2
Home
Syllabore is a fantasy name generator and class library, and does not use pre-made lists of names. Name generation is accomplished by generating syllables from vowel-consonant pools and sequencing them into names.
You can view syllables as consisting of a nucleus
with an optional onset
and a coda
, in the following form: onset
- nucleus
- coda
. The word github is composed of two syllables with the vowels 'i' and 'u' as the nuclei and the word breach, which is the same length, only has one syllable:
Syllabore models syllables the same way, but with a different naming scheme so it is easier to understand: leading consonant
- vowel
- trailing consonant
.
While Syllabore uses the terms vowels
and consonants
to refer to nucleuses, onsets, and codas, there is nothing that would prevent you from defining non-vowels as nucleuses or non-consonants as onsets and codas. By default, a syllable must have a vowel in Syllabore, but it is possible to configure syllable providers to generate syllables that have no vowels if that is what is desired.
Onset clusters are onsets with more than one consonant (eg. "tr"). In Syllabore, clusters are called sequences
and onset clusters are called leading consonant sequences
. Syllabore also extends this concept to nucleuses and codas, so you will also see vowel sequences
and trailing consonant sequences
.
Name generation is accomplished by first generating syllables from a pool of vowels and consonants, then structuring those syllables into names. There are three major components to a Syllabore name generator:
- Providers - used to provide randomly generated syllables. Internally they maintain a pool of nucleuses, onsets, codas, clusters, etc. which are used to construct syllables from scratch
- Transformers - an optional mechanism to randomly adjust or transform names during the generation process. This is useful in iterating or evolving a name by replacing syllables, swapping a vowel for another vowel, adding new components to the name, etc.
- Filters - an optional mechanism to validate syllable or letter sequences during name generation. A name generator will only output names that pass through its filter. This is useful in avoiding undesirable letter combinations and improve the quality of output
At the bare minimum, you need to define vowels (#1) for the name generator to work. Then you'll want to throw in a few consonants (#2) so the output resembles names. Everything else is optional (#3).