Cabinet Design Plugin

The topic of cabinet design has been mentioned a few times over the years, but it seems to be a minority interest. I am curious how many people design cabinetry using Rhino, or wish there was a more automated solution for that.

I have been a cabinet builder for over 20 years and have used Rhino for most of that time for all the one-off odds and ends that pop up. I always wished there was a plugin for cabinetry that I could use inside of Rhino to do the entire design. I can think of a number of ways that integrating Grasshopper into cabinet design could be time-saving and useful.

I have used several commercial solutions, and to be fair, most of them have worked well as long as I am within the bounds of what they are designed for. But since our shop does a lot of custom work, I routinely bump up against the limitations and the proprietary nature of the software.

My dream for many years has been to build such a thing. With that idea in mind, I went back to school for software engineering so that I could learn the skills to do this. I’m sure that I am naive and have no idea about what I am getting into, but that’s why I need to attempt it before I get too smart to try, lol!

Anyway, I am curious if anyone else has any ideas that they would like to see in such a piece of software. What are the top 1-3 things that frustrate you when you are designing cabinets or furniture? If you could wish for any feature, what would it be? If you want to tell me it’s a crazy idea, go for it, but give me a reason!

I have 6 or 7 different GH definitions for cabinet making. Only about 30% of my projects involve cabinetmaking but when I do, it’s super boring to model generic carcasses and drawers and whatnot and particularly, detailing out the models for CNC milling. (all the little dogbones and pre drilling holes etc)

I’ll share a couple of them here (sorry but when I make GH definitions, I’m super sloppy with it. the number sliders are pretty self explanatory but good luck trying to decode the logic :wink:

here’s a generic carcass element (after you set up all the numbers, you’ll select the component called CARCASS and bake that.. this one also has a shelf in there just in case permanent sheving is required.. it’s not already permanently placed in GH though. if you bake that component then you’ll get a shelf and a set of cutters along with it. In Rhino, move that shelf and cutter vertically to desired position.. or make copies of it for multiple shelves in a cabinet.. then use the cutter to boolean difference the dados and screw holes into the carcass:

CARCASS 2.gh (65.8 KB)

(it has some tolerance type sliders in there that may be confusing to people who don’t build the way I do but whatever.. this is meant as an example)

I have a Box Joint drawer box creator as well for undermount type slides.. it’s currently set up for Blum slides but you can adjust all that if the particular slide calls for different dims.

BJ_DRAWER.gh (71.9 KB)


I will say this: there’s no way in hell a Cabinet Creator type plugin could be made that suits everyone.

imo, you have to make these things yourself and tailored to your particular building style. Either that or you’re stuck using a cabinet design that someone else has deemed the correct method.

anyway- my point is mainly this: yes, Grasshopper is super powerful for making detailed parametric cabinet elements and saves tons of time in shop.

Thanks for sharing your definitions! Those look useful. Lol, I have a few definitions that work but I don’t dare try to modify because they started as a quick idea that outpaced any kind of organization!

I couldn’t agree with you more, but I think this is the weakness of a lot of the software that I use. They mostly start out assuming that a cabinet is to be built a certain way, and then all of the software is designed to accomplish that. My theory is that cabinet software should be more like a set of tools and operations. Cabinets and furniture are nothing more than particular arrangements of parts.

It seems to me that it would make more sense to create that toolbox of tools and then let the user define and save their own assemblies designed the way they do things. There might be a bigger investment in time upfront creating those definitions, but after that, it’s copy and paste and modifications.

The goal of the plugin would be to create an organized environment to create and manage assemblies and abstract away most of the drudgery of the very basic things, like making a box, making holes in it, and doing the step-by-step Boolean operation to create a dado.

My dream would be to make it possible to create a design from start to finish with only keyboard commands :slight_smile:

For me one of the most desirable features would be to have the functionality of changing a design quickly … changing a 32” wide cabinet to be 36”.

If it’s created in Grasshopper then it’s no big deal. You just move a slider. But once its baked that’s it. I can’t imaging creating a separate Grasshopper file for each style of drawer or cabinet and even if you did that still locks you into using (your) predefined styles. Sure don’t want to dive into modifying a Grasshopper file every time I want a slightly different design.

I think assemblies and ways of defining the spatial relationship between the parts in the assembly is the way to go …

General purpose parametrics outside of Grasshopper …

Autodesk Fusion is very good in that respect.

Yes, there will need to be some kind of part manager or relationship tree to keep parts in order, but the thing is, cabinetry is a bit simpler than something like an engine or a boat. There is a lot of the same thing going on. As mentioned, it is extremely tedious to model all the small details. That is in part because it is a mind-numbing load of repeating the same dados and connections everywhere.

My thought is that all that repetitive information needs to be defined only once. It could be in a configuration file. You would define connections, relationships, standard dimensions, etc. The only thing you would need at the design level is the length, width, and height, but you would still have the ability to modify each minute detail of the cabinet if you wanted to. Each cabinet instance would inherit your standard predefined configuration.

there are quite a lot of solutions on the market already.

Free and online:
Blum Cabinet Configurator

some software my customers use:
Vectorworks interiorcad
phytha.de
Pointline-CAD
Homag / Wood-wop
… and a few others.

there is fully implemented stuff from the online-user-interface to production / sales …
www.roomle.com
… and some others

If you look at some of the carpenters magazines in germany https://www.dds-online.de in Switzerland https://www.schreinerzeitung.ch or visit a trade show www.ligna.de and ligna.de - wood processing … you will see there is already a very diverse market with solutions from maybe 3 000 € to 150 000 €

I think its not easy to position an additional solution - and as your customers will use the program on a daily basis with a tight schedule to keep their cnc machines going or having their furniture delivered in time - you need a well organised and fast service / bug fix / …

I totally see the power of using Rhino as a platform and build a “rhino wood plugin” on top of it. But the buisness case will be based mainly on the low price and not because of functionality that is not already available on the market… (price leadership position ?)

i would be in to develop stuff - but not to take the financial risk or develop a business plan.

I don’t disagree with that. At this point, I have no intentions of trying to make a business out of it. It’s something that I want to use in my own business, and the idea would be to make it freely available to anyone else who wants to contribute or use it. I have some ideas about how that could work based on other products that I have used in the past.

I have also considered that once you enter the business world, things get cutthroat. Throwing something up on GitHub for anyone to use and hack on might be acceptable. But if you happen to develop a product that threatens the big players. There will be no end to the litigation and hate.

The downside to free or really cheap is that it might not be appealing to commercial users, but there are enough small cabinet builders in my part of the world, and I suspect other places, that I can see a market. We paid over 30k for the software we are using, and there is a $2500 annual maintenance fee that we have to pay to stay up-to-date. That is just not feasible for most small shops. I don’t begrudge the company for that price. Their developers have families, and the software definitely pays off in our business, but I think there is space for yet another design app if it does something that others don’t do.

I appreciate all the comments so far! I have been thinking about this for a couple of years, but I have never had the opportunity to defend the idea. This is great!

yeah, most parametric tools from grasshopper fail to create a space is that is both wide enough to be useful in considering distinct design directions and concise enough to be coded/written within a single workday (or two). useful for tuning/optimizing a-priori ideas, but woefully inadequate for generating new ideas.

1 Like