http://weelookang.blogspot.com/2011/05/ejs-open-source-newtons-cradle-java.html
Newton Cradle Model in 2D (left) and 3D (centre) view with scientific representation (right).

Newton's Cradle Model

reference: http://en.wikipedia.org/wiki/Newton%27s_cradle
Newton's cradle, named after Sir Isaac Newton, is a device that demonstrates conservation of momentum and energy via a series of swinging spheres.

Construction in 3D
A typical Newton's cradle consists of a series of identically sized metal balls suspended in a metal frame so that they are just NOT touching each other at rest. Each ball is attached to the frame by two wires of equal length angled away from each other. This restricts the pendulums' movements to the same plane.

Mathematical Model:

the simplified equations of motion is ODE for a single mass(pendulum) are:
d (cta)/dt = omega
d(omega)/dt = -g*sin(cta)/L

when extended to n array of masses, for for(int i=0;i<n;i++){
d (cta[i])/dt = omega[i]
d(omega[i])/dt = -g*sin(cta[i])/L  // simplified add here from air drag
}
the zero condition type as "State event" with the following code

// start of code for zero condition
double min = TOLERANCE;
for(int i=0;i<n-1;i++){
 if(cta[i]>cta[i+1]+TOLERANCE){//<TOLERANCE){// collision between i and i+1;
  cid=i;
  return cta[i+1]-cta[i];
 }
}
return TOLERANCE;// no collision
//end of code for zero condition

The action is to assumes the collision are modeled by perfectly elastic collision in one dimension with angular momentum conserved
the code is as below.
// start of code for action
m1=m[cid];
m2=m[cid+1];
v1=L*omega[cid];
v2=L*omega[cid+1];
va=((m1-m2)*v1+2*m2*v2)/(m1+m2);// velocity after collision
vb=(2*m1*v1+(m2-m1)*v2)/(m1+m2);
omega[cid]=va/L;// back to omega
omega[cid+1]=vb/L;
//end of code for action

Design features:

currently, the simulation allows of exploration of n max = 7 masses with each mass m[i] that can be vary from the slider control from 1 to 5 kg.
additional variables are:
gravitational constant downward g = 9.81 m/s^2
Length of pendulums, L
k coefficicent of air resistance model by equation F = k*omega

The usabilty control:
To move the balls, move the cursor over to the mass, click and hold the left mouse and drag the mouse to lift the masses. note that all masses are selectable and movable to a new height along the each path of the pendulums swing.

Design Views:

there are 2 types views available selectable by the check-boxes 2D and 3D,
2D world view
3D world view
hint:
    may be useful to observe the transfer of linear momentum from ball to ball by pressing the step button to aid understanding of momentum transfer during collisions
    may be useful to observe the scientific representations of kinetic energies KE[i], gravitational potential energies PE[i] and total mechanical energies TE[i]
graph of scientific representations of kinetic energies KE total, gravitational potential energies PE total and total mechanical energies TE total

Exercises:

select n =2 for a simple 2 ball system for the experiment.

Pull and release one ball. Note the results and explain mathematically in terms of conservation of engergy and momentum.
m1 u1 + m1 u1 = m1 v1+ m2 v2
1/2 m1 u1^2 + 1/2 m2 u2^2 = 1/2 m1 v1^2 + 1/2 m2 v2^2
record your observations and discuss if the two equations above can account for the observations

select n = 3 , 4, 5, 6, 7 and repeat the experiment above.
Do the results meet your expectations?
hint: can you conclude that the just before and just after collisions
momentum in = momentum out
kinetic energies in = kinetic energies out.
the clue lies in the conservation of momentum and kinetic energies just before and after collisions.

 
Discuss what are the differences between this computer model and real life apparatus.
hint: the newton's cradle motion will continue in this back and fro motion until all energies are lost to damping due to air resistance, friction, sound and vibrations.

In this simulation the default is all balls have the same mass. What would occur if this was not the case?


Advanced Learner:
Please submit your remix model that model features that are not available in the existing virtual lab and share your model with the world through NTNUJAVA Virtual Physics Laboratory http://www.phy.ntnu.edu.tw/ntnujava/index.php?board=28.0. Impacting the world with your model now.

Credits:

The Newton's Cradle Model was created by Fu-Kwun Hwang, customized by Loo Kang WEE, using the Easy Java Simulations (EJS) version 4.3.3.2 authoring and modeling tool.  An applet version of this model is available on the NTNU website < http://www.phy.ntnu.edu.tw/ntnujava/index.php?topic=2195.0 >.

You can examine and modify this compiled EJS model if you run the model (double click on the model's jar file), right-click within a plot, and select "Open EJS Model" from the pop-up menu.  You must, of course, have EJS installed on your computer.  Information about EJS is available at: <http://www.um.es/fem/Ejs/> and in the OSP comPADRE collection <http://www.compadre.org/OSP/>.