Generating star clusters and simulating the forces acting in them seemed like a good way to learn a lot of new programming concepts. You can find many of the results on this page and read the blogpost I update regularly by clicking on the button below.
Read the Blogpost!This is (currently) a private project, but If you are interested in learning more about it, feel free to contact me using one of the methods listed on the contact page!
How did this all begin? How are the star clusters simulated? How is the simulation so fast? Where can I learn more about this? Who are Julio Navarro, Carlos Frenk, Simon White, Josh Barnes and Piet Hut?
I wrote a writeup for people who want to implement this or just want to dive deeper into the rabbit hole. It contains the process of generating the star clusters and how the simulation efficiency can be increased alot.
The complete project is currently split up into multiple docker containers representing a micro-service each. It is currently stored in git and is always happy if new post-request are made!
The Generator container generates stars using NFW containers. This makes it incredibly fast, because it is not bound to a machine, but can operate on a giant cluster.
The current "Database" is a go array containing the galaxy stored in the form of a tree. This is not optimal, but it works and I'm working on a more scalable solution.
The manager manages distributing stars to the simulator containers, it also collects the metrics from the Simulator containers and functions as a target for prometheus.
The simulator container get's stars from the manager and calculates the forces acting on it. It then inserts the new star into the database.
Traefik ist used as a reverse proxy for some services such as the generator container. It also allows a lot of other services to work.
Monitoring is done by combining the power of Prometheus and Grafana using the other containers as targets to pull metrics from.