Russian Doll Maze Puzzle Box

by RevK, published

Russian Doll Maze Puzzle Box by RevK Jun 29, 2017
42 Share
Download All Files

Thing Apps Enabled

Order This Printed View All Apps


Design Tools



Liked By

View All

Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag.

Print Thing Tag

Thing Statistics

57929Views 14205Downloads Found in Puzzles


This is a multiple level maze puzzle box. i.e. you solve one puzzle, and find there is another and maybe another before you finally get to the middle and the prize.

I have included a three part box (two mazes) and a four part box (three mazes) to download and print. They should have clearance enough for a makerbot (let me know if not). I have also included a short four part box so you can test clearances, etc.

However, as before, I have a maze generator that produces the OpenSCAD which is unique every time - so a different maze to everyone else's, and allows you to make them in any size.

The examples I have posted are made using these:-
(Please LIKE this thing if you download)

http://e.gg/puzzlebox.cgi/30/20/o Inner box
http://e.gg/puzzlebox.cgi/30/20/i Outer box, and lid

http://e.gg/puzzlebox.cgi/75/15/5/oo Inner box
http://e.gg/puzzlebox.cgi/75/15/5/io Next box
http://e.gg/puzzlebox.cgi/75/15/5/ii Outer box, and lid

The parts on the end of the URL are firstly whole numbers that are the inside height, inside diameter, and extra height on the inner box (in mm).

Then letters, where "i" means there is a box inside this one, and "o" means there is a box outside this one. More "i"s mean mean more boxes inside and the overall size is increased accordingly.

The set of 4 parts is designed around a rolled up £20 note. So 15 mm wide and 75mm high but with 5mm space to allow the £20 to stick out and be accessible when the boxes are finally open.

The possibilities are endless! Credit to my son, James, for the idea of taking my maze boxes one step further - well done.


Solving the maze

More from Puzzles

view more

All Apps

Auto-magically prepare your 3D models for 3D printing. A cloud based 3D models Preparing and Healing solution for 3D Printing, MakePrintable provides features for model repairing, wall thickness...

App Info Launch App

Kiri:Moto is an integrated cloud-based slicer and tool-path generator for 3D Printing, CAM / CNC and Laser cutting. *** 3D printing mode provides model slicing and GCode output using built-in...

App Info Launch App
KiriMoto Thing App

With 3D Slash, you can edit 3d models like a stonecutter. A unique interface: as fun as a building game! The perfect tool for non-designers and children to create in 3D.

App Info Launch App

Print through a distributed network of 3D printing enthusiasts from across the US, at a fraction of the cost of the competitors. We want to change the world for the better through technology, an...

App Info Launch App

Quickly Scale, Mirror or Cut your 3D Models

App Info Launch App

Treatstock is an online platform that offers decentralized manufacturing services such as 3D printing and CNC machining for business-to-business and business-to-consumer sales all over the world. W...

App Info Launch App

3D print your favourite design with NinjaPrototype, a professional 3D manufacture with consistent quality and speed.

App Info Launch App

Great design, in my case all parts printed beautifully. But I find a flaw when I gave some to friends and family. When they were trying to take them apart by moving them to all sides, the inner parts started to become loose and pull out, making it impossible then for the outer parts to come out.They all became useless because there is no way to get the parts in/out with the inner parts pulled out. I am surprised no one else has commented on this.

where is the generator?

Thank you so much for excellent and unbelievably smart THING! I'm making a ten ply maze to aMAZE friends!

To anyone who cant seem to get it work, use the URL as he instructs, only small adjustment should be put in use on the downloaded scad file code, or at least thats what i suppose and how it worked for me.

where is the generator?

Seems to be a very cool thing to print, what is hard to find here actually! Going to make it tomorrow and feature on our Instagram @3d.passion! Great job!

The attached STL is so corrupt it actually ruined my hotend. Be careful if you download the attached files. I normally triple check but with so many votes and likes I assumed like a fool.

I just downloaded and printed this without any problems at all. It might be an issue on your end.

Nice work!
But does the "nipples" as you say gets worn out?

Is there a way to print a solution for each part, as I had troubles even working out the route to put the parts together? :(

Sending as Christmas presents and don't want to suffer tears if they can't be opened. :)

If you want a solution you can find one on my make http://www.thingiverse.com/make:451704

Russian Doll Maze Puzzle Box

It can be made easy to close by a path running from top to bottom in which the knobs slides and clips at the bottom

So, odd issue. I can post a pic tomorrow if it helps. You can see in an earlier post I made the labyrinth cylinders I made. Very cool. I am making a single puzzle cylinder now that’s a bit taller (inner height of 110mm).

3 of 3 prints have resulted in the same issue (though I blamed the first two on poor adhesion, the third one was stuck down quite well) where the puzzle cylinder starts going wonky about 80% of the way up and the layers don’t adhere to anything. The lid that prints simultaneously right next to it is always fine. This last attempt was even a reslice because I modified the model in Blender to carve a number in the bottom, so it was a slightly different model with new slicing - same result.

Anyone know of any special considerations for prints over 80mm or so tall? This has me puzzled - no pun intended.

I'm looking to change the dimensions slightly so the inner box holds something specific. I need to change the inner diameter (id=15 to maybe id=20) and the height (ih=75 to maybe ih=90). I'm going to print some tests to see how all this works, but is there anything I should be specifically concerned with? I'm assuming since the spacing is 5 units, the height and diameter need to be multiples of 5?

Also, when you set print lid=1, does it print a lid based on the params of the current layer? For instance, could I set lid=1 for the innermost layer and get a lid for it at that size?


Actually - I think I got it - modifying the URL inserts new parameters. Spiffy!

Oh, I get it now. The maze is generated by the cgi that you download the OpenSCAD file from. Therefore changing dimensions is a problem. @RevK, is there any chance you'd be willing to share the generation code so that we might play with the parameters a bit?

I've made a bit of a change to your code that allows me just to change the "lvl" parameter, and ir, and or depending if it have boxes inside, or outside of it.
// Puzzle box by Adrian Kennard www.me.uk
// /75/15/5/ii
lvl=4; //Box level
p=2; // Paths
m=0.2; // Margin/clearance
s=5; // Spacing (unit)
h=14; // Height in units
w=14+(6(lvl-1)); // Width in units increments by 6
bs=15; // Base sides
bh=8; // Base height
iw=2; // Inside wall thickness
(lvl-1)); // Inside height
eh=10; // Extra height
wt=3; // Wall thickness
id=15+(((wt2)+3)(lvl-1)); // Inside diameter [previous box id+(wt2)+3]
2)+12; // Base diameter id+(wt*2)+12
st=3; // Start point
ex=10; // Exit point
lid=0; // Print lid
base=1; // Print base
is=lvl-1; // Inside Russian
os=1; // Outside Russian
k=0; // Skew
i=0; // Inside (maze inside lid)

There is more needed than this. and I'm actually getting all sorts of compilation errors now.

Edit: The compilation errors were fixed with a restart of the app. Still working out the maths.

So, I have a code that I can just change the lvl number, on to adjust everything but height, and the maze array.
I made a larger array for another layer, but there are sections that are islanded, that you can go around, and you can do full 360 degreed rotation though a couple paths.

Other than, the bottom row needing to be all 1s and 0s, and the left half needing to match the right half, what other rules are there for the numbers in the maze array?

how do you change the maze? I always get the same one.

You have to click the link to download new ones. If you grab the STL files in the files tab, they are always the same. If you click the links in the body of the description, it generates a new one each time you download the file. It appears that you can modify at least the inner height, inner diameter, and stepping size (as well as how many boxes deep) but changing the values in the URL itself. Testing that now.

I created one with the parameters /160/15/5/iiii and I get an error in OpenSCAD of:

"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"

That repeats with different line numbers. Thoughts?

locate the render() statement. Replace with render(convexity=2) and it will work with a more recent version of OpenSCAD (tested with 2018.01.06).

Use the 2015 version of OpenSCAD - something changed in the newer versions causing the error above.

where is the code for generating the puzzle with more than 4 shells. i would like to make one with 6 layers so each layer can proceed through the colors of the rainbow

You just add more 'i's and 'o's

It would be nice if the lid was separate. Other than that, I really like this. xD

+1 for option to put the maze on the inside to hide it.


Just add:

piece = "baseAndLid"; // ["baseOnly":Generate Base, "lidOnly":Generate Lid, "baseAndLid":Generate Base and Lid]

to the top of the generated code and replace the following two lines:


with the following code:

if(piece=="lidOnly") {
else if(piece=="baseOnly") {
else {

Then you will be able to generate either piece individually or both as per original code.
If you are interested, I have made a remix to demonstrate that among other things.

It looks like in OpenSCAD you can change the variable Lid=1 to be Lid=0 and save, render, export.

I have not made that option in my code (yet) - but you could play around with the openscad :-)

how would i go about putting the maze inside so it's inverted, so you can't see the maze?

Great puzzle - and a step up from the 2 piece puzzle by sneakypoo. (https://www.thingiverse.com/thing:201097)

puzzle-75-15-5-ii-box.stl seems to have manifold problems that Slic3r can't handle; importing to Blender, fixing using 3d printing plugin, then exporting seems to have cured these.

Labyrinth Gift Box

I ran into the same problem, but didn't realize how bad it was and ended up with a giant ball of spaghetti filament. Could you upload the new stl you exported from Blender as a remix or something? I've never used Blender, but I could probably figure it out if you can't.

I also just tried to print this and didn't notice that slic3r had put gaps in the build for that piece. Looks like I'll have to find a different model print. It's a shame the uploaded files are faulty.

The models in this remix seem to be fine, but the top cover is in the same file as the faulty piece. https://www.thingiverse.com/thing:2607374

Russian Doll Maze Puzzle Box