Is there a good method/script/plugin to create foldable cutouts?

Imagine you wanted to make a cube that you could then print on a piece of construction paper complete with little tabs used to glue onto other faces in order to hold the cube together – how can one do this in Rhino Mac? I know there is an unroll command, but I remember a plugin for Rhino Win that ensured the 3D object could be folded together and included tabs and even dotted lines to an exported image file. Can any of this be achieved with Rhino Mac?


do you also remember the name of this plugin? i was looking for something for a while, and had to install pepakura through wineskin since its not native mac.

there is one alternative for mac on the itunes store which i didnt try DunreebCutout

there is also a sketchup plugin, no experience with this either and no idea if it runs on the mac version.

any native mac rhino version would of course be preferable.

Thanks RirchardZ! pepakura was the plugin that I was thinking of, thanks for reminding me of the name.

I’m going to try and use whatever basic commands Rhino has to achieve what I want for starters, but DunreebCutout looks like a very promising backup that I will most likely check out.

I’m unsure if this kind of functionality is too niche to be included as a native toolset, but perhaps a rich procedural command could be implemented down the line; wishful thinking most likely.

I think the Ivy plugin for Grasshopper does something like what you are asking:

Very cool, thanks DanielPiker. Ivy does exactly what I’m thinking of. I have a PC copy of Rhino 5, but no PC at the moment (I could fire up a virtual PC subscription for the time being). I presume at this point, the WIP Mac Grasshopper cannot run Ivy.

Anyway, looks like I have some options, so thanks everyone! Any other thoughts are welcome too.

maybe just throw in an update if you try any of these? would be interesting to know how they perform.

You could always do it “á l’artisan”, move your object such that one surface is flat on the CPlane, extract that surface with ExtractSrf (copy set to off) and rotate the remainder about the fold line with Rotate3D until the next surface is flat on the CPlane. Create glueing tabs as you go. Start with drawing a closed curve around the object on the CPlane to have a “flat” reference for your 3D rotation.


thats possible on a simple shape like a cube, still UnrollSrf will do that automatically besides the flaps of course. on any other shape unfortunately not anymore and also not sure if thats a lot of fun to make it manually :smiley: and by the way do you mean René Descartes? or what are you referring to by “á l’artisan”?

From Wikipedia: “An artisan (from French: artisan, Italian: artigiano) is a skilled craft worker who makes or creates things by hand that may be functional or strictly decorative,”:smiley:

So it does… I have used it almost exclusively for creating part outlines from a complex 3D assembly (together with ExtractSrf, Copy). Still, I feel my method gives you more control over the end result. Maybe one could develop a python script, like “select next surface to fold down” to simplify it.


@jarombra I haven’t played with it, Ivy Grasshopper Plugin, but it does install on WIP Grasshopper.

Just unzip and place the folder into Grasshopper / Libraries like it says for Windows install.

You would have to download the examples and manual to see if it works for you. If there are bugs go on the Grasshopper for Mac page and see if they can be fixed by the developer of Ivy.

FWIW «Randy

1 Like

yes that would be a smooth thing, a simple script or plugin with the option to set the flap size. but depending on the complexity of the shape a simple sequentiell roll down as you would do it might not suffice. some parts might not fit and alternative routs would have to be plotted. no idea how pepakura does it but this works with a quick click and done…

also the grasshopper plugin seems like a bit more effort than what the other suggested packages would do but just for the fun of it i still would try it of course.

The flaps/tabs will be the hardest part to script I think, you have to keep track somehow which seams already have one, and the ends have to be tapered to prevent interference with other tabs. Interesting challenge though…:thinking:

i never scripted anything to be honest, but i believe every curve every point and every result will get an extra id, so there is a list which you can call up and it will be done sequentially, i believe thats not a big problem. if you really want to do it i would be all in, cant help much though besides rhetorically of course and not even sure about that :smiley: but there are plenty of skillful people here who might chime in.

I am not very proficient at scripting either, I have developed a couple of simple scripts, all to assist myself and a friend with whom I cooperate in the development of model airplane kits. One of those was to make it easier to add tabs and notches to the various interlocking balsa and plywood parts. I only partly succeeded with that, one of the pitfalls being having to identify a particular edge of a polygon-surface. I could not find a Rhino-Python function for that, and I fear that that same pitfall will stop me from succeeding to make an unfolding script. Besides, I cannot see much practical use for such a script, except of course for the topic starter.

Btw, I am still pondering over the relation of my use of “artisan” and René Descartes, what was your reason to suppose there was one? I know that he was the inventor of the (2D version of) the Cartesian system of coordinates, the basis of all 2D and 3D cad software, but I do not see him as an artisan…

I do a lot of paper engineering in rhino and I’ve found the unjoinedge tool great for making patterns. The Orient command with scale 1d toggled works well for making manually adding the flaps less painful. I Don’t always bother to add the flaps to the model sometimes I just add them to the flat pattern I’ve made from the unroll. It’s quicker.


yes i somehow associated artisan with c-artesian thinking that might have something to do with unrolling geometry, but never heard of artisan sounds like p-artisan :grin: but ok now i know it thanks.

oh you would get plenty of flowers from all over the rhino world believe me, it may look like not many are interested in that here and now but potentially every architect/student, every designer every plane model builder :smiley: will sooner or later head into wanting to make a paper model because its fast and sufficient and can be very precise, even creating an option for building a model which would be very difficult to produce and/or need a lot of work with the standard styrofoam cutter, laser cutter cnc and of course be a multitude faster than a 3d printer/exposer

about the identification of the surfaces in python maybe @Helvetosaur can help?

can you explain in short how you do that? or would you use that similar to ExtractSrf?

1 Like

Not so much that as the edges of a surface. (I wrongly used “side” before, now corrected)

Absolutely RhicardZ – I’ll let you know how my workflow pans out.

Awesome, thanks for letting me know rhinorudi – this is a good start worth further experimentation.

You could also import your object into JavaView which can unfold and auto-tab any concave/convex polygonal model (and do a lot of other nifty things with geometry), while also making sure there are no overlaps, etc. You can then output the data via PS/EPS to your laser-cutter, for example.

Be aware that Grasshopper or JavaView unfoldings only work out of the box with thin paper. If you are using thicker materials, you need to include some bending allowance depending on the angle of the faces - otherwise your model won’t fit together perfectly. See the schematic below how substantial the difference can be, even if your substrate is “only” 0,5 mm thick cardboard or plastic.