MakerBot Print is our newest print-prepration software, which supports native CAD files and STL assemblies,
allows you to interact with all your printers via the Cloud, and many other exciting new features.

Download Now


Custom Heart Box

by emmett Dec 24, 2015
Download All Files

Thing Apps Enabled

Please Login to Comment

Printed this on my Ender 3 and it turned out perfect! Such a cool little box! Thanks!

Absolutely awesome!

Idea for new version: The two halves can be taken apart, and they both have a keyhole and key of some kind that fits into the partner. The effect: they can only be opened when attached. Attach, rotate, it opens. Rotate, detach, they are locked.

Absolutely excellent ! Printed perfectly on an Ender 3 Pro with tolerance at 0.4, both at 100% and 125% scale.
Use OpenScad to customize it BUT install 32bit version and not 64bit otherwise you will get error messages while building in OpenScad http://www.openscad.org/downloads.html).
To get a customized version with letters, you also need to add write.scad add-on files into your working folder (download them from https://www.thingiverse.com/thing:16193 and copy them in a \write subfolder where your scad file is).

Emmet, you rock !!!


I just figured out that you twist to open, almost broke it... But really amazing design!

If you print at 125% it prints out perfecting without sticking together. If you print at 150% it gets a little sloppy but you can put a shim inbetween the sliding surfaces and it tightens it up. I am using a 3D pen to put in a shim.

I'm using openscad and no letters are appearing on the top of the heart? Why?

Enter your letters in code but you also need to add the write.scad file and others addons into your working folder. Find them at https://www.thingiverse.com/thing:16193.
And only use OpenScad 32bit.


I think if you chamfer the box bottom of the box between the two sides it would not stick together. I will give it a try. I successfully made a box but had to take an exacto knife to it.
Great design otherwise. Very interesting.

Customizer worked for me! It was horribly fused but I increased it from 0.3 to 0.5 and now it works, but is loose. I wonder if there is a number between 0.3 and 0.5 I can try to get it to work.

This guy is a geniuartist!

If it makes you feel better, the customizer is worthless when it works. Adjustments to clearance do not work. the parts print fused every time, no matter how comically large I make the clearance between moving parts. Monograms print like garbage on the print bed for the same reason. Unfortunately, another completely unusable object on Thingiverse. It's a shame because it looks awesome. Tried using Simplify3D and 2 versions of Cura, on a Qidi Tech 1 and Tevo Tornado.

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

Pity the customiser does not work. This seems to be a general THINGIVERSE problem.

No, general problem is user base here.
People who don't care about licenses and stuff, people who post shit and can't even think about two things. And inability to deal with those people.
Customizer is sure nice, but it's very minor.

You can just customize this thing using OpenSCAD.
It works way better than this customizer anyways.

cant' customize the settings, same error as Swood333 has...

This no longer works in Customizer. It gives an error on the customizer screen of:
"/usr/local/bin/openscad/openscad: error while loading shared libraries: libCGAL.so.10: cannot open shared object file: No such file or directory"

and then has an error of:

<RuntimeError: Failed to get https://www.thingiverse.com/download:1910365 403: Forbidden>

after I hit "create thing" and go to my Que to check on it. Any suggestions?

This is the first time using OpenSCAD. I click F6 and I get the following error and only 3/4 of the model is rendered.

ERROR: CGAL error in CGAL_Nef_polyhedron3(): CGAL ERROR: assertion violation! Expr: pe_prev->is_border() || !internal::Plane_constructor::get_plane(pe_prev->facet(),pe_prev->facet()->plane()).is_degenerate() File: /opt/mxe/usr/x86_64-w64-mingw32.static/include/CGAL/Nef_3/polyhedron_3_to_nef_3.h Line: 251

I had the exact same problem. What fixed it for me was using the 32-bit version of OpenSCAD (2015.03-2) instead of the 64-bit version. The development snapshot had the same problem so use the 2015.03-2 version.

Hi, Has anyone tried to print it on SLS printer in Alumide. The guidelines for alumide says the minimum clearance should be 0.5mm whereas here we've got 0.2-0.3mm.

You're welcome to use customizer to increase Tol (which is clearance). As a general rule, SLS needs a lot more clearance than FDM does. I'll actually be pretty impressed if it works with 0.5mm, so please post an I Made One so we can all see the results.

Hi Emmet. Thank you for your advices. I am going to make 0.4 to 0.5mm clearance. Are there any maximum sizes for wall thickness? As I am about to make it 2mm thick. I also notice that if you measure distance between faces ( and measuring line is perpendicular to both measured faces) on that "zigzag" split line it's not actually 0.45mm but circa 0.3mm. Was it done intentionally or is it a sort of error which customisiser can't cope with?
Is there any way to save customised part to STEP file?

It was intentional (more or less), as it's mostly clearance in the horizontal plane that matters for FDM. I haven't tested all the possible combos of parameters, so inspect it a bit before you print. Frankly, if you're going to print it in SLS, you might want to pop open the scad file and make a few deeper changes. The main one I can think of is the 45 degree cutoff of the central pin. I needed that to make it FDM printable, but you can keep the whole pin for SLS. Still, I have the feeling it's going to be pretty wobbly when you're done, but I'm curious.

Hi Emmett,

I have managed to print it in Alumide. See my "I made one" section for more details. Thanks for sharing


I have looked at the central pin cutoff and I agree with you but I don't know what line of the script in OpenSCAD represents the pin feature, as I am not familiar with this software. The only problem which worries me the most is a trapped powder between all inaccessible gaps which probably won't be properly blown away and this may cause jamming between mating faces. I am considering to model some holes underneath the heart to allow printer operator remove excess of trapped powder.

Comments deleted.

Awesome design, my girls love it! Sliced with CURA 2.5 and printed in 0.1mm PLA and it came out perfect! However I scaled it up to 125%, since it would have been to small for the coins my daughter wants to keep in.
Since my scaling also scaled up the gaps between the two hearts sides, mine is now pretty loose and clattering. Will you create a larger version (125-150%) with the same width of the gaps of the original size? Thank you!

Just click "Open in Customizer". The tol parameter is the width of the gaps. You can just make is smaller by however much you intend to scale it up by. You can also pick custom initials for the emboss.

Is it scalable? I'd love to print it bigger

I would love to see this in a different shape. Its a lot of run.

Ive found that bbasicall every printer I print this on requieres different tolerances. I printed it on thr Type A Series 1 Pro with .8 because .3 and .4 didn't work.

On the Dremel idea builder .4 was great.

EDIT:After playing around for abit, I found out that the default values were incompatible and all I needed to do was increase the thickness from 1.6 to 1.61 for it to work in OpenSCAD. I made the error of assuming the default values would be fine.

For some reason I am getting a "Object isn't a valid 2-manifold! Modify your design." error and can't export a stl from the .scad, but the .scad doesn't seem to have been updated since december when it was published? Trying to use the customizer also fails with an error.

Ok, just some feedback in case anyone has a printer like mine. Printed the default .stl on Makerbot Replicator 2, Normal settings (0.2mm layer height), red PLA, no supports or rafts. Top looks ok, but bottom is too fused to snap loose, maybe could carve it open. Thinking will try again with higher tolerance.

Same issue here. Looks lovely, but it's stuck shut and won't break loose. Is there a setting I need to adjust?

It is definitely the tolerance in the customizer setting that needs fiddling if you have the same problem (depends on the printer), that will make the gaps bigger and less likely to fuse together. Higher tolerance means bigger gaps, but too much and it will be very loosely held together. Just gotta experiment with the tolerance setting.

Brilliant! Gonna give this a spin as soon as possible. The old one was always popular as storage + something to fiddle with. Love the improvements.

Wasn't even aware this existed till today. Thingiverse really gotta fix the issue with all the Customizer models flooding the Remix section XD.

Hello Emmet,
Great design. I have printed couple, and tolerance has to be changed in customizer depending on the material.
Unfortunately, customizer will not open properly with this model anymore, saying "script error" on the bottom of the page.
Is there any chance you could have a look at it?
Is really a great thing to print for a gift.
Thank you

Amazing model! Printed very well without support on an Up Plus 2 with BioFila Linen (uploaded pictures @ Made). Thanks for this great model.

hey! how did you print without supports? can you help me with the orientation of the part on the bed

I just printed it as is - no support needed. The undersides were sagging just a little bit but the print was fine.

What software/settings are you using? Slic3r simply refuses to properly slice this.

Thank you!

Slic3r 1.2.9 consistently crashes for me on this model using my default settings.

However, if I set my number of perimeters to 2 instead of 3 before loading, then it succeeds.

There is clearly a bug in slic3r 1.2.9. I haven't been able to make sense of a stack backtrace yet since it is deep inside the perl interpreter it passes a null to memcpy.

Simplify3D on my Makerbot Thing-O-Matic. I printed the version under "Thing Files" here with .25 layer height and 10% infill.