Blizzard of Unique Snowflakes

by laird, published

Blizzard of Unique Snowflakes by laird Dec 11, 2012

Featured Thing!


Use This Project

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

12251Views 5183Downloads Found in 2D Art


I'm making a unique line of 2014 Kickstarter snowflakes. If you'd like to back the project, see https://www.kickstarter.com/projects/laird/snowburst-2014 .

Snowflakes are unique. So why not be able to generate and print unique snowflakes? I've seen a snowflake generator that generates gcode, but I wanted one that generated 3D geometry, which I could then slice and print, so I wrote one.

The code is a bit strange, as OpenSCAD doesn't support recursion, and barely supports arrays. But with persistence I think I've come up with something pretty cool.

I've uploaded 8 ready-to-print snowflakes! And you can generate all you like!

So let's make a million unique snowflakes!

Inspired by (though no code from) Dave Menninger's Parametric Snowflakes.

Updated: added bash script to generate a blizzard of snowflakes, and modified script to run with proper randomness.

Updated: created http://www.thingiverse.com/thing:40959 which is Customizable.


Print the STL files. Slice them at layer height 0.25mm or less (the thinnest part of the snowflakes is just over 0.5mm, so 0.25mm gives you two layers). I use 3 shells, because that looks nice to me.

To generate unique snowflakes, load the script into OpenSCAD. Every time you change the 'seed' and run it, it will generate a unique 3D snowflake. Export the ones you like as STL files and print them. And upload photo's, so that we can all appreciate a 'blizzard' of unique snowflakes.

Or download the bash file, and generate a 'blizzard' of snowflakes automatically!

More from 2D Art

view more

All Apps

Customizer is the easiest way to take great 3D printable designs and make them your own. Make your OpenSCAD designs infinitely more valuable by empowering the community to customize them.

App Info Launch App
Customizer Thing App

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

Quickly Scale, Mirror or Cut your 3D Models

App Info Launch App

I'm making a unique line of 2014 Kickstarter snowflakes. If you'd like to back the project, see https://www.kickstarter.com/projects/laird/snowburst-2014 .

I figured out how to turn snowflakes into very nice holiday ornaments, which print quickly and look nifty. Check 'em out! http://www.thingiverse.com/thing:188481http://www.thingiverse.com/thi...

Blizzard of Customizable, Mailable Snowflake Ornaments: with Kickstarter!
by laird

Featured? Cool!

Fixed a minor bug. Deleted old versions of the script.

To use recursion in OpenSCAD, you can try these two workarounds:

Workaround in C: OpenCSCAD


Workaround in Python:

PyOpenSCAD http://www.thingiverse.com/thing:1481http://www.thingiverse.com/thi...

A-Mazing Box

PyOpenSCAD is tempting. I've used it a little, and it was a bit awkward writing Python to generate SCAD files, then running OpenSCAD to generate STL, then loading STL into ReplicatorG to print. But it just occurred to me that the Python script could render the SCAD file, then run it through OpenSCAD command line, then open it into ReplicatorG, making the whole process painless for users.


OK, I've finally gotten around to PySCAD, and it's fantastic! Thanks for pointing me towards it.

Excellent work and what great idea!

nice work.  I have been generating snowflakes on my Laptop PC.  takes about 5 minutes each.  I just have it running in the background.

I'd say 2-3 out of 10 nice, and 1 of ten are really outstanding...

Excellent! I look forward to seeing the results.

Whipped up a little bash script that generates a blizzard of snowflakes. It runs on a command line (e.g. "bash blizzard"). Which is fun to type even aside from scripting generation of zillions of snowflakes.

blizzard:#!/bin/bashfor i in seq 1 1000;do        /Applications/OpenSCAD.app/Contents/MacOS/OpenSCAD -o snowflake-$i.stl ~/Desktop/snowflake.scaddone

The script can generate some rather complex shapes. It's pretty amusing to me how 3K of OpenSCAD code can generate 2 MB STL files. Still, it shouldn't "kill" OpenSCAD, just make it work hard. I've run the script on both a Windows PC and a Mac, and it ran, though it did take a few minutes to compile the geometry, during which time OpenSCAD consumed 98% of my computer's CPU. I'd suggest letting it run for 5 minutes to see if it comes back.

But I'll generate a few more snowflakes to see what happens.

your script kills my openscad... dont know why.
i have to take some of your stl

I've generated a dozen snowflakes, and printed them, using both a Mac and PC, so I think the script works.

When you say that the script "kills" OpenSCAD, what do you mean? Is it slow? Crashing?

 crashed.. not responding. i try again today.

As far as I can tell, OpenSCAD only uses one core. To use all four cores on my Mac, I ran the script four times in parallel, using different starting points. That is, one script generated snowflakes 1000-1999, a second generated 2000-2999, etc.

If it's not responding, just wait. I am working on an iMac that's not terribly fast  (2.7 GHz i5) and some things take nearly ten minutes to compile and render, most of which time they're "95% done" in the progress bar.