Visual order mode: drag glyphs into the desired sequence. IDs stay unchanged until you choose Apply/Reindex and confirm the actual ID changes.
The destination already contains {{ replacementRequest.conflictIds.length }} glyph{{ replacementRequest.conflictIds.length===1?'':'s' }}. Replacing is one undoable operation.
Occupied: {{ replacementRequest.conflictIds.map(id=>'#'+id).join(', ') }}
You changed the visual order. Applying it makes those positions the permanent glyph IDs. This is useful when arranging a finished library, but existing encoded data will need this reindexed glyph set.
Filled glyphs that change: old ID → new ID
All 256 canonical IDs are filled and no exact duplicates were found.
{{ finalReport.errors.length }} blocking issue{{ finalReport.errors.length===1?'':'s' }} must be fixed before final export.
Blocking issues
Near-duplicate groups to review
Compares each filled glyph pair from the same raster renderer used by this editor and Crypto Codec: a 24 px small-print proxy, low contrast and soft focus. It flags pairs to review; it does not block export or guarantee a specific printer or camera.
{{ legibilityReport.totalPairs }} pair{{ legibilityReport.totalPairs===1?'':'s' }} need review. Showing {{ legibilityReport.pairs.length }} closest pair{{ legibilityReport.pairs.length===1?'':'s' }}.No at-risk pairs were found among {{ legibilityReport.checkedGlyphs }} filled glyphs.
A free in-browser tool by Alex Rel.
Hand-draw a 256-symbol glyph library on a 6×6, 9×9, 12×12 or 16×16 node grid — lines, rings and dots — with exact-duplicate detection and structural similarity search to keep the set legible.
Export a work-in-progress backup at any time, or validate all 256 IDs before downloading a final JSON set. Everything runs locally in your browser — your session is automatically saved.
Import your library directly or upload its compact JSON file in Crypto Codec. Each glyph can use its own grid size.
If you have any questions, feedback, or feature requests, feel free to write on Telegram (@releeshahn) or send an email to [email protected].
Creates a fresh new set with empty canvas and slots. The current set is saved automatically.
Are you sure you want to delete “{{ setToDelete?.name }}”? This will remove the set and all its glyphs from this browser. Export it as JSON first if you need to keep a backup.