Final project - Harmony from Chaos

IMG_3218.JPG

This is a project meant to engage the whole body in movement. I was inspired by dance, but it turns out slow tai-chi like movements work best, so the particles have time to move in a smooth arc towards your hands, as opposed to a jolting jittery fashion - which is a whole lot less appealing. It also ends up being a good visualization of the 'energy' that flows as we move. Since the particles are attracted to hands, and if the hands move in a rhythmic fashion, then so too do the particles. But they don't just follow your hand, they follow a smoother arc away from your hand. This is very fun to play with, and I hope something that people find enjoyable during the spring show!

I had originally built the skeleton using Toxic Libs, but for some reason that library does not like the kinect data as an input. No matter what I did, when hooked up to the kinect - Toxic libs showed only the kinect-connected particle, and not the rest of the skeleton. Luckily, I had already built out springs and particle attractors, and simply needed to work with my existing code to get my desired end result. Good thing we spent considerable time building physics engines! That made it a whole lot easier, and just a simple manner of updating functions and objects and numbers to get the exact parameters desired. // Source Code Here.

control.gif

Final project development

So I decided on the route of intrigue and little resistance, saving the deep dive into machine learning and AI for later. Clearly this is a fun solution. I immediately connected some physics sketches from the first half of the semester (earlier in this blog series) to my kinect work from last semester (in Intro to Computational Media, for my final project).

Then after speaking with Dan, I began a foray into toxic libs. Ultimately I needed to use springs, so I played with a 4 node spring for a minute. Then I built a skeleton.

4 pointed springy pendulum.gif

For the skeleton, click on the frame, and move your mouse around. My goal is to attach points on the skeleton to points tracked in Kinect. That way about half of the body parts can be strong attached, while the rest can be springy and fun. Then, I can build on this shape, and build in Easter Eggs. Such as attraction, repulsion, or even some Box 2D collisions that are also dependent on your movement, but this time, specific movement. 

Final project proposal

So I have a few different concepts simmering right now - 

#1 - Field of bodies (fish) searching for food - with a predator (fisherman) hunting them

#2 - Evolution of midterm and last semester work, using kinect to create attractive bodies for particles

Simulation Assignment

In many ways this is the culmination of what happens when you hit 15 hours on the same problems and have no true solution, yet something fun still happens along the way so you pivot towards that end goal instead of pushing towards whatever end was the previous.

Even still I kept coding and coding and kept trying to accomplish what I set out to do - namely have a bunch of live-video generated bodies attract smaller randomly generated bodies. Somewhere along the way I did something horribly horribly wrong, but still ended up with these relatively beautiful results. So not so bad! 

sheet like thing.gif

I did start by trying to have particles flow around an image, but the particles weren't flowing in a manner I liked very much. So I pivoted. Can you guess who it is?

EDIT:  IT WORKS! 

video particles.gif

Attractors & Springs

Now with trigonometry and vectors a little more understood, I was able to play a little more this week, using attractors and springs as simple drawing tools. They prove quite fun! I can see these being great interactive or live performance pieces. I was also able to make fireworks! As you can see below, it took some trial and error. At the moment my code is down and I can't get a python server to serve my pages properly, so these photos will have to suffice.

Playing with vectors

This week I experimented with vectors, hoping to get the swirly pattern I envisioned last week. But mostly ended up creating more beautiful screen-saver like visuals. That's ok. Shoot for the stars and land at the moon, or is it the other way around? I don't remember. 

Moving Lines / other sketches were edited before they were copied in order to share

Random Walkers

nature-of-code-perlin-noise-2.gif

For this assignmnet we were tasked with affecting the random walk of a point. I initially made a draft that created a new random walker every time the mouse was clicked, as well as changing the colors of all the walkers (I wanted to keep the colors static for each walker so they were like unique people, first walker is red, next walker added is blue, next walker is teal... and so on... I didn't quite get there as of this writing). That's the image above. Play with it here!

Next I implemented a probabilistic levy-walk using vectors that psuedo-followed the mouse around the screen. The colors also changed as my mouse moved. That's the image below. Play with it here!

I next want to create a swirly arcing point, like a hovering carrion bird, that avoids its friend if another is added but we'll see how far I can get with that!

Looks like I can get close, however, as I followed the Perlin noise tutorials and came up with one where the colors change as a result of moving the mouse around the screen. Play with it here!