## Mathematics and Digital Art: Final Update

It’s hard to believe yet another academic year is over!  I do think this second semester of Mathematics and Digital Art went a little more smoothly than the first.  This shouldn’t be too surprising, though — the first time implementing any new course is a little bumpy.  Though I must admit, there were surprisingly few bumps the first time around….

Like last semester, I had students create a movie in Processing.  The main tool I had them use was linear interpolation to create animation effects.  As before, I encouraged them to use linear interpolation with any numerical parameter in their movie — how much red there is in the background color, the position of objects on the screen, or the width of points and lines, just to name a few possibilities.

Colette created some interesting visual effects.  Some students (like her) took advantage of the fact that if you don’t set the background color in the draw function in Processing, successive calls to the draw function overlap the previous ones, giving a sense of movement.

Peyton was inspired when her friends invited her to go to the beach.  Here is a screen shot of her movie, where the moon reflects off the rippling waves of the sea at Ocean Beach in San Francisco.

Next, I’d like to share a few pieces from students’ Final Projects.  Recall that Final Projects are an important part of the course — during the second half of the semester, we spend one or two days a week working on them.  This is the opportunity for students to explore any aspect of the course in more detail.

While Lainey focused on making images which reminded her of her dreams, she began with this collage including  several motifs from our coursework throughout the semester.  She was one of the few to incorporate L-systems into her Final Project.

Karina, as many students did, experimented with image processing.  She wanted to overlay multiple images at various transparencies to create a kaleidoscopic effect.  Rotating the images required that she brush up on her trigonometry….

Karla was interested in experimenting with color.  She was interested in morphing images of the Buddha.  Karla used the RGB values of the pixels in an original image, like the one shown below on the left, to determine the RGB values of the pointillistic image shown on the right.

Also like last semester, I asked students to write a final response paper about their experience with the digital course.  The responses were similar to those of last semester, so I’ll only include a few excerpts here.

I think differently about mathematics in how it relates to art. I always thought that the two would be separate entities, but this class has proved that’s not always the case.

After having taken this course this semester I really have gained an interest in art and programming that I certainly didn’t have before, even after having taken some courses in programming. I think that actually being able to see the endless things that are able to be created using programming and math is really cool….

One student made a particularly interesting remark:

I wish that I had more knowledge on how to type my own code. There were points in the semester where the art I was creating felt a bit like a coloring page where we were given a page that was already drawn and told to fill it in and try to make it our own.

Of course this is what I want to read!  I do want to inspire students to investigate programming further — but students taking this course receive a mathematics credit.  There is certainly no doubt in your mind about how passionate I am about having students learn to write code, but I do need to emphasize the mathematics of digital art.  Maybe next semester I’ll have Nick run some extra sessions on coding for those who are interested in learning more.

I also wanted to share some work from the other course I taught this semester, Linear Algebra and Probability.  I have students work with affine transformations and iterated function systems in this course as well.  Their first project is a still image using Sage, and their second project is a fractal animation using Processing.  Here is Jay’s submission.

And finally, I want to remind you that Mathematics and Digital Art is becoming a university-wide course next year.  I am working with the Fine Arts department here at USF to encourage incoming fine arts majors to earn their mathematics credit by creating digital art!  I expect the course to be quite a bit larger this Fall, and will be connecting with the Fine Arts faculty to make sure the content meets their needs as well.

In addition, I will be giving a talk at Bridges this summer (in Waterloo, (the Canadian one, that is)) about my digital art course.  I’m expecting that I’ll receive a wide range of comments and suggestions, so the course may be a little different in the fall.  That’s one nice feature of this course — it’s not a prerequisite for any other course, so there is some flexibility as far as content is concerned.

Like this semester, I’ll provide monthly updates to let you know what changes I’ve implemented, and also to showcase student work.  So stay tuned!

## Mathematics and Digital Art: Update 3

It’s hard to believe it’s been a month since my last update!  This semester has been unusually busy.

At the end of my last update, I said I’d talk more about using L-systems in class.  I decided to focus on the symmetrical Koch-like images I had been working on for the past few years.  There are two reasons for this.  First, it’s fresh — and demonstrates that creating new fractal images is an active research topic; not everything is known.  Second, you need to know some elementary number theory in order to create symmetrical images.  Since none of the mathematics we studied so far was closely related to number theory, this was a great opportunity to see yet another application of a different branch of mathematics.

I started with introducing the basics of modular arithmetic.  This was new to most students, but the motivation was easy:  the direction you’re pointing after any given move is relevant to deciding if your sequence of segments closes up.  And any time you turn counterclockwise, you increment the direction by the angle you turn, but subtract 360° when you go over 360° since a turn of 360° doesn’t alter your direction.  This is just using a modulus of 360 for the direction you’re pointing.

Then, I reminded them how to find the prime factorization of numbers in order to create a 2-adic valuation.  Recall that the 2-adic valuation of a number is the exponent of the highest power of 2 which divides that number.  This is significant since the 2-adic valuation (mod 2) indicates how to turn when drawing a Koch-like curve:  a 0 represents one angle (60° for the Koch curve), and a 1 represents the other (240° for the Koch curve).  So we created charts like this:

Then finally, I showed students how to find angle pairs which created symmetrical images using a theorem in a paper I’m working on for the College Mathematics Journal.  As the proof involves significantly more mathematics at a level beyond what we could reasonably discuss in the course, I just showed them the result.  I won’t go into details here, but I’d be glad to share a draft of the paper if you’re interested and adventurous….

For their project work, they had to create images using the results of the theorem in Processing.  Karla created this image, which I find interesting since it exhibits six-fold symmetry, but the exterior elements have seven points on them.  So rarely do you encounter 6 and 7 together in geometry.

Peyton created this image, which is suggestive of a complete image, but which doesn’t include all the line segments.  But the overall symmetry of the image is clear; you can complete it in your mind’s eye.

I also asked students to create an image which did not close up, to experiment with parameters which generated a more chaotic image.  Colette created this image, which reminded her of the top of a pine tree.

Some students did have difficulty using the theorem correctly to generate images with symmetry, so next semester I’ll spend a little extra time making sure everyone’s on track.

We also had another guest speaker visit the class since the last update.  I met Gwen Fisher at the Art Exhibition in Santa Clara at the Regional MAA meeting last month, and thought she would be a great fit for our class.  What I liked about her art is that she works with beads in very mathematical ways — and her work is very different from anything we had been doing in the class.

She brought in several of examples of her beadwork to pass around.  You can see many beautiful pieces on her website, including this Wisdom Mandala piece she designed.

What was wonderful about her presentation was that Gwen discussed both the design and the execution of her pieces.  My students were very engaged, and asked lots of questions along the way.

It turns out, though, that I had seen a talk she gave two or three years ago at another conference!  Of course you can’t remember every speaker you see at every conference you attend, especially out of context.  But after seeing her talk, I realized some of the slides looked strangely familiar, and that is because I had actually seen them before….

One more bit of news.  You might remember that Mathematics and Digital Art has been offered as a First-Year Seminar course this year, meaning that only first-year students may enroll, and the maximum number of students in the course is set at 16.

Being a faculty member at the University of San Francisco, I am also working on a project with colleagues in creating a Mathematics for Educators minor — a series of courses aimed at prospective middle-school teachers to broaden their knowledge of mathematics especially suited to middle-school students.  And of course a digital art course would fit nicely into this framework.

But what if a student decides to opt for the minor after their first year?  Well, they couldn’t take digital art.  So now, the course is a regular offering in the Mathematics and Statistics Department, open to any student at USF.  I’m very excited about this, and really hope to spread the word about the Imagifractalous world of mathematics and digital art!

I’ll keep you updated in the Fall, as I have more changes in store for the course.  I plan to move completely to Processing, since now everything I used Sage for has been rewritten for Processing.  And next semester, I’ll include a short unit on binary trees as well.  Stay tuned….

## Mathematics and Digital Art: Update 2

It’s been about a month since my first update, so it’s time for another status report on my second semester teaching Mathematics and Digital Art.  It really has been a wonderful semester so far!

Later we’ll look at some student work (like Collette’s iterated function system),

but first, I’d like to talk about course content.

The main difference from last semester in terms of topics covered was including a unit on L-systems instead of polyhedra.  You might recall the reasons for this:  first, students didn’t really see a connection between the polyhedra unit and the rest of the course, and second, the little bit of exposure to L-systems (by way of project work) was well-received.

I’ve talked a lot about L-systems on my blog, but as a brief refresher, here is the prototypical L-system, the Koch curve.  The scheme is to recursively follow the sequence of turtle graphics instructions

F  +60  F  +240  F  +60  F.

There is also an excellent pdf available online, The Algorithmic Beauty of Plants.  This is where I first learned about L-systems.  It is a beautifully illustrated book, and I am fortunate enough to own a physical copy which I bought several years ago.

Talking about L-systems is also a great way to introduce Processing, since I have routines for creating L-systems written in Python.  Up to this point, we’ve just explored changing parameters in the usual algorithm, but there will a deeper investigation later.

One main focus, however, was just seeing the fractal produced by the algorithm.  When working in the Sage environment, the system automatically produced a graphic with axes labeled, enabling you to see what fractal image you created.

In Processing, though, you need to specify your screen space ahead of time.  So if your image is drawn off-screen, well, you just won’t see it.  You have to do your own scaling and translating, which is sometimes not a trivial undertaking.

I also decided to introduce both finite and infinite geometric series in conjunction with L-systems.  This had two main applications.

First, we looked at the Sierpinski triangle.  Begin with any triangle, and take out the triangle formed by joining the midpoints of the sides.  Then repeat recursively, creating the Sierpinski triangle.

Now assume your original triangle had an area of 1, and calculate the area of all the triangles you removed.  Since the process is repeated infinitely, this sum is just an infinite geometric series.  Interestingly, the sum of this series is 1, meaning, in some sense, you’ve taken away all the area — but the Sierpinski triangle is still left over!  This illustrates an idea not usually encountered by students before:  infinite sets of points with no area.  Makes for a nice discussion.

Second, we looked at the Koch curve (and similarly defined curves).  Using a geometric sequence, you can look at the length of any iteration of the polygonal path drawn by the recursive algorithm.  And, as expected, these paths get longer each time, and their lengths tend to infinity as the number of iterations increases.  This is another nice way to involve geometric sequences and series.

We’ll be doing more with L-systems in the next few weeks, so I’ll finish this discussion on my next update.

A highlight of the past month was a visit by artist Stacy Speyer.

Having worked with weaving and textiles for some time, Stacy has moved on to an investigation of polyhedral forms.

Stacy’s talk provided a wonderful insight into integrating mathematics and art in ways we did not study in class.  One of the goals of the Bridges papers presentations and the guest speakers is to do precisely this

She writes:

I’m now on a mission to share the fun of making geometric forms with others; I designed Cubes and Things, a 3D coloring book.  These easy-to-make paper constructions have patterns that can be colored which emphasize different kinds of symmetric properties of the polyhedra.  I bring this fun activity to schools and other groups in the form of Polyhedra Parties.  And whenever possible, I still work on making more geometric art and learning more about math.

Visit Stacy’s website to take a look at her book, and view many more examples of her stunning work!

Now we’ll take a look at a few more examples of student artwork.  These pieces were submitted for the assignment on iterated function systems.  Karla created a piece which reminded her of icicles or twinkling lights.

Lainey thought her piece looked like a bolt lightning coming out of a wizard’s staff.

And Peyton’s piece reminder her of flowers.

Finally, as I did last semester, I asked students for some mid-semester comments on how the course was going.  You can see the complete prompt on Day 19 of the course website.  Here are a few of the comments:

I like how it takes a subject that we are all required to take and creates a real, palpable output. Rather than some types of math, where everything is theoretical, it creates a clear chain of events with an even clearer consequence.

[A]fter seeing the kinds of art works there are that involve the kind of math and programming we use, it opened up a new world of artistic possibilities.

What I enjoy most about this course aside from it being small and very interactive in terms of doing labs and having all of our questions answered, is the fact that I would never thought I would be able to create images using programming or math let alone enjoying the satisfaction of the final product.

I was pleased to read these responses, as they suggest the course is fulfilling its intended purpose.  But there were also suggestions for improvement — there was a consensus that the math moved a bit too quickly.  When we start the discussion on number theory for analyzing the Koch curve next week, I’ll make sure to keep an eye on the pace.  I’ll let you know how it goes in my next update in April!

## Mathematics and Digital Art: Update 1

I have the pleasure of teaching Mathematics and Digital Art again this semester!  Since I’m largely following my outline from last semester, biweekly reports aren’t really necessary.  But every month or so, I’d like to provide an update regarding changes I’ve made from the previous semester, as well as provide examples of student work.

There are no significant content changes yet — although I’ll be discussing L-systems rather than polyhedra this semester, and there will be more to say when we get to that point.  But as far as the delivery is concerned, there have been some alterations.

First, I’m emphasizing the code more right from the start.  You might recall that in their mid-semester comments last semester, students asked for more details about the actual coding.  So I take more time in each lab explaining Python.

This change has already made an impact; I’ve noticed that students are getting more adventurous with coding earlier on.  They really seem to enjoy experimenting with the geometry.  The example I use for the Josef Albers assignment looks like this — just rectangles within rectangles.

But Collette took the geometry quite a few steps further.  In her narrative, she discussed working with figure and ground, trying to make each geometrically interesting.

I am pleased to see students playing so intently with the geometry.  At first, after a detailed discussion of using two-dimensional coordinates in Python, some students just tried randomly changing numbers to see what would happen.  But I encouraged them to be a little more intentional — that is, spend more time in the design stage — and they were largely successful.

The second change is that I spent an extra day on affine transformations at the beginning of our discussion, slowing down the pace a little.  Last semester, I recall that I needed to go back and review ideas I thought I covered in sufficient detail.  Hopefully, slowing down the pace will help.

In addition, I put together a summary of commonly used affine transformations, such as reflections:

This seemed to be helpful — I used it for the linear algebra course I’m teaching as well, and students responded positively.  Feel free to look at it; just go to Day 6 on the course website.

The third change involves using discussion boards more deliberately on Canvas (which is our University’s content management system).  For each digital art assignment, I have students post drafts of their work, and have their peers comment on them.  Since I have a small class this semester (six students), it is not a problem to have each student comment on every other student’s work.

Students really seem to enjoy this, and I participate by writing comments as well.  But because everyone works at a different pace, some students lagged behind.  So now I’m being more formal about using the discussion board, and making it an assignment.

For example, the next assignment involves creating three pieces, and I have assigned students to upload drafts on Canvas by the beginning of class next Friday.  We’ll use Friday’s class so students can write and read comments; the assignment isn’t due until a few days later, so there will be time to incorporate new ideas into their drafts.

These changes are making a positive impact, and are making the course even more enjoyable this semester.  And I am also fortunate to have Nick Mendler as my course assistant again this semester, meaning there are two of us to work with students each day.  Students are really getting individual attention with their work.

Now let’s look at some more examples of student work!  For the assignment to create a color texture using randomness, Lainey worked to create an image which resembled a piece of fabric.

For the Josef Albers assignment, Peyton (like Collette) also experimented a lot with the geometry of the individual elements.  She chose a color palette which reminded her of a succulent, and so created geometrical objects which represented spikes on a plant.

And for the assignment based on my Evaporation piece, Karla chose a pink palette.  She looked at various values for the radius and the randomness in the radius so as to create a balance between overlapping circles and white space between the circles.

Stay tuned for the next update!  In the next installment, I’ll let you know how the work with L-systems went.  One of my favorite topics…..

## Digital Art VIII: The End.

Yes, Mathematics and Digital Art is officially over.  Personally, this has been one of the most enjoyable courses I’ve taught, but also one of the more challenging.  From the initial course proposal — begun in November 2015! — to the Final Projects, it seems there was always something unexpected popping up.  But in a good way, since these surprises often involved such things as writing code for a student’s project, or helping a student incorporate a creative aspect into a digital artwork which I had not previously considered.

As I mentioned last week, the last assignment was to write a final Response Paper about the course.  Students had many good things to say, but also made some suggestions for improvement.

I feel like now, though, especially through the talks we were given from other artists, that my scope of the word “art” has broadened. The realm of digital art is so much wider than I could have imagined and includes a lot more mediums than I would have thought.

After completing this course, I realize that the world of art is even vaster, with so many areas still left unexplored or underexplored.

Wow!  I was so glad to see how the course broadened students’ perspectives.  Some students also mentioned the presentations on Bridges papers in this regard — how they were able to learn about many diverse topics in a brief amount of time.  They got a small taste of what it’s like to go to a Bridges conference….

As I had hoped, many students’ perspectives on mathematics changed during the course.  I’ll let the students speak for themselves.

Overall, I really enjoyed the class. Through high school, math was complicated and boring, but this class made me appreciate math in a different way, and I enjoyed learning about coding and digital art.

After this course, I definitely think about math differently, because now I know how it can be used to figure out shapes and layers and colors that I can use in my art. I also think differently about art, because before this course, I had only really done traditional art, and had no idea about any digital art besides using a tablet to draw with instead of a pencil. This course has really opened my mind to what I think art can be, and definitely how it can be created in different ways.

As with most classes, I learned a lot of significant things, but this class really taught me how to push beyond my boundaries and comfort zones. Learning about fractals and affine transformations were mathematically the most difficult part for me, but without those chapters I probably wouldn’t have sharpened my basic math skills….

I felt the coding part of the course was pitched at about the right level.

I soon realized that even though I had no background in code the material was explained and taught so that anyone could understand it.

But some  students commented that they would like to go into more depth as far as programming is concerned.

And one student even decided to minor in computer science!

Best of all, this class is part of the reason why I decided to declare a minor in computer science. It is something I have been considering as I have always had an interest in the subject, but I feel this class had really helped fuel that interest and give me the final nudge I needed.

Most students remarked about how much they loved learning to make movies in Processing, and how the small class size really helped them in terms of their personal learning experience.  The class was just nine students, and I had Nick to help me out — so I felt I really got to know the students.  Not a luxury I’ll always have….

Aside from focusing more on code, some students commented on how we didn’t really use the few weeks on polyhedra anywhere else in the course.  Yes, I wanted to give them some exposure to three-dimensional geometry without having to spend the time developing the mathematics of a three-dimensional Cartesian coordinate system.  But it seems this was just too disjointed from the natural flow.

I think a good substitute would be to discuss L-systems for these two weeks instead.  There are two advantages here.  First, L-systems are another really neat way to create fractals, and the class responded very positively when I gave my Bridges talk on L-systems and Koch curves.  And second, this would give a few more weeks when we could discuss coding, especially recursion.  In general, recursion is a difficult topic to teach — but teaching recursion in the context of computer graphics might really help the learning process.

I also asked Nick if he’d say a few words about his experience with the course.

I was very excited to work with Professor Matsko on Math and Digital Art, I think we both caught on a while back that the great flexibility I’ve found within the math department to support creative interests can be shared with other students. Also the instant gratification that we were finding from programming was really picking up. When communication from generated images was profoundly more efficient than any attempt to explain with words, it was clear that we had to invite more people to the conversation.

What I think has been so powerful following my discovery of programming – and what I hope I left with the students – is the ability to paste mathematical notation for very specific thoughts directly into the computer so that I can just look at what those thoughts literally mean. This continues to be the best way that I’ve found to meet and greet interesting new patterns and behaviors. Ultimately I think this is extremely natural and that the students caught on quite well: curious how a fractal might react? Poke it and find out!

Some areas definitely saw unexpected challenges, but once we got their mathematical comfort zones lined up with the curriculum the enthusiasm was excellent. My favorite part was definitely helping students let their imaginations fill the newly available parameter space. It was really great that we had a small class size, too – the two of us walking around made the perfect environment for any question to be asked during open days when they worked on self-directed projects. And it really felt like success to observe students becoming fixed on a single idea of what they wanted to create, whether or not they knew anything about how they would create it.

Overall I may have learned more than the students and was very surprised by the deeper understanding that begins to build after explaining to the masses. I would be very interested in assisting a course again!

As long as enough students enroll, I’ll be teaching Mathematics and Digital Art again next semester!  I won’t be reporting as frequently as I did this first semester, but expect updates every month or so….  Who knows what creative ideas next semester’s students will come up with?

## Digital Art VII: Final Projects!

It’s hard to believe that the semester has finally come to an end!  And I must say that Mathematics and Digital Art was one of most enjoyable courses I’ve ever taught.  I’ll summarize my thoughts in a later reflective post, but today I’d like to showcase my students’ Final Projects.  There really was some exceptional work — but I’ll let the images speak for themselves.

Many students built upon the work we did earlier in the semester. Safina used several different elements we explored during the course.  In addition, she researched turtle graphics in Python to incorporate additional elements (those with lines emanating from a central point).

A few students especially enjoyed the work we did with color and Josef Albers, and created projects around different ways to contrast colors.  Andrew created many variations on a triangular theme.

He took this idea further, and went so far as to combine different triangles in composite images.

Julia, on the other hand, experimented with other geometrical objects.  She played with having colors interact with each other, and created the following image.  Although it may not look like it, the two center circles are in fact exactly the same color!

Two students were interested in image processing, and worked closely with Nick to learn how to use the appropriate Python libraries in order to work with uploaded images.  Madison’s work focused on sampling pixels in an image and replacing them with larger circles to create an impressionistic effect.  She found that using a gray background gave the best results.

Lucas also worked with image processing.  He began by choosing a fairly limited color palette.  Then for each pixel in his image, he found the color on his palette “nearest” the color of that pixel (using the usual Euclidean distance on the RGB values), and then adjusted the brightness.  The image below is one example illustrating this approach.

Two students worked with textures we experimented with earlier in the semester to create pieces like Evaporation.  Maddie wanted to recreate a skyline of Dubai (photo from the Creative Commons).

She picked out particular elements to emphasize in her work.  You can clearly see the tall buildings and lit windows in a screenshot of her movie.

Sharon was interested in working with some of Dali’s paintings, creating impressionistic images by mimicking Dali’s color palette.  Here is her interpretation of The Elephants.

Although we only touched on L-systems briefly in class, Ella wanted to focus on them in her project.  Nick also worked closely with her to create different effects.  Here is a screenshot from one of her movies.

She was able to create some interesting effects by just slightly altering the parameters to L-systems which created trees and superimposing the new L-system on top of the original.  This gave some depth to the trees in her forest.

And one student decided to revisit Iterated Function Systems, but this time using nonlinear transformations in a variety of different ways.  Here is one of her images.

So you can see the wide range of projects students undertook!  This typically happens when you give students the freedom to choose their own direction.  I was also inspired by the enthusiasm of some of the students’ presentations.  They really got into their work.

The last assignment was to write a final Response Paper about the course.  The prompt was the same as that for the Response Paper I assigned midway through the course, so I’m curious to see if their attitudes have changed.  I’ll talk about what I learn in next week’s post!

## Digital Art VI: End of Week 14

The last three weeks have been very intense!  The main focus has been on laboratory work, both with Processing and Final Projects.

Week 12 began with another round of Presentations on papers from past Bridges conferences.  This proved to be successful again — with topics ranging from geometrical furniture to zippergons to maps of Thomas More’s Utopia.  We all learned something new!

The time not spent on Presentations that week was devoted to working on projects.  Students were finding their stride, and their ideas were really beginning to take shape.

Two students were interested in image processing, so Nick has been working with them.  The initial problem was that doing anything in Sage involving image processing was just too slow — you’re code is essentially sent to a remote server, executed, and the results sent back.  Since we’re using the free version, this means performance is unpredictable and far too slow for computation-heavy tasks.

So Nick helped with installing Python, finding image processing packages, etc.  This process always takes a lot longer than you imagine, but eventually all issues were resolved.

While Nick was working on image processing, I was helping others.  One student was really interested in using L-systems — one of my favorite geometrical topics recently!   But all my work with Thomas involved code written in Postscript and Mathematica.  Which meant I had to rewrite it in Python.

This proved to be quite a bit trickier than I thought.  The student was looking at The Algorithmic Beauty of Plants, and was interested in modeling increasingly complex L-systems.  First, the simplest type, like that used to generate the Koch curve.  Next came bracketed L-systems, and then bracketed L-systems with multiple rules.  I did finally get all these to work; I intend to clean up the code and share it in a future post.

Week 13 was devoted entirely to Processing and project work.  I started the week with introducing a few new ideas.  What really inspired the class were the mouseX and the mouseY variables.  When your mouse is in screen space, the mouseX and mouseY variables contain the location of your mouse.  So you can put an object where the mouse is, or have the x-coordinate of the mouse in some way determine the color or the size of the object.  The possibilities are virtually endless.

Here’s a sample movie made with this technique.

Since the code is just a few lines long, it won’t take long to explain.  Here is the complete program:

The drawPoint function will draw a point centered at the position of the mouse.  But in addition to those coordinates, the function takes an addition argument:  float(mouseX)/500.  This argument is 0 at the left edge of the screen, and 1 at the right edge.  (Recall the need for “float,” since otherwise Python will perform integer division and give 0 for any number less than 500.)

So the stroke command uses the parameter p to determine how much red is in the color specification.  When p is 0, there is no red, so the dot is black.  And when p is 1, the dot is red.  I used “p**0.4” as an illustration that interpolation need not be linear — the exponent of p determines how quickly or slowly the dot gets brighter as you move the mouse to the right.  Of course the dot also gets larger as you move your mouse to the right, as is clear by the strokeWeight function call.

I showed this example as I introduced the movie project.  Their assignment was to make a movie — anything they wanted to try.  The complete prompt is given on Day 34 of the course website, but I’ll give the gist of it here.  The main goal was to have students use linear interpolation in at least four different ways in their movie.  Of course they could use nonlinear interpolation if they wanted to, but it wasn’t required.

There was no length requirement — it’s easy to make a movie longer by adding more frames.  Just be creative!  Interpolation is a very useful tool in making movies and animations, and has a mathematical basis as well.  So I wanted that to be the focus of the project.  I also had them write a brief narrative about their use of interpolation.

This is Andrew’s movie.  You can clearly see the use of interpolation here in different ways.  It was also nice to see the use of trigonometry to calculate the centers of the dots.

Ella was interested in L-systems, and so Nick spent some time working with her on Python code during his weekly office hours.  Here is what she created.

Lucas wanted to use some interaction with the mouse, and he also had the idea of the sun setting as you moved the mouse down the screen.  Watch how the fractal clouds move with the location of the mouse as well.

So you can see how varied the use of interpolation was!  The students really enjoyed having control over the possible special effects, and created a wide range of interesting features in their movies.

That takes us to Week 14.  On Monday, we had a guest speaker come in, Chamberlain Fong.  I met him in Finland at Bridges this summer, only to find out he lives the next neighborhood over in San Francisco!  He gave a very interesting talk about taking pictures with a spherical or hemispherical camera lens, and the issues involved in printing the pictures.

The problem is essentially the same as creating a map of the globe — making a sphere flat.  There will always be distortion, but you have some control over what type of distortion.  You can keep angles the same, or areas the same — or some combination of the two.  And as these cameras keep getting cheaper, there will be a growing interest in making your spherical photos look realistic.

And although we had class on Wednesday, some students had already left for Thanksgiving Break.  So Nick and I were available to help on an open lab day.  Most of the students actually showed up, and we had a productive day working on movies (which were due Wednesday) and projects.

The next (and final!) post on Mathematics and Digital Art will survey the students’ Final Projects, so stay tuned!