Prerequisites for writing own physics engine

Please don't post Bullet support questions here, use the above forums instead.
lilo
Posts: 16
Joined: Tue Nov 17, 2009 11:30 am

Prerequisites for writing own physics engine

Post by lilo »

Hi!

I am currently taking a master in computer science. I want to write a physics engine as a thesis work. I will soon do my thesis work but before that I have choices of elective courses.

My question is: Do I need a course in Partial Differential Equations to be able to understand the math behind writing a physics engine or is it enough with knowledge on Ordinary Differential Equations? The engine do not need to be complex, but have the most basic stuff. So basically a rigid body physics engine. I mean the engine should not be to nontrivial. It should be using efficient algorithms that is used in modern physics engines.

I am also currently taking a course in optimizations. I question if it is really needed for implementation of a physics engine, although a LCP is related to linear programming (optimization). I feel that this course is very hard and thinking of dropping it and focus on reading more about physics engines.

Please help!
fishboy82
Posts: 91
Joined: Wed Jun 10, 2009 4:01 am

Re: Prerequisites for writing own physics engine

Post by fishboy82 »

It seems some popular algo in todsy's physics engine is mature and be public today .I don't think you need special Mathematic knowledge for that unless you want to develop you own method ,or you want to deduce your own new formulation. If not all the formulation and algo can be found in the internet , you just code them to your own project is sufficient enough.
lilo
Posts: 16
Joined: Tue Nov 17, 2009 11:30 am

Re: Prerequisites for writing own physics engine

Post by lilo »

Hmm ok thx for answering. I think my questions are still not answered. Because I have the choice to pick courses I want to pick the ones that can make me understand the math behind a physics engine. Of course one can implement a algorithm given a good pseudocode but understanding it will be harder.

So my problem is do I need the 2 mentioned math courses to understand the math behind a physics engine or am i perfectly fine with the math I already have (calculus, linear algebra) to write a decent physcis engine.

No one who knows?
fishboy82
Posts: 91
Joined: Wed Jun 10, 2009 4:01 am

Re: Prerequisites for writing own physics engine

Post by fishboy82 »

Hi:
I think calculus, linear algebra is enough, some knowledge in Numerical Analysis is a plus,but not necessary, I am not very excellent in math, but I think I can understand the basic theory behind physics.
lilo
Posts: 16
Joined: Tue Nov 17, 2009 11:30 am

Re: Prerequisites for writing own physics engine

Post by lilo »

Hmm. yeah i dropped the optimization course. Hopefully it is not so needed. I feel not so motivated to learn it because it is so hard (hehe shame on me).
liangma
Posts: 4
Joined: Wed Feb 18, 2009 6:33 pm

Re: Prerequisites for writing own physics engine

Post by liangma »

Numerical Analysis, Classical Mechanics, ODE, PDE is plus, computional geometry
aokman
Posts: 30
Joined: Thu Oct 01, 2009 2:17 pm

Re: Prerequisites for writing own physics engine

Post by aokman »

Systematically studying is not necessary. Learning on demand is just OK.
Save your time, save your life. :D
Johan Gidlund
Posts: 26
Joined: Mon Jun 01, 2009 2:21 pm
Location: Sweden

Re: Prerequisites for writing own physics engine

Post by Johan Gidlund »

Simulating Rigid body movement really isn't that hard and do not, in my opinion, require anything more than fundamental knowledge of ODE:s.
Take a course in Classic Mechanics and Numerical Integration Methods and you should get a better idea of what knowledge you actually need.

Good knowledge of Geometry and some course in Computation Geometry will help your understanding.
And linear algebra of course. You should know all the properties of dot and cross products in 3d in your sleep if you are to be able to start drawing your own conclusions about things.

Also since you are simulating on the computer it's good to read up (or take a course) in numerical robustness or float precision issues will give you nightmares when you try to get a stable simulation.

It all comes down to the goal and scope of your master thesis.
You can, as someone mentioned earlier, write a physics engine without much mathematical knowledge but if you want to understand and be able to explain (and possibly improve) the algorithms that are used you will need quite a bit of mathematical knowledge.

Read some papers on GJK and constraint solving. Gino van den Bergen and Christer Ericsson have written some good ones.
If you understand that math you are know everything you need for sure to get started.
You could also check out the book "Essential Mathematics for Games and Interactive Applications" which gives a good overview of the math you need.
dneckels
Posts: 39
Joined: Mon Oct 12, 2009 6:23 pm

Re: Prerequisites for writing own physics engine

Post by dneckels »

Nothing beats letting the rubber hit the pavement (by which I mean the fingers hitting the keyboard). I finally started coding an engine a few months back and have learned a ton since then. Its just all about knowing enough programming and math to be able to let 'er rip!
Might as well take as many of the classes as possible while you can. May seem like a lot now, but wait till you spend 8 hours a day at some programming job wishing you were doing more of the math and optimization stuff because sql, design documents and UI have become so monotonous. :D