Debrief: Recreating The Past

Lisa Jamhoury
9 min readJul 26, 2020


Documentation and reflection on “Recreating The Past,” a ten-week course on computational art taught by zach lieberman at the School for Poetic Computation.

Bridget Riley’s work (left). My digital recreation in openFrameworks (right).

I had the opportunity to take Zach Lieberman’s Recreating The Past course this summer. A silver lining of the Covid pandemic is that the course was offered for the first time online.

Over the ten weeks we studied influential artists in computational arts, then recreated, and later responded to, their works mostly using openFrameworks (OF).

Week 1: Vera Molnar

Vera Molnar’s original work (left). My digital recreation (right).

The first week we looked at noise and randomness through Vera Molnar’s work. Molnar creates still images using geometric shapes and patterns. It was interesting to see how Molnar considered every aspect of a shape in her design. Looking back, this may have been my favorite exercise because the sketch’s “simplicity” allowed me to really dig into the details in a way that I don’t usually in my own work.

Week 2: John Whitney

The second week we researched and re-created from John Whitney’s work. Whitney is well known for his pioneering work in computer animation. I picked a six-second clip of his to recreate.

Here’s the original:

Here’s my recreation:

Much like Molnar’s work, I was inspired by Whitney’s attention to the details of all the different aspects of the shape and motion in the animation.

Molnar and Whitney’s attention to detail in their work reinforces a piece of advice from Tyler Hobbs to generative artists that I ran into later during the course:

Experiment with Values for Every Variable

This is the biggest source of “putting in the time”, but it’s what will produce the best possible output. It will also allow you to discover ideas you would otherwise miss. Look through your program for any hard-coded numbers. By the time you’re done with your program, you should know what happens when any of these values are changed. Beyond just changing a 1.3 to 2.3, you should also try changing 1.3 to 0.13, 130, and -1.3. Some of these values will produce bizarre and exciting results.

Week 3: Muriel Cooper

Muriel Cooper’s original work (left). My digital recreation (right).

In week three we looked at the work of Muriel Cooper. Cooper was the first design director of the MIT Press and the founder of MIT’s Visible Language Workshop. Working with her bold graphic designs got me thinking about my struggles with color. I had a lot of trouble picking the right colors and blending modes in OF to reproduce this piece. This was something I started to explore later in the course.

Week 4: Bridget Riley

Bridget Riley’s work (left). My digital recreation in openFrameworks (right).

In the fourth week we explored a number of artists who work with patterns. I chose to recreate the work of Bridget Riley. I love her work. In general, I’m really drawn to work in black and white, and I find her compositions (black and white and with color) incredibly sophisticated. And there’s movement in her work that I find so attractive. Rather than spend my time fine tuning my recreation, this week I started playing around with my own variations on her work.

Three variations on my Bridget Riley recreation.

Week 5: (o^ ^o)

In the fifth week we looked at the work of Ken Knowlton and Lillian Schwartz. I packed up 17 years of life in NYC and moved to Mexico this week, so I didn’t get to making homework…

Week 6: Jason Salavon

This week we worked with image averaging. I wasn’t particularly interested in the technique at first sight, but after starting to work with it I found it really intriguing. There is real beauty in the practice of bringing multiple images together. It reveals a bigger truth than any one of the single images.

Inspired by Jason Salavon, I decided to average some of my personal photos. I downloaded all photos tagged as me on Facebook and created an animation of all of the photos from one year being averaged.

The photos are averaged with more weight on the newest image. As a photo is in the average array longer, it counts for less, and is less visible. If it is newer it counts for more, and is therefore more visible. The idea was to mimic memory in the way that recent memories are more clear, older ones are more fuzzy, and over time it just all begins to blend together. Here’s the animation from the last year I was active on FB (2018):

All photos I was tagged in during 2018. The photos are averaged with more weight on the newest image.

There’s a moment I really love when my niece (the ring bearer at my wedding) appears and then fades out. As I watch it, I have a strong connection to that memory, and then I can feel it slip away as she disappears. Here’s a still of that moment.

The moment when my niece (the ring bearer at my wedding) is added to the average.

I enjoyed working with this, but would like to work more on the weighting of new and old images. I also think some cleaner datasets could have more interesting results.

In addition to the animation, I averaged individual years of Facebook tags into single images. Here are the averages for the years 2015–2017.

The average of all of my photos tagged of me on Facebook in 2015.
The average of all of my photos tagged of me on Facebook in 2016.
The average of all of my photos tagged of me on Facebook in 2017.

Week 7: Myron Krueger

In the seventh week we focused on the work of Myron Krueger. He is well known for his pioneering work in using the body as a tool for interaction with computers.

I’m particularly interested in Myron’s work, Videotouch (part of Videoplace), which allows people to use their bodies to interact over distance (I did my ITP thesis about this in 2017). In this vein, I had been meaning to experiment with sending the results of Tensorflow.js models BodyPix and PoseNet over WebRTC to attempt to create a lo-fi version of Videotouch that would be accessible to anyone with a laptop and webcam. So, for homework this week I decided to take a break from openFrameworks, and try to do it. It turns out it was a bit too ambitious for the timeframe and I didn’t finish it. I built out the basic browser to browser server connection, which is here, but didn’t have time to route the data. Instead, I did a few experiments with PoseNet and BodyPix in p5.js. Both models run very slowly in the browser (even when using my gaming laptop / GPU), so the project morphed into experiments in what interactions might be interesting with latency.

Here’s a sketch where I used PoseNet to track my right eye. I spawn random walkers every time the eye moves a certain distance. The idea is that the more I try to see myself, the more I obscure the image.

The most interesting of my explorations of the BodyPix model—the TF.js body segmentation model—was when it had trouble tracking me. Here’s a shot of the incomplete segmentation of the right side of my face.

Week 8: Glitch

In week eight we explored many different variations on glitch. I was inspired by one of Zach’s shader examples that used natural textures. I have been collecting photos of natural textures for a couple of years (I originally started on Instagram, then switched over to using an album on my phone.) During this week I also happened to have a side conversation with Jason Ting about computational color. He sent me a number of great articles. I decided to use the week to experiment with my textures and color palettes from Inigo Quilez.

Here are a few of my results:

Moss with color.
Tree with color.

Week 9: BYOA

For the final week of the course we were assigned to Bring Your Own Artist (BYOA) and create work responding to their work.

I chose Rebecca Allen. From her website:

Rebecca Allen is an internationally recognized artist inspired by the aesthetics of motion, the study of perception and behavior and the potential of advanced technology. Her artwork, which takes the form of virtual and augmented reality art installations, experimental video and large-scale performances, spans nearly four decades and embraces the worlds of fine art, performing arts, pop culture and technology research.

Rebecca is the founding chair of UCLA DMA. She did pioneering work (see Steps Still Image and Catherine Wheel) with the body and computing. I was really surprised I didn’t know of her work before, given that I’ve been working with the body and computer for the past few years.

Inspiration images: Steps Still Image by Rebecca Allen (left), Catherine Wheel by Rebecca Allen (center), Real-Time Avateering by Matt Romein (right).

I was particularly interested in how her work examines how computers play a role in both humanizing and dehumanizing the body. Her work reminded me of the artist Matt Romein’s work Real-Time Avateering, in which he manipulates avatars to do impossible movements. (I also enjoyed this sketch on the theme from Robert Hodgin).

A few years back I did some 3D scans of my body suspended on aerial silks. I used a scan of myself suspended by my ankles to begin exploring this theme of dehumanizing the human form in digital space.

I started with loading the model and building structures with the body as a building block.

I then went on to work with the body as a mesh.

Back in 2018 Matt Romein gave a brief talk about a conversation he had with Mahx Capacity about the fact that 3D representations of bodies are empty. I found the idea really intriguing and began to work on investigating my empty mesh. Here are a few screenshots of what I started working with.

My empty mesh from above (left and center), from the side (right).

It took me a lot of time to figure out how to manipulate meshes and models in openFrameworks, so these are really early explorations, but I look forward to exploring this idea deeper.

Final Thoughts

My biggest process takeaway from the class is the importance of putting in time to explore a piece. (I really appreciate Tyler Hobb’s writing on this, which is referenced under week two☝️). I love to iterate and try new things, which often keeps me from sitting with my work for long stretches of time. As I move forward, I will try to block out longer stretches of time (weeks/months) to work on particular pieces.

Aside from finally getting up and running with openFrameworks (an exciting step away from Javascript), I’m really excited to have some new resources for exploring computational color (thanks again Jason Ting!)

The two projects that I’d like to return to are: an exploration of patterns (maybe a 100 days of patterns project inspired by Bridget Riley) and my final exploration focused on working with 3D scans of my body in abstract ways.


Here are two additional tidbits I want to hold onto from the class:

The first is Rule 7 from “10 Rules for Students and Teachers” by John Cage, which was shared by SFPC early in the course.

Rule 7: The only rule is work. If you work it will lead to something. It is the people who do all the work all the time who eventually catch onto things. You can fool the fans—but not the players.

The other is a quote shared by Paige Pritchard from Jenny Odell’s “How to do Nothing.”

In the context of health and ecology, things that grow unchecked are often considered parasitic or cancerous. Yet we inhabit a culture that privileges novelty and growth over the cyclical and the regenerative. Our very idea of productivity is premised on the idea of producing something new, whereas we do not tend to see maintenance and care as productive in the same way.

Thanks so much to Zach, our TA Luke Demarest, and SFPC for the course, and to the fellow students in the program for sharing your time, work and know-how.



Lisa Jamhoury

Artist & researcher working with computation and the body • Teaching @ITP_NYU • Formerly Machine Intel @Adobe Design and Digital Lead @BlueChalkMedia