Hey! (Didn't see the reply until now.) It's all JavaScript. The biggest problem is that I can't share arbitrary memory between threads so I have this convoluted solution that would be completely unnecessary in other languages. The simulation wouldn't be possible without multithreading so it's kind of frustrating but still fun to work on!