ElastoLab physics code released

David Buck david at simberon.com
Tue Sep 9 15:34:42 UTC 2003


For version 3.0 of ElastoLab, I converted all the physics code from C++ 
to VisualWorks Smalltalk.  The only C libraries left are to interface to 
DirectX 8 for playing sound and to interface to HTML help (neither apply 
to the Squeak physics libraries I provided).

The code I posted is complete pure Squeak Smalltalk which should run 
anywhere Squeak runs.  No plugins are needed.  All code is Smalltalk 
andeverything is visible, nothing hidden.  It includes an adaptive 4th 
order Runge Kutta differential equation solver to do very stable physics 
calculations.  The code for particles, springs, elastics, air 
resistance, and gravity are all quite straightforward and have a fairly 
nice simple Smalltalk interface.  If anyone wants to convert this code 
to 3D, I think it would be quite trivial.

The Advanced stuff is provided for people who want to push the barriers 
(so to speak).  The code in this section are 2D specific. The algorithms 
include dynamic constraints, and this algorithm for computing contact 
forces for rigid bodies with static and dynamic friction:

   http://www.pixar.com/companyinfo/research/deb/sig94.pdf

It seems to work, but it's heavy slogging to go through the code.  I've 
included it for completeness.  It's harder to interface to, but still 
not too bad.  I fear that the performance may not be great on this code, 
though.  It's ok with few particles and barriers in VisualWorks.  I 
haven't done any testing on that part in Squeak.  Proceed with caution.

David Buck
Simberon Inc.
www.simberon.com

> Hi dvid
>
> this is a great news (at least for my wife who is a physic teacher).
> how are you dealing with the C or C++ parts? did you port them into
> Squeak? do we need a plugin? Is it running on mac/pc?
>
> Stef





More information about the Squeak-dev mailing list