What did I just watch?

When two black holes (BHs) interact, they lose energy through gravitational waves and spiral towards each other. They eventually merge to give rise to a single black hole that is characterized only by its mass, spin, and velocity (or "kick").

List of visualizations


The merger of binary BHs is a very complicated process that requires numerical simulations to accurately predict the outcome. These simulations are very expensive, taking about a month on a supercomputer to run. In recent years, several surrogate models for these simulations have been developed. These models are trained against a large number of numerical simulations, using some fancy interpolation methods. In the end, the surrogate can reproduce the result of the simulation as accurately as the simulation itself, but in a fraction of a second, and on your laptop, rather than a month on a supercomputer!

In our new package, binaryBHexp, we use these surrogate models to visualize the evolution of binary black hole systems. You can now generate visualizations at any point in the parameter space, in a few seconds, without needing to do a full numerical simulation! These visualizations are described in detail in our paper [arXiv:1811.06552].

On this page you'll find a number of example explorations that highlight what you can learn about black hole mergers with binaryBHexp. For quick access, use the table of contents above. Let's go!


Enough background, let's see some movies!

Precessing binary black hole

Here we see a precessing binary black hole merger. The black holes are shown as oblate spheres, with arrows indicating their spins. The orbital angular momentum is indicated by the pink arrow at the origin. The colors in the bottom-plane shows the value of the plus polarization of the GW as seen by an observer at that location; red means positive and blue means negative, notice the quadrupolar pattern of the radiation. In the subplot at the bottom, we show the plus and cross polarizations as seen from the camera viewing angle. Our time steps are chosen such that there are 30 frames per orbit during the inspiral-merger-ringdown; this ensures that the movie slows down near the merger, and it's easier to observe the dynamics. After the ringdown, we speed up the movie to exaggerate the kick.

Here the BH spins are misaligned w.r.t the angular momentum direction. Therefore, the spins, the angular momentum, and the orbital plane all precess during the inspiral. It is interesting to see how the remnant spin direction is very close to the direction of the orbital angular momentum near merger. This animation corresponds to Fig. 1 of [arXiv:1811.06552].

Precessing binary BH with varying camera angle

Here we show the same animation, but with a varying camera angle. In the plot at the bottom we see how the waveform changes based on the viewing angle; this is because the different (spin-weighted spherical harmonic) modes combine with different weights based on the observer viewing angle. Notice how the GW signal is strongest along the direction of orbital angular momentum and weakest in perpendicular directions. This animation corresponds to Fig. 4 of [arXiv:1811.06552].

Aligned-spin binary black hole

Here the spins are aligned w.r.t the angular momentum direction, and there is no precession. Due to symmetries, the remnant spin is also aligned, while the remnant velocity is restricted to the orbital plane.

Orbital hangup effect

Here we demonstrate the "orbital hangup effect". On the left, both black hole spins are aligned with the orbital angular momentum. In the middle, the black holes are nonspinning. On the right, both spins are anti-aligned with the orbital angular momentum. All three cases start at the same orbital frequency, however, due to the orbital hangup-up effect, the aligned (anti-aligned) case takes a longer (shorter) time to merge than the nonspinning case. As a result the aligned system also loses more energy to gravitational waves, and the final mass is smaller. On the other hand, because the anti-aligned spins reduce the total orbital angular momentum of the system, the final spin is lesser in the right case. The nonspinning case is intermediate between these two.

In these cases, due to the symmetries present, the final kick is zero. Unlike the other animations in this page, here we use uniform time steps between movie frames. Even though the start frequency is the same, the length of the waveform is different in each case, and therefore the BHs merge at different times. This animation corresponds to Fig. 5 of [arXiv:1811.06552].


In this case, notice how the spins line up in a single plane close to the merger. This is believed to be necessary to cause super-kicks, or very high remnant velocities. Notice how fast the final black hole flies away compared to the above cases; that is about c/100, where c is the speed of light! This is larger than the escape velocity of even the most massive galaxies in the Universe, and such a binary would get kicked out of its host galaxy. This animation corresponds to Fig. 6 of [arXiv:1811.06552].


The kick velocity is very sensitive to the orientation of the component spins near merger. Here we show several cases that have equal-mass BHs, with anti-parallel spins lying in the orbital plane at t=−100M. Each evolution is initialized with a different orbital phase or, equivalently, performing an overall rotation of the spins about the z-axis. The remnant kick changes dramatically with the phase of the spins at merger; notice the sinusoidal nature of the final kick magnitude. This animation corresponds to Fig. 7 of [arXiv:1811.06552].

Downloading these movies

You can download these movies by right-clicking on them. On Chrome choose "Save Video As..", and similar for other browsers. You can also get them directly from our Github repo as follows. Don't forget to credit us.

git clone git@github.com:vijayvarma392/binaryBHexp.git
cd binaryBHexp/docs/movies/

Generating your own visualizations

Since this package does not rely directly on numerical simulations, you can generate new visualizations yourself, on your laptop! These instructions have been tested for MacOS and Linux.

Short version

Our package, binaryBHexp, takes one command to install and one command to run.


This package is available on PyPI, and can be installed using pip. This adds a new shell command called binaryBHexp.

pip install binaryBHexp


binaryBHexp --q 2 --chiA 0.2 0.7 -0.1 --chiB 0.2 0.6 0.1

By clicking and dragging on the movie as it plays, you can change the viewing angle, and see the waveform change. For more options, do:

binaryBHexp -h

Long version


This package is available on PyPI, and can be installed using pip.

pip install binaryBHexp

You can also get the package from our Github repo as follows.

git clone git@github.com:vijayvarma392/binaryBHexp.git
cd binaryBHexp


This package relies on the surrogate models, NRSur7dq2 and surfinBH . These are automatically installed with the pip installation. For the Github version, these can be installed using pip.

pip install NRSur7dq2
pip install surfinBH


If you installed the binaryBHexp package with pip, it should have added a new shell command called binaryBHexp, which you can use as shown below. Instead, if you are using the Github version, the script can be found in the repository, and you need to replace binaryBHexp with ./binaryBHexp in the following.

binaryBHexp --q 2 --chiA 0.2 0.7 -0.1 --chiB 0.2 0.6 0.1

By clicking and dragging on the movie as it plays, you can change the viewing angle, and see the waveform change. For more options, do:

binaryBHexp -h


You can generate this super-kick movie with the following command:

binaryBHexp --q 1.34 --chiA 0.62 -0.27 0.34 --chiB -0.62 0.27 0.34

You can generate this precessing movie with the following command:

binaryBHexp --q 2 --chiA 0.3 0.7 -0.1 --chiB 0.3 0.6 0.1 --omega_ref 1.8e-2

You can generate this precessing movie with a varying camera angle with the following command:

binaryBHexp --q 2 --chiA 0.3 0.7 -0.1 --chiB 0.3 0.6 0.1 --omega_ref 1.8e-2 --auto_rotate_camera

You can save the video to file with the --save_file option. Use this option if the live rendering is slow. You can generate this aligned-spin movie with the following command:

binaryBHexp --q 2 --chiA 0 0 -0.6 --chiB 0 0 0.8 --omega_ref 1.8e-2  --save_file aligned.mp4


This package was developed mainly by me, Vijay Varma, with contributions from Leo Stein and Davide Gerosa.

Please credit us, and cite our paper [arXiv:1811.06552] and this website, if you use these visualizations in your work, presentations or outreach. Please report bugs on our Github repository.

This research would not have been possible without generous support from the NSF, NASA, and the Sherman Fairchild Foundation.