I started making stop motion animations when I was 7. I had seen this wild movie Alice by Jan Švankmajer that I recommend to people a lot, and I remember watching a lot of LEGO stop motion on YouTube and other behind the scenes of animation.
Since this time I’ve made a number of different animations along side my video work, and I’ve always made attempts to work in different ways that I’m not used used to. In Middle School I learned how to use After Effects and spent a great deal of my time motion tracking composited effects into live action footage. Eventually I tried making matted line animations to composite into footage, sitting them in reality. Changing how I work has always been an important part of what keeps animation interesting to me.
Earlier this year I decided I would try applying some of the work I had done in machine embroidery to a new style of animation I had never tried before (I’ve written about my first experiments in coding embroidery here). Because I was able to stitch these pieces so precisely, I figured I could create frames of an animation using the same process.
Processing Images to Stitches
I had a concept, but I wasn’t sure exactly how I wanted to alter stitch patterns over time to form specific movements and action. I ended up programing an image processor that could convert any image to a stitch path that was recognizably similar.
I got the idea for a meandering path algorithm working on a low-level machine learning exercise involving “cars” that could view their distance from walls at different angles and learn to steer around a track without crashing.
I was struggling trying to implement food sources for the cars to be attracted to, coercing them in the right direction, when I realized that I may be able to use this for converting images to stitch paths.
The first step was to generate a field of food sources based on an image. This was simple enough applying a probability to each pixel based on its brightness that a piece of food would be placed there. This creates a density gradient from darkest to brightest or vice-versa.
I then directly programed a single car to tend towards food that was closest and most directly ahead of it. Because the food is densest in the brightest or darkest parts of the image, the stitch path density will also be greatest in those areas and will somewhat resemble the original image depending on the color of thread and fabric used.
Once I had this tool, I created a .png sequence containing each frame of the animation I wanted, and ran it through the program to get 24 stitch files for one second of animation. As you can see, I tried separating each image into its three color channels, resulting in three different stitch paths.
And here are some other samples of channel splitting I did in early testing-
I used another tool I made to draw stitch paths, and animated assets for a recent short film. I write about it here.