kellegous.com

 

Article

Snowflake-a-thon postscript

January 21st 2005 after lunch

It’s been very cold here in Cambridge this week; the desktop weather monitor was displaying a frightening 2 degrees last night just before I made my way to bed … without taking into account the wind chill. While the frigid air may be unsuitable for walking to the bus, it was just right for hot chocolate and the first annual snowflake-a-thon.

As I posted previously, the Simplicity consortium sponsored an event where the goal was to create a simple program that generated a beautiful snowflake. The event went off pretty well … plenty of contestants and a good number of spectators. We had grown a bit concerned last week when very few people were signed up to participate, so we upped the advertising efforts a bit. We hit the major spots with posters and submitted an MIT homepage spotlight request, which seemed to work. In the end, it was a lot of fun and the winning entries were incredibly cool, though they made my weak effort even more apparent. I do wish there had been more entries that exhibited simplicity. I think all but one entry, Eric Blankenship’s snap to snowflake, treated simplicity as a constraint and not a value. Interestingly, most people equated simplicity to either readable or succinct code (myself included). Even so, the winners were some of the most complex pieces in terms of coding. That leads again to a question that I hear often these days: can simple programs be constructed with complex code? At least in this case, it seemed that having a little complexity under the hood was an advantage. Would that still have been the case if it had been a design competition and not a programming competition?

The event was a lot of fun; I’m glad I did it. I think the video of all the entries is going on line at some point. I assume John will post it to his Simplicity blog, but I will try to post a link when it happens.

My entry is shown below, just a few lines of Mathematica code, nothing spectacular.

(* kelly norton 2005 * math: simple, doesn't blow. *)

<<Graphics`ParametricPlot3D`
<<Graphics`Shapes`
fa[v_] := ParametricPlot3D[{
   x Sin[x/5] (v + Sin[y + x]),
   x Cos[x/5] (v + Sin[y + x]),
   x Cos[y+ x], EdgeForm[]}, {x,0,2Pi}, {y,0,2Pi}];

fb[v_] := ParametricPlot3D[{
   x Cos[x/5] (v + Cos[y + x]),
   x Sin[x/5] (v + Cos[y + x]),
   x Sin[y + x ], EdgeForm[]}, {x, 0, 2Pi}, {y, 0, 2Pi}];

e = Show[{ fa[30], fb[30], fa[60], fb[60]}];
Show[{
   e,
   RotateShape[e,0,0,Pi],
   RotateShape[e,0,0,Pi/3],
   RotateShape[e,0,0,2 Pi/3],
   RotateShape[e,0,0,-Pi/3],
   RotateShape[e,0,0,-2 Pi/3]},
   LightSources-> {
      {{ 100, 0, 100},RGBColor[0.20, 0.40, 0.80]},
      {{ 100, 100, 100},RGBColor[1.00, 0.60, 0.00]},
      {{-100,-100, 100},RGBColor[0.30, 1.00, 1.00]}},
   ViewPoint->{1,0,.6},Boxed->False,Axes->False];

Export[“005.pdf”,%,“PDF”];
My snowflake entry

trackbacks / pings

Pings are currently disabled; they will be accepted very soon.

comments

#1
Seth
It looks good and the code could hardly be less complex. I'm guessing no one went for the stylized look you were aiming for, though. Too bad for them, I think it would be a great design for a garden.
#2
kellegous
Garden: That's an awesome idea. I'm so doing that. stay tuned. John is currently putting together the snowflake gallery; there were some really good ones.

Post a Comment: To leave a new comment, simply type your message below. Markup is also allowed as long as it conforms to XHTML Strict. A list of allowable tags is available in the Comment Guidelines. Obviously, if the words “XHTML Strict” mean nothing to you, you should stick with just typing your message below.

about kellegous.com

kellegous.com is the personal site of kelly norton, a designer and engineer living in Atlanta, Georgia. Kelly used to be a graduate student at the MIT Media Lab but graduated in the summer of 2006. Before that, he was the Senior VP of Technology Development for Connexxia, a small technology company in Atlanta. He now works as a Software Engineer for Google. (more…)

now reading



syndicated feeds


 physical language workshop attribution-sharealike license / / xhtml / css