Side projects I've been working on over the past couple of years in
somewhat reverse chronological order.
-
Asbury Park happy hours
2024/04-present
-
Static website listing happy hours in Asbury Park, NJ. Used to
be jekyll, rewrote in Rust using
minininja. The “database” is a
RON file.
-
ntsc 2026/02
-
frei0r video
filter plugin that uses ntsc.rs to
emulate analog TV and VHS artifacts.
-
cyd-video
2026/01-2026/02
-
Rust no_std video player for the CYD (“Cheap Yellow Display)
ESP32-2432S028R microcontroller. It works but the performance is
not good enough. It’s based on MJPEG using the tjpgdec-rs
decoder (see below) and riffparse (see below).
-
riffparse
2026/01-2026/02
-
Rust no_std RIFF/AVI video format demuxer. Extracts audio and
video frames from an AVI file.
-
frei0r-rs2
2025/05-2026/02
-
Fork of the Rust frei0r-rs framework for building frei0r video
plugins in Rust. Made major changes to the API.
-
tjpgdec-rs
2026/02
-
Some vibe-coded performance improvements to the tjpgdec-rs JPEG
decoder used with cyd-video.
-
esp32-tv
2026/02
-
ESP32 video player fork with vibe coded fixes and support for IR
receiver.
-
esp32-202432S028_video_player
2026/01
-
ESP32 video player fork, ported to
platformio.
-
cyd-bevy-life
2026/01
-
Conway’s game of life on no_std ESP32 MCU using the Rust
Bevy game engine.
-
webvfx-rs
2025/12
-
Rust frei0r video plugin using the
Blitz web engine. It takes input
video frames and injects them into HTML images in a web page,
then renders the result as the output.
-
mediafx-frameserver
2025/04-2025/12
-
“Out of process” frei0r video plugins. This is a Rust framework
with Python and Typescript APIs so that video plugins can be
written as standalone Python, Typescript or Rust applications.
The plugin communicates with the subprocess via stdio, and
sends/receives frames of video via shared memory.
-
Caption
2025/12
-
Vibe coded SwiftUI iOS application for live audio transcription
using NVIDIA Parakeet via the
FluidAudio
SDK.
-
rapidfire
2025/11
-
Simple Rust Bevy/Avian3d
“game” where you walk around a generated cityscape and shoot
tons of blocks.
-
nannou
2025/11
- PR to upgrade nannou to Bevy 0.17
-
bevy_web_video
2025/07-2025/11
-
Support for streaming video into Rust Bevy textures on the web
platform (webgpu/webgl2). See the
demo
- sbx 2025/10
-
Unfinished attempt at a sandboxing CLI in Rust using the native
macOS sandbox primitives (“seatbelt”) and a local HTTP proxy for
network filtering.
-
tumbler
2025/10
-
Mobile web based Rust Bevy 3D dice simulation. Runs in the
browser and uses the devicemotion accelerometer to manipulate
the dice. Demo
-
blendiff
2025/10
-
Rust tool to dump binary
Blender project files as
diffable text.
-
bevy_av1
2025/08-2025/10
-
AV1 video
decoder for the Bevy game engine. Based on
dav1d which are
Rust bindings for libdav1d - but plan to switch to
rav1d which is a
pure Rust port of dav1d.
-
bevy_p2p
2025/09
-
Incomplete peer-to-peer Rust experiments in Bevy, using
nostr and
iroh.
-
bevy_blitz
2025/07-2025/09
-
Render web pages to Bevy textures using the Rust
Blitz HTML/CSS rendering engine.
-
bevy_luminance_material
2025/08
-
Attempt at an effect implemented as a Rust Bevy material that
converts a texture into a luminance texture in a prepass, then
be used as
StandardMaterial::depth_map. The effect is not that good.
-
bevy_arcball_camera
2025/07-2025/08
-
Rust
Arcball
camera controller for Bevy.
Supports mouse and touch controls.
-
l0ttie
2025/06-2025/07
-
A Rust
frei0r video
source plugin that renders
Lottie animation files.
-
diff-video-action
2025/06
-
A
GitHub action
that compares a set of videos to reference videos, and generates
audio/visual diff videos if any fail to compare visually/audibly
identical.
-
renderwindow
2023/10-2026/01
-
A C++
Qt QML
QQuickWindow subclass that supports offscreen rendering of its
contents via
QQuickRenderControl
-
llm-tools-mcp
2025/05
-
MCP tools support
for the
llm
command line tool.
-
skysearch
2025/04
-
Typescript tool to subscribe to the
BlueSky Jetstream, compute an
embedding
for every post using
MediaPipe Text Embedder, and compare cosine similarity to a query. Display any posts
that are semantically similar enough to the query.
-
breakin
2025/03-2025/04
-
Classic BreakOut game but in 3D using Rust Bevy game engine -
BreakIn to the cube.
-
toolchat
2025/03-2025/04
-
Python tool to multimodal chat with LLMs, supports
MCP servers.
-
mediafx-py
2024/08-2025/04
-
Unfinished Python experiments in audio/video editing with visual
effects. Based on pyav and
eventually pygfx
-
langchain-mcp
2024/11-2025/04
-
MCP tool support
for LangChain. Obsoleted
by
langchain-mcp-adapters.
-
blender-mcp
2025/03
-
MCP server
that can run Python code in
Blender.
-
pydantic-mcp
2025/03
-
MCP tool calling
support for Pydantic AI.
Obsoleted by
native MCP support.
-
skybedding
2025/02-2025/03
-
Rust realtime BlueSky post
jetstream
feed, filtered on a query using embeddings similarity via a
local LLM.
-
terp
2025/01-2025/02
-
Rust Bevy based drawing interpolation animation editor. Inspired
by
LizardLadder.
-
clay-rs
2024/12-2025/01
-
Rust bindings for
Clay. Includes a
renderer built with
macroquad.
-
skyreaper
2024/12
-
Simple unfinished Rust Bevy game using
avian3d.
-
flux3d
2024/10
-
Javascript text to image to 3D model using
FLUX.1-schnell, and
TRELLIS
via
Gradio Client API. Demo
-
skypinner
2024/12
-
Unfinished Next.JS attempt to
implement Pinboard style
social bookmarking on top of
BlueSky
ATProtocol
-
chainchat
2024/10-2024/12
-
CLI to chat with
LangChain LLM models
-
mediafx-qt
2023/10-2024/10
-
Nonlinear video editing framework with support for
transitions/effects implemented in
Qt QML.
-
llm-transformers
2024/09-2024/10
-
llm plugin for
Hugging Face Transformers
pipeline
tasks.
-
mediafx-web
2024/05-2024/09
-
Unfinished
web components implementing
video sequencing with transitions and effects.
-
kbai 2024/09
-
Python tool to generate a video with “Ken Burns” style pan &
zoom effects, with transitions between each image. Uses
Grounding DINO
LLM to identify features in the images to guide the pan/zoom
effects.
-
mediafx-blender
2024/07
-
Unfinished higher level Python wrappers around
Blender Video Sequence Editor APIs.