Evil Mad Scientist Laboratories

Making the world a better place, one Evil Mad Scientist at a time.

Vector Snowflake Application

A new application to draw your own snowflakes and save them in PDF format. Clean, cross-platform, open-source, and able to generate closed-polygon vector shape output. Oh yeah.

If you look around on the web, you’ll find any number of nifty programs to generate paper snowflakes. Some of these are pretty good– like Make-a-Flake and Snowdays which both have a neat interface like cutting a piece of paper. Ze Frank also has a great and very different online appwhere you can draw a flake out of translucent shapes and spin it in 3D.

So while there are some nice snowflake program out there, we didn’t actually come across any that were both (1) cross platform (2) open-source, and (3) able to export a vector drawing with a closed path. While many of the programs do let you save an image of snowflake design, that’s actually of limited utility. What you really want is a vector drawing so that the design has infinite resolution and is suitable for importing and editing in Inkscape, Corel, Illustrator, and so forth.

That last part is — not coincidentally– interesting because surely everyone with a CNC machine, laser cutter, 3D fabber, vinyl cutter, or so forth would then be able to produce their own snowflakes from the pattern. And there is a growing community of fab labs and online sites like thingiverse where people share patterns for making physical things.
Our program is called “snowflake” (creative, ain’t we?), and you can follow the links at the end of this article to download it. It is written in the Processing development environment which is a wonderfully simple environment for designing cross-platform applications, particularly ones that manipulate graphics.

Once you launch the program, you are presented with a window that looks like this:
The initial shape is an overall hexagon, which is generated by taking the editable slice– highlighted here and when you start the program– and reflecting and rotating it to complete the full pattern of the snowflake.

Within the editable slice, you can also see three highlighted control points that can be dragged around. There is control point at every vertex and at the midpoint of every line segment between two vertices.

If you drag a control point that is the midpoint of a line segment, it turns that control point into a new vertex. That new vertex also gets new control points at the midpoints to its neighbors.

The two “initial” vertices (from the hexagon) are constrained to stay along their respective radial lines. Every other control point and new vertex can be dragged where ever you like.
At the lower left corner of the window is a “Clear” button that erases your snowflake and restores the initial hexagon. The “Save” button on the other side saves your snowflake as a PDF file. The file is automatically saved in the same folder as the snowflake program, under file name snowflake-####.pdf, where #### is a number.

Here’s a screenshot of a typical snowflake, along with a screenshot of the corresponding PDF output file. Note that the PDF file just has the outline path of the snowflake saved– it’s ready to use without any extraneous colors or text.

The PDF file is generated directly from the showflake shape that you have drawn. So if you draw a shape with overlapping lines, you will see them in the output file.

Download the snowflake program!
The current version is Snowflake 2.0, uploaded July 22,2009.

Programs written in Processing are called sketches. The snowflake sketch can be either opened and run directly or from within the Processing environment.

5 thoughts on “Vector Snowflake Application”

Thanks for creating this useful app! I’ve mentioned it on a list of other snowflake generators (mainly cribbed from your list, but including another two: one Flash-based system that our company made last Christmas, and another HTML-only one that seems to be more for educational purposes). You can see the full list here.