Back to Blog

Measuring a Room and Keeping the Disagreements

A weekend floor planner built because a sectional was arriving and I needed to know if it fit. The useful part was refusing to resolve measurements that did not agree.

ToolsGeometryTypeScriptThree.js

A sectional, a dining set, and an entertainment center were arriving, and I did not know if they fit. The room is an open-concept L, so "measure the wall and compare" does not work: the constraint is not any single wall, it is whether you can still walk from the kitchen to the couch afterward.

I looked at the floor planning apps. They all want you to draw your room from a blank canvas with a mouse, then place approximations of your furniture from a catalog that does not have your furniture. I did not want a blank canvas. I had five measurements and a tape measure and some product pages.

So I built a planner that opens with my room and my furniture already in it.

Everything in inches

The only real architectural decision, and it paid for itself immediately: every dimension, coordinate, and clearance is stored in real-world inches. Pixels appear in exactly one place, as a function of viewport zoom.

That sounds obvious and it is the thing most drawing tools get wrong. The moment a coordinate is a pixel, every question you actually care about needs a conversion, and every conversion is a chance to be subtly off. When positions are inches, "is there 33 inches between the sofa and the TV unit" is a subtraction rather than a calculation.

The part worth writing about

I had an original measurement of 102 inches "to the kitchen island." Later I measured the kitchen as a chain, four distances laid end to end from the west wall to the far side: counter depth, aisle, island width, hallway.

The chain put the island's near face at 62.25 inches and its far face at 101.5.

So the original 102 had been measured to the far end, and it was half an inch off. Four independently measured distances agreed with a fifth measurement taken on a different day to within half an inch.

The instinct is to fix it. Nudge the island half an inch, make the numbers close, move on. I did the opposite: the plan records the tape reading and the computed geometry, shows the delta, and adjusts nothing.

There was a second one. Island depth plus the walking space south of it came to 108.5 inches against a kitchen given as 108 deep, so the plan computes 33.5 where I had said "about 34."

Both stayed visible. Both are half an inch. Both of the inputs involved were offered as approximate, and half an inch in each is precisely the error you would expect. Everything else landing dead on is the actual signal, and I would have destroyed it by smoothing.

Why that matters more than it sounds

An earlier version of the plan derived the island's width by subtraction, because four numbers had to add up to 264 and one of them was unknown. It produced 23 inches. The island is 39.25 inches. The subtraction had been absorbing an error in an assumption I did not know I was making, and it looked perfectly confident while doing it.

That is what a derived value does. It cannot be wrong, so it hides the wrongness somewhere else.

So the rule became: nothing is derived by subtraction. Anything unmeasured is marked provisional with a note saying why, and it renders differently, as a red wireframe cage in 3D. The wall thickness, the door width, the chair footprint, how far the hallway runs south. All flagged, all visible, none of them pretending.

What it told me

The answers were not the ones I wanted, which is how you know the tool was working.

Two corner pieces plus two armless in a line is 142.5 inches in a 146 inch room, so seating four that way leaves no doorway at all. A sofa against the open boundary leaves 33.4 inches to the TV unit, and the storage ottoman is 34.25 inches wide, so it cannot go in front of the couch. An earlier version, built on an assumed module depth, had said it fitted with an inch and a half to spare. Measuring the actual pieces from their product drawings took that away.

I would not have known any of that until the delivery truck arrived.

It was a weekend

Two days of evenings for the 2D planner, one more for a 3D view that is an extrusion of the same data rather than a second model that could disagree with the first. Then it was done, and I bought furniture that fits.

It is not a product and I am not going to make it one. It is a tool for one room. But the honesty rules in it are the part I would carry into anything: keep the numbers that disagree, mark what you assumed, and never let a subtraction invent a fact.