Junk Collector
a self-hosted archive for games and music
Keep your game dumps and music in one place, with metadata and artwork alongside the original files. Play supported audio in your browser or connect Trash Amp. Available as a Docker beta.
stuff i made with robots.
A pile of small, AI-assisted tools I made in my spare time, from a self-hosted game and music archive to an album player, PDF contraptions, and a Dragon Quest X router. I needed them, so I made them.
Mostly Rust. Desktop apps, browser tools, and a few things for the command line. All built using copious robot. Maybe useful to others.
a self-hosted archive for games and music
Keep your game dumps and music in one place, with metadata and artwork alongside the original files. Play supported audio in your browser or connect Trash Amp. Available as a Docker beta.
a music player built around albums
Browse and play albums from local folders or a Junk Collector server. The current beta download is for Apple Silicon Macs running macOS 15 or newer.
pdf viewer, flashcard maker, and bookbinding imposition
A set of Rust PDF tools: a caching page viewer, a flashcard-PDF generator from CSV, and a real imposition engine — signature / perfect / spiral / case binding with folio, quarto, and octavo arrangements plus printer’s marks. Pure-Rust rendering, self-contained binaries.
shortest in-game route across Dragon Quest X
Tell it where you are and where you want to go; it returns the fastest route to actually play — weighted Dijkstra over the whole world, filtered by which content packs you’ve cleared and which Zoom points you’ve registered. Bilingual EN/JP. Runs entirely in your browser.
learn the basics of electricity and circuits
Explore electricity through interactive lessons in English and Japanese. The lessons start with circuit basics and cover topics for Japan’s Class 2 electrician exam.
a spatial canvas for your browser tabs
Every tab becomes a Polaroid card — a screenshot — on a pannable, zoomable 2D table. Group cards into hand-drawn chalk blobs, annotate them, and let the tabs you aren’t using sleep to save memory. New tabs arrive as cards in your hand to drop onto the table or into the bin; it replaces your new-tab page, so the canvas is home. Chromium + Firefox (MV3), local-only — nothing leaves your machine. Too useful to call junk.
translate PDFs & images in place, yourself
Drag a rectangle over a chunk of text, it finds the words, you click to translate — via Gemini vision or Google Cloud Translation, with a token-saving cache. Resize, rotate, and fix the result in place. The right amount of manual for documents you refuse to pay a pro to mangle.
run Dragon Quest X (JP) on Linux with plain Wine
Helper scripts that set up a Wine prefix, run the DQX installer into it, and launch the game with the handful of non-obvious settings that make gameplay, the launcher’s HTML UI, and in-game FMV cutscenes all work — no Steam, Proton, or Lutris required. (The name’s a fossil: it predates dropping Proton.)
a fast, stylus-first vector drawing app
A cross-platform, GPU-accelerated drawing surface in Rust, built around a retained vector scene graph — strokes are geometry, not pixels, so you can zoom in forever and "100%" means real-world size. Stylus-first: pressure, tilt, honest palm rejection, aiming for 120+ FPS and the closest-to-paper latency feasible. Pre-alpha and hobby-paced.
a voxel world where you tell the guys to build
A voxel-world game in Rust: you don’t place blocks yourself — you direct little guys to build a nice place for them to live. Early days, but the bones are there: a Cargo workspace with engine crates, assets, and room for mods.
print your to-dos on receipt paper
Send a task and an optional next step from your terminal to a networked thermal receipt printer. The paper ticket is the to-do list. Each one comes with a little kaomoji.
the shared Rust plumbing under the rest of the pile
The reusable building blocks the other tools stand on, carrying no app-specific meaning: CD-image parsing (CUE/CHD/ISO), streaming multi-hashers, checksum descriptors, common I/O traits, and a pure-Rust PDF render core. Boring on purpose — so the tools above don’t have to be.
Nothing in the bin matches that.
I call these Trash Tools on purpose. Most of the code was written with an LLM riding shotgun, so by some measures, it becomes “less valuable” as it wasn't hand-made entirely by a human. I get it.
Each tool here fills some need I had — translating documents without paying a fortune, wrangling my retro game collection, impositioning books for printing and binding, navigating an old Japanese MMORPG withough losing my mind. Nearly always, alternatives were expensive, tedious, or just didn’t exist, so I made these instead. AI let me do it in my spare time. The alternative was "no tool gets made." So that was my choice.
The code’s all right there in the repos, robot fingerprints and all. This site is one of them too — same robot, same rules. It's probably not as good or clean as if I'd architected and written them all by hand. But they DO exist, flawed as they are, and for me that means I can get other things done.
So welcome to my trash heap.