 But I would like to introduce Felix, who went from a high school and college dropout to working as a web developer at several Bay Area startups. And then at Fostom 2019, he was presenting some of his open source work related to quantum computing, which led to his current gig as a quantum software engineer at IONQ, which is a trapped ION based quantum computing startup in Washington. And the quantum open source projects he's working on include QBuck, which is a debugger for quantum programs, and Quill Jason J.S. And today he's going to talk about quantum computing hardware and control systems. So please welcome Felix. Hey, what's up? So I work at a quantum hardware startup. We don't have anything open source, but I've worked enough on hardware that I can tell you feasibly how to put together an open source quantum computer using purely open source components and software. So this is a survey of what there is out there in the field and what it takes to put them together to have your own quantum computer. In my talk, I'm going to go over what goes into a quantum computer. We're going to be talking specifically about trapped ION. And we're going to actually go through and get all the parts we need to build it. And I'm going to have links to the relevant Github's. And then I'm going to talk about the state of the open source quantum computer, like what do we have, what needs improvement, what is the vision for the open source quantum computer, et cetera. So what goes into a quantum computer? In general, what are we going to need to do to build this thing? I'm talking about trapped ION. There are various varieties of quantum computing hardware. Trapped ION is what I know best. It's what my company makes. And I also think it's the best candidate for your own open source quantum computer, just because trapped ION, you can use a lot of off the shelf parts. And there's lots of reasons for that. It's a little slower, so you need less hardware and software can control more of it. And it's not, you don't have to build a sophisticated circuit like you would in other models of quantum computing. So it's relatively accessible to us as we're trying to build the quantum computer in our garage with only open source parts. The phases of running a quantum program in a trapped ION quantum computer, this is like all the tasks we're going to need to do. First we have a bunch of atoms and they need to be loaded. So we have our atoms, they're going to act as kind of like the memory of a quantum computer. They get put into an electric field and they kind of hover. And that's to, so they're not touching anything, they're isolated, we know exactly where they are. And they go through state preparation, so they're ready to be used as qubits, which I'm not going to go into too much. I think some of the quantum information concepts will be covered by other speakers in this track, but basically we need to get them ready. Then we go through a coherent phase where we're actually running the quantum program. And so for us we're kind of sketching into the atoms using lasers, the program. So we have lasers, but they're getting modulated, they're changing over time. So it's not as simple as just shooting lasers at an ION, they need to, the laser pulses actually change, kind of like a synthesizer. Then we go through detection where we see the result of our computation. So for us detection is which IONs emit photons and which don't. This is generally kind of what it looks like to be in a trap, to be an ION that's suspended. You have a rotating electric potential and you're kind of suspended. So this gives us kind of a clue about the complexity of this electric field that we're going to need to produce. It's always rotating, it needs to be very specifically orientated towards our IONs. So a lot of hardware, a lot of software goes into crafting the electric field. This is Felix's crash course to atomic physics. Hoping to do my physicists proud, but probably not going to. Basically what we're looking at is different states of an ION here. The black bars are kind of, like I was talking about, we want them to produce a photon or not. We have the various parts of the atomic manifold. Those are the black bars we see over there, the P's and the S's, etc. And basically if you're in a P, you're going to glow. You're in a glowy state, you're in an S, you're in a dark state, you're not going to produce an atom. And the arrows between them are lasers. So we use lasers to take in between the various states. And the number near those bars are the frequency of the laser. So the takeaway here is that in order to actually change the state of the atoms, our computer, we need a lot of different lasers. And there are also, the atom is still kind of a complicated place. There's lots of states that we don't care about, and they're dangerous to the functioning of our computer. So we need to control it very precisely. That's kind of the takeaway of the slide. So why do we want to build an open source quantum computer? That's our final slide, after I've gone through how one might go about doing it. I think my motivation is to empower the self-lander or kind of like the undergraduate getting into quantum computer. Quantum computing famously, the hardware is like very restricted and non-socialized. And I think if we had an open source quantum computer or something you could easily build and people were regularly interacting with small quantum computers, it would be a lot to unlock the intellectual capital of the field. So I think it's worthwhile thinking about it at least. Okay, so now we're actually going to build it with stuff we find just on GitHub and an open source generally. For the loading, we're going to need to do several different things. We're going to need to do something that can shape an electric field. We're going to need software that can model and solve for electric fields. There's a lot that's going on. So first thing we have to do is we're storing the atom somewhere and we have an oven, which is going to ionize and release them. So for an oven you can actually use QITI's oven controller. This is freely open source hardware. It has code, it has schematics, it actually has data sheets and documentation. It's a very thorough oven controller freely available to us. For loading software, this is what's actually going to control releasing the atoms and putting them into the electric field. We can use the Sandia's quantum operating system, Ion Control has a autoload plugin that hooks into several off-the-shelf components and could actually work with our oven controller. And Sandia's Ion Control has a lot of documentation, has a lot of support, is very thorough code-based. So this does, again, pretty much everything we need in terms of that. This is a picture of the actual trap. There's a vacuum chamber and the thing in the middle is a trap chip. So the trap chip is probably the least open source part of this because it's a very customized chip and there's no open source hardware for it. And this is what's responsible when combined with other electronic components for creating the electric field that suspends our atoms. So at this point, we've loaded our atoms in. They're ionized and they're in the trap. For the trap chip, this is what we have available in terms of open source. There's no schematics and models for a specific trap chip that you can run out there, but there's software to make them from Berkeley's Trap Diamond Group. The GenTrap and the Trap Design Testing Station is the bare minimum you need to kind of figure out how to model and make your trap chip. Trap chip is still kind of a custom in bespoke, so you can't just go out to a commodity electronic store and make your own trap, but as good as it's going to get for open source trap chip making, except if a good Samaritan wants to flesh out the trap chip software scene. I went through these repos and they could definitely use a little more documentation. As I said before, some pre-made schematics and trap models would be good, but it's possible. We could maybe make our own open source trap chip. For generating trap fields, we have to have software that actually controls the chip and remember that we need to like, there's some very complicated physics going on and it's very dependent on the atom we're using, how many atoms we want to load. I found through Berkeley's Trap Diamond Group QSIM and another trap simulator through Electrode, and so this is the software that actually gives us the data we load our trap chip with to create the exact electric field we need. In combination with kind of the software that actually will create a waveform, we need hardware to actually, that can change electric potential very quickly. So that's called the Trap Deck. And from MLabs, there's the Zotino. There's a like 32 channel electronic trap chip and a faster one called Fastino, that's pretty funny. So yeah, this is, again, this is more thoroughly documented than some of the other open source quantum computer parts we've seen and it's complete. So we have drivers, we have hardware, and we have physics software for doing everything we need here. And this is camera footage of a loaded trap chain. This is what it looks like. They're all suspended. They're all close together. There's even spacing. We call this a crystal because the chain of ions moves as one unit. And so what we used to record that chain is actually a camera. A camera is a big part of the trap-iron quantum computer experience. You need to be able to see your ions to see if they've loaded. You can use cameras to see if ions are glowing for detection. And there's no open source hardware for cameras, but there is a driver for an off-the-shelf camera component from Oxford. So, so far, we're missing open source camera and we don't have everything we need from the trap-chip, but we've covered loading. For our actual lasers, this is the part of the quantum computer that actually writes our program into our trap. What we need is to create really customized laser pulses, a synthesizer, as I've alluded to before. You need DDS, which is an electronic component that can actually output an analog signal. And if you have enough DDS, you can just make some together and more or less do everything you need to for a simple trap-iron computer. There's another electronic component called the AWG, arbitrary waveform generator. They can create literally any kind of waveform. So you need this for more sophisticated gates for, like, create entanglement between ions, but it's not super necessary for just a garage setup or something that students are going to use. And then you have laser diodes. The laser diodes are at the very end, they actually output the laser, and they get connected to all the other electronics we've been talking about that are just responsible for creating some signal, like a synthesized sound signal, basically. And the diodes are at the end of this. They aren't open source, but they're just a mechanical component. So who cares? DDS. So four open source DDSs. Again, Berkeley Strap-Ion Lab, which is very prolific contributors to our open source trap-iron computer so far. We have a driver and the actual schematics and everything we need for DDS. This is also, like, everything Berkeley does well documented. And conceivably, it looks like it could work, because I'm not a guaranteed here. I have not gone through and tried everything from Berkeley, but it looks legit. It's my assessment. With AWG, like with the camera, there is no open source AWG hardware out there. I went through and looked at MLabs, which is a group that has a lot of open source hardware, and they have one called Sinara, which might be open source, but it did not have anything in the repo when I looked at it, just documentation. From Sandia's iron control, we have a driver for off-the-shelf AWGs, the ones that you could just buy at a store. You have software that controls them. So we're covered in that sense, at least. You could, in your garage, iron computer, buy one at a store, and then you have the software you need to control it. So the status at the end of this is that we have no open source hardware for AWG, but we can do it. It's still possible. So far, we've run into a few minor speed bumps, but we're well on our way to having everything we need to run this computer. So we have the capability to produce any kind of pulse we want, but I'm, for instance, a high school dropout, and I failed calculus. So how are we going to create the pulses we need to actually run quantum gates? We need pulse solver software. We need physicists to say, what do you want to do? What pulse do you need to generate? And then we can just put it in our AWG easy. There's no package for doing that, though. It's very dependent on your ion and your atom that you're using. So there's nothing out there in the open source space that can do what we want. We have a package that does some atomic physics from Oxford, but nothing that will actually create an AWG pulse. So it's also a big deficiency of open source software in this space, too, is that we have nothing that can actually create quantum gates for our trapped ions. Lastly, you need optics. You need to route the beams so they're actually pointing at the trap in the ions. For here, most of it is just mechanical. You just set up a bunch of mirrors on a table. So there's no software or hardware involved or anything that we would need from open source space. But some setups need motorized mounts, is the thing. You need to change the drain. Sorry, my bike fell off. One second. And so technically it's not necessary, but it's nice that we do have software for this as well. And the last thing you need is servos. And this is just to correct errors in the laser in terms of direction, in terms of laser intensity, et cetera. So for servo space, we have the NIST servo, which is an extremely full-featured servo from NIST. That's basically all you want. It has all these different control methods. So it can correct a lot of different error types. It has a UI. The NIST servo tells you everything you need to know about servos. It does everything you would want from a servo. Unfortunately, the hardware is flawed. So for people from more of a hardware and electronics background, you would need to... You probably need to go in and rewrite some of this hardware code in order to get it at the level of quality which you need to run a quantum computer. And the last thing is from Mlabs. You have a much more simple servo that doesn't have some of the features that the NIST servo does in terms of UI, things that you need like measuring transfer functions, et cetera, like very engineering-specific things. So this is someplace actually that more software investment would be fruitful, I think. So our status is that the NIST servo needs some more hardware and the Senara sampler needs some more software investment. But we have everything we need to actually run a laser setup on our trap-down computer. The last section is just control. So we have... We can put ions in a trap. We can shoot lasers at them. The lasers can do what we want. We don't have the physics for the lasers, but everything else, yeah. So in order to put the salt together, we just need control software. So this is what a real quantum computing operating system looks like. You have a bunch of devices over on the right. You're reading the status of all these devices I told you about, like DDS, et cetera, your AWG. You have tools for running quantum programs. So you see a little bit of code on the left. It's actually a code for an experiment on the quantum computer. That code needs to have access to the devices. So that's where the operating system comes in. It exposes the entire quantum computer to that code. In the middle, you can kind of see the execution of an experiment. So this is real data from an experiment. Those are logs from the experiment, et cetera. This is kind of your execution environment that goes through and using Python or JavaScript, stitches together all the devices we were talking about in order to do what we need. A quantum experiment needs to run very quickly, and you need to run a lot of them. So when we're talking very quickly, we're talking on the scale of nanoseconds. So generally what you'll do is you say what you want to do, you say how many times you want to do it, and then it runs on electronics. So it's not JavaScript or Python code running live during your experiment. You have a little CPU controlling all the electronics. It has its own program type. You send it off, you let it do 100 experiments, but it's all running in loop and very quick electronics. So for quantum operating systems, there are actually two open-source quantum operating systems, and they all integrate with the devices we've been talking about previously. So from Sandia, IonControl, which I've been talking about, integrates off-the-shelf components. In the actual code from Sandia, they tell you exactly which devices they integrate with, so you could just buy them and you could run Sandia's IonControl to control your quantum computer, like tomorrow, maybe. And Arctic is kind of the same thing. They run on M-Labs's open-source hardware, and they're very tightly coupled. So these control systems require specific hardware components. So you're ever buying them off the shelf where you're using M-Labs open-source hardware, but you don't get a lot of variety in hardware. You can't mix and match the operating system with the hardware. So the status of these code bases is that they have a UI, a documentation, they have supporting devices, they have relatively easy setup, but they're very tightly integrated. So we don't necessarily have the operating system we need for our particular open-source quantum computer that has its own trap, has parts from Berkeley, et cetera. I talked about kind of the needs of running an actual quantum program where we figure out everything ahead of time and we run it on a specific chip. Quantum programs need to be trolled at very high speeds, like custom CPU. Those you can also find open-source examples of. So the ones that M-Labs and Sandia use to run their experiments on the quantum operating system are open-source. Those are the links over there. It's kind of the quality of those offerings, those parity of their respective operating systems. So in terms of documentation, in terms of discoverability, it's a package deal of the operating systems of which they're associated with. And then finally, this is the last slide for hardware and this is just for me to complain about FPGA and circuit tool chains, which are quantum-adjacent but ruin my life. Most of the open-source hardware we use are the same as the Vavada or Altium. So if you wanted to use the code for the open-source hardware to actually make these things, you would have to have some really expensive licenses, like $6,000. So it's not really that open-source. In order to really have a dream of a student creating their own quantum computer end-to-end, you would need an open-source FPGA tool chain and probably a Schematics viewer alternative, that's open-source. The thing is, it seems basically impossible from when I googled this to make your own open-source FPGA tool chain. It's a subject of active university research. So someone's PhD thesis is doing this. So that looks pretty bleak. Won't lie. And finally, I'm going to go through and talk about the state of open-source quantum computing. Wrapping up everything we've talked about. What's wrong? Where could an open-source contributor make a difference? Where could you improve the open-source quantum computer? Et cetera. So first, we went through and talked about the oven, which is responsible for releasing atoms into the trap. And this is, we have what we need in terms of, like, a specific ion species. For our actual trap, as we said, it would be nice to have pre-modeled chips so we could just print out schematics for a specific chip and be ready to go. All we need is two ions for a student. For camera, we need open-source camera hardware. Cameras are very expensive, and I would say the quality of camera drivers is very minimalist. So it gives you the bare necessities of what you need to actually look at ions, but nothing more than that. For DDS, this is fully open-source and looks very high quality. For the AWG, we have no open-source AWG. Mostly we can do what we need with DDS, so this isn't that bad, but it would be nice to get this full entangling gates. For pulses, I'd say probably the state of physics of software open-source for a trapped ion is a little bleak. There's not that much out there, and physics is probably the biggest limiting capacity for people who actually want to go out and make their own quantum computer. For the operating system, all of the new physics software or quantum hardware that we use would need to integrate with the operating system, so the ones we talked about would need to be extended, or a new one would need to be written. And for experiment CPUs, same thing. Experiment CPUs are tightly, very tightly connected with hardware. They communicate directly with DDSs, things like that, with electronic components. And then for hardware tool chains, these are fully closed-source and very expensive, which makes it hard for our student persona we've been talking about. So the room for improvement I see. We've talked about what's missing. For running a quantum operating system, you're talking with sometimes like 50 or 100 devices. And so you would need a really large computer if a lot of USB hubs to run at your quantum computer. I think if you really want to emancipate the student quantum computer maker, you would have a way to run an operating system off a system head or like distribute the management of devices, so device servers. We need integrated trap ship design, waveform modeling, and DAC hardware. So you need an end-to-end thing that can create your electric field and physics and can run it on hardware. We need integrated trap modeling, pulse over and AWG. You need kind of like the Ableton Live of laser pulses. Something that can go through, produce laser shapes and actually program an AWG with them. Camera drivers are still very minimalist. We can look at ions, but we want to do things like automatically detect when they leave, when they enter, things like that. So this is for the computer vision researchers in the audience. Your time to shine. We have open-source servers, which either lack features or have hardware deficiencies. So we need to choose between one or the other. And it's not that great. That is my presentation about building our own open-source quantum computer. My Twitter handle and the last link at the bottom, IQ jobs. We are hiring for software engineers, electrical engineers, people of all shapes and sizes, physicists even. So if you like what you saw, drop us a line. And thank you. Felix, signal. Oh, sorry. One, you mentioned about FPGAs that they are really like not very open and like a lot of licensing and FPGA has been around since the 90s. And I come from an electrical engineering background and for years nothing really has been changed. And also last year there was some talks of people trying to like making open-source. Don't you think similar things will happen with quantum computing? And if not, why? Sorry, the question was... Comparing with FPGAs. Open-source FPGAs will change. Sorry, a lot of people are getting up. Yeah, comparing it. Like the field of FPGAs wouldn't really become open-source largely. Like some attempts. So why do you think quantum will be different? Well, we have almost everything we need to actually create an open-source quantum computer. It's very close to do it end-to-end. Why do I think it would happen with a quantum computer? I don't know that it would. Whether or not something becomes fully open-source is kind of a sociological problem. I think there's value in it that it's very close to becoming fully real. It's hard to say whether it's captivating enough to actually happen organically, but it could plausibly happen. It's kind of my takeaway. Any other questions? No? Okay. Thanks for having me.