I have recently been doing a lot of programming in python for the past year or so, and consider myself to be okay with the language. I also have some experience with mathematical languages like the Wolfram language and Maple. Other than that, I am willing to learn C, C++, or Java for this project (and plan to learn them anyway soon.) I am a physics major in my senior year of undergraduate, and have had training mostly in physics. This would be a project spanning months, and mostly done in my spare time. Lately I have had a wild imagination, and have been thinking a lot about the population density of a populated solar system in the future. Let's say that the people inhabiting this solar system can live and function well in space (they live on space stations.) The population centers would likely be around planets but maybe also areas with many resources (i.e asteroid belts, moons.) Generally though, the program would allow for somebody to select these as variable initial conditions or maybe they would be dependent on the gravitational mass somehow (disregarding things like the Sun.) Other than the basic population growth laws, I was also interested in the way people would move from one population center to another. In my research I discovered the following. https://en.wikipedia.org/wiki/Demographic_gravitation After reading the article published in 1947 by John Quincy Stewart which approximates demographic movement between population centers using the following formula, I want to apply these "laws" using generalized initial conditions to create a 3D visualization (represented by dots) of population centers and vectors which represent the motion from one center to another (lets say they are low resolution, of the order of "city-stations" with populations of tens of millions and I would have a few hundred or thousands of these.) Since these laws follow a similar form to the gravitational laws I figured the calculations would be similar to gravitational calculations, which I have done in python before. So basically my question is, do you think I would be able to pull this off with just Python/vPython on the scale I want? Would I need a supercomputer to do this, or can I accomplish this with the resources of a personal computer? I'd imagine that it would come out to be similar to an n-body problem. I haven't done any n-body simulations, and have no idea about the limitations of these. Is my assumption correct?