Technical works
Jagger Papers
Project papers, implementation notes, and technical writeups for the systems, tools, and experiments that benefit from a slower, more detailed look.

OJaml: An OCaml-Inspired Language Compiled to WebAssembly
OJaml is an OCaml-inspired language and browser playground that combines local WebAssembly execution with compiler-backed editor feedback. A TypeScript compiler performs inference and static checking before lowering programs through a uniform i32 ABI. Heap closures and program-specific indirect-call types support first-class functions, while specialization preserves integer and floating-point behavior across the shared representation. Source spans and checked metadata supply diagnostics, completions, and hovers from the same implementation used for execution. The result is a browser-hosted language with a compact runtime; garbage collection, recoverable exceptions, file imports, and functors remain outside its scope.

LiveBoard: A Distributed Realtime Whiteboard With Durable Collaboration State
LiveBoard is a collaborative whiteboard designed to combine responsive editing with shared undo and durable recovery. It separates transient gesture previews from committed operations, which the backend serializes in PostgreSQL while deriving inverses from the affected state. Redis distributes room events, presence, and invalidation across backend replicas. Optimistic edits are reconciled using operation IDs, and revision gaps trigger snapshot recovery. This architecture supports live interaction without storing every pointer movement, while keeping history tied to committed state. Its centralized revision order provides shared undo but leaves offline merging and per-character collaborative text outside the current model.

Hearth: A Pleasantness-Constrained Saturation Device for Max for Live
Hearth is a Max for Live saturation device designed to add harmonic density while preserving transient definition and controlling glare. Its GenExpr core combines tube-style curvature, direction-dependent flux memory, and transient-gated bloom within an emphasis and compensation path. A slow, bounded Warmth Servo uses source-analysis proxies to moderate selected parameters, while a macro couples drive, tone, and character. Local anti-aliasing and limited memory state keep the design suited to low-latency processing. Wet/dry recordings illustrate the complete device’s response; the design remains a musical approximation rather than a detailed magnetic model or an automatic assessment of perceived warmth.

JaggerScript: A Browser-Runnable Typed Scripting Language
JaggerScript is a TypeScript implementation of a small object-oriented language with an explicit interpreter runtime and browser playground. PEG parsing is normalized into executable node structures, which operate on invocation frames, heap-backed instance scopes, and tracked receiver state. Construction, reference access, and mutation preserve those storage boundaries, while return and break propagate through distinct control signals. The playground combines parser diagnostics and lightweight declaration checks with runtime error reporting. The implementation exposes how class-based programs execute without delegating their semantics to JavaScript objects, but leaves complete static expression typing and features such as inheritance, closures, and asynchronous execution outside its scope.
AIXC: A Deterministic Predictor-Based Text Compression Format
AIXC investigates lossless compression with a predictor shared by encoder and decoder. It stores hit-or-miss decisions and residuals, advancing both sides with reconstructed source units to preserve identical context. Residual representation and section coding are independent of prediction, while a manifest records the decoding configuration. Reported LogHub experiments show the self-contained LZP profile is slower and larger than the best native codecs; trained-byte models reduce archive-only ratios to roughly 1.2–2.2%, excluding required model sidecars. The results favor evaluating model reuse across related archives rather than treating a small archive alone as evidence of lower total storage cost.

Genetic Algorithms in TypeScript: An Interactive Launch Optimizer
GeneticTS is an interactive genetic algorithm that searches for launch velocities in a two-dimensional physics scene. Each candidate runs in an isolated Matter.js world, with fitness based on closest approach for misses and arrival time for hits. Rank-biased selection, elite retention, blended offspring, mutation, and random resets balance retention with exploration. Stored trajectories drive playback and expose population diversity without rerunning evaluation. Seeded breeding supports repeatable comparisons, and sustained population hit rate determines solved status. The simulation makes adaptation after scene changes observable, while limiting the search to initial velocity and paying the cost of a fresh physics world for each candidate.

Rengine: A Compact TypeScript Rendering and Game Engine Experiment
Rengine is a two-dimensional rendering runtime built to make the relationship between scene state and rendered motion inspectable. Hierarchical transforms and ordered component updates produce engine state consumed by canvas and React renderers. A separate runtime snapshot exposes local and world transforms, component labels, and parent-child relationships without transferring ownership of live engine objects to the inspection UI. Sample scenes exercise nested motion, update ordering, and scheduling, with transform markers connecting rendered output to the state tree. The implementation provides an instrumented update-to-render path rather than a complete game engine, leaving assets, physics, collision, audio, and a retained editor format outside its scope.

TSXLight Renderer: Server-Owned TSX Component Rendering
TSXLight is a TSX framework that keeps component instances, state, and callbacks on the server while browser or Electron shells display generated HTML. A custom JSX factory feeds per-user renderers, and client events resolve through callback addresses scoped to the renderer, active page, and current view. Rerendering coordinates state mutation, registration replacement, and shell delivery; page transitions manage saved component state separately from callback lifetime. This model centralizes component behavior and state, with connection availability, event round trips, and full-view replacement as interaction costs. It suits controlled shells and internal tools more readily than rapid local interaction or offline use.