SHELFIE | DIY parametric shelf and storage designer

by mike_mattala Apr 10, 2015
Download All Files

Thing Apps Enabled

Please Login to Comment

Cool idea and great design. Thanks
For any guys who want to print, don't forget to modify (at least) the foot edges with fillers, which is good to the wood floor if you have.

Bug in openscad code? - L Foot with flip=true not working properly (removes foot) - just needed to bracket L Foot method code with union (){.......} to fix..

It'd be excellent if there was an "I" bracket too. I found myself wanting to create very tall sections to accomodate things like guitars, but was unable to do it without an "i" bracket.

Also thanks, this is easily the best of modular shelving, and I've used it for a year now! +1

Nice to hear some feedback (some pics would be great). Shouldn't be difficult to add. I will put it on my todo list.

seems customizer has stopped working

/usr/local/bin/openscad/openscad: error while loading shared libraries: libCGAL.so.10: cannot open shared object file: No such file or directory

It is a widespread thingiverse problem. I suggest downloading the file and opening locally with openscad.

Hey Mike... thanks for this code! Works great -- except...

I don't think it was designed for small "lumber". I decided to try with 0.08 acrylic -- with panel and wall thicknesses of 2, bracket size of 18, it worked great (I posted a photo on the "I made one" page). However, if I choose the option of "T Foot" or "L Foot", all that shows up in OpenSCAD is a 30x30x30 mm cube. I assume the code isn't sizing the feet to brackets of this small size.

Thanks again for posting this!


Great to see interesting applications and thanks for the feedback. I just uploaded a fix for the T and L Foot issue.


Thanks, Mike!

-= Dave


I love the idea of making a custom shelf with printed parts :D

Do you think it is possible to add more customization for the wall mount part, like "round angle" with custom radius.


I just released Version 2 which includes the feature you suggested. Enjoy :)

\o/ Yeah ! Thanks !

I was planning to make some additions to the code shortly - I will add this to the list :)

you should create pass through on all of them, except maybe edges, this way boards can be butted right up against each other with horizontal boards laying right on top of or right under vertical ones, so the clips are only there to keep the whole thing from falling sideways or popping apart, and not required to support vertically the weight laying out horizontally, going to do my own version of these, thanks for spreading the idea :)

I just released Version 2 which includes the feature you suggested. Enjoy :)

I have been planning to add that feature for a while - just hard to find the time. I will see what I can do :)

Hi Mike,
I am so happy witch your work, unbelievable!! But I use it for an another purpose. I am retired, from my job as teacher on a technical school in the Netherlands. My grand children love to make there own little homes. So I use shelves from board, 3mm. Now I hope they can build nice little homes. The first customized brackets are printed. When ready and successfully I will publish them.

looking forward to seeing the finished result. I added some new options to the design which you might find helpful :)

I'm getting the following in my queue after trying to make a custom design in customizer.

<JSON::ParserError: A JSON text must at least contain two octets!>

Just trying the below settings.
base_thickness = 3
hole_radius = 0
pass_through = false
panel2_thickness = 4
panel_thickness = 4
bracket_size = 20
wall_mount = false
wall_thickness = 2
flip = false
bracket_type = L

I just tried using Customiser and got the same error. I also ran the code directly through OpenScad and there were no errors or warnings.

It appears to be a general Customizer fault with Thingiverse. I suggest downloading the code, open with OpenScad and change the parameters in the header to create the result you want.

PS: Customizer is just a fancy script that runs OpenScad underneath :)


Thanks. I will test this out. BTW, thanks for adapting this and making it customizable. The original one was too big for my needs, but being able to adjust is great.
Thanks for your work on this.


Appreciate the feedback.


Just updated the code to better handle small bracket sizes.



I cannot customize the file.. everytime I click the "Create thing" button I get this error:

<JSON::ParserError: A JSON text must at least contain two octets!>

Please help


This is most likely a local browser issue. Have you tried another pc? You can download and open the file directly with openscad and change the parameters manually if needed.

Comments deleted.

Hi Mike, after downloading your OpenSCAD file, I pressed Fn F6, what came out is only the L-piece.

What should I do if i want to see the other pieces?

Thank you


Just use the customizer button on thingiverse to generate the item you want. If you want to use the openscad file directly, change the values in the top section of the code under [Bracket Options] to generate the required piece.


Thanks Mike!

I tried the Customizer, now in process of printing a "L" bracket with panel thickness 16.5mm and wall thickness 4mm.

Too excited to wait for the print to finish, here's the in-progress link: http://www.thingiverse.com/thing:1017130

My Customized SHELFIE | DIY parametric shelf and storage designer

Great to see your project taking shape. Would love to see the finished product.


I just found it, great design.

I'm having trouble understanding your customizer. Which setting should I change so I can use this with 3/4 inch thick boards? Do you recommend any kind of allowance to make sure the board will fit in?

Convert to mm then set the thickness of both panels. It depends on the printer, but I normally don't add any tolerance so it fits tightly. Make sure you measure the panel thickness as they can sometimes expand with moisture. Cheers Mike

Do you typically use PLA or ABS? Advantages / disadvantages of either?

Both materials are fine. ABS is stronger and better for high impact or stress, but standard PLA is still adequate for most uses. Both are easy to print, although PLA is easier. Because it prints laterally along the key stress points, ABS still maintains its strength even if you get layer separation. You can also compensate for any weakness by increasing the size and thickness.

What layer height and infill % do you recommend?

I usually use .2mm layer height and 25% fill, but have had no problems with .25mm layer and less fill.

Very interesting. I have a question. In Customizer it ask what thickness and bracket size for the panel. Is there way to convert it to mm, inch or cm. Thanks

All customizer distance values are in mm. You will need to convert to mm if you are using other values.

Google should to be your best friend as it is mine.