## Friday, July 31, 2009

### fun with physics

Today I wrote a Mass Spring Damper system in Flash that uses the
positions of genres as determined by a self organizing map as initial
starting positions. Plus, it looks cool: Here's some of the resources I used:

Euclidean distance
CVector3 Class Reference
CVector3
Mass on a Spring
Coulomb's law in Vector form.
Coulomb's law
Electric charge and Coulomb's law
What is a Vector
Finding the magnitude or length of a vector
Euclidean Vector
Vector Magnitude
Stress majorization
Force Based Algorithm - Fantastic resource:

`set up initial node velocities to (0,0) set up initial node positions randomly // make sure no 2 nodes are in exactly the same position loop     total_kinetic_energy := 0 // running sum of total kinetic energy over all particles     for each node         net-force := (0, 0) // running sum of total force on this particular node                  for each other node             net-force := net-force + Coulomb_repulsion( this_node, other_node )         next node                  for each spring connected to this node             net-force := net-force + Hooke_attraction( this_node, spring )         next spring                  // without damping, it moves forever         this_node.velocity := (this_node.velocity + timestep * net-force) * damping         this_node.position := this_node.position + timestep * this_node.velocity         total_kinetic_energy := total_kinetic_energy + this_node.mass * (this_node.velocity)^2     next node until total_kinetic_energy is less than some small number  //the simulation has stopped moving`

Mass Spring System - Some C++ code that kinda helped, but not so much.
Mass Spring Damper Example
Harmonic oscillator
Damping