Workbench
Encipher, decipher and crib-test in your browser — and the full toolkit with its solvers.
Three small tools that run on the same engine as my toolkit (core.js, unchanged), plus
the full toolkit itself — the seven-phase decipher with its solver and key hunt, the transposition bench and the
string experiments.
The full toolkit
Seven-phase decipher
Transcribe, sequence, unwind the key motion, substitute, score against calibrated baselines in four languages, hunt the key space, and run a continuous auto-solve. Recipes, templates, sessions, crib and vowel tests.
Transposition bench
Apply a stated rule — columnar, double columnar, rail fence, routes, turning grille — and solve the result fairly. It never searches for a rule.
String experiments
Chain rearrangements (undo mirrored pairs, split at the dot…), unwind a moving key after them, and watch the invariants hold.
Encipher
Plaintext through the polar key with every key motion and glyph convention, with a round-trip verifier.
Each toolkit page is self-contained — styles, scripts and language models inlined — so the larger ones are several hundred kilobytes. Everything runs in your browser; nothing is sent anywhere. Archived first versions: snowflake.html (the original idea) and the first workbench.
Encipher
Letters not in the key are dropped and listed. With 87 kept letters the output is split 29 / 31 / 27 like the note.
Decipher — phases 1 to 4
Transcribe → sequence → unwind the key motion → substitute. The orientation χ² before unwinding is the test: a note written with a regularly turning key would already have flat direction counts (χ² around 7 on 7 df), and Dorabella's is 26.6. Unwinding a regular turn that was never there does the smearing instead — watch the χ² drop. For the solver, scoring and key hunt (phases 5–7), use the full decipher tool.
unwound cells (phase 3)
letters (phase 4)
To see the hand tries from [06]: transcription primary, key
snowflake fill, advance every symbol, step 1, forward or backward — the first line comes out
YDIAWGXF… / YAKDWIWC…. (The hand tries restarted the key at every line;
this tool runs straight through, so lines 2 and 3 differ.)
Crib pattern test
Does a word fit anywhere? A word's repeated letters must land on repeated glyphs, and its distinct letters on distinct glyphs — a hard constraint that needs no key and no solver. Runs on the resolved reading with a static key.
About the toolkit
- One engine. Every page shares
core.js;core.test.jsruns 4,049 assertions including 3,360 encipher/decipher round-trips across the whole symmetry group, and asserts that every glyph convention leaves the statistics bit-identical. - Fails loudly. A guard script paints a visible banner on any JavaScript error instead of leaving a dead button, and the build refuses to finish if a template placeholder survives — an unbuilt template being mistaken for a page was a real bug once.
- Checked like the lab. Sukhotin vowel detection and crib positions were checked byte-for-byte against the Python lab; the server's engine was checked against it on 4,107 transforms.
- Legible. The dark amber theme went through a WCAG contrast audit and a legibility pass (badge and table header sizes, visible edges) before it was finished.