Justin Laviolette Builder · Maker · Hacker

I make things with metal, plastic, wood, light, code, and electricity — a CNC shop and a small compute cluster in Ontario, Canada. Machines like Halo, a seven-foot ring that wraps tape around whatever you slide through it. Software like Local CAM, which turns a 3D model into toolpaths on my own hardware, with nothing sent to a cloud. This is where to find me.

Halo — orbital wrapper

Halo — high aperture, low overhead. A seven-foot ring that wraps tape around anything you can slide through it. The trade has several names for this machine and they all mean the same motion: an orbital wrapper, a ring wrapper, a horizontal orbital strapper, or just a panel strapper. The work stands still and the tape orbits it. Commercial ones start in the tens of thousands of dollars and are built for a production line. This is the shop-built version: sheet offcuts, four skate wheels, and a hand crank. ...

2026-09-27

The ring weighed twice the guess

The machine is Halo, a seven-foot orbital wrapper. This page is about how it was designed: a language model drawing a seven-foot machine, running tests against its own work, and the five places that went wrong anyway. Most of the wrong ones were mine. The model is made out of the cutting files This matters more than anything else on the page, so it goes first. A CNC router needs a flat outline per part — where to cut, where to drill. A 3D model is a different thing: solid shapes you can look at and measure between. The normal way to get both is to draw the solid, then export flat outlines from it, and from then on you have two descriptions of the same machine that can drift apart. ...

2026-09-27

Local CAM software

The Local CAM series tells the story of writing this. This page is the short version, for someone who might want to run it. What it is CAM software plans the route a spinning cutter takes through a block of material, and how fast and how deep it goes at every point. That route is the toolpath. A post-processor turns it into G-code, the plain list of moves a CNC mill reads. This is a CAM program and a post-processor, written from scratch, that run on your own computer with no account and no connection. ...

2026-09-25

Local CAM

A CNC mill is a computer-controlled cutter that carves a shape out of a solid block. Mine is a small benchtop machine with three axes of motion — left-right, front-back, up-down — and an off-the-shelf PC for a controller. Two pieces of software stand between a 3D model and that machine. CAM decides the toolpath: the route the spinning cutter takes through the material, and how fast and how deep it goes at every point. A post-processor then translates that route into G-code, the plain list of moves the machine reads. G-code is the only thing the mill ever sees. Everything else is a plan. ...

2026-09-03

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. ...

2026-08-30

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. ...

2026-06-05

Birdfeeder cam

A backyard feeder in Ontario, watched end to end by hardware and software I built and ran at home. A camera caught each visitor; a vision pipeline worked out what it was and logged the sighting, with the species and the model’s confidence drawn straight onto the photo. The feeder has since been taken down and the parts used elsewhere. This page is what it left behind: every picture from its public log, exactly as the pipeline filed them — box, name and confidence all machine-drawn, nothing retouched. ...

2026-06-04

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. ...

2026-05-04