Markov Namegen is a Markov chain-based procedural name generator library and demo website written in Haxe.
Run the demo in your browser. It demonstrates the markov-namegen haxelib. Read the library docs here.
Features
- Hundreds of customizable/combinable training data presets.
- Configurable corpus, order and prior model parameter settings.
- Filter results by length, start, end, content and regex match.
- Sort by Damerau-Levenshtein distance to list results by similarity.
- Save and share custom data, settings and results with one click.
Usage
Run the demo to generate your own words. Press the "Generate" button to begin, or select "Settings" to configure advanced options.
For example, enter the settings:
Training Dataset: English Towns
Order: 5
Backoff: 1 (on)
Length: 8-12
Starts with: b
Include: ham
Similarity To: birmingham
Click the "Generate" button and the results will be displayed on the page. Here are my first 10 results when using the settings above:
Barkingham Basingham Birkenham Bebingham Bollingham Bridlingham Billenham Berwickham Botteringham Bradnincham
Screenshots
Here is the demo in action. Using a single data set:
Appending two presets:
Joining the individual words from two presets:
Demo Setup
To run the demo locally, clone the repository and run the following in your console within the root folder of the repository:
haxe MarkovNames.hxml
Then navigate to the bin directory and open index.html in a web browser to use the name generator.
Notes
- Many of the concepts used for the generator were suggested in this article by Jeffrey Lund.
- If you have any questions or suggestions then get in touch or open an issue.
- The embedded word lists are included in the name generator library repository.
- Read the documentation.
License
- The haxelib code is provided under the MIT license.
- The website and demo code are licensed under CC BY-NC.
- The noUiSlider settings sliders are WTFPL.