Name Lab
Name Lab is the Editor-facing tool for analyzing and generating names from Probability Director Name Models or inline N-Gram training data.
Unlike the chart-oriented Probability, Dice, and Distribution Lab views, the Name Lab does not fabricate a graph where a graph would not add meaningful information.
For Runtime Markov/Name semantics and public APIs, see MarkovAndNames.md.
1. Purpose
Section titled “1. Purpose”Use Name Lab to:
- Test N-Gram training.
- Test Weighted Syllable models.
- Analyze model validity.
- Compare authoring changes.
- Generate reproducible Fixed-Seed batches.
- Generate Secure batches.
- Generate explicit Keyed batches.
- Inspect names before using a model in gameplay.
- Export generated names/model metadata.
2. Main Workflow
Section titled “2. Main Workflow”1. Choose Model Source2. Configure generation method3. Analyze Model4. Choose Random Mode5. Set Names to Generate6. Generate Names7. Inspect indexed results8. Export CSV/Markdown3. Model Sources
Section titled “3. Model Sources”Name Lab supports:
- Runtime Name Model Asset.
- Inline Training.
Inline Training is intended for quick N-Gram experimentation.
A Runtime Name Model Asset is the normal reusable cooked gameplay asset.
4. Runtime Name Model Asset
Section titled “4. Runtime Name Model Asset”In Asset mode:
- Select a
UProbabilityNameModel. - The Lab reads its Generation Method.
- Method-specific controls appear.
- Purpose metadata may be shown in result/export summary.
The asset contains authored generation data, not gameplay RNG state.
5. Inline N-Gram Training
Section titled “5. Inline N-Gram Training”Inline training uses one training string per line.
Core rules remain:
- Outer whitespace trimmed.
- Empty-after-trim strings ignored.
- Case preserved.
- Punctuation preserved.
- Internal spaces preserved.
- Duplicate strings add frequency.
Inline mode uses the same approved bounded compile contract.
6. Generation Methods
Section titled “6. Generation Methods”Name Lab supports:
- N-Gram Markov.
- Weighted Syllables.
Method-specific controls are separate.
The UI should not reinterpret N-Gram values as Weighted Syllable values or vice versa.
7. N-Gram Authoring
Section titled “7. N-Gram Authoring”Important controls include:
- Training Strings / Asset source.
- Markov Order.
- Maximum Generated Characters.
- Names to Generate.
Markov Order:
1 ... 4Default:
28. Weighted Syllable Authoring
Section titled “8. Weighted Syllable Authoring”Controls include:
- Role.
- Syllable text.
- Weight.
- Add Syllable.
- Remove Syllable.
- Minimum Syllables.
- Maximum Syllables.
- Maximum Generated Characters.
- Names to Generate.
Roles:
- Single.
- Start.
- Middle.
- End.
9. Analyze Model
Section titled “9. Analyze Model”Analyze Model is pure.
It consumes no gameplay RNG and no Lab random Stream.
Use it to inspect:
- Model validity.
- Usable strings.
- State/transition counts.
- Exact role probabilities.
- Count distribution.
- Missing-role problems.
- Bound violations.
Analyze before blaming random generation for an invalid model.
10. Random Modes
Section titled “10. Random Modes”Name Lab supports:
- Fixed Seed.
- Secure.
- Keyed.
Every mode uses a transient Lab-owned standalone Probability Director context.
Name Lab has no gameplay stream selector; generation uses its own local experiment state.
11. Fixed Seed
Section titled “11. Fixed Seed”Fixed mode creates a fresh isolated Sequential context.
Equivalent:
- Model.
- Generation settings.
- Fixed Seed.
- Batch size.
reproduces the same compatible batch.
Use Fixed for:
- Debugging.
- Reproducible examples.
- Comparing model changes.
12. Secure
Section titled “12. Secure”Secure uses a fresh isolated Secure context.
Secure internal state is not exposed or persisted.
Use Secure to inspect ordinary unpredictable generated-name behavior.
Do not expect Secure export metadata to reproduce a batch.
13. Keyed
Section titled “13. Keyed”Keyed mode requires:
- Decision Key.
- Starting Occurrence.
For batch index i:
Occurrence = Starting Occurrence + iOverflow is checked before generation.
There is no hidden occurrence cursor.
14. Names to Generate
Section titled “14. Names to Generate”Bound:
1 ... 256Result order is preserved.
Duplicate names are valid.
The Lab does not automatically reroll duplicates.
15. Generation Isolation
Section titled “15. Generation Isolation”Each Generate Names action:
- Creates a Lab-owned standalone
UGameInstance. - Creates/resolves a Probability Director subsystem.
- Registers/uses the isolated generation context.
- Performs the bounded batch.
- Tears the context down.
Gameplay streams are not perturbed.
16. N-Gram Result Behavior
Section titled “16. N-Gram Result Behavior”A successful N-Gram name reaches learned natural termination.
If Maximum Generated Characters is reached first:
GenerationBoundReachedis reported.
The partial name is not silently accepted as success.
17. Weighted Syllable Result Behavior
Section titled “17. Weighted Syllable Result Behavior”Weighted Syllable generation follows the selected role structure.
If assembled length exceeds Maximum Generated Characters:
- Generation fails.
- No truncation.
- No hidden retry.
18. Results
Section titled “18. Results”Results show an indexed list.
Example:
1. Ana2. Ada3. Ava4. AnaSummary may include:
- Status.
- Generation Method.
- Model Source.
- Purpose.
- Markov Order where applicable.
- Requested count.
- Generated count.
- Random Mode.
- Safe Fixed/Keyed metadata.
- Keyed batch occurrence rule.
Secure output excludes recoverable Secure state.
19. Exports
Section titled “19. Exports”Name Lab supports:
- CSV.
- Markdown.
It intentionally does not export:
- PNG.
- SVG.
No blank chart is fabricated.
20. CSV
Section titled “20. CSV”CSV contains generated-name rows plus safe relevant metadata.
It should remain reconstructible as a textual result list, not as a fake probability graph.
21. Markdown
Section titled “21. Markdown”Markdown reports:
- Model configuration.
- Random mode.
- Requested/generated count.
- Generated names.
- Safe deterministic metadata where applicable.
Secure generator state is excluded.
22. No Gameplay Stream Selector
Section titled “22. No Gameplay Stream Selector”Name Lab generation is isolated.
Name Lab generates names in local experiment state and does not use a gameplay Runtime Stream.
For gameplay Stream generation, use the Runtime Name APIs.
23. Bounds
Section titled “23. Bounds”| Item | Limit |
|---|---|
| Training strings | 2,048 |
| Training string length | 128 UTF-16 units |
| Markov states | 4,096 |
| Markov transitions | 16,384 |
| Markov Order | 1–4 |
| Generated characters | 1–128 |
| Names to Generate | 1–256 |
| Syllable count | 1–8 |
Exceeding a bound returns structured failure.
24. Tooltips
Section titled “24. Tooltips”Name Lab tooltips should explain:
- Model Source.
- Name Model Asset.
- Training Strings.
- Markov Order.
- Maximum Generated Characters.
- Names to Generate.
- Random Mode.
- Fixed Seed.
- Decision Key.
- Occurrence.
- Analyze Model.
- Generate Names.
- Weighted Syllable Role.
- Syllable.
- Weight.
- Add/Remove Syllable.
- Minimum/Maximum Syllables.
Tooltips should explain purpose and dependency, not merely restate labels.
25. State Preservation
Section titled “25. State Preservation”Switching method/source preserves unrelated authored values where appropriate.
Dependent controls appear/disappear based on semantic availability.
No hidden conversion occurs between the two generation models.
26. Failure Handling
Section titled “26. Failure Handling”Common visible failures:
- Empty model.
- Invalid training corpus.
- Invalid Markov Order.
- State/transition bounds.
- Invalid syllable entry.
- Missing role.
- Weight overflow.
- Invalid syllable range.
- Generation length bound.
- Batch count out of range.
- Keyed occurrence overflow.
- Model method mismatch.
The Lab reports failure instead of retrying behind the user’s back.
27. Recommended Workflows
Section titled “27. Recommended Workflows”Tune an N-Gram corpus
Section titled “Tune an N-Gram corpus”Inline Training-> enter strings-> Analyze Model-> Fixed Seed-> Generate Names-> edit corpus-> Analyze/Generate againValidate an asset
Section titled “Validate an asset”Model Source = Asset-> select model-> Analyze-> test Fixed-> test Secure-> test KeyedCheck Keyed stability
Section titled “Check Keyed stability”Keyed-> fixed Decision Key-> Starting Occurrence = 0-> Generate-> repeat-> compare deterministic batch28. Common Mistakes
Section titled “28. Common Mistakes”Expecting Secure to reproduce
Section titled “Expecting Secure to reproduce”Use Fixed or Keyed.
Expecting duplicate removal
Section titled “Expecting duplicate removal”Duplicates are valid outcomes.
Expecting max-length truncation to count as success
Section titled “Expecting max-length truncation to count as success”It does not.
Treating Lab output as gameplay-stream evidence
Section titled “Treating Lab output as gameplay-stream evidence”Lab generation is isolated.
Expecting automatic syllabification
Section titled “Expecting automatic syllabification”Weighted Syllables uses explicit authored units.
29. Quick Reference
Section titled “29. Quick Reference”Analyze Model = pure, no RNG
Fixed Seed = isolated reproducible batch
Secure = isolated unpredictable batch
Keyed = explicit DecisionKey/Occurrence batch
Names to Generate = 1..256
Exports = CSV + Markdown
PNG/SVG = intentionally unsupported