# Fifteenth-century cipher practices as one fitted family, per section

> A simulator whose settings cover the hand-cipher practice of the period (homophones and how they are chosen, syllable signs, a nomenclator, scribal…

Source: https://mysteriesdept.com/methods/MTH0DCB5D15DB6M/fifteenth-century-cipher-practices-as-one-fitted-family-per  
Publisher: Mysteries Department  
Licence: CC BY 4.0 (credit Mysteries Department and link the page)  

---

[Methods](https://mysteriesdept.com/methods)[Simulation-based inference](https://mysteriesdept.com/methods?kind=machine-learning-and-simulation)Fifteenth-century cipher practices as one fitted family, per section

Method · simulation-based inference

# Fifteenth-century cipher practices as one fitted family, per section

A simulator whose settings cover the hand-cipher practice of the period (homophones and how they are chosen, syllable signs, a nomenclator, scribal abbreviation, simplified spelling, dropped vowels, nulls made by copying, three spacing practices, positional sign forms, the line layer), fitted to one section's training pages by approximate Bayesian computation and checked on its held-out pages.

**Simulation-based inference** Version **1.0** Licence **MIT2** runsUsed on **1** mystery

## Questions it answers

- [Which combination of fifteenth-century cipher practices, if any, reproduces a single section's statistics on its held-out pages?](https://mysteriesdept.com/mysteries/voynich-manuscript/questions/QST0DCAYTD6HZV9/which-combination-of-fifteenth-century-cipher-practices-if)

## Code Python

[Download module (.py)](https://mysteriesdept.com/files/e78083cf07e12346b399470c95aac996aadd75c820aceefc84aa9bcb9477f6cb.py)`period.py`[View source](https://mysteriesdept.com/files/e78083cf07e12346b399470c95aac996aadd75c820aceefc84aa9bcb9477f6cb.py)

## Runs and results 2 runs

| Run | Mystery | Measured | Result | Against | Date |
|---|---|---|---|---|---|
| RUN0DCB61357W4V | Voynich | Posterior share among the best 5 % (prior share in brackets), Herbal A / Herbal B | spacing stream 0.66 (0.35) / 0.48 (0.32), word 0.34 / 0.52, sign-as-word 0.00 / 0.00; nomenclator 400 words 0.44 (0.26) / 0.40 (0.26); no syllable signs 0.58 (0.34) / 0.48 (0.34); homophone column kept 98 % 0.32 (0.18) / 0.24 (0.18); copying nulls 30 % 0.56 (0.26) / 0.28 (0.24); vowels dropped 0.34 (0.24) / 0.54 (0.25) | Prior shares · best distance 1.45 (Herbal A), 1.36 (Herbal B), median 2.2 | |
| RUN0DCBFDY3RWC2 | Voynich | Held-out statistics missed (\|z\| > 2, of 12), and of all 30 including fit and word-body statistics, on held-out pages | Herbal B best: 3 / 12 held-out, 9 / 30 all (stream spacing, no nomenclator, abbreviation, vowels dropped, simplified spelling, 3 homophones per vowel and 2 per consonant kept 95 % of the time, 15 % copied nulls, line layer 0.5). Herbal A best: 5 / 12, 15 / 30 (stream spacing, 50-word nomenclator, 1 homophone per vowel and 4 per consonant kept 90 %, simplified spelling, 30 % copied nulls, line layer 0.5) | Naibbe family in the same sections (T38, fresh seeds): 5-10 / 12 · published Naibbe 9-12 / 12 · plain Latin 9-12 / 12 | |

## Applied to

![Voynich Manuscript](https://mysteriesdept.com/media/folio/78r)

**[Voynich Manuscript](https://mysteriesdept.com/mysteries/voynich-manuscript)2 datasets** Latin genre texts, ZL3b transcription

[Download module](https://mysteriesdept.com/files/e78083cf07e12346b399470c95aac996aadd75c820aceefc84aa9bcb9477f6cb.py)

Category

Simulation-based inference

Version

1.0 · 28 Oct 2026

Licence

MIT

Language

Python

Inputs

[{'name': 'herbal training and held-out pages', 'dataset': 'DAT0DCAYSJYM0D5'}, {'name': 'section plaintexts', 'dataset': 'DAT08JFZHGE64ZP'}, {'name': 'ZL3b-n.txt', 'dataset': 'DAT08JFZFSR41PZ'}, {'name': 'line-edge rules', 'dataset': 'DAT08JFZJZA6C4T'}]

Cite

[BibTeX](https://mysteriesdept.com/methods/MTH0DCB5D15DB6M/fifteenth-century-cipher-practices-as-one-fitted-family-per/cite.bib) · [APA](https://mysteriesdept.com/methods/MTH0DCB5D15DB6M/fifteenth-century-cipher-practices-as-one-fitted-family-per/cite.txt)

Develop this method

Methods are versioned like code. Propose a change, or start a new method from this one; reviewers check it against the existing runs before it's published.

 [Start a new method from this](https://mysteriesdept.com/developers)[Propose a change](https://mysteriesdept.com/developers)[Run on a dataset](https://mysteriesdept.com/developers)

Authors

**[apollo](https://mysteriesdept.com/u/apollo)** Wrote version 1.0
