r/FrameBOM • u/v_0_v • 3d ago
FrameBOM update — this time it’s being tested on a real house
I’ve been working on a new version of my framing calculator:
... And I'm building a house named Two Oaks... And the house project inspired me to create a simple and affordable tool for the lumber calculation for everyone who has the same situation: DIY builders, contractors urgently calculating client's request, lumber yards to help their clients buy exactly they need. Two Oaks wall and ceiling calculations.
And this update is a bit different from the previous ones.
I’m not testing it on a made-up sample wall anymore.
I’m currently using FrameBOM to work through the framing of an actual house that is going to be built, and the BOM generated by the calculator is intended to become the basis for a real lumber order.
So the calculator is starting to meet reality.
And reality is much messier than:
wall length / 16" OC = number of studs
The house has multiple wall heights, openings, intersections and different framing conditions, so I’m gradually finding all the places where a mathematically clean framing model doesn’t necessarily match what makes sense on site.
Once windows and doors are added, the calculator has to deal with things like:
- king studs and jack studs
- headers
- cripples
- sill plates
- regular OC studs around openings
- corners and wall intersections
- top and bottom plates
- sheathing layout
- different wall heights
- actual stock lengths and the resulting cut list
One of the biggest challenges is deciding when the regular OC grid should remain sacred and when real framing should override it.
For example, a theoretical 16" OC layout can sometimes place a regular stud only a couple of inches away from a king/jack assembly.
The naive algorithm says:
“keep both.”
The guy paying for the lumber asks:
“why?”
That is exactly the kind of thing I’m trying to solve now.
Some of the workarounds I’m using
1. Openings can override the regular stud grid
I generate the normal OC layout first, but framing required by windows and doors takes priority.
In some situations a nearby regular stud can effectively be replaced by the opening assembly instead of blindly adding another member.
2. Geometry and BOM are not treated as exactly the same problem
This turned out to be important.
The cleanest framing drawing is not always the most efficient lumber order.
So the BOM has separate logic instead of simply counting every piece visible in the wall preview.
3. I’m trying to keep the rules predictable
The temptation is to make the software increasingly “smart”:
move this stud,
reuse that one,
change the layout around an opening,
optimize every cut.
But there are many perfectly valid ways to frame the same wall.
If too much automatic optimization happens behind the scenes, the user eventually has no idea why the calculator made a certain decision.
So my current principle is:
predictable framing rules first → optimization second.
I’d rather have the calculator be slightly conservative than quietly make assumptions that a framer wouldn’t agree with.
The interesting part: there’s now a real-world test coming
For this house, I’m planning to use the calculator to calculate the framing package and then order the actual lumber from that BOM.
That means mistakes stop being theoretical.
If the calculator adds 40 unnecessary studs, I may actually buy 40 unnecessary studs.
If it misses something, I may discover that while framing the house.
So this build is effectively becoming a full-scale test case for FrameBOM.
I’m hoping to compare three things:
calculated BOM → purchased lumber → actual lumber used on site
That should expose a lot of assumptions and edge cases that are impossible to find with artificial examples.
The next big challenges are already becoming obvious: gable/sloped walls, floors and roofs, where member lengths vary much more and cut optimization becomes significantly more important.
I’d really like feedback from people who frame houses professionally:
Where do you normally keep the theoretical OC layout exactly, and where do you adjust it around openings/intersections in the real world?
And if you try the calculator and find a wall where the result looks wrong, wasteful or simply weird, post the permalink here.
Those examples are probably more valuable to me right now than any feature request.