 I'm really happy to introduce James Rollins. He has been, we've just been talking, and I think it's so amazing. He's been working in the Gravitational Waves Community for 18 years, like all his professional life. And he's going to tell you more about his research and the project and discoveries and how Python was involved. So please very welcome James Rollins. Hello. Can anybody hear me? How's it going? Ooh, very good. All right, so yes, I'm James Rollins. I work for the LIGO project, which is a project to detect gravitational waves. Brief overview, it consists of these two big interferometers, which I'll describe in a minute. It's an NSF project in the United States, although we have many international collaborators, 60 institutions, 1,000 individuals around the world. The two observatories are separated. One is in Washington State, and the other is Louisiana. 3,000 kilometers, 10 milliseconds. All right, so a little background about what are gravitational waves. So Einstein's general theory of relativity, which is one of the most successful physics theories in history, basically, it's been 100 years. This year is the anniversary, 100-year anniversary, and it's been basically unaltered since he gave birth to it. It's really incredible. And basically the idea is that the curvature, that gravity is curvature of spacetime. So masses in space cause the spacetime to curve, and then the curved spacetime causes masses to change their trajectory. And this is the only equation in the talk, I promise. And this is the Einstein's equation. It's the curvature as described by this mathematical object called a tensor over here, and then the mass energy content. Like, what is in space is on the other side. And it's related by this very, very small factor, which indicates that space is very, very stiff. It's very hard to bend. So one of the interesting predictions of general relativity is that it predicts there should be waves of gravity. And I like this animation because it looks kind of a little bit sexy. So you can imagine that what's happening here is that through the central axis of this tube is the movement of a gravitational wave. A wave is propagating through this tube or in this direction. And what you can see, what the tube is doing is showing how the surrounding spacetime is going to move. So perpendicular to the direction of travel, the space is compressing in one dimension and expanding in the other. And then as the wave moves, it does the opposite. So it kind of does that squeezing and stretching motion. So if you look at the cross section of the tube and you put some masses at the edges, you'll see that the masses, because the space is bending, are gonna move with the space, all right? So how can we use this effect to look for the gravitational waves? So what we do is we make this device called an interferometer. We can use light to measure these distances in space. So you imagine these two, we have here is a laser, a beam splitter, and then two mirrors. And if we shoot the laser beam at the beam splitter, it splits the light. The light goes to the two mirrors and bounces off, then comes back to the beam splitter where it is recombined. And what happens is you take this very interesting property of light, which is that it can interfere with itself, and what you can do is very precisely measure the relative separation of these two end mirrors. So this is the, you can see the waves going in the two arms, they're out of phase at the output port, but then when the end mirrors move, they become in phase, and so you get the light goes up and down at the output port. It's really, it's a very simple, elegant concept. And so how do we use this? So we take this very simple concept of laser beam mirrors, and after many, many years of development, we made it much more complicated because, as I'll explain shortly, it's this very complicated optical system now, and the point of all of these extra optics, these extra folding of the light is to try to amplify the signal. So one thing I'll just point out is that instead of just having the light go down to the end and bounce off a mirror and come back, we actually have cavities in the arms which allow the light to build up. It bounces in the arms many, many times and that amplifies the effect of the end mirrors moving. And so then eventually, after many decades of research, this idea, by the way, to detect gravitational waves with these Michelson interferometers came in the 60s, and so the physicists who kind of came up with this idea started to make very small experiments that were only a meter. Well, initially they tried to detect them with bars, but I won't go into the whole history, but then they started to make small interferometers and then they kept getting bigger and bigger and bigger until we got to LIGO where the length of these arms is four kilometers long. So this from here all the way to the end here is four kilometers. We have two detectors, like I said, one is in the desert in Washington and the other is in the swamp in Louisiana. So this is what it looks like inside. So this here is inside this central building. Okay, if we kind of zoom on to the inside there. It's a big vacuum system. So the whole interferometer is enclosed in this big vacuum. These big chambers here hold the mirrors. Here's a person for scale. So it's very big inside here. So this is one of the mirrors. So you can see at the bottom here, that's the mirror. The red thing is the mirror. It's about this big. It weighs 40 kilograms. It's suspended. So it's not firmly attached to the ground because of course the ground moves a lot and we don't want the motion of the ground to confuse the instrument and make it think it's a gravitational wave. So we isolate the mirrors from the ground with these very complicated seismic isolation systems. There's actually this mirror is hung from this mass which is hung from another mass here which is hung from this table, which has active seismic isolation system. And so this is one of the core mirrors. This is our laser, which can output over 100 watts of continuous light power. That doesn't sound like much because you think of a light bulb in your house as 100 watts but the light bulb is outputting light in all directions and this laser beam is focused into a very tiny spot and if you were to get hit by it, it would not be fun for you. Here's what it looks like at the output of the interferometer. So actually where we make the detection is in this assembly here where what we call the photo detector that measures the light is inside here. And so the light goes through the whole interferometer and comes to this chamber where it bounces around on some more optics and eventually is caught in this assembly here. And here's another picture. I think this is another very sexy picture. So this is inside the end chamber where the end test mass is. And so you can see this is the test mass here. This is what we call the end mirror. And so behind this guy here down here is the four kilometer long arm. And then this whole assembly here is to take a little bit of the light that leaks through the mirror and then it bounces up in here and goes up onto another optical table up here where we measure the light. So we actually measure the light in many different places throughout the interferometer. So we're constantly getting feedback about what's going on inside the instrument. All right, so basically light is, I mean LIGO is just a transducer of the spacetime strain of the movement of spacetime to an electrical signal. That's basically what it is. It's really very similar to a microphone in a lot of ways. I mean, you know, a microphone when it gets the pressure from the air it causes the microphone to move and we turns that into an electrical signal that we can then digitize and process and listen to. Well, it's very similar with LIGO. And interestingly, the frequency range that LIGO can detect of the motion of spacetime is the audio frequency range. It's exactly the same bandwidth that you hear with your ears. It's from about a little less than, from like 40 hertz up to a couple kilohertz. And so this is sort of our primary thing that we measure. Look at this, scientists in LIGO look at these plots a lot. So this is called the strain spectrum of LIGO, the spectral amplitude spectral density. And it's basically just a measure of how much power there is at each frequency in the detector. So you can see here the gray curve. This is what the strain spectrum looked like in the initial versions of LIGO. At the end of the initial LIGO project which ended in 2009. And then in 2009, we ripped the whole instrument apart and we completely put it back together with all new components to try to make this curve go down. And then that's what we got to with this black curve, basically, this is only for one instrument. The two instruments are slightly different, obviously. So the spectrum is a little bit different but it's mostly the same. And so this is where we are in our first observing run which happened in 2015 with the advanced detectors. And let me just talk really briefly about why do we, what limits this? And so what we're trying to do is we're trying to make this measurement as sensitive as we possibly can. And so what we wanna be limited by is physics. We don't wanna be limited by any sort of technical noise sources like is our amplifier noisy? That would be a failure, basically. We would think of it as a failure if our amplifier was too noisy. And so what do we have here? So at the left side in this sort of scion trace is the seismic noise. I mean, we can try to do, we can try to suppress the seismic noise as much as we can and that's what we do with these suspensions with the seismic isolation tables. And so what happens is the ground is moving quite a bit and so all of the seismic isolation, the isolation systems attenuate that motion. That's why you have this very steep drop-off in frequency here. At this green trace down here is interesting because that's actually thermal motion in the test mass. So the actual test mass, because it's not at absolute zero temperature is going to be vibrating. All of the molecules in the test mass will be vibrating and that is motion that will limit how much we can detect. And then the red curve is quantum mechanical noise on the light itself. So the light is not just a continuous wave. It's actually a bunch of individual photons. That's a quantum mechanical, light is a quantum mechanical object and so those photons, the fact that they're discrete little packets of energy has an effect on the noise. So we can't detect, we don't detect a continuous stream, it's like rain and that rain causes a noise. So where do we get at ultimately? So down at the bottom of this, this is our strain here and over on the other side is what we call the displacement sensitivity in terms of meters. So at the bottom of this curve, we have three times 10 to the minus 20 meters. I'm letting everybody think about that number for a second. Three times 10 to the minus 20 meters. That's an incredibly small number and I've been working on LIGO for 18 years and that number still blows my mind. So what does it mean? So here's an atom. This is an atom, it's 10 to the minus 10 meters. An atom, a hydrogen atom is 10 to the minus 10 meters. We go in, this is a proton. We like zoomed up to the edge of a proton. That's 10 to the minus 18 meters. That's still bigger than that noise we're measuring. How is that possible? It's crazy, it's nuts. I don't know how we do it. I know how we do it. So what does it sound like? So let's put it all together. This is literally just the output of the detector plugged into a speaker. I'm not kidding, we listen to this in the control room. This is the data that we take, just plugged into a speaker. It's like so stupid simple. So all of the, you hear the high-pitched things? Those are all of these very narrow lines. Those lines are because the test masses are hung by these very small fibers that are actually made of glass. Because the test mass, they're made of the same material that the test mass is. And so those vibrate like a violin string. And so we call them violin modes. And so they have all of those high-pitched harmonics. And then what we can do is we can filter this. So what we try to filter out, the low frequency, well we filter out all of these lines. And then that's what we're left with. So that's filtering out all of the things that we know are not gravitational waves. And we get this low sort of rumbling noise. All right, so that's what we detect. Meanwhile, 1.3 billion years ago, this happened. So this is a very cool simulation from this collaboration called SXS, which is simulations of extreme space times. And this is two black holes that are orbiting around each other. And what's behind is just a static picture of the Milky Way galaxy, just a star field in the background. And all this crazy stuff you're seeing is the space time that's being curved and warped is bending the light, bending the light that's coming from behind it. That's called gravitational lensing. And so this is just a way, because the black holes are black, they're obviously in space where there's no, there's nothing to see, really, no light. So what they do is they put this picture behind it so you can see. I mean, we actually observe things like this in the universe today. We observe these gravitational lensing effects. This is obviously special because of the fact that we're seeing these black holes. So they orbit around each other. As they orbit around each other, they emit gravitational waves. So this is an animation, also from that same collaboration, of what the waves look like or what the representation of the waves as they leave the system. So you've got the two black holes orbiting around each other. This red and yellow is the waves being emitted and as they get closer, the waves get higher amplitude. The frequency gets bigger. Until right at the very end, you get this big burst of waves. And then you're just left with one black hole at the end. So then, on September 14th, which is funny because on September 15th, we were gonna start having a science run. We're gonna start observing. But we were in what we call an engineering run where we were getting ready to observe. We were very close. Basically everything was completely ready but we hadn't just, you know, checked the box. And then this happened. So this is the real signal. And this is pitch shifted up so you can hear the chirp. And so this is actually what was measured by the instrument from black holes that look like that. So this is the first detection of gravitational waves. And you can see this is basically what the signal looked like in the Hanford detector and this is what it looked like in the Livingston detector. I'll replay it one more time. The chirp at the end. So the higher pitch version is pitch shifted up so you can sort of, you can hear the chirping more but that's the chirp is the frequency getting higher as the two black holes get closer together and then you can hear the amplitude get louder as well. And so this is another, this is the plot from our paper that we published. This was the first plot. And so you can see up there at the very top is just the waveform that we measured. I mean, it's literally just, you know, like a wave file. The next row is a numerical simulation. So we took what we measured, we tried to reconstruct what we think that the signal is based on what we know about, you know, numeric, what we know about general relativity, we have lots of complicated algorithms to try to predict what the signal will look like and we think that from what we measure, we say, okay, we think these are black holes of this mass and they should in pure form without the noise of the detector look like this and so that's what's on the second row and then we take the top row and we subtract the second row and we get the third row and you can see all that's left is just noise. So what does that show? It shows that there's actually a pretty good match. If you take away our prediction of the signal from what we actually measure, you're left with basically nothing and so we kind of use that as evidence. That's not how we prove it, but it's a nice thing to see and this is the frequency as a function of time. So you can see it's only, it's about 200 millisecond long signal and the frequency starts very low. It's something like 40, 50 Hertz and then it goes up to like 300 Hertz and we call this signal GW 150914, first ever gravitational wave detection. So then that was day minus one of our observing run and so we kept going and then on boxing day on December 26th, which was actually December 25th in the United States, everybody started to get more email all of a sudden and we detected another event and this one is a little bit different. In the first event, the two black holes are very similar size and this event they're different, the size difference is bigger and so you have a smaller, one smaller that's much smaller than the other and so the event is much longer. It's over the course of a second and we see many more cycles of the event. So this is a little bit complicated but I just want to show it just because this is kind of what we show as evidence of the proof. These curves down here are what we call the background and we get these curves by shifting the data from the two instruments relative to each other so that there's no causality between them. So if you shift them by, remember I said that the light travel time between the two detectors was 10 milliseconds, well if I shift the data at a second so that one is shifted for one second relative to the other, there's no way that some, something that's traveling at the speed of light is gonna have a coincident signal in both of those things. So that's how we generate this background, we shift the data and then look for gravitational waves and we see this very sort of expected random signals and then these are what we detected during the first observing run. So over here on the right is the first signal which is just screamingly loud, it's like really loud. We never expected we would see signals that, really we didn't really expect to see signals that loud so we made all these, we spent all these time making these very sensitive algorithms to listen to tiny signals and noise, you know like needle dropping and then we get this really loud signal, you know, whatever. So it helps us because of course the next one was not so loud and so that's the GW-15-12-26, the boxing day event and of course people might have heard about five sigma, that's what scientists use to try to say that something is significant and so you can see those are how the sigma move up as you get louder and louder and so the purple is kind of what we consider. Actually this black one here is the background because of the fact that the first signal is actually in the data. The first signal, even if you timeshift it, it is coincident with occasionally with random events and the other detector and because it's so loud it actually looks like fake signals so we have to, we remove that and then also in October we got another event that's kind of interesting, it's not, you know, if there were no gravitational wave signals all of the orange boxes would just be on that line and so anything that's off of that line that's a little bit interesting and the further away it is it's much more interesting. So we have this another event, you can see it's only like two sigma so it's not very strong but you know I'll let you guys be the judge. So here's some numbers. So it's kind of incredible to me that with this tiny amount of data we can learn a lot about the system because we know general relativity very well, we can run these numerical simulations, we can sort of reconstruct what it looked like. So we get an estimate of how far away it is. 1.3 billion light years which is one tenth of the distance to the edge of the observable universe so it's really far away. This is one of my favorites here. The big black hole was 36.2, that symbol there, M with the circle with the dot is the mass of the sun, that's what we use frequently in astronomy to measure masses, it's called a solar mass. So this black hole was 36 times the mass of the sun, the other one was 29 times the mass of the sun which and the final black hole was 62 times the mass of the sun. Well, it doesn't take very fancy math to see that that doesn't add up, right? So what happened? There's three solar masses missing. That was the gravitational waves. So these two black holes colliding turned three entire suns, they just like completely evaporated the energy and turned it into gravitational waves. That's pretty incredible, that's a lot of energy that went into bending the space. And then this one, this is just crazy here. So the luminosity, the ergs is another measure of energy that we frequently use in astronomy. 3.6 times 10 to the 56 ergs per second, that's how much at the very peak, how much energy per time it was emitting. So the luminosity of the sun is 10 to the 33, so that's 23 orders of magnitude bigger than the brightness of the sun. And then the entire universe, the luminosity of the entire universe, if you don't have any crazy events like this, just the ambient universe is 10 to the 55 ergs. So at the peak of this event, it was brighter than the entire rest of the universe, which is, these events are very, very energetic. All right, so that's the story of LIGO. We're currently, we took the instruments down again to try to improve them, because every time we improve, we go out in distance, but when we go out in distance, that's the volume is the cube, so little increase in distance makes a lot of extra volume, so we get a lot more potential events. So that's why we keep trying to improve the sensitivity. Once we get up to our design sensitivity, remember we're at that black curve, we're not at where we ultimately want to be yet, and I didn't explain why we're not there yet, but you can come ask me after if you'd like. But if we get to that ultimate design sensitivity, we'll see multiple events a week, we hope. So more big discoveries soon, we hope to see binary neutron stars colliding, so black holes are just these mathematical general relativity objects, but neutron stars have structure, and so if we see those smashing together, we can learn stuff, lots of interesting things. Those might produce electromagnetic waves that we could detect with telescopes, which is very interesting. And then we've got more detectors that will join our network soon. Virgo is a French-Italian collaboration that will hopefully be taking data soon, Kagura's a Japanese collaboration. We're hoping to build another LIGO detector in India, and then of course we're planning to make much bigger detectors with longer arms and space, all sorts of things like that. So, since this is a Python conference, wanted to say a little bit how we use Python, which is basically everywhere. I mean, we love Python. In science in general, I think, but particularly in the gravitational wave community, it used to be all MATLAB for various reasons, but Python is becoming much more popular now. So, for data analysis, our flagship search, the search that looks for, so compact binary coalescence, so compact means very compact stars, black holes, neutron stars, binary is obviously two stars, and coalescing is that process where they spin together and merge. So, searches for those types of events, we use a pipeline called PyCBC. We have another pipeline that's based on Gstreamer, which is actually really cool. I like that pipeline a lot, and we use Python in that search as well to construct the Gstreamer pipelines. That's a streaming pipeline, so that one is actually used to detect events in real time as we take the data from the instrument. But this one is, it's PyCBC, and we have this LIGO Algorithm Library, which is a C library, which has all of these algorithms for generating what the waveforms look like and doing the templating, the look for those signals in the data. That's called PyLal. We also have a package called GWPy, which is, we use to retrieve data and do basic signal analysis and plotting. Of course, all of the plots you've seen were done with Matplotlib. I love Matplotlib. Who loves Matplotlib? All right, yay for Matplotlib. Simulations, we do lots of simulations like the SXS collaboration that made those really cool animations. They use Python interface to pair a view. PyCat is an interface to this optical simulation thing that we use that simulates signals in the interferometer. Of course, like everybody else in the universe, we're trying to get into machine learning. We're a little bit behind the curve, but, you know, we're ramping up. Outreach, IPython Notebook. Has anybody here used IPython Notebook? That's really cool. We love IPython Notebook. It's awesome. And so we've been using that a lot. And it's been very useful in our outreach efforts. So I recommend people go to lask.ligo.org, L-O-S-C, the LIGO Open Science Center. And we have live IPython Notebooks where you can analyze the data yourself. It's the actual, basically you can get the actual data that we measure, which is just those, you know, basically those wave files which you can listen to and you can filter it and you can extract the signal and plot it. It's very cool, all in the IPython Notebooks. All right, the very last thing I want to talk about is the instrument control. So I'm more on the instrument side. I like to help build the interferometers. And so one of the things that I helped put together was our automation system. So we have this big optical experiment. It takes a lot of coordination to, you know, control all of the mirrors and the seismic isolation systems to get to the place where the instrument is sensitive, most sensitive to detect the gravitational waves. And so I'll talk about that in a second. I'll just mention the one notable deficiency in Python where MATLAB still beats Python is in control system analysis. But hopefully that will change in the future. Is that telling me something? All right, so automation. So there's this, I'll just talk about this really briefly because I think it's a really cool usage of Python. And it's not because I made it, I swear. So it's called Guardian and it's the automation system for LIGO. It's a distributed hierarchy of state machine automatons. That's my fancy description of it. So this is kind of a schematic, very, very, very cartoonish schematic of the instrument. So here's the interferometer, you got the laser, you got the mirrors. Here you've got our digital, analog digital interface where these are just, you know, digital to analog converters that convert the electrical signals coming out of the instrument into digital signals. Here we have this real-time control system which I won't talk about, but which is really cool. If anybody's interested in real-time signal analysis. And then up at the top is all of this automation system. So each one of these blue dots represents a one of these little automatons that is automating part of the real-time system. So it's basically like flipping, you know, it's looking at signals and flipping switches and turning virtual knobs and stuff like that. So in each one of these little blue dots, we have a state machine that represents, you know, the automation logic. You know, basically what happens is we say, oh, we wanna go to one of those states up there and then this thing looks at this graph and says, okay, I'm gonna go this path to get over there. And so this is all programmed in Python. So we have these Python modules that describe the instrument commands in these what we call state classes. That's what this guard state is. So guard state is just a class that defines one of those bubbles in that graph over to the right. It has a couple of methods that get overloaded. So safe is the name of a new state. Damped is the name of a new state. It has two methods, a main and a run method. I won't get into the details of how those are executed, but basically they just have some commands in them. You know, flip this switch, set this gain to be something else, turn on these filters, stuff like that. Then we have edges, which is a list of tuples, which just represent connections between the ovals. So you can see these, basically all of these arrows in the graph over to the right. And so this edge would connect the safe state to the damp state. And so then that whole thing, those states and those edges, is this state, what we call the state graph. So what Guardian does is it takes the modules that describe these state graphs. It imports them because Python is so powerful and you can get into the import mechanism so easily. You can basically load the module, scan it for all of these guard state definitions, extract all the states, look for the edges definitions, put that all into the network X module, which is a really sweet module for doing basically graph analysis, network analysis. If anybody has to do network analysis, I highly recommend this package. And then it builds these graph representations. And so then what happens is that that graph then gets loaded into the automaton process and that becomes like the brain of the automaton. And you say, hey, Guardian, go to state damped. And then Guardian looks at the graph and says, okay, I'm down here and I can just very easily figure out how to get to the state that I wanna go to. And it just starts going and starts executing every state. Once it's done with one state, it goes along the edge to the next one until it gets to the final place. And I think that the architecture of this is kind of cool because what we use is the multi-processing library, which is awesome, you know, I mean, Python, Python rocks, just let me say it right now. The interfaces to this stuff is just so clean, it's so nice. So the main process uses the multi-processing to spawn off a worker process. And that worker process is the thing that actually does the execution of the user code that sends the commands. And you do it with the multi-processing instead of the threading because that allows the daemon to have full control over the worker. If the worker is stalker is blocking for some stupid reason because scientists aren't very good at writing computer code, then it can just terminate it and respawn it and start over again. And we use the shared memory interface in the multi-processing to exchange data between the two processes. So the commands to the worker go through the shared memory and then the status of the execution of the user code goes back up through the shared memory. The worker process can catch all of the user exceptions, report them back to the daemon, the daemon won't die, it'll just keep sitting there and it'll report to the people in the control room, hey, somebody fucked up their code again and makes an error message. One thing that's kind of cool is that you can completely reload all the code on the fly. So you can just send a command to the daemon. It'll go and take all of the user code, that state graph, and it'll just take it. It'll take the, you can even reload, if it's in the middle of executing a method on a class, you can even reload that same class. So what it'll do is it'll just wait till the method is done executing. In the meantime, it's taking all the attributes of that class, stuffing it into the new version of the class. And then when that method is done, it just swaps it out and starts executing the new version of that method, the new version of that class with the new commands in it. Pretty cool. And we use this Epyx client server. This is something that's frequently used in physics, to large physics experiments to do control of various, control of big physics experiments. It's basically like a lightweight network message passing interface. So that's it. Just let me say, Python played a huge role in detection of gravitational waves in the analysis, in the control of the instruments, and on behalf of the entire field, I thank all of you. So thank you very much. Stay tuned for more exciting news from LIGO. Yes, thank you very much, James. I think it was not amazing like this view into one of the biggest discoveries ever in physics. I mean, amazing. Amazing talk. Thank you very much, James. I think you have a gift, haven't you? We probably can take a few questions. Thank you. Oh, very good. Thank you. Yeah? Yeah. Questions? Oh, yeah, I'm happy to take questions. Yeah, we probably have like five minutes for questions. So can you please come here? Yeah, please come to the front here. So I've read, is it true, that when the first event came out, it was so huge that you thought it was a fake, some kind of elaborate prank. Are you asking what I personally thought? Because that's funny, because I thought exactly that. But I mean, many people in the collaboration, well, we, of course, behaved immediately like it was a real event. But I was very, I don't know, it's too crazy. It's too perfect. It's too loud. It's not what we expected to see as our first event. So it took some of us, it took me like a month to be convinced that it was real. But, you know, we did a lot of analysis. I mean, we made the detection in September, and we did not announce until February. Yeah, exactly. And that wasn't what we weren't just like sitting with our thumbs up our asses that whole time. We were analyzing the crap out of the data, trying to figure out, is this real? Are we completely convinced that this is a real gravitational wave? And then when we were ready and we had a really nice paper, then we decided to announce. Yeah, that would be a lot. Yeah, I mean, we thought a lot about that. Like, could it be malicious? Could somebody have, you know, somebody who's trying to get tenure snuck in? But it's too hard. I mean, this is one of the, I mean, this is not the reason we made two detectors, but we make two detectors far away so that it's really difficult for any sort of terrestrial signal to look the same in both detectors. Basically impossible. Well, I have a question about the actual utility of those detections. Like, well, we know that you can now study some really radical events. But I've been reading about it. And it's like, OK, sorry. What are those signals? Are we capable of using those signals to see behind things that we cannot see actually? Well, I mean. So certainly, now that we've made the detections, so this is why I titled the talk, The Dawn of Gravitational Wave Astronomy, because the point is not just to make the one detection to prove that the gravitational waves exist. That's very cool. But what we want to do is we want to see them routinely. That's why we continue to work on the detectors. We continue to try to make them better. So if we can see these events regularly, we will start to learn about what produced the events. I mean, you saw how much we learned just from this one event. We learned what are the masses of the black holes, how far away they are. Just those things alone are very important information to astronomers, because they tell us, the fact that we saw what appears to be three binary black hole mergers in our first observing run and not any neutron star mergers, which is something we thought we would see, that tells us a lot about what's going on in the universe. So astronomically speaking, there's a lot of information that we can get from each of these signals and from the ensemble of all of the signals that we detect. Hi, Python 2 or Python 3? Yeah, no, we're stuck. This is 2.7. 2.7. We are slow to upgrade. We try to make things be, we're trying to do science, so we're not trying to go to the cutting edge all the time. I mean, obviously, we will go to Python 3 eventually. I would like to go, but our system administrators are more conservative than me. Do you have a kind of a model or a measure how likely it would be to have this big event? How often would it repeat this big event? How likely that you just detect this one? The next one would be probably in a year or 10 years or something? So I mean, we had two and a half events in four months. But do you have any models that the universe has this size and that probably so many black holes? There should be so many. Sure, we have models and we had models. But they had very big error bars because we don't know. We've never seen a gravitational wave, particularly for the black holes. The error bars for the black holes were there could be thousands a year or there could be zero. So they're like really huge error bars. We had no idea. And then we see two and a half in four months. So that's very promising. We will definitely see more as we continue to observe. So the first detection was 1.3 billion light years away, three or 30 times the luminosity of the universe. What was the minimum safe distance for that? That's a good question. I think that that has been right. I don't have the answer to that off the top of my head. But I think that it's something like if you were within less than 1,000 kilometers from the event, you would actually feel the gravitational wave in your body. But remember, these gravitational waves are tiny. It's just like tiny fraction of a proton size that's moving the instrument. So it's obviously impossible for humans to feel that unless you get really close to the black hole. But then at that point, I don't think I would want to be there. I mean, it would be really cool, but it would be the last thing you see, probably. That's a big relief, thank you. There was no life left in that galaxy. I wouldn't worry too much about it. I wouldn't worry too much. OK, so first congratulations. It's really great to see finally some detection, confirmed detection in physics. So my question is, how is the mass of the black hole more dependent? In a way, you have to assume, I guess, general relativity. You have to assume some lack of physics. You have to assume some merging of black holes. I mean, all things that we don't really know, that you kind of deduce all together through one observation. So how can this change? So what we deduce from the observation comes purely from general relativity. And black holes are actually very simple objects, in some sense, because they're just purely mathematical. General relativity predicts that there would be these black holes if you have this very extreme curvature. And they don't have many properties. They have a mass. They could have a charge. They, almost in the real universe, would not have a charge. And they have a spin. They could be spinning. And these black holes were actually, we actually measured the spin of them as well. So there's really only these three parameters. I mean, there's the inclination of the spin relative to us. So we can use our knowledge of general relativity and these sort of simple black holes to make predictions of the signals. And then that is what we, when we look at the data, we sort of reverse engineer what the signal looks like to extract what the parameters are. OK, so you don't have to assume what's an model for the evolution of the universe, for example, or another. No, we don't. Well, we like to do a Bayesian analysis. So we have what we call priors, where we make some assumption about what the distribution is. But we like to keep those assumptions to be very broad. So we don't want to bias our search. And so we like to assume that, you know, for the placement of the black holes in the universe, we just assume that they're basically isotropic because we don't know, we don't know, we don't have, we don't yet have any reason to believe that they should preferentially be at some point. But the second black hole, the Boxing Day event, was also at a very similar distance, basically 1.3 billion light years. So that's very interesting. We have two detections, and they're both from basically the same distance away. They're also kind of similar masses. They're, you know, 10, 20 times, 30 times the mass of the sun. So, you know, this is what we're learning from these detections. OK, we have, like, time for three more short questions. So, Danielle? Very short, so... Fabian and Fabio. Has your adoption of open source software also helped engender attitudes to opening the data and the output of your science? Yeah, I would say, I would flip it, basically, and say that scientists are, by their nature, open. We, I mean, we, it's a little bit tricky, because in academia, you know, you have to, you have to, people get a little bit protective because they need their results so that they can get publications, so they can get tenure. But, you know, we also want to share. And so, the, I think that, you know, we open source all of our software. It's not just that we use open source software, but all the software that we write is also open source. So, all of the Pi, CBC, Pi, Laul, all of our algorithms, those are on GitHub, this automation platform, that's freely available, you know, other scientific collaborations can use them if they want. So, we're firmly, firmly invested in open source. And obviously, we get so much benefit out of it. We, you know, I mean, if we, that's one thing that sucks about MATLAB, right? It's proprietary, we have to pay thousands of dollars, many, many thousands of dollars a year for licenses. They change the APIs for no, apparently no reason, just because they think they should, or make people want to buy a new version. They make two releases a year, and you know, you have to pay more. I mean, it's really annoying. It's really annoying to work with MATLAB, honestly. And so, Python is just been huge because the open source enables us to be more flexible. Very quickly, the things that you think are really missing are the main pain points on the Python ecosystem, more specifically on the Pi data, you know, ecosystem that you could use and help. What can we do to improve? Oh, I don't know. Just keep doing what you're doing. Yeah. I don't have anything in particular. I mean, there's certainly, like I mentioned, the controls analysis stuff. I mean, there's lots of cool signal analysis stuff in PsiPi. We would like to see more expansion of the capabilities there. You know, we do a lot of very high performance computing stuff. We have, you know, big computer clusters where we do massively parallel analysis of the data. I don't know. I mean, that's one of the things that's so great about Python is whenever, you know, I want to do something and I do a search, I can almost always find a quick easy way to do it. So, parallelism or? Yeah, the parallelism is a little bit, you know, I mean, it's kind of specialized because we need to parallelize across computers in a cluster. So, it's not the same, you know, I mean, obviously there are packages that help do that. We use this platform called Condor. I don't know if people have heard about that, but it's a job scheduling system for running analysis jobs on computer clusters. We don't, our cluster analysis is not terribly sophisticated. It's not like these big numerical simulations where you have to do a lot of sharing of memory between processes spread across many nodes. We basically just, you know, give each computer node in each process running on each computer a little chunk of the data and say, you look for a gravitational wave here, you look for a gravitational wave here, and we just, you know, massively parallel. So, it's pretty straightforward what we have to do. The reconstruction of the information about the event, that's more complicated, right? Because we have this one small stretch of data where we know that there's an event and we want to extract all the information from it. So, we have to run a lot of models over it and do these integrals over all of these, all of these different tests. So, that's a little bit trickier. Okay, last question. Okay, I have a question about the visualization of the event that you had there. It looked like in your model that there are two black holes which are rotating around each other about 30 times in five seconds. Is that something that actually happens? Those are slowed down, right? So, they're actually, it's actually faster than, those are slower than real time. Yeah, they're very fast. It's incredible. So, I mean, one of the plots that I showed actually has, let me just go really quick. Sorry to show one thing. I skipped it. Okay, look over here. This is the speed of the black hole, the velocity of the black hole over the speed of light. So, at the very end, the black holes, I mean, these are macroscopic, I mean, they're big, they're 30 solar mass things is moving at half the speed of light. I mean, it's nuts. I mean, what's going on in that region of space is, woo, that's crazy. Okay, woo. Thank you very much, Dave. Thank you, thank you.