08-04-2026, 06:54 PM
I’ve been trying to build a very simple generative model that reproduces some of the statistical properties of the Voynich text. The idea is not to decode anything, just to see how far a local generative mechanism can go.
The current version mixes a few ingredients. It copies and mutates recent tokens, occasionally samples from globally compatible “families” of words, and adds a small amount of controlled innovation. It also reuses the real line and paragraph structure, so positional effects are not invented but inherited from the manuscript.
Below is a comparison between the Voynich (EVA) and the generated text after mapping from CUVA back to EVA:
At this point the model already reproduces quite well the global shape of the text. Entropy values are close, repetition rate is correct, and line-level constraints such as initial glyph bias and paragraph behavior are largely captured. In other words, a combination of local memory and positional constraints already explains a good part of the surface structure.
Where it still fails is in the lexical field. The vocabulary is too small, the proportion of hapax is far too low, and the overall Levenshtein connectivity is weaker than in the Voynich. The generated text either reuses forms too much or creates new ones that are not well integrated into the dense network of similar words.
The next step I’m working on is to push “controlled innovation” further. The goal is to generate more new word forms, but not arbitrarily. They need to remain close to existing families and land in regions of the space that are already dense. The Voynich seems to combine constant novelty with strong local similarity, and that balance is exactly what the current model still misses.
I will keep you informed.
The current version mixes a few ingredients. It copies and mutates recent tokens, occasionally samples from globally compatible “families” of words, and adds a small amount of controlled innovation. It also reuses the real line and paragraph structure, so positional effects are not invented but inherited from the manuscript.
Below is a comparison between the Voynich (EVA) and the generated text after mapping from CUVA back to EVA:
| Feature | Voynich | Generated |
|---|---|---|
| tokens | 38262 | 38111 |
| types | 8743 | 6882 |
| type_token_ratio | 0.2285 | 0.1806 |
| hapax_share_types | 0.7195 | 0.2448 |
| mean_word_len | 5.0898 | 5.7704 |
| repeat_rate | 0.0077 | 0.0079 |
| H1_char | 3.8892 | 3.8852 |
| H2_char | 3.1339 | 3.2351 |
| H3_char | 2.7986 | 2.9418 |
| H_conditional | 2.3786 | 2.5850 |
| line_initial_len_delta | 0.3876 | 0.6570 |
| line_start_js | 0.2813 | 0.2443 |
| line_end_js | 0.4557 | 0.4120 |
| line_initial_gallows | 0.5447 | 0.7137 |
| paragraph_initial_gallows | 0.9176 | 0.8541 |
| global_density_lev2 | 0.0700 | 0.0364 |
| local_density_lev2 | 0.1046 | 0.0546 |
| gap_local_global | 0.0346 | 0.0182 |
At this point the model already reproduces quite well the global shape of the text. Entropy values are close, repetition rate is correct, and line-level constraints such as initial glyph bias and paragraph behavior are largely captured. In other words, a combination of local memory and positional constraints already explains a good part of the surface structure.
Where it still fails is in the lexical field. The vocabulary is too small, the proportion of hapax is far too low, and the overall Levenshtein connectivity is weaker than in the Voynich. The generated text either reuses forms too much or creates new ones that are not well integrated into the dense network of similar words.
The next step I’m working on is to push “controlled innovation” further. The goal is to generate more new word forms, but not arbitrarily. They need to remain close to existing families and land in regions of the space that are already dense. The Voynich seems to combine constant novelty with strong local similarity, and that balance is exactly what the current model still misses.
I will keep you informed.


![[+]](https://www.voynich.ninja/images/collapse_collapsed.png)