Snowflake and Icicle generator

I had this idea for a winter-themed animation. There was a log cabin that needed some icicles, and I found it tedious to just duplicate and change the size of a cone, so I wrote the Icicle Generator script (my first attempt at coding in Blender).
Feeling like I was on a roll, I decided to make a random snowflake generator. Much more challenging, but the end result was worth it.
Download 'em, try 'em out, and let me know what you think!


Github links for plugins:
Icicle Generator - Blender 2.7x
Icicle Generator - Blender 2.80
Snowflake Generator - Blender 2.7x

Icicle Version 2.5 update
Script created for Blender 2.80 support

  • “Generate” button added, set parameters before generating the mesh
  • Option to work on whole mesh, or selected edges only
  • Option to select cap type for cones
  • Code refactoring to improve performance

Snowflake Version 1.3a update
Fixed issues with new versions of Blender, cleaned up the code, fixed a couple of typos. Added a new option to only create part of the icicle (ie. stops before duplicating and rotating the pattern) and a new button that turns the snowflake “3D” (just a button that converts to a curve and applies a bevel, like the suggested method below)

Icicle Generator:

This creates a string of icicles with random diameters and lengths along an edge.
Simply select two vertices and “Add > Mesh > Icicle”. You can change the maximum radius, minimum radius, maximum depth, minimum depth, number of vertices in cone and number of iterations in the bottom of the Tool Shelf panel.
It works with any slope, except for exactly vertical lines and the longer the edge, the more time it takes to compute.
You can now select whether the base mesh (line, plane, cube, whatever) is re-selected after adding icicles or not.

Known Issues:
None as of 2.2 update

Snowflake Generator:

Random selection of 3 - 12 point snowflakes

This creates a random snowflake (“Add > Mesh > Snowflake”). You can select the amount of points (between 3 and 12), the number of outer rings (0 - 2), whether the centre is filled or not and whether a whole or partial snowflake is produced. Any time you change one of the parameters the whole mesh updates, so if you get one you like, save it before you lose it!
The plugin creates the snowflake at the origin, and uses the cursor as a pivot point. If you add it in edit mode of an object, it will replace everything in that object.

3D Suggested method (now automated):

The plugin creates just an edge-based mesh, but the easiest way I’ve found to fill it out is by converting the mesh to a curve, and adding a Bezier Circle as the bevel object.
This process has now been automated, simply press the “Convert Snowflake to Curve” button in the ‘Misc’ panel of the Tool Shelf. This button is available forever after creating a snowflake, if you feel you need to do it later on.

Known Issues:
None as of 1.3a update


Neat, thank you.

Cool the icicle parts pretty recent got the snowflake part when it came out. thanks

Cool!! Just like what I saw in the movie…

Thanks guys! Did kinda get the idea for the animation from Frozen so that was a kinda catalyst for the plugins.
Next up is adding a “minimum depth” and “minimum radius” for the icicles.

The Icicle Generator worked with out a glitch. Can’t really say much on the Snowflake Generator.

Now just need to make this:

@XeroShadow have you tried the suggestions in the first post?

I’m between laptops so haven’t been able to sort out the issues, will get on it over the weekend.

@RealityFox if only, ha. That’d be a bit of a step up for me

1 Like

very nice addon, thank you!!

1 Like

Thank you.

Have now updated the snowflake generator to 1.1, should work without a hitch. Link is in the first post.

  • Mayeo
1 Like

Personally not happy with the fact the icicles are limited to just one edge each time. Could become tedious. So I’m working on multiple edges, tested out with this simple spiral. Also adding the choice of number of vertices for the cones, sometimes you’ll want more or less detail.
Just a few more tweaks…

Icicle version 2.0 now added to first post.
Plugin now works on a string of edges if required, like the spiral in the pic in this post.

Added minimum depth/radius at the expense of the “ratio” variable, and also added number of vertices for the cone base and maximum iterations, which should prevent any freezing/crashing.

And obviously, the more edges and longer the length of those edges, the longer it will take to calculate. There is some output to the console while the plugin works.

Download it from the first post!

  • Mayeo

Hi! I just tried the Icicle addon in Blender 2.70a and it installed just fine, but when I went to Add -> Mesh -> Icicle, I got the following error:

I figured out how to use this addon and how to avoid the error I mentioned above. Here is the description of how to use it:

Hey! Thanks for that. I assume when you tried it first there was no object selected. I’ve put a lot of error handling into it but missed the most obvious one!

I’ll work on that for the next update, still trying to think of new features to add so if you’ve any suggestions, I’m all ears.

This is a awesome add-on thanks for sharing.

One Idea I had for this add-on was that you could add stalactites and stalagmites with columns if they meet

like this:

I know its rock not ice but it shows the idea!?

That’s a great idea. It’s basically the same principle, and I’m sure there are stalagmites (and columns) of ice as well.
There’s an easy way and a hard way to do this, I’ll see how things go with the easy way and post back later!

This addon works great in 2.72, however if I try to add a snowflake in 2.73 i get this error:

adding icicles works well.


this is cool, if that snowflake generator could be modified to make spiderwebs, it would be very useful.:smiley:

@blackdot Sorry for the delay, that error should be fixed now. There’s been some changes to Python in the more recent versions, and they required a couple lines to be added. Which have now been done, but there’s more going on behind the scenes that I don’t yet understand and as such, it works without errors, but not as it should.
Basically, when you add a new Snowflake object, it works OK. But changing the parameters destroys the whole thing completely. For the moment, you’ll have to keep adding new objects which is a little tedious, but I’m working on a fix!

@russcript Not a bad idea, might work on something like that as well! :wink: