Skip to content

Perkins

Tech stack: Go License: (see repo)

Perkins is a terminal pixel-art editor that draws with braille characters — eight dots per cell — to get sub-cell resolution inside an otherwise standard text grid. Input is a vim-motion + mouse hybrid; an in-app help overlay (?) is the canonical place to learn the bindings; and there’s a built-in image→ASCII path so the user can paste raster art straight in and edit it as braille pixels. It’s a small but pointed UX study in “how to break the cell grid without leaving it.”

  • Braille rendering for sub-cell resolution. A standard text cell is 8×8 (KN-86 logical) or 12×24 (physical); braille gives you a 2×4 sub-grid inside each cell. For KN-86 this is the right answer for:
    • CIPHER-LINE waveforms (oscilloscope / spectrum on the 256×64 OLED).
    • Sparklines inside the main 80×25 grid (e.g. battery curve, signal strength, reputation history).
    • Map / topography rendering on cart surfaces that need finer detail than one glyph per tile.
  • In-app help overlay (?). A single keypress brings up “here’s everything you can do here.” KN-86 has a context-sensitive TERM key, multiple modules, and per-surface bindings — a universal ? overlay would dramatically lower onboarding cost. Worth promoting to a runtime affordance, not a per-cart feature.
  • Image → ASCII conversion. Not a likely v1 KN-86 feature, but the idea (a sprite import pipeline that maps raster art into the CP437 + braille glyph budget) is a viable cart-author tool. Sits naturally next to the existing 8×8 glyph tooling.
  • Vim-motion + mouse hybrid. Mouse is irrelevant on KN-86 hardware, but the principle (“two muscle-memory inputs, neither forced”) translates: arrow keys + numpad-as-cursor for KN-86’s no-mouse environment.
  • Braille glyphs as drawing primitives. Each cell is treated as a 2×4 dot matrix; user presses paint a dot, not a cell.
  • ? opens a modal help layer. Discoverable, always available, doesn’t pollute the chrome.
  • Vim motions for navigation, mouse for direct placement. Power users keep their hands home; casual users point and click.
  • Braille mosaic as the canvas. Sub-cell pixel grid that still respects the underlying text-mode constraints.
  • Minimal chrome. The drawing area is the UI.

Perkins braille pixel-art editor with help overlay

The shot in place is the ? help-menu view — useful because it shows both the braille canvas (in the background) and the in-app help overlay pattern that’s the strongest borrowable affordance.

  • Braille rendering is the single biggest borrowable trick here. Worth a dedicated ADR or runtime-spec note: “Sub-cell rendering on KN-86 uses Unicode braille glyphs (U+2800–U+28FF) as a sanctioned escape hatch from the 8×8 / 12×24 cell.” Open question: which subset of glyphs ships in the Press Start 2P + CP437 font, and what gets layered in via the planned ~2000-glyph Unicode subset (software/api-reference/grammars/character-set.md).
  • A universal ? help overlay is a strong candidate firmware-internal feature alongside the Bare Deck Terminal and REPL. Cart authors register a help table; firmware composes them.
  • The image→ASCII conversion is mostly an authoring-tool inspiration — likely belongs in tools/ later (alongside tools/gen_font_12x24.py), not in the runtime.