Step 1: Grab 100 random words from Dickinson Latin Core Vocabulary.
Step 2: Split those words into phonetic prefix/midfix/suffix. Only keep the prefix and suffix.
Step 3: Pick 20 random prefix and suffix from that normalized list.
| Prefix | Suffix |
| men | sa |
| mag | nus |
| gra | na |
| cor | cor |
| mi | ror |
| de | les |
| mons | do |
| mu | cem |
| mo | da |
| nar | mons |
| me | rus |
| gens | dus |
| ma | ro |
| bo | uam |
| ca | ue |
| a | a |
| e | e |
| i | i |
| o | o |
| u | u |
Step 4: Create a list of vowels, a,e,i,o,u,y then, create a substitution table by shifting them one to the right.
Step 5: Create a list of random consonants then, create a substitution table by shifting them one to the right.
Step 6: Substitute those shifted vowels and consonants into your prefix and suffix table. Make sure to pick suffixes and prefixes that do not contain k, t, p or f.
| Shifted Prefix | Shifted Suffix |
| buq | go |
| boz | qag |
| zyo | qo |
| wiy | wiy |
| be | yiy |
| xu | dug |
| biqg | xi |
| ba | wub |
| bi | xo |
| qoy | biqg |
| bu | yag |
| zuqg | xag |
| bo | yi |
| ri | aob |
| wo | au |
| o | o |
| u | u |
| e | e |
| i | i |
| a | a |
Step 7: Combine your new prefixes and suffixes randomly in order to create words. Note, you can stack up to 3 prefixes onto a suffix.
Step 8: Insert a k, t, p or f into the first letter position of the first word and randomly into other words.
Step 9. See what your first test output looks like.
pbuqi aupa bkeo bowub i rii buua bazyoaob oiqo zyowogo uexag xu bozxag woixo babarixi woyiy ebue buqqag bia bkiwiy babiqg abiko baboyiy beyi zyodug ebawpiy eebaxo eobawub a uzyoyi ogo buxag buau ibozxag bozzyokego qoybee buuxi zyobebiqg woo bobouaob bau wokbuqbixo biqtag wkiyuwub yag rti zyobipqgqo xubodug zpyogo bebfebui.
kbebawiyau ewiy bebopbiqg bubobozau wiy buzyoku buqyag bozyiy euyiy exki uwtiy bozwub bobiqg be ewfiy beyag wobawkub btaeyag zuqgtwou u exuxi abibuqxakg ebiqgyi a baaob buqoyxo rikxo zuqgewub zuqgqag xugo bozwtiy axag biupbozau zuqgwiyxi exuwiy ou riqoyku ie bayiy ebozriwiy bobaxo o zuqgyi rioi ebiqgu biqgogfo boxi biqgykag zyoea ribiqgxo.
kbibiqgu bawub bteqo wofe bewoxag bexag etzyoxi ia wobiqg bozbpuqyag riyapg riexi bubewiy bozyi boukqag biwoyiy yiy zyowobexo bogfo abae bozbozau qoywub eqto aob bkozbuqxag zuqgwiy bizuqgoxi o ribuqtwiy bebeaob bozbabuxo riqo atu zyoau zuqgueyi xuau biupxo zyoo ubuqaxag buwowiy uribozwiy bobiqgu boubiqg xubozixag babeyiy qoybeeyiy buqxag biqgu zuqgeqfo eebuxi.
fbiqoywub xuxuxi biqgqo bebuqbiqg wopxag riyiy zyoxi boadug wto baaotb ria iabiqg wity xfubaqo u xag babiqag uboxuqag baiau qoybiqg i bekbuqyi e biabiqg wiybozwoa baxi biqgabae ebiqgqag iboqo qoyieqag wiyxo biqgibue owobiqg buqbadug zyoeadug biawou bobawub riqoydug e xurixo bayi riwfoeyag zyoyi biaxi rizyoqag aobiqag zuqgbekyiy xudug riboaob boufxo.
ICK! garbage.
Step 10: Restrict word lengths to 10 chars with an attempt to average around length 6.
Step 11: Create copy/mutate rules. 15% of words are created from the shifted prefix/suffix table or just the prefix or just the suffix. 30% are copies of words you've already put on the page. 50% are mutations of words by adding, deleting or swapping prefixes in words that have multiple prefixes. And the last 5% is just singletons.
Step 12: Check your new output.
fbozqo beqo i bozqo i bozqpo beaob babozqo beqo beqo beqo oaob beaob xubozqo ibeqo beqo xubozqo beqo qoybeqo woaob obeqo babozqo zyowoaob beaofb rikbeqo wiyu zyowoaob woaob wiyykag buwiy qoybeqo oribeqo a beqo bubeqo bozqo qoywiyyag zuqggko bfeoaob buqwoaob bozyiy woaob bebeoaob bibuwiy wiyte bibuwiy bibeqto ribuwiy btabeqo wobeqo.
twiydug zyowtoaob buwity beqo i beaob beaob btozqo aaob zyowoaob biqgaaob buqbofaob xuzyowoaob bebeqo zuqggo buqbiqkg bozwoaob e obeqo a ubeqo ebuwtiy wiyi bozbibeqo ebutwiy biqpgbeqo bawobeqo exfag uibeqo bkozqo wiyu beqo bepwiye ubikbeqo oaaob ufwiye woaob ufyiy abeaob woxo wiyyiy biqgqo aaaob bozwiydug ibeqo xuaaob buqbetaob bawifyyag biqgaaob zyowobkeqo.
kzyowoaob ebeqo oabeaob beqo buwiy xkuxi ibeqo oubeqo rkibaqo bozqo awoaob aaob biqgbeqo u obeqo beqo buqwtoaob buqwiyfi bozqo riwiy bfoi i bozkxo bezyoe bozaob iaaob beqo bei bozbezyoe biqgbeqo buqwoaob rixuqko ariwiy bibeqo bfexag uiqo buwoaob bowiyu exuqo bowiy uriqo opbozqo bozwiyi wifyxi i oxki iebuwiy woaob ebeaob iebuwiy.
twoaob qoyafob biqgwiy zyooubeqo bozbozxo wofaob oiebuwiy buquwiye bozqo bowiyu euibeqo woaob baobeqo riqpoybeqo exukqo buquwiye xuwkiyyag uqpag zyowoaob woyiy bobebeqpo bobuwiy ibowiyu buqwoaob bowiy boztaaob zuqggo iebuwiy xuaaob beqo iqoyaob qoykuriqo zyoyi iwiyu ibobau oribeqo woyag u btawobeqo zyou bkeaob boyag wiywiy bebei aobeqo qoybiqg biqgaaob zyoki bozpqo bozexuqo.
Much better!
Step 13: Substitute Latin characters for a cool looking alphabet you made up.
fbozqo beqo i bozqo i bozqpo beaob babozqo beqo beqo beqo oaob beaob xubozqo ibeqo beqo xubozqo beqo qoybeqo woaob obeqo babozqo zyowoaob beaofb rikbeqo wiyu zyowoaob woaob wiyykag buwiy qoybeqo oribeqo a beqo bubeqo bozqo qoywiyyag zuqggko bfeoaob buqwoaob bozyiy woaob bebeoaob bibuwiy wiyte bibuwiy bibeqto ribuwiy btabeqo wobeqo.
twiydug zyowtoaob buwity beqo i beaob beaob btozqo aaob zyowoaob biqgaaob buqbofaob xuzyowoaob bebeqo zuqggo buqbiqkg bozwoaob e obeqo a ubeqo ebuwtiy wiyi bozbibeqo ebutwiy biqpgbeqo bawobeqo exfag uibeqo bkozqo wiyu beqo bepwiye ubikbeqo oaaob ufwiye woaob ufyiy abeaob woxo wiyyiy biqgqo aaaob bozwiydug ibeqo xuaaob buqbetaob bawifyyag biqgaaob zyowobkeqo.
kzyowoaob ebeqo oabeaob beqo buwiy xkuxi ibeqo oubeqo rkibaqo bozqo awoaob aaob biqgbeqo u obeqo beqo buqwtoaob buqwiyfi bozqo riwiy bfoi i bozkxo bezyoe bozaob iaaob beqo bei bozbezyoe biqgbeqo buqwoaob rixuqko ariwiy bibeqo bfexag uiqo buwoaob bowiyu exuqo bowiy uriqo opbozqo bozwiyi wifyxi i oxki iebuwiy woaob ebeaob iebuwiy.
twoaob qoyafob biqgwiy zyooubeqo bozbozxo wofaob oiebuwiy buquwiye bozqo bowiyu euibeqo woaob baobeqo riqpoybeqo exukqo buquwiye xuwkiyyag uqpag zyowoaob woyiy bobebeqpo bobuwiy ibowiyu buqwoaob bowiy boztaaob zuqggo iebuwiy xuaaob beqo iqoyaob qoykuriqo zyoyi iwiyu ibobau oribeqo woyag u btawobeqo zyou bkeaob boyag wiywiy bebei aobeqo qoybiqg biqgaaob zyoki bozpqo bozexuqo.
Extra credit: Tweak the output as needed to make it look good and add some ambiguous illustrations.
Now, before you say it:
Do I really think this is how the Voynich was created?
No. Of course not.
BUT... I'm going to ask you to look over that output a bit closer. You are going to see a lot of 'linguistic' traits and Voynich traits. I know we're used to looking at Voynich and seeing it's patterns, but give it a shot.
Beqo. It gets repeated. Think daiin.
And you get words like ibeqo and obeqo and oubeqo without even really trying. Then woaob and beaob and bozaob and oaoab.
Think dain, ain, choldaiin, oldain.
Just sharing something I'm working on as a theory. I'm pretty well into it and as soon as I have something formalized I'll be sharing it as well.