Custom homes are expensive to design and build, and one of the main reasons is the design tooling. Only 20% of custom homes involve a licensed architect, yet everyone is still using unstructured tools that feel more like clay than Legos. As a result, the standard for new housing construction is superficial customization—just an illusion of choice.
Our solution is a tool that allows for experimentation without the cost penalties, by designing within a system of real-world constraints and providing instant feedback on the impact of changes. By standardizing systems of building rather than construction plans, we can offer the same benefits as prefab while giving people more control over their physical environment.
After going through a multi-year residential project, Ben Barry saw big opportunities to improve the experience for both homeowners and builders. Together with Will Felker, we began working on Flexhouse early summer of 2024. I joined as a co-founder and my role was to lead the engineering efforts.
Rather than trying to design the perfect system upfront for something as complex as a home, we decided to build a series of prototypes, each increasing in complexity, learning as we went.
Presented below are three of the prototypes.
Since this was my first Three.js project, we started with the simplest form of construction we could think of: toy blocks. The biggest challenges were related to interaction—specifically, stacking objects in 3D space using a 2D cursor. With an eye on what was next, I also took the chance to dive into custom geometry generation. I was happy to see that many tools from my web toolkit translated well, thanks to R3F and other Poimandres projects.
Ben was inspired to use this project as part of his holiday card and it's available to play with here.
Since birdhouses share the same basic structural elements as human houses, we planned to reuse the modeling tool, data model, and undo engine in the next prototype. In hindsight, that was a mistake. We ended up stuck on birdhouses for most of the summer, which we were okay with, but it became a challenge when trying to explain to others what we were working toward.
The structure data model is a planar graph of grid-snapped vertices, with regions automatically detected as rooms. Crossing wall segments are split, and I’ve added range boolean operations like delete and union. The goal was to enable quickly sketching out a structure, and I’m really happy with how it turned out.
These tools were easier to implement than the wall tool, but each still posed challenges. Math, so much math.
The tool generates cut sheets for single-pass CNC fabrication. The structure is flattened into 2D shapes, and adjacent panels are merged using a simple algorithm to minimize cuts and ensure the structure can be easily assembled. Finally, the shapes are packed and divided into standard plywood sheet sizes.
This proof of concept was meant to show that the tool we created for birdhouses can be applied to human-scale structures. It’s 90% the same code as above, though there was quite a bit of refactoring. It finally captures the vision we had when we started this project, and seeing it come to life felt really rewarding. Unfortunately, it may have been a case of “too little, too late.”
This was my favorite type of work—the kind that pushes me just outside my comfort zone, both technically and creatively. I had a great time, and I’m really grateful to Ben and Will for the experience. While things didn’t work out (maybe it was too ambitious to try raising funds in 2024 without an AI play), we still firmly believe that the future of residential design lies in standardized systems of building and accessible tools that make play possible.