|
Trait Generator 2.1.2
Personality traits from a weighted catalogue with conflicts, synergies and Big Five axes for C++23
|
Requires C++23 (e.g.,
-std=c++23for GCC/Clang,/std:c++latestfor MSVC).
API Reference · Usage Guide · Data and Method · Releases
Personality traits from a weighted catalogue with conflicts, synergies and Big Five axes.
include) and keep others out (exclude); the rest stay consistent with them.get_personality(request, seed) for reproducible results, and personality::seed() for replaying a previous generation with the same request and data.extend()), checked before they are applied.to_json() on every result, and a signature() recording the seed and the data it came from.DASMIG_TRAIT_EMBED to build the catalogue into the program, for WebAssembly and other builds without files.trtg instances with their own catalogue and random engine.traitgen.hpp is the library released here. Keep core.hpp and the core/ directory (dasmig-core) in the same directory. Add
to the files you want to use it in, and supply the resources folder (or define DASMIG_TRAIT_EMBED).
See the usage guide for extending the catalogue and the generation model in detail.
Generation always takes a trait_request: get_personality(request) or get_personality(request, seed). Its defaults are three traits with no inclusions or exclusions; no generation choices are stored on the generator. Data loading and catalogue layers remain instance-level.
Tested with:
-std=c++23)-std=c++23)/std:c++latest)| Dependency | Version | Bundled | Purpose |
|---|---|---|---|
| dasmig-core | 1.0 | Yes (core.hpp, core/) | Platform-independent random engine and distributions, data layers, JSON |
| Catch2 | 3.x | Yes (amalgamated) | Unit testing |
| Library | Description |
|---|---|
| address-generator | Postal addresses with real streets by place |
| biodata-generator | Procedural human physical characteristics |
| birth-generator | Demographically plausible birthdays |
| city-generator | Weighted city selection by population |
| country-generator | Weighted country selection by population |
| email-generator | Email addresses in each country's style |
| entity-generator | ECS-based entity generation |
| interest-generator | Religion, hobbies and favourite media by country, age and sex |
| name-generator | Culturally appropriate full names |
| nickname-generator | Gamer-style nicknames |
| occupation-generator | Employment status, education and occupation by country, age and sex |
| persona-generator | Complete characters composed from the other generators |
| phone-generator | Phone numbers valid in each country's numbering plan |
| user-generator | Complete user records: account, username, email, phone and address |
This library is released under the MIT License.