What I'm building now

Baseboard by the foot, straight from the plan

I built a small tool for my own construction projects: open a scaled floor plan, click the walls that get baseboard, and get every run measured and totalled.

Role
Designer and builder, solo, with Gemini
Organization
Independent
When
2025, used on my own projects
Platform
Browser tool: scaled PDF in, marked-up plan and run list out
A main-level floor plan with eleven wall runs traced in different colours, each with a black tag showing its length, such as 43' 6" along the bedroom wall and 37' 2 7/8" around the living room.
The main level after a take-off: eleven runs, each traced and measured.
  1. 01Trim is bought and priced by the linear foot, and getting that number out of a set of drawings was slow.
  2. 02I also tried having the computer find the walls on its own. It found every line on the sheet, so the job stays split: I pick the walls, the tool measures them.
  3. 03Each run gets its own colour and a length tag on the plan, and the export lists every run. Three plans, 23 runs, one total.
  • problem framing
  • interaction design
  • line detection experiments · PyMuPDF, OpenCV
  • building with Gemini

A number everyone needs and nobody enjoys getting

On my own building projects I'm the architect, the general contractor and the owner, so when it's time to price baseboard, the linear feet are my job. Trim is bought and bid by the foot.

The drawings come out of Revit, and Revit can produce that number with a schedule. Setting one up was slower for me than measuring the runs on the PDF. Maybe I didn't know the fastest way to do it in Revit, but I chose the PDF. This tool makes measuring on the PDF fast and adds up the total for me.

Could the computer find the walls on its own?

I also tried code that reads the plan and looks for walls without any help: one pass searched the rendered image for straight lines, another read the drawing's own linework and kept the heavier strokes, where walls usually are.

Running that code again on the basement plan shows why clicking stays. Image detection finds 988 lines and can't tell a wall from a gridline or a dimension. The linework pass is cleaner, at 247 runs, but it still picks up cabinets, stairs and symbols. Which walls get baseboard is a judgment call anyway: not behind the kitchen cabinets, not inside the shower, not across a doorway.

So I split the work. I decide which walls count; the tool does the measuring and adding up, which is the part people get wrong.

The same basement plan three times. Left: automatic image detection covers the plan in hundreds of coloured lines, including gridlines and furniture. Middle: detection from the drawing's linework traces walls but also cabinets and symbols. Right: ten runs picked by hand, each in its own colour with a length tag.
The basement plan three ways. The first two are my detection code, run again for this page.

Click a wall, get a run

Open a scaled PDF floor plan and click along the walls that get baseboard. Each run gets its own colour and a tag with its length in feet and inches, so it's easy to see what's been counted and what hasn't. Totals update as you go.

The export is the marked-up plan plus a measurement inventory: every run, its colour and its length. Anyone pricing the trim can check any number against the plan.

An exported measurement inventory page listing eleven wall runs with coloured dots and lengths from 6' 7 1/2" to 43' 6".
The run list exported with the main-level plan.

A tool for my own projects

I used it for the take-off on a house with three plans: the basement, the main level and the loft. Twenty-three runs came to 484' 5 1/4" in total, each one traceable to a coloured line on a plan.

It does one job and it's in use. It's built for my own projects rather than as a product for other contractors, so there's no public version.