About

Behind BitPanic

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.

Focus areas

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.

Optical metrology & calibration

Software that measures and calibrates optical systems: autofocus refinement, focus stacking and mosaics, multi-camera colour matching, and generators for precision calibration plates.

Embedded systems & sensors

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.

Desktop tools & dashboards

Practical utilities that package complex workflows behind clean GUIs: data logging, real-time dashboards, system inspection, and one-click exports to CSV and JSON.

Toolbox

Python C++ C OpenCV NumPy Qt6 tkinter Matplotlib ESP32 PlatformIO Arduino I2C sensors SVG / DXF PyInstaller

Engineering philosophy

Assume your first idea is wrong

Then test it. The first approach is a hypothesis, not a plan.

Requirements beat hardware

Understand the problem before buying equipment. The expensive mistakes happen here.

Lighting beats resolution

More often than people expect, the defect is already in the image - it just needs contrast.

Every sample lies

Evaluation samples rarely represent reality. The variation always arrives later.

Production is the real test

Lab success means very little until a system survives months of real variation.

Documentation is a force multiplier

A solved problem should stay solved. Write it down so the next person is faster.

Everything here was built with AI

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.

This website - by the numbers

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:

50+ prompts exchanged
600+ AI actions taken
190+ commands run
170+ file edits
20 images & diagrams
24 notebook articles
~9,400 lines of code
~5 h hands-on time, over 3 days

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.