Learning about gravitational motion is an integral part of any introductory physics course, but it can be really hard! The different kinds of motion that can happen can be unintuitive and difficult to understand. There exist programs that simulate this kind of motion, but often they are not as realistic as they could be.
As a user of Blender, a free, open source 3D modeling an animation tool, which has undoubtedly created many of the animations and videos students have seen while learning about gravity, I thought I could make a tool that would make it easy for animators to create more realistic gravity animations, while also keeping it accessible for nonusers to use and experiment with. Although this not an entirely realistic simulation of gravity (such simulations can take weeks to run on small supercomputers), it is much better than most free simulations available on the internet.
What it does
Gravimation creates realistic planetary body simulations without needing knowledge about how gravity works. Each body exerts its own gravitational field that affects the motion of other bodies, unlike many simulations that often use simplifications that fix the position of more massive objects. Users also have complete control over the mass, location, and initial velocity of each body, and are able to create many different kinds of motion from just those initial conditions.
How I built it
The project was built entirely in Blender using its internal Python IDE.
Challenges I ran into
Although a physics engine does exist in Blender, it is not well suited at all to creating the kind of realistic motion I was looking for. I had to build the simulation essentially from the ground up. I also ran into difficulties with packaging the physics simulation I made into a more user friendly format, and unfortunately this was a feature I did not have time to complete.
Accomplishments that I'm proud of
I am very happy that I was able at all to create motion even resembling something akin to planetary motion!
What I learned
What's next for Gravimation
Creating a more user friendly interface for the simulation.