typographical-errors or 'typos' are, now, inescapable in digital communication. fingers slide; focus wavers; messages get sent without resolving the red wavy lines underneath incorrectly spelled words. but at what point is a typo just too far off to be considered a typo?
this website produces a definitive list of acceptable typos for any given english-word, by considering characters one-position away from the root character on a qwerty-keyboard.
you can think of a keyboard as a 2-dimensional space, with each character in a word having atleast 1 neighbour, and a maximum of 8.
every second, my algorithm tries to generate a typo. to do so, it goes over each character & decides whether to replace it with a neighbour or not. initially, the probability to replace a character is very low. therefore, the typos are more believable.
however, as time progresses, the probability to change each character grows exponentially. therefore, the typos get wilder (yet acceptable, as they are only one 'hop' away from the character in the original word).
to make this a 'definitive' list, the algorithm keeps a list of all typos previously produced, and only spits out a typo if it wasn't produced earlier. when it runs out of possible typos, it exits with 'fin'.
all code is stored in this github repository.
lenin compress's brief of making a random walker in nature-of-code, spring 2026; daniel shiffman for writing the textbook; nonsense laboratory by allison parrish, tim szetela & jenny goldstick for the inspiration.