Routered kitchen doors for rendering

Hi all, I’ve been a long term user of Rhino and remain a fan. We’ve been using Rhino in a production environment from 3D design through to part geometry and export to CNC cutting. It’s all running well, but I’m feeling we are lacking a bit on the front end presentation compared to other kitchen manufacturers.

We’ve provided simple renders and 3D views in the past (refer attached) which has been OK, but if we wanted to show a door that was routered with a pattern it is a huge job to perform the solid edits, and then when the customer wants to look at a different door profile, it needs to be done again.

In our industry the design work is done at no cost and part of our proposal to win the work, so it has to be produced pretty quickly. I’d love to spend the many hours setting it up to perfection, but commercial reality is we don’t have the time for that. There are quite a few kitchen design specific packages out there, which I have been resistant to, but they are providing quick changes between profile, easy rendering setup. They are now starting to package in VR, and of course costing is also integrated.

So my question is… is there a quick and easy way to achieve the same or similar results?
There are no standard door sizes and they get changed until the customer signs off on the design.
I did wonder about a negative bump map to get a crude version of the same thing, but the variation in door sizes makes that no good.

I’ve attached images of what we have, and shots from other packages. Again note I can model these doors up manually, but it isn’t commercially viable to do this, I need to quick approach to it.

The ideal of course is a parametric object, and I’m assuming there are ways to do it with grasshopper, but again there isn’t time to set up clever algorithms for each job and object. Unless someone can show me an example of an easy to implement version?



1 Like

This absolutely can and should be done in GrassHopper, no problem.

// Rolf

Thanks @RIL, I’ve done plenty of scripting but have avoided Grasshopper to date. The couple of times I’ve tried to use it I’ve found it clumsy and thought that I was going to have to go through a similar process on every door in a kitchen. Are there any examples out there of people using Grasshopper for similar things?

There are some videos showing examples of how GrassHopper has been used in facade design for very complex buildings, but they would be “overkill” compared to kitchen cabinets and doors. They do however contain examples of design strategies that may apply at least in part. Downside is that complex examples isn’t the best way to demonstrate the simpler use cases without scaring away people from even trying… Someone else may have some hint about a project with is on the same complexity level as kitchen cabinets.

Regarding designing using GrassHopper it also has its own scripting components, so that you can descide on which level you want to solve each specific problem. Either using existing components or make your own script-component for the task (GhPython, VB.NET or C#.NET scripts available).

If you have certain base configurations of the basic layouts, it should be fairly straight forward to work within the GrassHopper paradigm. Draw lines, extrude, and so on, using sliders to set the dimensions, and so everything “lives”. And when dimensions fit, press “Bake” and your geometry is created in Rhino, Also bake can be scripted.

I guess I would split such a project into a floor plan first, and let GrassHopper figure out the cabinet withs, ur using “guides” to hint GH to pick from (near) standard withs, and so on.

Of course this would be a complete application deveopment project, so it would take some time to develop, especially if new to GrassHopper, but it’s definitely doable.

I understand that you would like to stay with Rhino, which probably is a very good idea, and I think that a GrassHopper solution could provide you with a future proof solution, which is another aspect to consider.

// Rolf

( I’m an ol’ carpenter myself and I made my first complete old fashion kitchen style for my mum at a very young age, so it’s itching in my fingers to try making something like this, but right now I’m busy with another project in GH (which btw is extremely much more complex than this). ).

Then you would have to change the approach.

I would make one (1) definition of a door (perhaps one per door style) in a component (think of it as a Block in vanilla Rhino). Then you would just spread them out, using insertion points, or split up distances from the floor plan into the desired number of doors, or… pick an drop door definitions (pairs or single doors, corner door, swing doors etc)… You would design the components to provide exactly the kind of geometry you would like to work with when laying out the doors on the kitchen plan. Like when you make Blocks in Rhino.

In short, I would make a component named McDoor(style). :slight_smile: (and of course some other components too…)

Perhaps this is your most important concern, if GrassHopper really would be capable of the task (the answer is yes). You can definitely use GrassHopper to do it in any way you want, even regarding what Daniel Rutten said about GrassHopper vs Rhino -

GrassHopper is aware of (the functionality of) Rhino, but Rhino isn’t aware of GrassHopper.

This may actually give you the answer you are looking for, namely that anything you can automate in Rhino you can do from GrassHopper. In many cases in a smarter way than you would from Rhino only.

// Rolf

Is that David’s twin brother? :stuck_out_tongue:

Ah, yes, he has to be. Who else is he? :thinking: :slight_smile:

He already got locked out from his forum account, and now even his name is fumbled with. Sorry David.

// Rolf

For this kind of quick and cheap 3D effect one would use normal maps to give the illusion of 3D details. Those work best when not doing a close-up. If the shots you require are like the kitchen shoulds I’d definitely would go for that. I don’t know if Rhino Render supports that, but this is something the Cycles render engine integration in windows Rhino WIP could support, as the engine already knows how to do that.

Thanks again @RIL Rolf, that is good advice.
I’m working through some of the video tutorials, still looking for something similar to what I’m trying to achieve, but will keep hunting. We have 4 staff who will be using this solution, so whatever I create will need to be suitably scripted so that they in effect won’t need to touch the GH side of things. I’ll keep plugging on. I’m guessing once the objects are created (baked) there is no going back and editing again?

Thanks @nathanletwory, I wondered about an approach like this. i’ve used bump maps in the past, but they didn’t seem to allow for the many varied sizes of doors, drawer fronts, etc.

It depends. if you save the gh-file, with the sliders and settings and all, then you can just delete the old objects from the Rhino model, then open the gh-file again and adjust the sliders/dimension, and finally bake the whole thing again.

If you bake with script (a bake-component) you can bake “interactively” as you update your dimensions, like I do in this example (“bending steel”, sort of).

If you have many objects then you may want to wait with the baking until you feel that all settings are OK, since baking is rather slow in Rhino.

// Rolf

just to clarify…
You are primarily looking for something that will make the necessary ‘fronts’ once and you can then either use those as blocks or place then manually in place. You are not expecting your entire kitchen to be drawn automatically by grasshopper?

[quote=“wim, post:12, topic:45619”]
… make the necessary ‘fronts’ … your entire kitchen to be drawn automatically by grasshopper?[/quote]
Apart from the kitchen room itself, the difference between doors only (in order to get the dimensions) and to include the cabinets as well, is rather subtle… :slight_smile:

I know I would definitly draw the entire room, using rectangular “blocks” intersecting them in order to form walls with corner niches, or U shaped niches, or… any form of niches, and from that go on to stack the resulting room with cabinets, with the doors autogenerated (trheshold values for width descides whether to generate double or single doors, and a “hot spot” reference point per “front line” to determine hinge directions (opening side determined from the direction of those hot-spots), and at last, selecting the “door style” before baking.

Something like that.

If going for “manually” placing the cabinets, it could end up looking like this when stacking cabinets along and around an “outward” corner (std Swedish widths, 600 resp. 800 mm , and so on). Here assuming that all lower cabinets have a corresponding “std upper cabinet”. A separate line of componets for the upper cabinets could be used, and/or an extra inport on the lower cabinets to plug in the upper cabinet or cover, if not std according to “style”:

// Rolf

Hi @wim and thanks for the message, my preference at this stage is to deal with just the fronts, although I can see benefits to tackling it cupboard by cupboard. Ideally to be able to select all that I want to apply a pattern to and they are converted.

If feel if I try to script/GH a whole kitchen, it will actually be counter-intuitive to the design process. It would also mean that the 3-4 other staff who will also be using the software will need to come up to speed with GH, which isn’t the aim. I need to create something that is simple for any of our staff to apply patterns to the cupboards.

The scripted method I use currently is eg. Command ‘BaseCupboard’, I then pick 2 points and it creates (via vbscript) the cupboard and fronts. It is quick and easy, and the objects can be scaled afterwards, but it is the patterned door fronts that I need to create a shortcut with to be able to justify continuing with Rhino in our front end design crew. We can’t afford the time modelling all of the doors, routered patterns, etc. manually, considering all of this is done ‘free’ upfront. It would turn a 1-2 hour design and presentation into a huge job, when our designers need to be producing multiple quotes per day.

I started some trials @RIL and can get a few editable panels, but struggling to see how to apply this in designing a space. I wonder if there are Rhino developers that I can pay to take a look at it? If we ended up paying for different software, I’d be happier to invest in keeping what we have alive.


If you provide an example file I can try to have a look at it when I have some time.


I had the same problem with classical doors and went through many options trying to improve and reduce the time of modelling. I also tried many other software but eventually I made decision to stay in Rhino and fill the missing gaps by scripting and learning. I would be also happy to do it without GH.

Without coding. The best way is easier then you think! You need to use 1 unit extruded profile and make a block from it. It has to be 1m, 1 col whatever. Then you need to copy it and place one by one into the right position and than use the Scale 1D tool to adjust the proper length. Why is it good? Because when you can replace the pattern of the base object any time all other blocks will change their pattern and keep the length. Cabinet doors can be also copied. The most problematic thing is might be the mitre joints that all profile will cover each other but in shading mode it is still ok.

Thanks @onrender, that reminds me of something I did in AutoCAD many years back.
That is a great idea and I could see how I can make that work via scripting. It would get me covered on a few basic door designs at least.

I’m wondering are you also scripting the raised panel in the middle?

Arch top doors would be a bit problematic, but even if I have 3-4 representative styles for visualisation, that would be ok.