Machine vision & image processing
Tools for inspecting and analysing images: ROI-based pipelines, edge and blob detection, sub-pixel edge measurement, histograms and LUTs, all built to stay responsive on large frames.
BitPanic is a home for tools I build at the intersection of imaging, measurement and hardware - the kind of practical software that helps machines see, focus and measure.
I'm a technical engineer who enjoys solving practical problems. Over the past decade I've worked across machine vision and automated optical inspection (AOI), industrial automation, optics, software integration, technical support, and customer evaluations - from designing inspection strategies that find micron-scale defects to recovering failed production systems and helping people understand why a problem exists in the first place.
Most of these projects come from real problems in machine vision and metrology: getting a camera into perfect focus with as few frames as possible, matching colour across many cameras, stacking and stitching microscope images, or designing calibration targets down to the micrometre. Others are small embedded instruments that read a sensor and put a clear number on a screen.
The common thread is turning a fiddly, manual task into something fast, repeatable and pleasant to use - usually with a responsive GUI in front and careful image or signal processing underneath. What motivates me is not technology itself; it's using technology to solve real-world problems.
Tools for inspecting and analysing images: ROI-based pipelines, edge and blob detection, sub-pixel edge measurement, histograms and LUTs, all built to stay responsive on large frames.
Software that measures and calibrates optical systems: autofocus refinement, focus stacking and mosaics, multi-camera colour matching, and generators for precision calibration plates.
Microcontroller firmware that turns sensors into useful instruments: reading magnetic encoders, IMUs and power monitors over I2C, and driving compact OLED displays for live readouts.
Practical utilities that package complex workflows behind clean GUIs: data logging, real-time dashboards, system inspection, and one-click exports to CSV and JSON.
Then test it. The first approach is a hypothesis, not a plan.
Understand the problem before buying equipment. The expensive mistakes happen here.
More often than people expect, the defect is already in the image - it just needs contrast.
Evaluation samples rarely represent reality. The variation always arrives later.
Lab success means very little until a system survives months of real variation.
A solved problem should stay solved. Write it down so the next person is faster.
It is not just this website. All of the software on BitPanic - and the projects on my GitHub - was created with AI. The in-browser demos, the tools, the image-processing experiments, and this site itself were all written in collaboration with an AI coding agent. I describe what I want in plain language, the agent writes, tests and deploys the code, and we iterate together until it is right. The illustrations are AI-generated, the explanatory diagrams are drawn in code by the agent, and the writing was shaped from my own notes and conversations.
I am genuinely excited about how powerful this has become. It is not about replacing engineering judgement - it is about removing friction. Ideas that used to sit in a notebook for months now become working software in an afternoon. I treat the AI as a tireless pair-programmer and a research partner: it handles the boilerplate, surfaces options I had not considered, and lets me spend my attention on the parts that actually need an engineer.
For me this is also a way to become a better engineer. Explaining a problem clearly enough for an agent to solve forces the same discipline as good engineering: understand the requirement, name the constraints, and test the result. The faster feedback loop means I try more approaches, see more failure modes, and learn quicker. That is exactly the philosophy this notebook is about.
These figures are for this website specifically (the demos and the GitHub projects were separate AI builds with their own histories). Measured from the agent's own chat transcripts and this repository:
Roughly five hours of hands-on time spread across three days - and still counting.
I write up how I approach these problems - what I tried, what failed, and the lessons worth keeping.