[ec2m] Physics engines

alastair at channon.net alastair at channon.net
Sat Sep 22 22:28:40 PDT 2001


About a month ago I glanced around to see what could be a suitable Physics base for long-term (very many evaluations) evolutionary experiments, and produced the following table of guesswork (which should be viewed using a fixed-width font): 

Real-   Dyn-  Jointed  Body-Body  Simul'n 
Time@   amics -Body    Collision  Method 
*10^2     y      n         y                oxforddynamics.co.uk (seems v. fast - ?) 
*10^2     y      n         y                Kano's Rigidbody (source not available) (seems v.fast) 
*10^1.5   y      y         y      Lagrange  Open Dynamics Engine from Russell Smith at q12.org (freeware, open
source) (seems fastish) 
*10^1.5   y      y         y      Lagrange  Vortex from Critical Mass Labs (not free) (seems fast) 
*10^0     y      y         ?      F'stone   DynaMechs (seems a little slow & unstable, although Russell Smith says
v.fast - just rendering slow??) 
*10^0     y      y         n      F'stone   Multibody (seems fastish but examples are v. limited and may not show
v.realistic motion) 
*10^0     y      y         ?         ?      Darwin2K (seems slowish) 
   -      y      ?         n         ?      ChrisHecker/gdphys3d 
   ?      y      ?         y      Penalty   Aero (Russell Smith says "Low accuracy and stability", but I've not compiled it yet.) 

@RealTime column = my v. approx. ***guess*** at how fast a single simple creature's dynamics could be simulated on
a 1GHz PC with rendering off, to "nearest 10^0.5". 

I'm new to the area of Physics simulation, so please take this table with a pinch of salt.  However, perhaps it can be used as a starting point for discussion.  Also, I'm not that familiar with Havok but had decided, based on demos and Tim & Colm's previous results, that I preferred Vortex for speed (my main criteria) and other reasons.  However, I know that Havok is changing so I'm interested in being told that I'm wrong.  I'm also interested in being told if any of my "real-time" guesses are way off, especially wrt. DynaMechs: I'm confused as to why Russell Smith says it's very fast but when I run it it seems slow. 

So, unless any of the above real-time guesses change significantly, that leaves us with the top four as possible candidates.  Kano's work gets ruled out because source code is not available.  ODE and oxforddynamics (with Featherstone added) are the obvious choices for open-source development work, and Vortex is suitable for immediate use but not having Featherstone is a drawback for us.   

Agreements/disagreements? 

Best wishes, 
Alastair. 

-- 
Alastair Channon
Senior Lecturer in Computer and Software Engineering
Department of Electrical and Electronic Engineering
Anglesea Road, University of Portsmouth, PO1 3DJ. UK
http://www.channon.net/alastair 

"Taylor, Tim" wrote: 

  Hi, 

  Okay Colm, point taken! We certainly haven't ruled out 
  the possibility of developing an existing open source 
  product. The main criteria are that it should be 
  efficient and stable (hence the suggestion of using 
  Featherstone over more general approaches), but also 
  be able to simulate multiple articulated bodies 
  (preferably LOTS of them!) concurrently (with collision 
  detection) - which many existing engines (e.g. 
  DynaMechs) cannot cope with. 

  The idea is also to develop a product which ALife 
  researchers would find very easy to use and practical. 
  By "with evolutionary algorithms in mind" I meant that 
  we would also develop an API/communication protocols 
  to allow simulations to be initialised and controlled 
  over a network, so that it would be very easy to write 
  a distributed GA which would farm out simulations to 
  multiple computers and collect the results. This would 
  likely be built on top of an exisiting parallel 
  computing protocol such as MPI or PVM. 

  Would this be a complete waste of time? 

  Tim
	     






More information about the EMBody mailing list