Wolfram Blog
Christopher Carlson

The Mathematica One-Liner Competition

December 17, 2010 — Christopher Carlson, Senior User Interface Developer, User Interfaces

Your assignment:

Write a simulation of spherical particles coalescing under gravitational attraction. Limit the approach distance by a secondary repulsive force that acts over short distances. Produce an animation of the dynamic system starting with 15 particles in randomized positions.

Formulate your solution in 140 characters or less.

Sound challenging? A 138-character solution was Stephan Leibbrandt’s winning entry in the Mathematica One-Liner Competition that was a part of this year’s Wolfram Technology Conference.

Mathematica One-Liner Competition

The goal of the competition was to find the most astounding outputs that attendees could produce from the shortest inputs—not just physics simulations, but any applications attendees could dream up. The competition was intended to highlight how much can be accomplished with a few keystrokes in Mathematica. And it was intended to give conference attendees an opportunity to entertain and amaze each other with their creativity. Which they did.

Our first task in designing the competition was to nail down what a “one-liner” is. The concept is not as clearly defined today as it was in the punched-card era, particularly with Mathematica‘s two-dimensional typesetting. We settled arbitrarily on a modern unit of information—the Tweet, or 140 characters—as the size limit of a one-liner, and permitted full use of two-dimensional typeset structures. Special consideration was given to entries that came in at 80 characters or less.

Predictably, the submissions showed great creativity and conniving in finding tricks to reduce character counts to absolute minimums. And satisfyingly, the topics of the submissions were all over the place, from esoteric mathematics to works of art, astronomy to origami.

Four submissions merited Honorable Mentions, and one a Dishonorable Mention. Zdenek Buk won an Honorable Mention with this 140-character expression that produces a graph that shows which countries—indicated by their flags—share borders (click the figure for a magnified view).

Bordering Countries

A second Honorable Mention went to Stephan Leibbrandt for his “Tubular Bells”, a meditative multimedia experience implemented in just 140 characters.

Tubular Bells

Paul Abbott had characters to spare with this surprising 112-character plot of a deceptively simple function in spherical coordinates—another Honorable Mention.

Plotting a Duck

In the category of Useful Stuff, Sal Mangano’s 116-character expression yields a complete table of functions and their derivatives and integrals—the last of the Honorable Mentions.

One Liner to Build a Table of Functions, Derivatives and Integrals
One Liner to Build a Table of Functions, Derivatives and Integrals

A Dishonorable Mention went to Yves Papegay, who submitted this 80-character expression with the comment, “If only I had a better machine.”

Dishonorable Mention

This input selects from all 200696776371546515671027031705365217492618488
1582832600210755762096900905036350233077746752088222272458708782885
444148423180502637853488332240652972952399993950 possible expressions of 80 characters or less those that are syntactically valid Mathematica inputs. That number is so unimaginably large that descriptions in terms of the number of particles in the universe, or nanoseconds since the dawn of time, are woefully inadequate to describe it.

While this expression is a disaster practically, it has a certain conceptual appeal that made up for it hanging the judges’ machines. It expresses all one-liners of 80 or fewer characters. The expression itself is a member of the set that it describes.

Prizes were awarded for First-, Second-, and Third -Place entries. Third Place went to Yves Klett for this animation of a unit cell of the Miura map fold, an origamic structure originally proposed for deploying solar panels on satellites. The judges were particularly impressed with Yves’ cunning use of 2D typesetting and replacement rules to achieve a count of 137 characters.

Miura map fold: unit cell

Chris Ladroue took Second Place with this 136-character expression that assembles collages from random images pulled from Mathematica‘s built-in ExampleData. The judges liked Chris’ apt use of Mathematica constructs; the appealing visual output; and the fact that the expression, when applied to your favorite collection of images, could actually be useful in practice.

Collage

Which brings me to Stephan Leibbrandt’s elegant simulation of gravitational attraction, the First-Place winner of the One-Liner Competition. Animated output, simulation of a physical phenomenon, and clever use of a variable (d) to conserve characters impressed the judges. Stephan’s code reveals a deep familiarity with Mathematica‘s programming constructs, which enabled him to pack a complete physics simulation into just 138 characters.

Gravity/Repulsion

There are yet more intriguing one-liner entries that space does not permit me to share. You can see all of them by downloading the Computable Document Format (CDF) file below. If you’re inspired to write your own one-liners, send them to one-liner@wolfram.com, and if interesting submissions come in, I’ll share the best of them in a future post.

Download the CDF file of all One-Liner Competition submissions.

Leave a Comment

5 Comments


János Tóth

I enjoyed the onelines really, they will become learning material in tthe next semester, thank you! A fwremarks:

11 should be turned around to see the duck.
12,21 does not seem to work
15,16, 21 Need Combinatorica
18 is dangerous, keeps speaking after quitting
25-27 are dangerous
Turning to the server makes a program rather slow

Posted by János Tóth    December 17, 2010 at 2:08 pm
Stan Wagon

Thanks for posting, Chris. This has to rank as the best-ever Mathematica contest….

Posted by Stan Wagon    December 17, 2010 at 2:25 pm
Gekko

Inspirational! Though it would be interesting to see a companion category comprising a succinct explanation of how the code works — I suspect the character count there would average at least a factor of 10 higher :-)

Posted by Gekko    December 18, 2010 at 3:21 pm
Math

15 and 16 miss tree with depth n-1.
17 miss some graphs.

Why don’t use the number of nodes in the expression (LeafCount) instead of the number of characters (StringLength)?

Posted by Math    December 25, 2010 at 3:01 pm
Antonin Slavik

To Math: It is not true that 15 misses certain trees. You should interpret the results as ordinary trees, not rooted trees. By Cayley’s formula, there are n^(n-2) of them, and the code finds them all. The same remark applies to 16 and 17.

Posted by Antonin Slavik    November 19, 2011 at 8:00 am


Leave a comment

Loading...

Or continue as a guest (your comment will be held for moderation):