[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [E-devel] E Physics Engine



On Wed, Sep 13, 2006 at 02:13:48AM -0700, Ogla Sungutay wrote:
> Hi rephorm,
> 
> I saw your E Physics work and both as an E zealot AND a physicist it's difficult not to poke my nose into this initiative.  
> 
> I've been in Flash/swf world for so long, a lot has happened techwise recently and hard to keep up with, especially under Linux. (No Flash Player 9 yet as we all know...) 
> 
> Anyways, one Flash project could be very helpful for E Physics: FLADE, the Flash Dynamics Engine completely utilizing the Verlet integration. 

Ooh. Really nice stuff. :) I'll have to look at into it for some ideas.
> 
> Let me know if I can help in any way to E Physics? :)  

Right now I just have particles, which optionally can have a rectangular
size. Collisions currently assume no friction between the colliding rect
sides, so the resultant transfer of momentum is normal to the collision
surface. However, all of that code needs some optimizing and reworking.
(I didn't properly determine which sides are colliding based on the
particles motion, instead i used shape of their overlap, which for small
speeds is correct, but for fast grazing collisions can be wrong) Also
fast moving particles can fly right past others as i only check _at_ the
timeslice (and not, e.g. a sweep of the particles flight).

Also, I haven't added any constant (e.g. earth gravity) forces, but it
should be trivial. For the snow demo, as a test, I used a massive
particle really far away. This would be much faster as a constant
downward force evenly applied to all particles :)

Other areas for improvement:

  * need a set of vector manipulation functions
      - e_phys_vector_length(v)
      - e_phys_vector_subtract(v1, v2)
      - e_phys_vector_delta(v1, v2)
  * other particle types
      - circular
      - split rect out from point?
  * polygonal surfaces
  * optimization (esp. collisions)
  * more demos! :)

Let me know if you have any other ideas.

rephorm.