Gravity

Code review for the gravity implementation
Sounds like a good idea. We could even put it in the services so that anything can just use that service to make a new shape