-
Notifications
You must be signed in to change notification settings - Fork 2
Home
Kevin Sacro edited this page Mar 31, 2023
·
18 revisions
- What is this?
- What is it used for?
- How are names generated?
- Let's get deep. What's a syllable?
- How does Syllabore model syllables?
- How does Syllabore generate names?
- Syllabore is a library for procedural text generation
- Syllabore is tailored for fantasy name generation
- It does not use pre-made lists of names, large language models, or generative AI services
- It can be embedded into a .NET app and used 100% offline
- Syllabore constructs syllables out of graphemes (ie. vowels and consonants)
- Then it sequences syllables into names
- A syllable consists of a
nucleus
and optionalonset
orcoda
- A syllable has the following form:
onset
-nucleus
-coda
- For example, 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 as
onset
-nucleus
-coda
, but with a different naming scheme - The name scheme is is:
leading consonant
-vowel
-trailing consonant
- While Syllabore uses the terms
vowels
andconsonants
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 calledleading consonant sequences
-
Syllabore also extends this concept to nucleuses and codas, so you will also see
vowel sequences
andtrailing 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 are 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 are 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 are 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).