Projects
-
WebMCP Text Editor
A Monaco-based text editor driven entirely by external AI agents through WebMCP—no in-page chat. Registers ~20 tools on navigator.modelContext covering editor read/edit/write, workspace document CRUD, search, skill discovery, and sub-agent delegation. Proposed changes appear as inline diffs with Accept/Reject controls; document mutations require modal approval.
Links:
-
Cobweb
A browser-based MicroPython IDE — plug in a microcontroller, open the page, and write code with no installs, drivers, or extensions. Features a Python editor (CodeMirror 6), a live REPL over Web Serial, a device filesystem browser, and an optional AI coding assistant powered by Google Gemini via the MAST AI library. Installable as a PWA.
Links:
-
Agent Text Editor
A React SPA with a Monaco editor where a Gemini AI agent can read and modify your document via structured tools (read, edit, write), powered by the MAST AI library for client-side agent orchestration. Every AI-proposed change is shown as a diff requiring explicit approval before being applied, with an Approve All mode for unattended bulk edits.
Links:
-
WebMCP Analytics Dashboard
A React analytics dashboard that demonstrates WebMCP, the browser API that lets AI agents call semantic tools registered by the frontend via navigator.modelContext. A single query tool accepts filters, aggregation, and chart type atomically—letting an AI agent slice web server log data by status, method, path, country, and more, with results visualised as bar, line, or table charts.
Links:
-
WebMCP Factory Orchestrator
A Factorio-inspired factory simulation that demonstrates AI skills as self-loading protocols via the WebMCP API. An AI agent manufactures an Electric Motor by invoking skill tools that return step-by-step protocols, letting the agent's action sequence emerge from current state rather than hardcoded logic—including an emergency salvage path when raw materials run low.
Links:
-
WebMCP Rocket Launcher
A rocket launch control panel demo that showcases the WebMCP API, where an AI agent progresses the rocket through a state machine (IDLE → DIAGNOSTICS → FUELED → PREPARED → LAUNCHED) by calling structured tools via navigator.modelContext. Supports both static and dynamic tool registration modes, with all logic running entirely in the browser.
Links:
-
WebMCP Maze
A maze escape game controlled entirely through natural language prompts to a browser-based AI agent—no keyboard or mouse. The game exposes tools (look, move, pickup, drop, use) via navigator.modelContext using the WebMCP API, and the maze is procedurally generated with a recursive backtracker algorithm. Rendered with PixiJS.
Links:
-
WebMCP Travel
A React flight search app that demonstrates WebMCP integration, exposing structured tools—searchFlights, listFlights, setFilters, and resetFilters—to AI agents via navigator.modelContext, enabling programmatic control of the UI without any server-side component.
Links:
-
Flyby
A flight search demo that uses Chrome's built-in Prompt API (Gemini Nano) to convert natural language and voice queries into structured filter configurations—price ranges, airports, airlines, and stops—running entirely on-device without sending data to a server.
Links:
-
Toxicity Classification Demo (ONNX)
A web demo that classifies text for toxicity across six categories—toxic, severe toxic, obscene, threat, insult, and identity hate—using a custom model trained in PyTorch, exported to ONNX, and running entirely in the browser. Text embeddings are generated client-side with Hugging Face Transformers.js (all-MiniLM-L6-v2) and inference is performed with ONNX Runtime Web, with both models totalling under 5MB.
Links:
-
Toxicity Classification Demo (TFLite)
A web demo that classifies text for toxicity across six categories—toxic, severe toxic, obscene, threat, insult, and identity hate—using a custom model trained in PyTorch, converted to TFLite (LiteRT), and running entirely in the browser. Feature embeddings are generated client-side with Hugging Face Transformers.js and inference is performed with TensorFlow Lite for Web.
Links:
-
Temperature, Top-K and Top-P visualization
A visualization of how the sampling parameters, temperature, top-k and top-p affects the choice for the next token in Large Language Models. This visualization shows the probabilities for the top 10 most likely next tokens for the selected prompt.
Links:
-
Doom Fire
An implementation of the fire effect of the PSX version of Doom, as documented by Fabien Sanglard, in JavaScript. The code uses an OffscreenCanvas when supported.
Links:
-
ADB Screenrecord
A tool to take screenshots and record videos from Android devices, using an implementation of the ADB protocol with WebUSB.
Links:
-
PM5 Rowing Monitor
Connect to a Concept2 / PM5 Monitor to track exercises on a rowing machine, using Web Bluetooth.
Links:
-
Wavy
A Wave Function Collapse demo using an OffscreenCanvas.
Links:
-
Bomberjack JS
A homage to Bomb Jack, implemented in JavaScript + WebGPU, as described in the Wireframe Magazine #59.
Links:
-
Raspberry Pi Pico LED Grid
Drive an LED Grid from the browser, using WebSerial, a Raspberry Pi Pico and a WS2812 LED Grid.
Links: