Continuing to cross stuff off the Shop Improvement list. We build a shop wide air system on the cheap!
I built this repo to make backups less ad hoc. It started with a Borg script and host-specific pattern files, then grew into tooling for migrating old Arq backups into Borg, and later picked up an offsite replication step to Backblaze B2.
In order to experiment with new video software this early machining project was finally published!
With a quick set of measurements and a 3d printer many household items can be fixed
This is a long-shelved generator project connecting a light garden engine to a small permanent magnet motor.
I built `local-llm` because I wanted Pi to feel local, usable, and not annoyingly fragile. More specifically, I wanted a coding-agent setup that could run against a local `llama.cpp` server on my 3090, come up inside a Nix shell, reuse one shared model server across terminals, and still keep the nicer Pi ergonomics I actually wanted: wrappers, model config, wiki support, context-mode, subagents, and a few task-specific local helpers. That sounds tidy when I say it like that now. It was not tidy while I was putting it together. The repo is small, but the job it is doing is pretty specific: take a general agent stack and turn it into a repeatable local workstation setup with predictable runtime behavior.
Repairing a broken handwheel on an old lathe with some TIG welding and machining.
Northwest Waxworks started as a pretty simple idea: use digital fabrication to turn mountain terrain into candles people would actually want. It got complicated quickly. What looked at first like a geometry problem turned out to be a stack of interlocked problems: terrain data, CAD, notebook tooling, mold design, wax behavior, text legibility, process repeatability, branding, market fit, and then, once all that was already plenty, a whole notebook-runtime migration from Jupyter to marimo.
I built Obsidian Remotion because I wanted a Markdown note to behave like a Remotion sketchbook. The practical goal was pretty simple: write prose, drop in `ts` or `tsx` blocks, and get live, type-checked Remotion previews in a side pane without cramming React and Remotion into the plugin bundle itself. That separation ended up being the whole project. I wanted the plugin to stay relatively small and handle editor integration, diagnostics, preview lifecycle, and UI. I wanted the vault to own `node_modules`, so the actual React and Remotion runtime stayed under the user's control. In practice that felt much less cursed than trying to smuggle a whole frontend runtime into an Obsidian plugin and then hoping version skew would somehow be fine.
I started this repo because I wanted a place to publish projects, then kept rebuilding it until it could actually support the kind of technical writing and project history I wanted to put on it.
In this quick and dirty project we assemble the official Prusa mk3s enclosure
I acquired a 20-year-old Staübli RX90 industrial robot and retrofitted it with a custom-built control system, transforming it into a precise and ergonomic tool for cinematic motion control.
Developing a report of upcoming tasks from WeKan using Jupyter Lab
Built a welding positioner capable of supporting several hundred pounds with infinitely variable rotation speed and 90+ degree tilt