Generation and Simulation

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 with limited resources, but if you are interested in diving deeper into the subject, feel free to contact me using one of the methods listed on the contact page!

What is this all?

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?

Writeup

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.

Code

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!

Generating

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.

Database

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.

Manager

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.

Simulator

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

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

Monitoring is done by combining the power of Prometheus and Grafana using the other containers as targets to pull metrics from.

Viewer

Viewing the galaxies that were generated in the form of scalable vector graphics