Hi th75!
Thank you for your answer and kind words 
I’ve been thinking on what you said about synchronized and framerate() and I’m afraid that doesn’t solve my problem
. I tried removing the synchronized of the draw loop and also set different framerates just in case, and the problem persisted.
The thread I create on setup doesn’t really take part in the problem I described. The actual problem appears when both setup and the thread finish, so that loading is set to true and therefore the draw loop reaches renderScene(), which eventually calls sun.display(), rendering all AstronomicalBodies at once. The line sun.display() takes a lot of time to finish, to the point draw hangs in there for a whole 1 min (on my computer). This only happens the first time is called, after that, the app runs smoothly.
This is what I really struggle to understand, if performance as a whole was consistently bad, I would just blame it on the algorithm being too heavy for the iGPU and make it a day 
Did you execute it with your iGPU? How was the loading time on your machine?
Thank you for your help!