Can I Create My Own Physics Engine for Object Simulation?

Click For Summary
The discussion centers on the aspiration to create a custom physics engine that allows users to design and simulate objects in a visual environment, inspired by existing simulators like Algodoo and Powder Toy. The goal is to incorporate both rigid body dynamics and fluid or powder elements. The individual has a background in C, C++, and basic Python but lacks experience with graphic libraries, expressing a willingness to learn new programming languages as needed. They have begun studying OpenGL, viewing it as a valuable skill for future projects, and are also referencing educational materials from a Carnegie Mellon course on physics-based modeling. The project is part of a college club initiative, and the individual is seeking guidance and suggestions to effectively start and develop their physics engine.
cng99
Messages
44
Reaction score
0
Hello,

I want to create my own physics engine.

Basically, I want to create a visual environment where a user can create any object that he desires and run a simulation of that object like it were in a real world. Basic physics engines are used popularly in games like Angry Birds. My inspiration for this Algodoo.:

http://www.algodoo.com/

Algodoo is a free physics simulator. A user can create any object and can make it interact with other objects. I further wish to add some fluid or powder elements to it too, apart from rigid body dynamics like in this physics simulator called Powder Toy:

http://powdertoy.co.uk/

Powder toy doesn't have rigid bodies but it can simulate fluids, gases, powders, solids, glass shattering and even things like semi-conductors, explosives, radioactivity and even black holes.

I know that it can start to be too much to deal with. It will be okay if I am able to at least create some elements from both programs, or at least some elements only from Algadoo.

I don't have any experience with graphic libraries so far. I can code in C, C++ and basic Python. I wouldn't hesitate to learn new languages if they are required for the accomplishment of this project and would work sincerely and with utmost dedication for this. There's a lot I can get to learn out of the project.

I don't really know where to begin. I have picked up some books for learning OpenGL. Python has a graphic library called Pygame which is ridiculously easy to use, but I don't think learning that will teach me as much as OpenGL will. OpenGL will open me to another dimension of programming, and I could later use my newly attained knowledge for more projects. I also started reading notes of the famous CMU course:

http://www.cs.cmu.edu/~baraff/pbm/pbm.html

The project is mostly independant. I'm working this as part of a club at my college.

I'm a first-year mathematics undergraduate.

Any help, suggestions and comments would be returned with blessings and appreciation.
 
Technology news on Phys.org
Here is a step by step guide to a very simple physics engine, but it may give you a starting point.
http://www.wildbunny.co.uk/blog/2011/04/06/physics-engines-for-dummies/
 
Thank you.
 
Learn If you want to write code for Python Machine learning, AI Statistics/data analysis Scientific research Web application servers Some microcontrollers JavaScript/Node JS/TypeScript Web sites Web application servers C# Games (Unity) Consumer applications (Windows) Business applications C++ Games (Unreal Engine) Operating systems, device drivers Microcontrollers/embedded systems Consumer applications (Linux) Some more tips: Do not learn C++ (or any other dialect of C) as a...

Similar threads

  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 3 ·
Replies
3
Views
2K
Replies
10
Views
5K
  • · Replies 29 ·
Replies
29
Views
8K
Replies
17
Views
2K
Replies
6
Views
2K
  • · Replies 6 ·
Replies
6
Views
5K
Replies
13
Views
3K
  • · Replies 3 ·
Replies
3
Views
3K
Replies
4
Views
5K