Contour Digitizer
← Back to blog Origin

Why Contour Digitizer was made.

I have spent more hours than I want to admit squinting at stress contour plots, trying to estimate a number that the report didn't bother calling out. Most engineers reading this know the feeling. The model is gone. The license is expired. The analyst moved teams. But the report — the PDF, the slide deck, the email attachment — that lives forever. And it's full of color.

Contour Digitizer started because I kept encountering the same problem of squinting and zooming in on contour plots. That's the honest version. The cleaner version is that I built it because the gap between "I have a contour plot" and "I have a number I can put in a calculation" was costing me, and the engineers around me, real time.

The problem I kept seeing

A stress analyst runs a job and they produce a report. The report contains a handful of contour plots — von Mises stress, principal strain, displacement, temperature — with a colorbar legend on the side. The text of the report calls out one number, usually the global maximum, because that's what governs the margin calculation. Everything else on the plot is information you can see but can't directly use.

Then someone downstream of the analyst asks a question. A manufacturing engineer flags a part with a 0.01-inch gauge thickness non-conformance. A designer wants to know the stress at the new bolt hole location they're considering. A responsible engineer is making a non-conformance call and needs to know what the stress was somewhere other than the single point the report highlighted. The conversation goes the same way every time: someone has to either re-open the model and re-query it, or eyeball a color against a legend and hope.

Re-opening the model is real work. Licenses, software versions, mesh files, boundary conditions. A simple question can take days of overhead for a single number. Eyeballing the color is faster but you're guessing — discrete bands look continuous, anti-aliased edges blur the boundaries, and your monitor's color profile is not the analyst's monitor's color profile. Both options are bad.

The gap between "I have a contour plot" and "I have a number I can defend in a calculation" isn't just time — it's confidence. Engineering judgment requires data. A non-conformance call, a design trade, a safety margin calculation — these decisions hinge on having the right number in front of you. When the model is gone but the report lives forever, you need a way to close that gap.

The first prototype

The first version of Contour Digitizer was a Python script. I wrote it on a weekend to scratch my own itch. It loaded a screenshot, asked me to define the legend by clicking a few colors, and let me click any point on the plot to read back the interpolated value. It was ugly and slow, but it worked well enough that I saw the potential for real use in engineering workflows.

What surprised me was how often I reached for it. Not just for one-off questions, but for routine work. Comparing two design iterations. Sanity-checking a hand calculation. Pulling values out of an old report whose model was no longer accessible. The tool wasn't replacing the solver — it was filling a gap I hadn't realized was so wide.

Why a browser, not a desktop app first

I rebuilt the tool as an HTML and JavaScript app for one reason: accessibility. Engineers don't download software to evaluate whether they like it. They certainly don't get it past their IT department to evaluate whether they like it. A link that opens in a browser, runs locally on the canvas, and doesn't ask for an account or upload your data anywhere — that's a tool people will actually try.

The browser version also sidesteps the privacy story problem in a clever way: all the pixel sampling happens in the browser, on your machine. Nothing about the image you load gets sent anywhere. That matters more than people initially think, especially in defense, aerospace, and any regulated industry where uploading proprietary simulation data to a cloud service is a hard "no". This isn't a marketing pitch — it's the architecture. The browser version can't upload your data because there's nowhere to upload it to.

What it is now

Today, Contour Digitizer is a free web application. Every feature is unlocked and its being updated and improved continuously. You can upload a contour plot, define the legend by drawing a box around the colorbar (the tool detects the bands automatically), sample any point, draw a line probe along a feature, draw a region, and pull all of it into a spreadsheet. It runs in your browser. No signup, no upload, no telemetry.

I'm running this as a deliberate validation phase. I want engineers to use it on real reports, tell me what's wrong with it, tell me what's missing, and tell me what they wish it did. This is about getting the tool into the hands of people who have the same problem I had.

What's next

A desktop version is coming. It will run fully offline — no network calls, ever — and incorporate features that the browser can't do as cleanly: surface and feature detection, larger image handling, save and load sessions, a coordinate overlay that maps pixel locations back to your model's axes.

The desktop version will be paid. It's built for individuals and teams who need refined features and the confidence that their data never touches a network through local processing. The web version stays free forever because I want the tool accessible to anyone who needs it.

Try it

If you've ever needed a number off a contour plot and didn't have the model in front of you, this tool was built for you. Try it on a real report. Send me what breaks. Tell me what you wish it did. The whole point of building this in the open is that it gets sharper the more engineers push on it.

Try Contour Digitizer →
← Back to blog