# Nature of Code midterm

February 22, 2006

Screwed up as always :) Well I have some stuff at my hand but I think I generally dive in the code so much that I forget the build something on top of it.

This was my proposal for the records.

Right now I have this: The canvas consists of vector fields 120x120. The particles move according to that. The mouseDrag puts a little spice to it. Actually whole vector field thing started with trying to discover how magnetic field forces work. In the end I couldn’t quite simulate the magnetic field force but this is what I come up with.

This is my second example from last week: I just added a sin/cos lookup table and producing them according to that table as their location. It could be improved to make a fireball maybe…

So this is my third example, which I totally screwed. It was supposed to be this: Last week after I got bored with Magnetic Force concept, I thought it would be great to mix particle systems with waves which means springs in here. Then I started searching on the subject and came up with really good explanations:

Pixar ’ Physically Based Modelling ’ Particle System Dynamics ’ pdf file.

Particle System Example ’ Paul Bourke

and one smooth Traer Physics Library.

A normal type of person wouldn’t bother with underlying equations but since I am the biggest geek and also the biggest failure in math, I just took this as an opportunity to prove how I suck at math once again. I have crashed to this derivation concept. Actually it is kind of interesting, it could be used to calculate different positions of your objects in different timesteps and it could come handy at some point. So I have totally biased with it, and tried the port the C code into processing which you can see the result until yesterday Shiffman reminded me about Zachary Lieberman’s Madrid workshop website.

It turns out he applied Euler Method to his particle system and it is in processing! That’s what I have been looking for all this week, an implementation of ODEs. So Yesterday I started and re-wrote the C based code referencing the Lieberman’s way.

Of course it couldn’t work in one night… So I went ahead and hacked Lieberman’s original code to create what I would like to create. In the end it was a great work labour for me overall. I enjoyed it very much, and also I realized that even if I were curious about math side of these applications, I shouldn’t lose the whole picture.