Jeffrey M. Barber

Tombstone

lamancha i: the Skia game browser

Mar 2019 – Jul 2019 · age 37

What it was

A declarative XML scene-graph language in C#, drawn with SkiaSharp, meant to become a native browser for board games played across every screen in a room. Any attribute could come alive by ending in .E and holding a small Lisp-style expression over a JSON-shaped tree of variables, updated by merge patches. Animation nodes announced when they next needed a frame, so an idle scene cost nothing. Each document could carry its own tests, driving a virtual clock and scripted finger gestures. Undo was a stack of JSON deltas and a LAN browser listened for games over UDP. About 31,000 lines, most of them generated by a tool that was never kept. It was committed whole on one July day, beside the postmortem that ended it.

Wins, for the age

What it taught

Genealogy

Ancestors: GGPlus: widgets as scene-graph nodes loaded from a script. Goat: the dream of a board game on every screen in the room. Goat Lamancha: schema written as C#, generated language, attributes ending in .E. Descendants: Adama Core: documents that test themselves deterministically, and deltas as the unit of change. Lamancha II: lesson five, "use a programming language", executed. Part of: Lamancha.

Epitaph

Here lies a browser that knew when its next frame was due and could test itself with imaginary fingers. Its author wrote six lessons over its body, kept one, and went off to build a language.