Thingiverse is currently experiencing issues related to search. We are currently investigating. Thanks for your patience.


The Snowflake Machine

by mathgrrl Nov 27, 2015
Download All Files

Thing Apps Enabled

Please Login to Comment

This is a great tool, and I want to utilize in an elementary school to introduce 3D printing. I am trying to print using a Makerbot Replicator+ with PLA filament. I am wondering if there are any tips to getting the flakes to adhere to build plate to completion. Rafts are too bulky and can't be removed and the flakes without a base come up off the plate as they are being printed traveling with the extruder. I have tried blue painters tape on the build plate with no luck. Any suggestions? Settings that I can change? Thanks for any help that can be provided.

This is absolutely fantastic. I could literally do this all day long and never get bored. The simple existence of this program justifies the owning of a 3D printer. People using this to generate and print snowflakes have measurably lower blood pressure, are happier, and less likely to die young. You are to be commended for putting this "out there" to improve the mental health of 3D printer owners everywhere.

sure looks like you like snow flakes

:) This year I switched to clocks, which are kind of similar in structure...

Design Your Own Sunburst Clock

this is amazing!!!!!!!! this is what i have been looking for!!!!!!!! thanks

thanks, glad to hear it!

Question, is it normal for the rendering process to take quite a long time per snowflake? previews are very fast but renders take a good five minutes or so

Sometimes, it depends on how Thingiverse is feeling I think. If you download the OpenSCAD code and run it on your own computer it will be super fast and way more fun

Newbie question, I found it too hard to get it off the platform after printing since it is so thin. Any idea? I use ABS material. Thx!


What a wonderful idea, thank you for taking the time to make this! I am having trouble running the OpenScad program - it keeps repeating a 162:syntax error at me whenever I try and compile a snowflake. edit After updating to the latest version of OpenScad the problem has disappeared - now churning out brilliant snowflakes for my friends.

Thank you for this. We made over 100 of these for my wife's workgroup. We used their employee number as the seed so each one was unique and tied to that person. Huge hit.

What is the units for the nozzle number under advanced settings? I set it to 1.75 assuming it's in millimeters but the preview snowflake looked much worse, almost as if the units are much bigger than millimeters.

where do i get it from after im done with it in the customizer

update nevermind i didnt know it took so long 15 MIN to create it

Great snowflake generator!!!

Is there a possibility to script incrementing seed, rendering and exporting each snowflake with the stl named with the seed number for a range of seeds? If so, where would I look for information on how to script that?

Reason is, the manager down the hall boasted that she got a Cricut last Christmas and will decorate their department with precise paper cut intricate snowflakes. So the competitive side of me says, oh yeah, well, I got a 3D printer... you see where this is going. So yeah, just checking if there is a way to script making a bunch of unique snowflake stl's.

haha, well I don't know how to write such a script, but you could download my OpenSCAD code and run it locally on your machine to export snowflakes more quickly, or to possibly incorporate into some sort of automated script. Just keep rendering over and over to get random seeds, then when you find one that you like, type in that seed and compile into a 3D file. Also if you wanted to, you could export the snowflakes from OpenSCAD as 2D .svg files that the Cricut might be able to use.

@mathgrrl This is very cool!

On the subject of scripting to generate a lot of snowflakes, I wrote something like this ( which has a simple script that runs OpenSCAD passing in a new seed each time, so you can generate a pile of snowflakes programmatically, by passing in command line parameters. If you look at the 'blizzard' shell script, I think it'd be easy to adapt to run your snowflake script instead of mine. It's interesting comparing the algorithms! Your code is much cleaner! :-)

Blizzard of Unique Snowflakes
by laird

hey @laird that is the first time someone said my code was clean, haha. yours definitely gets the job done in fewer lines! it's interesting to compare the methods/algorithm. your shell script is interesting, i've never tried anything like that

Well, I wrote mine before OpenSCAD supported stack-based recursion, so I had to fake it a bit with arrays. So it's not pretty, but it works!

Thank you. Yes I have been rendering them from OpenSCAD. Was just wondering about the scripting since everything looks programmatic. I'm 100% certain your snowflakes will outshine the other manager's paper cut snowflakes. Thanks again.

if you want a bunch of random ones just go to a diffrent seed export and go to another seed and export and so on

These are so good! Thank you for sharing

PS: Asimov is the best :D

What is the best print settings for a snowflake with a target size of 75. What about infill pattern?

This is brilliant. And now... Timely again! ;)

How about a snowflake cookie-cutter generator?
Maybe I'll try to edit the scad file to do that but I'm a pretty noob in openscad :)

hey matschi - i loved your cookie cutter idea and i just posted a customizer for making snowflake cookie cutters at thank you for the idea!

Customizable Snowflake Cookie Cutters

Hey :) nice!!!
Definitely will print and bake some :) I've got pretty good experience with gingerbread-dough for detailed cookies(See my poop-emoji-cookies). Though dark snowflakes aren't very common I think I'll try them anyway.

I'll post a made one next time we make cookies. ;)

OK I am a total novice at this stuff. I was able to change the seeds in OpenScad. I keep getting a error statement when i want to export the file as an STL : "WARNING: Nothing to export! Try building first (press F6)". Can anyone tell me what I am doing wrong. I was hoping to have my students try this out for the coming school year, but if I can not get it to work they are out of luck.

Sure, I can help with this. When you press F5 in OpenSCAD you're just making a preview render, not a 3D object. When you're ready to export you first need to press F6 to build the 3D object. Then go to File/Export as STL to create and save a triangulated STL file that you can use in a 3D printer.

Laura (Mathgrrl),

I showed your post to my 10 year old daughter, who subsequently seeded, tweaked and printed 21 unique snowflakes to hang from the ceiling to decorate her 5th grade class for their Christmas party. It looked so cool. And then each of her classmates took home their own unique 3D printed snowflake. We had this cool talk about how you created an algorithm based on the science and math behind natural snowflakes which she shared with her teacher and her friends at school. Which then turned into investigation of all sorts of snowflakey things (who knew that some estimate 6.6x10^27 snowflakes fall on the planet each year according to or that this guy grows his own in a lab at Caltech!!

So, thanks for the open door into all sorts of cool science and math for a curious 10 year old girl and some of her classmates.

You are awesome!

WOW, best use of Snowflake Machine ever!! Thank you! :) :)

I had the same problem over the last 2 days. I ended up downloading the scad file (at the bottom of her list) and using OpenSCAD to generate the stl file. Then I just printed the stl file. Works like a champ. I did one for each of my kids based on their birthdays. matchgrrl has it working great in OpenScad!.

Is it only me, or is the customizer broken ?
I can design and view the result, but when I click on create it takes 3-5 minutes in my queue and produces an error saying
"#<JSON::ParserError: A JSON text must at least contain two octets!>"

Comments deleted.

I woke up today wanting something like this and there it was in my email.

So rad, thank you!

These are really awesome makes a fun Christmas project for kids to paint and make ornaments.

Ok, I came, I customized, I printed one, I shared my make... now I have a feature request. :)

How about an option to add a tiny ring at the top of one of the branches? (For a piece of string or an ornament hook)

Just a thought.

Thanks for sharing your work.

Done! Now you can add a hook (and change its size in Advanced Settings, if you want to). Thanks for the suggestion (and the Make)!

You're so Rock Star. Thanks and thanks!

Comments deleted.

Very Nice - absolutely love it!!
However, a small suggestion for your openscad code. The thickness of the seed number text is not modified as you increase the thickness variable... so if in the .scad file I set the thickness to 2mm the seed number is obscured. Alternatively you could just translate the preview text up by (thickness - 1)
It's more of an issue when using openscad.

Also echo(labelString) would be better than echo(seed) - openscad will round a seed number i.e. 2.16296E6 but echoing the string gives "2162958"

Otherwise great job, having quite a bit of fun printing these out!

Picture of the issue

I see what you mean; thanks for catching that, shadow651. It should be fixed now, with seed number preview sized according to thickness so it is never obscured.

Thank you for sharing this with us!

This is so cool! Thanks for sharing

​Congratulations, your model iss one of the best 3D Printed Ornaments this year! Search "Top Free 3d Printed Ornaments Printing Ninja" in google to see (sorry thingiverse bans url addresses)

Thanks, Tysun27!

Thingiverse must be getting hammered with people trying this! ... it won't open in customizer for me, using Chrome and IE.

Comments deleted.

Awesome!!! Certainly a must print for the holiday.

Absolutely LOVE this!

I'm not much for customizers, but this is a beautiful example of a well planned, thought out, scad designer.
I'm will definitely post a few when I get the time in a few days!
Nice work!!

I see what you guys mean about tab layout vs scrolling, but I was commenting on the formulas to generate the effects. It's a cool idea. Most customezers create a name, or a screw pitch. I really like the customizer here, for it's use to create millions of abstract designs.

The multitude of variables really can produce so many varieties. Somehow I wish the random seed generator had a more obviouse transition effect. Like the first 100 billion seeds kinda made a more core heavy design, the next 200 billion seeds produced a mid ring heavy effect, the next 100 billion seeds created an outer ring heavy effect...

I can see how this is impossible, because of the randomizing effect would no longer be random! But it would hold consistent with the other variables in showing the change as you increase or decrease the seed number.

Ultimately this is by far the coolest customizer I've seen on thingiverse, for it's use of so numerous variables to create understandable abstract art.

Thanks Zeek_911 :)

Funny thing, I started with the randomizer kind of working in chunks that way, and with multiple random numbers, but then there were so many variables which I wanted to intertwine that I ended up reworking the code entirely.

Here's how it works: Starting from one random number, a sequence of random numbers is generated. The even-index entries in the sequence are modified to form a new sequence that is used to determine if each step is a branch or a plate, and the odd-index entries get scaled to make another sequence that is used to determine the lengths of the steps.

Everything else is set by the user in sliders to produce values that act as multipliers or threshold tests for those random values; so for example if the 3rd step is a branch that is 8mm long and the user pushes up the "long" slider then the 8mm will be multiplied by a little bit. And if the user pushes up the "branchy" slider then at each step the threshold for choosing branch over plate from the even-index sequence entries is a little more lenient - meaning that some plate steps could switch to branch steps. So random, but weighted. Finally, the original sequence of random numbers is used again to create a "wiggle" sequence for which the "organic" slider acts as a multiplier, and then those wiggles are sprinkled throughout the code to bump around the vertex positions and make things look more natural/wonky.

Ha, reading over that it sounds so easy now -- but it took me many iterations to figure out how to use just one random number to make a design with so much complexity while at the same time allowing the user to influence the style and form of the snowflake. Anyway thanks and happy snowflake making!

I think there is more to tweak there than you think. The new Customizer design sometimes makes it hard to see that you have to scroll down for more options. (This might not be the case for you but I know this is true on Macs running the latest OS that hides scroll bars when not actively scrolling.)


Yeah I really miss the tabs of the old Customizer design.

Awesome Thank you!!

(and I enjoyed the glimpses of your library)

99999999999999 is an option