Fr. Magnus Wenninger, O.S.B., I

Fr. Magnus Wenninger was an astoundingly prolific polyhedron model builder, having built many thousands of models during his life.  He is best known for his trio of model-building books:  Polyhedron Models, Spherical Models, and Dual Models.  Ask anyone who is an enthusiastic model builder, and I will bet that they own at least one, if not all three.

These books were important because they opened up the world of polyhedron model building to a much wider audience, giving detailed instructions on how to build dozens of models, as well as discussing the mathematics underlying polyhedra (although to a limited extent).

But perhaps equal to Fr. Wenninger’s model-building capabilities was his ability to connect polyhedron enthusiasts with one another.  Because of his books, other model builders would correspond with him describing their particular interests, and he would connect them with others who had written to him with similar interests.  In 1996, he created a mailing list where those interested could exchange ideas about all aspects of polyhedra.  It was very active for several years, but because of the proliferation of sites about polyhedra in recent years, it is somewhat less so now.  It is now maintained by Dr. Roman Mäder.

I was first introduced to Fr. Wenninger’s books by finding them among the stacks at the mathematics and science library at Carnegie Mellon.  I don’t recall how many times I checked out Polyhedron Models; I was completely engrossed.  I would page back and forth, over and over, looking for similarities between the various models and underlying geometrical patterns.

I began corresponding with Magnus in the summer of 1993.  I still have all of our correspondence — I made sure to photocopy any letter I sent him so I would have a continuous record of our polyhedral conversations.

Sadly, Magnus Wenninger passed away last February at the age of 97.  When I heard about this, I thought it would be fitting to organize an Invited Paper Session at the Joint Mathematics Meetings (on 12 January 2018 in San Diego) in his honor.  I invited some of his colleagues from the polyhedron mailing list, and others as well.

This morning, I began reading through the letters exchanged with Magnus in preparation for a talk I will be giving in the session.  Yes, this was in the day when people wrote letters, and moreover, wrote them by hand.  Amazing!  Such an interesting treasure trove of ideas and thoughts.

For my talk, I am excerpting text from Magnus’ letters to me, taking pictures of the text, and using these excerpts as the main body of slides.  I am not sure how many others had an extensive correspondence with Magnus, but I thought this would provide a unique glimpse into Magnus’ life.

And so begins this series of posts commemorating Fr. Magnus Wenninger.  I’ll continue this post by giving an overview of our relationship.  Then later, I’ll share with you some excerpts from his letters to me, as well as provide commentary when appropriate.  It is fitting that he should be remembered; organizing the Invited Paper Session in his memory as well as writing about him in my blog will serve as my contribution.

I was simply fascinated by the beauty, intricacy — and to an extent, simplicity — of three-dimensional polyhedron models.  But I was also a graduate student at Carnegie Mellon in mathematics, which was not insignificant.

And just what was the significance of being a graduate student?  Well, I was being trained to think rigorously, mathematically.  At the time, however, all the accessible books on polyhedral geometry were at a relatively elementary level.

What I mean is this.  When you study a polyhedron, there are many metrical features evident, such as edge lengths and various angles; for example, the angles between two faces of a polyhedron (like the 90° angles between faces of a cube).  And in many of these books, these lengths and angles were given — but in most cases, only in tables with approximations to enough significant figures necessary to build reasonably accurate models.

I started to wonder how all those numbers were calculated.  I wasn’t satisfied with approximate results; I wanted exact results.  Thus began my polyhedral self-education, some thirty years ago.

So I began playing around, and when I finished graduate school, mustered up the courage to write Magnus.  I was rather intimidated at the time — I had just started learning about polyhedra, and he had published at least three books on the subject!  But it turns out Magnus was unusually generous with his time and talent, and replied within a few weeks.

My introductory letter was dated 5 July 1993, and the last letter I have from Magnus bears the date 22 October 1997.  I am quite sure that this is because we continued our correspondence online.  However, virtually all of that correspondence is lost, since most of  it was conducted through a university email address I no longer have access to.

There are a few lingering emails in my gmail account, since my correspondence with Magnus waned after I left my first university position.  But in addition to maintaining an active correspondence with Magnus, I did visit him a number of times at St. John’s Abbey in Collegeville, MN.  I would stay in a guest room at the Abbey, and join Magnus for lunch and dinner.  Throughout the day, I would visit Magnus’ room where we would talk about polyhedra, or perhaps I would work on my own, or just take a walk around the campus.

My interactions with Magnus were absolutely inspirational.  Looking back at notes from those years, I am amazed at how much I accomplished — and this at a time when computer graphics were much less sophisticated than they are now.  I would often share results with Magnus in my letters, and he would provide his unique perspective on my current work.  Even when he was critical, he was unfailingly kind.

So in my next post, I’ll begin sharing excerpts from Magnus’ letters to me.  That is, after all, how you get to know a person — one interaction at a time.  Hopefully you will be able to get a sense of the humble, brilliant, generous man Magnus was and continues to be for those who knew him well.  His legacy lives on through us, as we strive to be for others who Magnus was for us.

Beguiling Games IV: Scruffle.

We’ll start this installment of Beguiling Games by discussing who has a winning strategy in Splotch!  Recall the rules of the game:  players alternately color in squares in a 4 x 4 grid, with the goal of creating a specified splotch, shown below.  The splotch may be rotated and/or reflected as well.


For a more complete description together with an example of how the game is played, you can look at the previous installment of Beguiling Games.

OK, now for the solution!  It turns out that the second player can always win.  Let’s see how.  I found it easiest to think about a strategy by imagining the grid as being divided into quadrants, like this:


Now here is the important observation:  the first player who fills in a second square in any of the quadrants loses, regardless of whether the squares are adjacent or diagonally situated.  Of course there are other ways to lose, too — as with all these two-player games, there are multiple ways to analyze them.

So let’s get specific.  Suppose the first player colors in square A1 (see the figure below).  The second player then colors in the square labelled B1.


At this point, the red squares indicate all the places the first player cannot play without losing the next turn.  So the first player must color in one of the two empty squares, after which the second player will color in the other one.  So after two turns for each player, the board now looks like this:

So no matter what square the first player colors in next, one of the quadrants will contain two filled-in squares, and so the second player will win on the next move.

A similar strategy may be used no matter where the first player begins.  Consider the first few moves in the following game.  The first player colors in the square A1, and the second player colors in B1.


Again, the first player must avoid the red squares, or else the second player would win on the next turn.  Whichever square the first player colors in next, the second player can always play “two away.”  The result will be 1) the first player will not be able to win on the next turn, and 2) one square in every quadrant will be colored in.  This means that the first player is forced to put a second square in one of the quadrants on the next move, meaning that the second player will win on the turn after that.

This is the simplest strategy I found for the second player.  I would be happy to hear if some reader found an even simpler way to describe a winning strategy!

What about using other splotches?  If the splotch contains too many squares, it is possible to force a draw.  For example, given the splotch below, either player may force a draw simply by coloring in the four corners on their first four moves.


Interestingly, it is difficult to come up with a splotch where the first player has a winning strategy (other than a splotch which is just a single square, of course).  The more squares included in the splotch, the more difficult the analysis.  But for simpler splotches, it seems a clever division of the board allows the second player to win.

For example, consider the following square splotch.


Now divide the board into the following 2 x 1 regions, or dominoes:


Player two has a simple winning strategy.  Whenever the first player fills in a square, the second player fills in the other square of the domino.  It should be clear that the second player can never lose this way.  The first player will eventually have to fill in a square directly above or below a filled-in domino, and when this happens, the second player wins on the next move.

A complete analysis of Splotch! is likely beyond reach.  Just counting the number of possible splotches (up to rotation and reflection) would be a challenging task unless you wrote a computer program to exhaustively find them.  Without rotations and reflections, there are 216 = 65,536 possible subsets of 16 squares, and hence 65,535 splotches (since a splotch must include at least one square).  So a computer program would be able to find them all relatively quickly.  The interested reader is welcome to undertake such a task….

Here is another simple two-player game for you to think about, which I call Scruffle.  It is played on a typical 3 x 3 Tic-Tac-Toe grid.  Players alternate playing either a 1, 2, or 3 anywhere in the grid.  A player wins when a number they place creates a column, row, or diagonal which contains a 1, 2, and 3 in any order.

There is one additional constraint:  only three of each number may be placed in the grid.  So once three 1’s (for example) are placed in the grid, no player may place another 1 anywhere in the grid.  This is not an arbitrary constraint — you can show that the game cannot end in a draw with this condition.  See if you can show this!

For the first puzzle, show that the first player has a winning strategy.  This is not difficult; the simplest strategy I found involves the first player’s second turn involving playing the same number they played on the first turn.

A slightly more challenging puzzle is to require the first player to play a different number than the number they played on their first move.  Does the first player still have a winning strategy?  I’ll give you the solution in the next installment of Beguiling Games!

Bay Area Mathematical Artists, IV.

We had our last meeting of the Bay Area Mathematical Artists in 2017 this weekend!  We had a somewhat lower turnout than usual since we’re moving into the holiday season.  But it really wasn’t possible to move the seminar a week earlier, since many of us affiliated with universities were in the middle of Final Exams.

As we had been doing before, we began with a social half hour while waiting for everyone to show up.  We then moved on to the more formal part of the afternoon.

There were three speakers originally slated to give presentations, but one had to cancel due to illness.  Still, we had two very interesting talks.

The first talk, Squircular Calculations, was given by Chamberlain Fong.  Chamberlain did speak at the inaugural September meeting, but wanted a chance to practice a new talk he will be giving at the Joint Mathematics Meetings in San Diego this upcoming January.


So what is a squircle?  Let’s start with a well-known family of curves parameterized by p > 0:


When p = 2, this gives the usual equation for a circle of radius 1 centered at the origin.  As p increases, this curve more and more closely approaches a square, and it is often said that “p = ∞” is in fact a square.

However, in Chamberlain’s opinion, the algebra becomes a bit unwieldy with this way of moving from a circle to a square.  He prefers the following parameterization:


where s = 0 gives a circle, and the central portion of the curve when s = 1 is a square.  As s varies continuously from 0 to 1, the central portion of this curve continuously transforms from a circle to a square.  This parameterization was created by Manuel Fernandez Guasti; you can read his original paper here.

Chamberlain’s talk was about extending this idea in various ways into three dimensions.  He showed images of squircular cylinders, squircular cones, etc., and also gave equations in three-dimensional Cartesian coordinates for all these surfaces.  You can see some of the images in the title page of his presentation above.  It was quite fascinating, and there were lots of questions for Chamberlain when his talk was finished.  Feel free to email him at if you have further questions about squircles.

The second talk was given by Dan Bach (also a speaker at our inaugural meeting), entitled Making Curfaces with Mathematica.  Yes, “curfaces,” not “surfaces”!


Dan took us through a tour of his very extensive library of Mathematica-generated images.  He is fond of describing curves using parameters, and then changing the parameters over and over again to generate new images.

This is easy to do in Mathematica using the “Manipulate” command; below is a screen shot from Mathematica’s online documentation showing an example.


The parameter n is used in plotting a simple sine function — as you move the slider, the graph changes dynamically.  Note that any numerical parameter may be experimented with in this way.  Simply make a slider and watch how your image changes with the varying parameter.

So what are “curfaces”?  Dan uses the term for images create by a family of closely related curves which, when graphed together, suggest a surface.  As we see in the example above, the family of curves suggests a spiraling ribbon in which several brightly colored balls are nestled.  Dan showed several more examples of this and discussed the process he used to create them.  To see more examples, you can visit his website or email him at

Once the talks were over, we had some time for puzzles!  Earlier in the week, when I knew we were not going to have an overabundance of talks, I asked participants to bring some of their favorite puzzles so we could all have some fun after the talks.  We were all intrigued with the wide variety of puzzles participants brought.

My dissection puzzle was actually quite popular — that is, until a few of the participants solved it!


You might recognize this from my recent blog post on geometrical dissections.  The pieces above are arranged to make a square, but they may also be rearranged to make an irregular dodecagon.  Some asked if I had any more copies of this puzzle, but unfortunately, I didn’t.  Maybe I’ll have to start making some….

As has been our tradition, many of us went out to dinner afterwards.  We went to our favorite nearby Indian buffet, and engaged in animated conversation.  Interestingly, after talking a bit about mathematics and art, Chamberlain began entertaining us with his wide repertoire of word puzzles.

To give just one example, he asked us to come up with what he calls “mismisnomers.”  Usually, the prefix “mis-” means to incorrectly take an action, as in “misspell.”  But some words, like “misnomer,” begin with “mis-,” while the remainder of the word, “nomer” is not even a word!  How many mismisnomers can you think of?  This and similar amusing puzzles kept us going for quite a while, until it was finally time to head home for the evening.

So that’s all for the Bay Area Mathematical Artists in 2017.  Stay tuned in 2018…our first meeting next year will be at the end of January, and I’ll be sure to let you know how it goes!

Mathematics and Digital Art: Final Update (Fall 2017)

Yes, it is the end of another semester of Mathematics and Digital Art!  It was a very different semester than the first two, as I have mentioned in previous posts, since I began the semester with Processing right away.  There are still a few wrinkles to iron out — for example, we had a lab project on interactivity (involving using key presses to change features of the movie as it is running) which was quite a bit more challenging than I expected it would be.  But on the whole, I think it was an improvement.

So in this final post for Fall 2017, I’d like to share some examples of student work.  In particular, I’ll look at some examples from the Fractal Movie Project, as well as examples of Final Projects.

Recall that the Fractal Movie Project involves using linear interpolation on the parameters in affine transformations in order to make an animated series of fractal images.  One student experimented with a bright color palette against a black background.  As the fractal morphed, it actually looked like the red part of the image rotated in three dimensions, even though the affine transformations were only two-dimensional.



Cissy wanted to explore the motion of rain in her movie.  Although she began with bright colors on a black background, once she saw her fractal in motion, she decided that more subtle colors on a white background would be better suited to suggest falling raindrops being blown about by the wind.MCissy


Sepid also incorporated movement in her movie — she created a rotating galaxy with a color palette inspired by the colors of the Aurora Borealis.  In addition, she learned how to use the Minim library so she could incorporate sound into her movie as well.  Here is a screen shot from her movie.



Now let’s take a look at a few Final Projects.  Recall that these projects were very open-ended so that students could go in a direction of their choice.  Some really got into their work, with truly inspirational results.  The presentation that Sepid gave at a recent meeting of the Bay Area Mathematical Artists was actually work she was doing on her Final Project (read about it here).

Terry took on an ambitious project. She based her work on a Bridges paper by Adam Colestock, Let the Numbers Do the Walking: Generating Turtle Dances on the Plane from Integer Sequences (read the paper here).  Terry did have some programming experience coming into the course, and so she decided to code all of Adam’s turtle graphics algorithms from scratch! This was no simple task, but she worked hard and eventually accomplished her goal.

Here is a screen shot from one of her movies; Terry wanted to create an interesting visual effect by overlaying multiple copies of the same turtle path.  Since this particular path was not too dense in the plane, she was able to work with thicker lines.


Tera created a movie which involved rotating triangles and moving dots.  Her movie had a strong sense of motion, and incorporated a vibrant color palette. She remarked that working with color in this project was both fun and quite challenging. In her words, “Playing nicely with hot pink is not an easy feat.”



I would also like to share the fact that Professor Roza Aceska of Ball State University (Muncie, Indiana) will be teaching a course about digital art next semester using Processing which will be incorporating a lot of my course materials.  I am very excited about this!  Many faculty who come to my talks say they are interested in teaching such a course, but getting Department Chairs and Deans to approve such courses is sometimes an uphill battle.

Professor Aceska’s course will be a bit different from mine — her course is in the Honors Program, and as such, does not count as a mathematics credit.  So she will not have most of the mathematics assignments and quizzes that I had in my course.  But she will still be emphasizing the fascinating relationship between mathematics, programming, and art.  I hope to write more about her course sometime during the next semester.

One final remark — I am helping to organize a Mathematical Art Exhibition at the Golden Section Meeting of the Mathematical Association of America on February 24, 2018 at the California State University, East Bay.  So if you’re reading this and are in the Bay Area and would like to submit some mathematical art for inclusion in our exhibit, please let me know!


Knights and Rogues


They were dark times in the Kingdom of Verdoon.  A band of fierce Rogues was terrorizing the local hamlets.  King Buford was very displeased — he had no other option but to send out a legion of Brave Knights and Loyal Knights to round up the Rogues and deliver them to the castle dungeons.

So he chose seven of his bravest Brave Knights, and seven of his most loyal Loyal Knights, and dispatched them across Mount Kerchoo to the hamlet of Dunken, where the Rogues were last reported to have been wreaking havoc.

The Knights were capable Knights, and soon rounded up seven of the fiercest Rogues, including their leader, Thorn Yackley.  Now they had the difficult task of escorting the Rogues back through the narrow, winding path over Mount Kerchoo.

The Rogues were so fierce, no single sword could subdue any of them, nor could a single mace.  But they were no match for both a sword and a mace.

Now the Brave Knights carried a single sword, and the Loyal Knights a single mace.  So on the trek back to the castle — where they had to walk single file, the path was so narrow — it was vital that each Rogue be flanked by both a Brave Knight and a Loyal Knight in the event the Rogue tried to escape.

The question:  In how many ways could the Brave Knights, Loyal Knights, and the Rogues be lined up so that on the treacherous way back, each Rogue was flanked by both a Brave Knight and a Loyal Knight?

(For this problem, consider the Brave Knights indistinguishable from each other; similarly for the Loyal Knights and Rogues.)

Recently, I had been challenged to create a lesson which involved problem-solving with binomial coefficients.  But I didn’t want to create just any lesson — I wanted something interesting and novel.

Now if you’ve ever taught combinatorics and counting, you know that there is a deluge of problems about binomial coefficients — from choosing committee members, sitting people around a circular table, lining up books on shelves, etc.  So it’s not an easy task to come up with something you think might be new.

That was the genesis of Knights and Rogues.  Of course it may very likely not be new, since it really is difficult to come up with a combinatorics problem no one has thought about before.  But I did ask a colleague who knows a lot about problem solving, and he hadn’t seen it before.

The story is just to get students interested.  Combinatorially, we could state the problem as follows:

Given p 0’s, q 1’s, and r 2’s, in how many ways can you line them up so that each 2 is surrounded by both a 0 and a 1?

It turns out that there is a lot going on in this problem.  With three parameters, the analysis is far from straightforward.

There are a few restrictions on the parameters.  For example, we need p+q>r, or there are not enough Knights to flank the Rogues.  We also need

p,q\ge\left\lceil\dfrac r2\right\rceil,

or else there wouldn’t be enough Brave Knights and Loyal Knights to flank the Rogues.  For example,  if p = 2, q = 1, and r = 3 (so that q just falls short of the above inequality), you can see the problem — the one 1 can flank at most two 2’s, and so there is one 2 without an adjacent 1.  But if increase q to 2, we can have either the sequence 0212021 or 1202120.

Of course it is possible to consider specific examples, but it is also possible to consider infinite families of parameters — we’ll look at the case p = 2, qn, and r = 2 to give you an idea of the reasoning involved.

Now when n = 1, there is only one possibility:  02120.    But when n is larger than 1, we need to look at two separate cases:  when the 2’s are separated by more than one 0/1, so that we are looking at two blocks of 021 or 120.  When the 2’s are separated by exactly one 0/1, we only have the options 02120 or 12021.  We need to count each case separately.

Let’s look at the first case.  We have two blocks of either 021 or 120.  This uses up the two 1’s but there are n – 2 1’s left over.  So we have n things to arrange:  two blocks, and n – 2 1’s.  This may done in

4\displaystyle{n \choose 2}

ways, since we first choose the 2 places for the blocks, but then multiply by 4 since each block has two possibilities:  021 or 120.

In the second case, if the 2’s are only separated by one number, we may have a block of 02120 and n – 1 1’s to place, giving n possibilities. With a block of 12021, we have the block, one 0, and n – 2’s to place, which can be done in


ways (since the order of the block and the one 0 matters). Adding these three cases together results in


possible lineups for the Knights and Rogues.

Interestingly, these are the octagonal numbers (A000567 in the OEIS).  I have no idea why, though….

What I like about this problem is that parameterizing p, q, and r in different ways produces seemingly very different results.  One interesting parameterization is p = qrn.  It turns out that this sequence — at least the first several values, which I used the computer to generate and didn’t work out by hand — is also in the OEIS (A141147), and the description is the

number of linear arrangements of n blue, n red and n green items such that the first item is blue and there are no adjacent items of the same color (first and last elements considered as adjacent).

I find this particularly intriguing since in Knights and Rogues, 0’s and 1’s can be adjacent — but even though 2’s are not adjacent, it is not possible to have any block be 020 or 121, although these are counted in A141147.  Finding a bijection between the two linear arrangements would be a very interesting problem.

I hope you enjoyed reading about Knights and Rogues!  Again, this is another example of mathematics as it happens — I came up with this problem within the past few weeks, and I’ve just scratched the surface of this interesting puzzle.  I hope it’s actually a new problem, but I won’t be surprised if I get a comment like, “Oh, I saw that problem in…..”  Generating new, novel mathematics problems is not an easy task…..

And incidentally, the answer to the initial problem is 80,096.  Did you get it?

On Coding XIII: Retrospective.

I published the first installment of On Coding on September 11, 2016.  It seems a bit surreal that this thread is over a year old — but all good things must come to an end.  I really enjoyed writing these posts; they helped me organize my thoughts about my own personal coding history.

But there are some loose ends I’d like to tie up.  I’ve had brief forays into other languages — too brief to devote an entire post to any one of them.  I’ve mentioned a few of them here and there, but I’d like to take the opportunity to include them all in one post.

Before doing so, I should mention that Processing is my most recent programming adventure.  But I have written so much about using Processing in the context of my digital art course, I don’t feel the need to devote a separate post to it.  And I feel I might bore you, dear reader….

The first is PASCAL, which I first learned while taking an undergraduate programming class.  Other than the course, I only did a few other things with PASCAL.  I did write a routine that printed out 4 x 4 magic squares — I was really into magic squares back in college.  I also dabbled with computer graphics and geometrical inversion — I recall giving a talk where I discussed geometrical inversion, and I split the screen so on one side you saw lines tangent to a conic section, while on the other side, you saw inverse circles tangent to the inverse limaçon.

While in graduate school, I had a one-year stint filling in for a faculty member at a nearby college, and I taught a data structures course using PASCAL.  Now, I would never think of PASCAL as a go-to language for any particular purpose.  It’s still around, but not nearly as popular as it was then.

The next is LISP*, which I used while teaching at a summer program during graduate school.  This was a parallel version of LISP written for the Connection Machine, a state-of-the-art supercomputer in its day.  It had literally thousands of different processors, each very simple.  But because of the sheer number of processors, the speed of the Connection Machine merited it the designation “supercomputer.”

The language was quite similar to LISP, except that many functions had parallel versions which could be executed on each processor.  I can’t recall much of what I did on the Connection Machine, but I do remember programming Conway’s Game of Life on a 1000 x 1000 torus.  Of course I can do that on my laptop right now in Mathematica, but at the time, it was a real feat!  Remember, that was back in the day when Mandelbrot sets were calculated pixel by pixel and computers were so slow you could actually see the pixels march right on by….

Chronologically, Maple — a direct competitor of Mathematica — comes next, sort of…I used Maple around the same time as LISP*.  I seem to recall the only reason I played around with it was that I had a house-sitting job for a few summers, and there was a computer I could use which had Maple on it.

I recall finding Maple really useful, but there was a bit more syntax than with Mathematica.  I really like Mathematica‘s fundamental data type — the list, just like LISP.  But I think part of the reason I’ve stuck with Mathematica through the years is that most places I’ve been have supported it — and being free is a big advantage.  I know Maple has changed a lot since I last used it, so I don’t feel I’m able to say more about a comparison with Mathematica than what I’ve already said.

Jump ahead a few years to C++.  I can’t remember exactly when I started learning it, but I was teaching at a small liberal arts college, and a colleague who usually taught an algorithms course was going on sabbatical.  I was really the only other faculty member at the university qualified to teach it, and so there it was!  The students in the course knew C++, so I needed to learn it, too….

Well, I should say I learned enough to write code for an introductory algorithms course, which means I didn’t have to dive too deeply in.  I can’t say I used C++ for much after I taught the course, except I remember writing some routines to do financial planning.  You know, like if you have different investments at different interest rates for different numbers of years, etc., how much will you have when you retire?  (Being a mathematician, I thought it insane that I should pay someone else to do my financial planning, so I read everything I could on the topic and did it myself.)  But I haven’t used C++ since.

Last — and perhaps least — there’s Java.  I learned Java was when I was applying for a job teaching mathematics and computer science, and the language taught was Java.  I had never written a line in Java before, and there was some concern that I wasn’t qualified.

So I wrote a little interactive game based on some puzzles I created, which was really quite nice, if I must say.  The only way to show you know how to code in a language is to code, so I did it.

It was rather unpleasant, though.  What I needed to do was really just algorithmic, and the object-orientedness of Java and the need to precisely define data structures really got in the way.  I hope never to write another line of Java again.  (Incidentally — long story — I was offered the job but turned it down.  Saved me from teaching Java….)

And I think that’s about it!  If I can leave you with anything after this series, it’s GO CODE!  Learn as many different types of languages as you can.  The best way to learn is to find something you really want to do, and then go for it.

Remember, my first programming language was Fortran — using punch cards.  Running batch jobs.  Today, you’ve got laptops and the internet.  The only limit is your imagination….



Bay Area Mathematical Artists, III

Another successful meeting of the Bay Area Mathematical Artists took place yesterday at the University of San Francisco!  It was our largest group yet — seventeen participants, include three new faces.  We’re gathering momentum….

Like last time, we began with a social half hour from 3:00–3:30.  This gave people plenty of time to make their way to campus.  I didn’t have the pleasure of participating, since the campus buildings require a card swipe on the weekends; I waited by the front door to let people in.  But I did get to chat with everyone as they arrived.

We had a full agenda — four presenters took us right up to 5:00.  The first speaker was Frank A. Farris of Santa Clara University, who gave a talk entitled Fibonacci Wallpaper Spirals.


He took inspiration from John Edmark’s talk on spirals at Bridges 2017 in Waterloo, which I wrote about in my blog last August (click here to read more).  But Frank’s approach is rather different, since he works with functions in the complex plane.

He didn’t dive deeply into the mathematics in his talk, but he did want to let us know that he worked with students at Bowdoin College to create open-source software which will allow anyone to create amazing wallpaper patterns.  You can download the software here.

Where do the Fibonacci numbers come in?  Frank used the usual definition for the Fibonacci numbers, but used initial values which involved complex numbers instead of integers.  This allowed him to create some unusually striking images.  For more details, feel free to contact him at

Next was our first student talk of the series, My Experience of Learning Math & Digital Art, given by Sepid Ebrahimi.  Sepid is a student in my Mathematics and Digital Art course; she is a computer science major and is really enjoying learning to code in Processing.
First, Sepid mentioned wanting to incorporate elements into her work beyond simple points, circles, and rectangles.  Her first project was to recreate an image of Rick and Morty, the two main characters in the eponymous cartoon series.  She talked about moving from simple blocks to bezier curves in order to create smooth outlines.
Sepid then discussed her second project, which she is using for her Final Project in Mathematics and Digital Art.  In order to incorporate sound into her work, she learned to program in Java to take advantage of already-existing libraries.  She is creating a “live audio” program which takes sound input in real time, and based on the frequencies of the sound, changes the features of various geometrical objects in the video.  Her demo was very fascinating, and all the more remarkable since she just started learning Processing a few months ago.  For more information, you can contact Sepid at
The third talk, Conics from Polygons: the Chord Ratio Construction, was given by Scott Vorthmann.  He is spreading the word about vZome, an open-source virtual environment where you can play with Zometools.
The basis of Scott’s talk was a simple chord ratio construction, which he is working on with David Hall.  (Here is the GeoGebra worksheet if you would like to play with it.)  The essential idea is illustrated below.
Begin with two segments, the red and green ones along the coordinate axes.  Choose a ratio r.  Now add a chord parallel to the second segment and r times as long — this gives the thick green segment at y = 1.  Connect the dots to create the third segment, the thin green segment sloping up to the right at x = 1.  Now iterate — take the second and third segments, draw a chord parallel to the second segment and r times as long (which is not shown in the figure), and connect the dots to form the fourth segment (the thin green segment sloping to the left).
Scott then proceeded to show us how this very simple construction, when iterated over and over with multiple starting segments, can produce some remarkable images.
Even though this is created using a two-dimensional algorithm, it really does look three-dimensional!  Conic sections play a fundamental role in the geometry of the points generated at various iterations.  Quadric surfaces in three dimensions also come into play as the two-dimensional images look like projections of quadric surfaces on the plane.  Here is the GeoGebra worksheet which produced the graphic above.  For more information, you can contact Scott at
 The final presenter was Stacy Speyer, who is currently an artist-in-residence at Planet Labs.  (Click here to read more about art at Planet Labs.)  She didn’t give a slideshow presentation, but rather brought with her several models she was working on as examples of Infinite Polyhedra Experiments with Planet’s Satellite Imagery.
One ongoing project at Planet Labs is planetary imaging.  So Stacy is taking high-resolution topographical images and using them to create nets for polyhedra.  She is particularly interested in “infinite polyhedra” (just google it!).  As you can see in the image above, six squares meet at each vertex, and the polyhedron can be extended arbitrarily far in all directions.
One interesting feature of infinite polyhedra (as you will notice above) is that since you cannot actually create the entire polyhedron, you’ve got to stop somewhere.  This means that you can actually see both sides of all the faces in this particular model.  This adds a further dimension to artistic creativity.  Feel free to contact Stacy at for more information!
We’ll have one more meeting this year.  I am excited to see that we’re making so much progress in relatively little time.  Presentations next time will include talks being prepared for the Joint Mathematics Meetings in San Diego this coming January, so stay tuned!