I make things with metal, plastic, wood, light, code, and electricity. This is where to find me.
Birdfeeder cam
A backyard feeder in Ontario, Canada, watched end-to-end by hardware and software I built and run at home. A camera catches each visitor; a vision pipeline figures out what it is and logs the sighting — with the species and the model’s confidence baked right into the photo. The two most recent are always up top: Common Grackle Northern Cardinal Warming up the feeder log… if nothing appears, the latest visitors are over at birdfeedercam.justinlaviolette.com. ...
Inkling
A drawing-and-guessing game built like chess by mail. You draw a picture and give it a caption, then send it to your pen-pal — who sees only the drawing and has to guess the caption. Then they draw and caption their own and send it back, and you guess theirs. Turn-based and asynchronous, not a frantic real-time race: you play on your own time, and each caption stays hidden until the other person has taken their guess. ...
PaintMatcher
A web app for the paint lab. Measure a target color with an X-Rite spectrophotometer, store it as CIE L*a*b*, and PaintMatcher returns the closest existing recipe — plus an adjustment suggestion when the measured color misses the target. Built on Flask + HTMX + SQLite. Closest-match ranking uses ΔE2000, the industry standard for paint and automotive finish work. Adjustment suggestions come from a linearised least-squares solve over Lab-space shift vectors per base colorant — good for the small tweaks that make up the common case. ...
Voxel Tanks
A 2.5D destructible-terrain artillery game in the Scorched Earth / Pocket Tanks lineage, built in Godot and compiled to WebAssembly so it runs right here in the browser. Pick an angle and power, account for the wind, and carve chunks out of the voxel landscape until one tank is left standing. Player 2 is a computer opponent by default — press T on your turn to switch it to a second human for hotseat play. ...