This project attempts to show what happens when two black holes approach,
specifically what happens to their event horizons.
The gravitational effects of two massive objects either side of some mid point
should tend to cancel out, which leads to some curious outcomes:
* A pocket of regular space-time gets trapped inside the combined event horizon
* Once the singularities get close enough, they enter this pocket
What you get is the source code for three programs.
They all take arguments specifying
* the distance between the singularities
* the Schwarzschild radii of the black holes
* a resolution setting to trade speed versus accuracy
For example:
./event-horizon --d=2 --r1=0.8 --r2=1.6 --res=1e-3
The units of the values don't matter as it ends up being a ratio, but you can
leave them out altogether and you'll get 29 and 36 solar mass black holes spaced
137,620 km apart, like the ones whose gravitational waves were detected.
event-horizon-igl
Generates a 3-D mesh that you can view and manipulate.
Turn off the Fill checkbox to see just the wireframe, all the goodness is in
there!
This one took the most work as I had to write the code that generates the
mesh, but I knew more about the surface than an implicit surface function
could convey, so I could be clever and take some short-cuts so you can
sweep the distance and see the result in (almost) real time.
event-horizon
Generates a 2-D mesh that you can view with meshlab.
It only requires a c++-11 compliant compiler.
I switched between g++ and clang++ regularly during testing.
This program is good for seeing clearly what's happening to the
singularities with respect to the origin and that trapped pocket of
space-time when distances start getting really small.
pos-igl
Nothing to do with event horizons, this sample lets you put points on a
sphere. When the app receives mouse move events the points try to spread
themselves evenly - a kind of minimum energy heuristic.
Some numbers eg. 6 and 12 always result in the same shape, but others eg.
8 and 16 have multiple low energy configurations.
I wrote a blog entry about it that you can see here with some nice screen shots.
Enjoy!