-
-
"Pirouette"- A painting based on a ballet sequence that includes a pirouette
-
"Pas De Chat 1" - A painting based on a pas de chat (ballet). Several different recordings of this dance move were converted to paintings.
-
"Pas De Chat 3.1" - A painting based on a pas de chat (ballet). Several different recordings of this dance move were converted to paintings.
-
"Pas De Chat 2" - A painting based on a pas de chat (ballet). Several different recordings of this dance move were converted to paintings.
-
"Pas De Chat 3.2" - A painting based on a pas de chat (ballet). Several different recordings of this dance move were converted to paintings.
-
"Somersault" - A painting based on a somersault
-
"Punch Sequence" - A painting based on several martial arts moves (mostly punches)
-
"Fall" - A painting based on a person walking, tripping, and falling over (data slightly faulty)
-
"Walkover" - A painting based on a front walkover (data extremely faulty)
Inspiration
I've used Axidraw robots before, and recently starting writing code for them to use paints rather than pens. However, before this project, the actual material I had been painting with the robot was pretty boring. So, I chose to paint more interesting material: motion over time. I came up with the idea to trace the paths of various body parts pretty early, but it wasn’t until I recorded BVH data and wrote some sample code that I could determine how many and which body parts to trace. Originally, I had thought that tracing the hands, feet, elbows, knees, and mid-back would make for a good, somewhat “legible” image, but as Golan (my professor for this project) and literally everyone else I talked to told me: less is more. So, I ultimately decided to trace only the hands and the feet. This makes the images a bit harder to decipher (as far as figuring out what the movement was), but they look much better, and that’s the point.
One more change I made from my old Axidraw painting projects was the addition of multiple colors. I really like how the multi-colored images turned out. I mixed different watercolors (my first time using watercolors since middle school art class) in a tray, and put those coordinates into my code. I added instructions between each line of color for the Axidraw to go dip the brush in water, wipe it off on a paper towel, and dip itself in a new color. I think that the different colored lines make the images a little easier to understand, and give them a bit more depth.
How It Was Done
I tried to record a wide variety of motion capture data for this project (thanks to several more talented volunteers) including ballet, other dance, gymnastics, parkour, martial arts, and me tripping over things. Unfortunately, I had some technical difficulties the first night of MoCap recording, so most of that data ended up unusable (extremely low frame rate). The next night, I got much better data, but I discovered later that Brekel really is not good with upside down (or even somewhat contorted) people. This made a lot of my parkour/martial arts data come out a bit weird, and I had to select only the best ones to print. If I were to do this project again, I would like to record Motion Capture data with a slightly better system than the one I used for this project. I think I would get nicer pictures that way.
You can look at my code in detail on Github, but the general way it works is it dips the brush in paint, selects a body part to follow first, and then iterates through every frame of the motion capture data, moving the paint brush to the appropriate coordinate as it does. When the data runs out, it lifts the brush, dips it in water, and wipes it off. This is all done in a loop so that we get a line of color for each body part we are tracing.
One more aspect of my code that I want to point out is a little portion of code I made that maps the data to be an appropriate size for the paper. It runs at the beginning, and finds the maximum and minimum x and y values reached by any body part. Then, it scales that data to be as large as possible (without messing up its original proportions) while still fitting inside the paper’s margins. This means that a really tall motion will be scaled down to be the right height, and then have its weight shrunk accordingly, and a really wide motion will be scaled by its width, and then have its height shrunk accordingly. I think that this was an important feature.
Reflections
All in all, I am super happy with how this project turned out. I would have liked to get a little more variety in (usuable) motion capture data, because I love trying to trace where every limb goes during a movement (you can see some of this in my documentation video above). I also think that a more advanced way of capturing motion capture data would have been helpful, but what can you do?
Built With
- brekel
- processing

Log in or sign up for Devpost to join the conversation.