lopecode

Lopecode

image

Lopecode is a web-based modable programming environment where a small microkernel core defines minimal features to enable live coding applications to be built.

The kernel has no UI and defines programming mechanisms for

  1. reactive dataflow programming model
  2. hot code swapping
  3. modules

Everything else is implemented in userspace, including code editors and a multi-notebook UI which can be live edited. There is no external source code, instead the runtime itself is decompiled on demand, according to a runtime-is-the-source-of-truth principle.

One userspace module, the Exporter, can self-serialize the entire runtime to a single HTML file, so you can use it offline from the local filesystem. There are no dependencies other than a web browser.

Table of Contents

Browse all notebooks at the Lopebook Gallery.

Getting Started

Notebook Description
Blank Notebook Start here — a fresh notebook with links to guides and resources
Tour of Lopecode Interactive introduction to lopecode and what you can build
Vision Statement The endgoal explained — itself a hackable lopebook
How the Observable Runtime Works Living documentation on the underlying runtime

Applications

Notebook Description
RISC-V Linux SBC Browser-based RV32IMA emulator that boots Linux 6.1 with BusyBox shell
ATProto Comments Read-only Bluesky comments widget — fetches and displays AT Protocol post threads
Notes Offline notetaking app using Dexie.js, with detailed technical design
Audio Sequencer Non-trivial application with persistent runtime state
Circular Barcode Simulator Simplifying pose estimation with circular barcodes
Fast 1D Circular Barcode Matching Barcode matching via the Mobius transform
SARS-CoV-2 Analytics Natural selection analysis of SARS-CoV-2
Unaggregating CloudWatch Metrics AWS CloudWatch metric unaggregation

Platform Modules

Notebook Description
Exporter 2 Single-file serializer — self-exports the runtime to HTML
Editor 5 Reactive userspace cell editor (CodeMirror-based)
Lopepage Multi-notebook split-pane UI layout
Lopepage URLs URL DSL for lopepage layouts
Module Selection Explorer for composing modules into notebooks
Jumpgate Transforms Observable notebooks to lopecode
Local Change History Persistent local change tracking
Secrets AES-256-GCM encrypted key-value storage in notebook source code

Developer Tools

Notebook Description
Atlas Runtime overview visualization
Debugger Notebook dataflow debugger (ndd)
Cell Map Maps reactive variables to notebook cells, grouped by module
Reactive Reflective Testing Reactive testing framework for lopebooks
Notebook Semantics Test notebook for runtime semantics
Dataflow Templating Dynamic dataflow templating — function-like semantics for dataflow
Spectral Layout Minimize crossings with spectral circular graph layout

AI Collaboration

Notebook Description
Claude Code Pairing Claude Code notebook collaboration
Roboco-op 2.1 AI notebook collaborator
Roboco-op 3 Agents-as-functions

Experiments

Notebook Description
Editable Markdown Inline editable markdown
Direct Manipulation Plot Direct manipulation for plots
My Lopebooks Personal lopebooks index
Compile Zig Zig compiler running in-browser via WASM — fully offline

Feel free to open discussions and bugs in the Github repository