Ronn Kling has published his Christmas card for this year:

2010 is an example of collision detection with IDL. In this card we have a user settable number of Christmas ornaments that bounce around the view. They not only bounce off the walls, they detect when a collision has occurred and bounce off each other. The technique is very similar to the 2008 Snownado where a single IDLgrPolygon is used with mutliple vertices. You can change the radii and restitution coefficient of the ornaments in real time. If your physics 101 class knowlege is a little fuzzy the restitution coefficient controls how energy is exchanged in collisions. For values less than 1.0 each collision loses energy and the balls slow down. A value of 1.0 is a perfect collision and the energy stays the same in the collision. Finally a value over 1.0 adds energy to each collision and everything speeds up.

You will also notice that we have two version this year, the Pre IDL 8.0 and IDL 8.0 and later. IDL has some great new syntax for objects and new things like lists. In the IDL 8.0 version the code uses the new list object , new object syntax and array indexing. The Pre IDL 8.0 is commented out in this version but is right next to the new code so that you can see what the changes are. If you don’t have IDL 8.0 then the Pre IDL 8.0 version will work fine for you.

Download for IDL 8.0 and pre-IDL 8.0.