Parametric Christmas card

December 29, 2020

The inspiration for this one comes from Andrew Heumann. After being introduced to him and his GH plugins through a webinar I took earlier this year, I recently returned to his website, and immediately geeked out obsessively over every single piece of content of his I could find on the internet. Most of this was Grasshopper related, from his educational videos to his freestyle artwork creation streaming sessions, but there was also some InDesign and axodraw content. I swallowed it all whole. I was inspired to create the following gif by this short video on graphic sharing. As I learnt from an old colleague, why say it in words, when you can use a gif?

It’s a parametric Christmas card! I promise I did this in December, I’m no longer so excited for Christmas that I’d do it in January.

I am using a recent concept as the basis and background. As this is the first iteration of the script, it's not very clean but it works! With a few extra steps, I think it could be a cool general tool to create snowy Christmas cards from any model with enough lines.

Thinking forward, I'm going to try to:

  • Improve the chosen viewport, perhaps even with a Make2D to get everything on simple plane (this would help align text and geometry to the same plane, avoiding depth of field and location issues with the attractor text.
  • Clean up the movement vectors, so some of the lines continue to fall continuously as snowflakes, and others form the text.
  • Make the falling pattern more random (delete the matching zeros between 2 vector sets).
  • Make the offscreen holding position a line, so the the snowflakes are better distributed.
  • Align the 'snowflakes' to the attractor text curve edges a few screens after they land, so the text is cleaner (The Make2D move will help with this also, as you avoid having to rotate between 3D planes, which was giving me some trouble when I first tried).
  • Diagrammify background a bit more.
  • Reduce file size/no. of frames.

I'll return once I have a chance to update to v2! Next year I'll have a sure winner for the company Christmas card competition!

Now, perhaps the coolest thing about all this is the methodology behind the animation. The entire animation is created using one slider, which is automated to run while capturing a frame of the viewport at each step. The breakdown looks like this:

  • Set up a movement path for each 'snowflake' (could be as simple as a curve)
  • Divide the path into x steps (divide curve into points)
  • Set up each step as a vector from origin (this way you don't have to refer to the n-1 step, only to the original position)
  • Ensure all 'snowflakes' have the same amount of movement vectors, and let your master slider have that same number range.
  • Set up the move component to a list item of the movement vectors, default set to 0. Let the master slider control the list item.
  • Right-click the slider and click 'animate', an option box will appear. Save your files as pngs.

Once the files are saved, use Photoshop to generate the gif. It's as easy as opening all the files together as an image sequence. Use the timeline toolbar if you want to do any editing, or when you want to test the video, and export the file to web or as a video.

Check the 'image sequence' option when opening files in Photoshop, to tell the program to find all similar files and create the video/gif.