Loading

Blizzard of Unique Snowflakes

by laird, published

Blizzard of Unique Snowflakes by laird Dec 11, 2012

Featured Thing!

Description

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 thingiverse.com/thing:40959 which is Customizable.

Recent Comments

view all
I figured out how to turn snowflakes into very nice holiday ornaments, which print quickly and look nifty. Check 'em out! thingiverse.com/thing:188481
OK, I've finally gotten around to PySCAD, and it's fantastic! Thanks for pointing me towards it.
Featured? Cool!

More from 2D Art

view more

Makes

Liked By

view all

License

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

Instructions

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!
I figured out how to turn snowflakes into very nice holiday ornaments, which print quickly and look nifty. Check 'em out! thingiverse.com/thing:188481
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

smcameron.github.com/opencscad/

Workaround in Python:

PyOpenSCAD thingiverse.com/thing:1481
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.

Fun!
laird - in reply to laird
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
laird - in reply to yzorg
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?
yzorg - in reply to laird
 crashed.. not responding. i try again today.
laird - in reply to yzorg
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.
laird - in reply to yzorg
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.
Top