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.