Impromptu Graphics Engine

Share with us how are you using the powerrrr of the force

Moderator: Alain

Impromptu Graphics Engine

Postby mlazo » Wed Mar 12, 2008 10:37 am

Hello everybody!!!
We're from Argentina and this is our first post. We want to show you the project in that we are working.

It is add physicals capabilities to the (academic) Graphic engine that we (Juan Pablo & Cristian) developed in the past, called "Impromptu" (see Screenshots).
We want to provide support for many physics engine and allow to the user select one, according to his preferences. The challenge is support this, with only a few changes in the application's code.

In this moment, we (Marcos, Marcos & Cristian) provide an abstraction layer to support few physics engines.

With Impromptu, a (programmer) user with few knowledge in physics libraries can develop a simple application 3D with simulation of physics. Aditionally, the graphics engine provides a Resources Manager, a Rendering System, etc. Impromptu is programmed in Delphi, and have a high abstraction level language of Graphics APIs (Direct3D, OpenGL).

In this stage, the programmer can develop tests that include some physics engines and get some information about them (timing solver, parameters of performance, etc).
We develop some basics tests, for evaluate performance, error, etc in the engines evaluated.

PAL + Impromptu Example of use: (Delphi Code)

Code: Select all
  ...   
  TPhysicsFactory.getInstance().selectEngine('newton'); //select engine

  world := TPhysicsFactory.getInstance().createPhysicsWorld();  //get a world to add objects and simulate
  world.init(initVector(-100,0,-100),initVector(100,100,100),initVector(0,-9.8,0)); //size (min point , max point) gravitity
 
  Sphere:=(TLoadersManager.getInstance().Load('models\ball.3ds')); // create obj3D
  pObj := TPhysicsFactory.getInstance().createSphere();              // create physics sphere
  pObj.setWorldOwner(world);                                 // assign obj to world
  pObj.init(radius,position,mass);                            // initialize obj
 
  Sphere.setPhysicsObject(po);      // assign physics obj to obj3D
  renderer.add(Sphere,[]);     // add obj3D to Renderer!
  ...



Impromptu features and "Historic" applications Screenshots:

2004 - Fishing Simulator
Image

2004 - Graphics Engine Impromptu
Image

2004 - Visual Fishing 1
Image

2004 - Visual Fishing 2
Image

2004 - Visual Fishing 3
Image

2005 - Virtual Scenes Editor
Image

2006 - Graphics Engine Impromptu 1
Image

2006 - Graphics Engine Impromptu 2
Image

2006 - Graphics Engine Impromptu 3
Image

]2006 - Graphics Engine Impromptu 4
Image

2006 - Graphics Engine Impromptu 5
Image

Videos:
Some videos of basic applications developed with Impromptu + physics abstraction layer:

Video 1: 8 boxes falling on a plane (using Newton)
LINK

video 3: a lot of balls (1500) falling on a plane (using Newton)
LINK


video 6: 400 barrels rolling down on the hill (using Newton)
LINK


That's all ! Coments and suggestions are welcome!
Thanks for your time!
Good luck! :wink:

Marcos, Marcos, Cristian & Juan Pablo
User avatar
mlazo
 
Posts: 10
Joined: Wed Mar 12, 2008 10:27 am

Postby Julio Jerez » Wed Mar 12, 2008 1:49 pm

I am glad you are considering offering newton as one of the physics solution.
I would recomend you use realistic setting when using Newton, if you do what people like
Kenneth Holmlund, Claude Lacoursière's, from Virtual Reality lab and his students and Adrian Boeing did.
That will get you simulation simulation with Newton like this.
http://www.youtube.com/watch?v=IhOKGBd-7iw
witch appear to be the standrat for all establishment physics engines so they try to apply the same criteria to newton the newton engine and get bad results.

The problem is that Newton is not coded with the laters developments in the laws for physic, like the Laws of the iterative impulse, the laws of multiplying the velocity by 0.99 to get stability, the law of the shock propagation wave. the laws of the ERP and CMF, the law of the open source, The laws of been popular because is work on PS3. And so on.

Newton is a lot simpler than those engines, it only uses three laws, Inertia, Action reaction, and force equal mass time acceleration. So the parameter that work well on some engine make newton work bad, newton need realistic parameter to work well, Newton need stuff like relastic inertial tensors, realistic coefficient of friction to get conviceing result.
When you do that you can get simulation like this:
http://fr.youtube.com/watch?v=R_hO-oB9D ... re=related
http://fr.youtube.com/watch?v=64XysmZEvHQ
http://uk.youtube.com/watch?v=I1P_B65XW4I
http://www.youtube.com/watch?v=LTzY5kS-DVI
http://laral.istc.cnr.it/esm/arm-grasping/
http://www.youtube.com/watch?v=5J3Fl5Uvehs

so as you can see, it is like they say when ot come to Netwon one size fix all is not nessesaroly a good thing, and that is that.
So you may want to exclude newton from your engine if you requires the same setting to work the same across engines.

Note:
I will edit your other and remove all reference to other engines, this is not a comparison forum it is a forum for discussing how to do thong suing Newton, the way Newton works.
Julio Jerez
Moderator
Moderator
 
Posts: 10980
Joined: Sun Sep 14, 2003 2:18 pm
Location: Los Angeles

Postby cristiangb » Wed Mar 12, 2008 3:26 pm

Julio, thanks for your reply!


I am glad you are considering offering newton as one of the physics solution.
I would recomend you use realistic setting when using Newton, if you do what people like
Kenneth Holmlund, Claude Lacoursière's, from Virtual Reality lab and his students and Adrian Boeing did.
That will get you simulation simulation with Newton like this.
http://www.youtube.com/watch?v=IhOKGBd-7iw
witch appear to be the standrat for all establishment physics engines so they try to apply the same criteria to newton the newton engine and get bad results.


Yes, we know the works that you says... By the way, the principal difference in this case, is that the PAL that we're developing is used in academic project but is applied in "commercial style" projects. Let me explain you (sorry for my english... )

In similar works of this area, some tests (that all of us, program and re-program again and again...) have only "theoric" fundamentals or only "comparative" objetives and we all forgets that the (main) objective is use this in an application...
An application with custom logic, with custom graphics, and of course: with a physics engine with custom values for works well and obtain good results.
So, we provide a PAL that encapsulates the basic (and common) and small group of standard primitives in a few engines, but no finish here...
The programmer can config the values for each engine, and have a small group of "tunning" applications that provide some help and feedback.

The main idea is provide a base platform (for the moment, for our purposes) in wich we could (easy) programming some base applications (independent of the physics engine), and then programming, config and implement the "detailed stuff" (or particular values) for the physics engine that we choose.
In this manner, we have a (pure &) common base for all physics engine and (re)program only the particular values for each of them.


The problem is that Newton is not coded with the laters developments in the laws for physic, like the Laws of the iterative impulse, the laws of multiplying the velocity by 0.99 to get stability, the law of the shock propagation wave. the laws of the ERP and CMF, the law of the open source, The laws of been popular because is work on PS3. And so on.


For us, Newton have a (really) good thing: Is good to see it and have all of the (real) physics background that you says. No really matters that "is not coded with the laters developments in the laws for physic", seriously.

Newton is a lot simpler than those engines, it only uses three laws, Inertia, Action reaction, and force equal mass time acceleration.


Yes, and for this is one of the best physics engines in programmers comunity!


So the parameter that work well on some engine make newton work bad, newton need realistic parameter to work well, Newton need stuff like relastic inertial tensors, realistic coefficient of friction to get conviceing result.
When you do that you can get simulation like this:
http://fr.youtube.com/watch?v=R_hO-oB9D ... re=related
http://fr.youtube.com/watch?v=64XysmZEvHQ
http://uk.youtube.com/watch?v=I1P_B65XW4I
http://www.youtube.com/watch?v=LTzY5kS-DVI
http://laral.istc.cnr.it/esm/arm-grasping/
http://www.youtube.com/watch?v=5J3Fl5Uvehs


Well, i see... we know this. In some manner, in the research institute that we works, some phD guy develops a generic ODE solver, and fights with some of this stuff.

Note:
I will edit your other and remove all reference to other engines, this is not a comparison forum it is a forum for discussing how to do thong suing Newton, the way Newton works.


Sorry for that. If not corresponds other physics engines, feel free for edit our posts.
We hopely that this post helps you to understand our development.

Regards,

Cristian
cristiangb
 
Posts: 1
Joined: Wed Mar 12, 2008 9:08 am

Postby Julio Jerez » Thu Mar 13, 2008 12:47 pm

I did it.
if you wnat to put soem mor epuch to teh phsyics simulation using Newton send me a PM for the Beta SDK, you may like the result.
Julio Jerez
Moderator
Moderator
 
Posts: 10980
Joined: Sun Sep 14, 2003 2:18 pm
Location: Los Angeles

Postby mlazo » Wed Mar 19, 2008 3:38 pm

Thanks Julio for yours advices, we'll keep it mind!
Now we are working to include convexHulls, ragdolls and vehicles funcionality under physics layer.
we promise shows demos !!! :wink:
See you !
User avatar
mlazo
 
Posts: 10
Joined: Wed Mar 12, 2008 10:27 am

Postby Julio Jerez » Wed Mar 19, 2008 3:44 pm

send me a PM for beta, tat wahy you oudn have to work twice.
I think you will liek teh results.
Julio Jerez
Moderator
Moderator
 
Posts: 10980
Joined: Sun Sep 14, 2003 2:18 pm
Location: Los Angeles


Return to User Gallery

Who is online

Users browsing this forum: No registered users and 2 guests