Projects

Selected projects

Farol

2026

Shows AI coding agents how microservices connect, by linking the strings that join them.

More

The link between two services is usually a string: a queue task type, a route, an OpenAPI path. An index that reads one repository at a time can't see it. Farol extracts those strings, links them across repositories with provenance and confidence, and serves the result to coding agents over MCP.

Answers with the 5 to 15 symbols to change instead of whole files. On four public repositories (Gin, Dispatch, NestJS, Django) it uses 12% to 42% of the incumbent tool's tokens, with higher recall on two and slightly lower on the other two.

Picks its ranking strategy per repository by turning the repo's own git history into evaluation questions, with no human labelling.

No LLM calls in the pipeline.

Python · SQLite · MCP · Embeddings

OpenController

2026

Makes PlayStation, Switch, 8BitDo and hundreds of other controllers work in any PC game.

CodeLive
More

Every controller connected to the computer becomes a virtual Xbox controller that games understand, several at once, each as its own player, with nothing to map. The buttons an Xbox controller lacks (back paddles, Capture, the touchpad) can press a button, hold a key or type a macro, and a gyro can aim. Windows and Linux, with a smaller version for macOS. Open source (MIT), in beta.

The OpenController window with six connected controllers, each drawn in its own shape.

A stick move reaches what the game reads in a median of 0.55 to 0.62 ms, measured end to end. The engine sleeps to an absolute deadline and polls at 1000 Hz, where a plain 1 ms sleep loop on Windows runs every 1.5 ms.

Drives ViGEmBus through its IOCTL interface, without the client DLL. The virtual controllers belong to the engine’s handle, so a crash never leaves phantom controllers behind.

The window is a separate GPUI process that talks to the engine over a private named pipe. Splitting them took the background process from 83 MB and 43 threads to 3.2 MB.

On Linux each virtual controller is a uinput device shaped like the one the kernel makes for a real Xbox 360 pad, so Wine, Proton and native games take it for one.

Rust · SDL3 · GPUI · ViGEmBus · uinput

Texel MCP

2026

Minecraft textures as code, built for AI agents to write and review.

Code
More

A JSON spec (a palette plus ordered drawing operations) compiles deterministically to the PNG the game uses, for player skins and 25 other textures: mobs, armor, capes and items. A review step reports each problem with the exact JSON path to fix. Open source (MIT).

The compiler knows Minecraft's texture layout, so the agent writes “right arm, front” instead of placing pixels on an atlas. Layouts are checked by running the game's own textures through them.

Compiles a skin in about 1.5 ms, and the same spec gives a byte-identical PNG on every run, so a texture can be diffed and kept in version control.

Ships as an MCP server with 14 tools, a CLI, an agent skill and a Claude Code plugin.

Each release came from trials where a fresh agent installs the tool and completes a task.

TypeScript · MCP · Node.js

Texel

2026

Describe a Minecraft skin and an AI paints it onto a 3D model as you watch.

Live
More

The site built on Texel MCP. A language model writes the skin as a Texel spec, each layer appears on the 3D model while the next is still being written, and the toolchain's review drives a fix round before the skin is done. A follow-up such as “make the hood red” patches the current skin instead of starting over.

Parses the model's JSON as it streams, so the skin is drawn layer by layer instead of all at once at the end.

Accounts, a daily free quota and credits on Supabase, with per-network limits and bot detection in front of the model.

Short share links stored on Vercel Blob, and a studio for editing and painting by hand, in six languages.

The default model was picked with a bake-off script that renders the same prompts across models side by side.

TypeScript · Vite · Vercel · Supabase

lupasta

2026

A file browser that draws your filesystem as one horizontal path, colored by recency.

Code
More

Instead of a tree, the selection path runs horizontally across columns, and the next columns preview what is inside the neighbouring folders. Text color shows how recently each item changed.

Ported from Tauri and Svelte to Rust and GPUI: one process using about 72 MB instead of seven using about 374 MB.

The port is checked against the old implementation: positions and connector routes for 164 selections must match within 0.02 px.

Fuzzy search over 500k indexed entries at p95 ≈ 44 ms.

Rust · GPUI · SQLite FTS5

Big Oceans

2026

A Minecraft mod that makes ocean crossings about five times longer with one worldgen change.

Code
More

Overrides a single world-generation density function, with no mixins and no custom chunk generator, so oceans span kilometres instead of one.

Measured over 48 seeds: ocean covers 58% of the world instead of 30%, and a typical crossing goes from about 1.1 km to 5.2 km.

A sampling lab agrees with real generated chunks on 99.4% to 99.7% of columns.

Java · Fabric · NeoForge

COMPX Tray

2026

A 0.7 MB tray app that replaces a gaming mouse's 503 MB vendor app for daily use.

Code
More

A Windows tray program for ATK, VXE, MAD and Dragonfly mice that switches the mouse's onboard profile based on which game is running or focused, and edits DPI, polling rate and the other per-profile settings, without keeping the vendor's Electron app open. It idles at about 2 MB of private memory.

USB HID protocol reverse-engineered from the vendor app and the device. Encoders are checked against bytes from the official software, and every write to the mouse is read back.

The optional settings panel runs as a separate process and talks to the tray over a token-authenticated local channel.

Rust · Win32 · USB HID · Tauri

Swales

2025

Real-time feedback on the structure of scientific writing, with a BERT model.

CodeLive
More

Web application with a BERT model (ONNX/PyTorch) to help students write scientific articles, providing real-time feedback on structure and coherence.

React · TypeScript · BERT · ONNX

Other projects