 Hello. Hello. So, hello, everyone. My name is Brady, and I will be talking to you about viruses today. So, we're going to get into specifics. There's going to be even be a little bit of a biology lesson, so I apologize if you really don't like school. But up on the screen, currently, you'll see the surface of polio virus. And so, we're sort of zooming over, seeing all parts of the proteins and amino acids wiggling about. I'll explain sort of actually what's going on and what I mean by proteins and amino acids once we get further into it. But this is, yeah, about how we can take viruses, bring them into blender, using geometry nodes, and make some cool animations. So, before I go any further, I did have to come a really long way to get here. And I financially, I would not have been able to make it without everyone up on the screen, so they all donated it to my GoFundMe to help get me here. So, a huge thanks to all of them. But let's jump into it. So, this is me. I'm Brady. I'm from Perth in Australia, Gide. Over on the right, I'm in the Australian synchrotron, which is a massive city block-sized X-ray generator. And I'm currently at the very end of my PhD in biochemistry and biophysics. I started using blender way back while I tried in 2.79, and I think I bounced off like a lot of people. But when it 2.8 came out, I started using it for all sorts of things. And so, I'm using it for visualizing my work that I work on and proteins in general. But before we can get into the real nitty-gritty of things, we need to discuss what is a protein. So, I'm talking about proteins, amino acids, all these sorts of things. So, this is where the biology lesson starts. So, hopefully you're all familiar with the idea of an atom. We have a bunch of atoms that come together to form smaller molecules. And so, the ones up on screen are known as amino acids. Now, you've probably heard of some amino acids in nutrition, your essential amino acids, your whey proteins, that sort of thing. And so, what happens with these amino acids is that they come together to form longer and longer chains. So, you have your individual little base units that come together to form longer chains. Now, you'll see that things are colored differently. So, you've got nitrogen's blue, oxygen's red, and carbon is black. And so, you've got these sort of complex molecules that start coming together. And so, in biology, much like with 3D or playing with Lego, you can take these discrete little units and stick them together into longer and longer things, much like kit bashing or something if you're familiar in 3D. Or if Lego blocks, you get these base little ones and you build them together. And so, you get these long polymers, which is basically what we call a protein. So, you've got all these different little individual things that come together. Now, it's quite complex. There's a lot of atoms, all sorts of things all over the place. But we can simplify it a bit by this constant backbone through the back. We can color it as one thing. And the chains that sort of wiggle around off the side, we call them side chains. We can color them as something different. And we can even simplify it further by just drawing a sort of backbone. So, we have a constant chain that goes through and we have these little wiggly things on the side. And so, we can draw it either with the atoms or without the atoms. And proteins don't exist like this, much like a shoelace that ties together into a knot. You get these proteins that fold together into more and more complex 3D shapes. And so, depending on which blocks you use, depending on which amino acids, they fold together into different shapes. And so, up on the screen now, you'll see all of the atoms over on the left, a simplified representation of those atoms, which is just that one long, continuous chain in the middle. And then, the sort of outside of those atoms over on the right. You think of that like a shrink wrap modifier. And so, it's moving all about because the atoms on the left are all moving about and these are all the same thing. Now, we have just one protein. These proteins come together to form bigger and bigger structures. So, we're forming now is a virus. So, you've got lots of discrete protein structures that all come together to form one massive virus. We can look at it in this simplified backbone version, where each one is just a long, continuous bunch of amino acids that have come together. Or we can think about it with each individual atom actually showing up on screen. So, they're showing the same data, but they're just showing it in slightly different ways. Now, what is the data that I'm actually showing here? So, we've sort of learnt what a protein is, how it comes together to form a virus, which is showing up on the screen. But the underlying data, and as me as a protein biochemist and my colleagues work with, this is basically what the data looks like. So, it's this tabular structure where you have one amino acid is represented by a bunch of lines and each line is just one atom. And so, with these atoms, you have a column which will describe which element it is. So, the first element is a nitrogen. You have another couple of columns which describe which amino acid, which protein it's a part of, think of it as a matter of matter data. And then, you have three columns which describe the XYZ positions. Now, you're probably all pretty familiar with the idea of a bunch of XYZ positions. So, maybe we can start thinking of these as just vertices or maybe as point clouds. And so, traditionally, myself and my colleagues, the way we work with this structural data is we use dedicated programs like the one on the right. This is PyMol, it's very common. And it's really great for doing a scientific analysis for working with your data. And it takes your atom positions, puts it through a layer of translation and builds a 3D geometry. And so, that's great to work with, but visually, it leaves something to be desired as a lot of scientific software does. And so, you can actually export it from the software into Blender if you want to start making, you know, get some nice lighting, some volume metrics, that sort of thing. But it is a one-directional process. So, once you've exported your 3D geometry, you've lost any underlying connection to what that data is, so whether it was a carbon, an oxygen, et cetera. And so, all right, you've got your geometry. Usually, the geometry is not that great. It's pretty terrible that these programs export. But you get your geometry and even something like when you're exporting atoms, you've got a whole sphere with a bunch of verts and everything per atom. And so, that's computationally quite intense. And really, we only need the single-point clouds to describe these atoms. But before we get into doing that, an example of how we might visualize this sort of stuff, the traditional way. And so, bacteria, which you can see up on your right, sorry, up on your left, have these long sort of propeller things that they twirl around much like a boat propeller to push them through whatever liquid they're in. And you can see they've got this sort of structure where it joins in. And this is known as a flagella. This is basically a motor. If you're like, wow, that kind of looks a bit like a motor, I can answer and tell you it is a motor. It's absolutely fascinating what happens in biochemistry on the molecular world. But usually, that goes far out to the right and spins around. And this is driven by an electrical current, so it's basically an electrical motor. But so this is a visualization I made a couple of years ago. A lot of scientists are very excited about it, but it was very computationally intensive to deal with. So I had to generate the mesh in the program, export it as OBJ and import to Blender. This was before the OBJ importer was rewritten, so I don't know what the stats are now, but it took forever, almost maxed out and crashed my computer. And ultimately, the connection to the underlying data was lost. I just had the mesh. So along comes the data. And this is what our protein data looks like. So we've got our tabular data, one row per atom, and a whole bunch of columns for all the different bits of information. And if we look at our beloved default cube, we've got our verts, and we can even set up, start setting up some data. And so, all right, well, we've got our protein information, and we've got our XYZ coordinates. This is essentially just the same as the data we're dealing with in protein biology. So, how do we take from the protein data that we deal with into Blender and have a spreadsheet like this? Where in the Blender spreadsheet editor, we can see one amino acid, we've got one atom, we've got a column for your element, and you've got your XYZ positions, and all of your protein info. So this is how do we get there? I've written an add-on for this called molecular nodes. It's based on a couple of very good Python packages, and obviously geometry nodes. But we need to, okay, we have this add-on, how do we start dealing with this data? Now, the structure for every single protein that humanity has ever solved and that we know of, so your coronavirus spike protein, polio virus, anything that you sort of want is in this one database called the protein data bank, freely accessible to absolutely everyone, one of science's great achievements. And if we want to say search for something like polio virus to see what it looks like, we can search, we get a little four-letter code, we copy that, we go into Blender, use the add-on, we download the protein data into geometry nodes, and now you basically have one vertices per atom, and you have one vertices per atom, and you're ready to do anything you can do inside of geometry nodes with the atoms of a virus. And so you can see two times sped up, but in about a minute or two, we've already got polio virus inside of Blender, every single atom ready to be rendered, a bit of depth of field, make things look nice. And just like that, we've got every atom, or we can jump over, make a simplified representation with the single constant polymer. So that's what we can do with it. Now, what's happening under the hood, really? We've got our little add-on over on the side. Importantly, it's not in the end panel, which I know a few people don't like, but we import our data, so we get that code, we paste it in, and we download the data. And if we just look at what the model is, so we're bypassing all of the nodes, we just have a bunch of vertices. But importantly, we have another collection called properties, and so at the moment, there's no great way that I can figure out to store data inside of geometry nodes that isn't generated via geometry nodes. And so the way I've gotten around this is that you just have your vertices, but once it goes through this setup node, you set up all of the nodes, and you have all of the nodes in the information, so your elements, your amino acids, your structures, et cetera. And so the way that data is actually stored is inside a whole bunch of properties models. And so for each atom in your protein, you have a corresponding atom in each of these models, and inside their XYZ positions, you store your data. So what element it is, what protein it's a part of, you can store that inside of numerical numbers in your XYZ positions. And so using just a whole bunch of transfer attribute nodes, you can take the data stored in one of those models and bring it into the model you want, and just like that, you've got stored data inside of Blender that is available inside of geometry nodes. This is freely available on my GitHub. Please have a play around with it, please buy me a coffee also. And I also have a YouTube tutorial series just going through, it's mostly aimed currently at other scientists, but 3D people I'm sure you'll get a hang of what's going on about how to use all the data from the protein data bank. Now, you don't just get a static structure. In science, we like to do things called molecular dynamic simulations, where we take a protein, like we see up on the screen, and we put it in a supercomputer, add all the water, all this sort of stuff, and simulate over weeks and weeks using, you know, a very, very, very expensive computer and simulate what is sort of happening. So we've got our protein, our lipids, these are salt ions, and then we've got all of our water there. And so we've got a nice little simulation of what a protein might be doing. And we can simulate it. And now this isn't simulating inside of Blender, this is again weeks worth of simulations on a supercomputer, but unprecedented to when I started developing this add-on is you can actually import this data directly into Blender. This is getting processed via geometry nodes, and is now available for playback, and now available for fancy lighting. You can do any sort of animation you can think of using geometry nodes, so proximity, et cetera. And so what are we actually looking at? We've got a protein up there. Let's slice the protein in half. This is a sodium potassium ion channel. That means this is how salt gets in and out of your cells. So the mid part, the white is the cell membrane, and this protein in the middle is a channel. And you can see some potassium that's trying to make its way across the channel. If you look just towards the top, you'll see one little potassium ion that should, whoop, off into the water. And so this is the results of weeks worth of computation that can now be rendered with nice fancy depth of field, nice fancy lighting, and hopefully be communicated to the general public, your colleagues, et cetera. Now, something that we're all quite familiar with is COVID. These spikes are again the result of molecular dynamic simulations. So to the best of our knowledge, this is how they behave. The membrane, so the bubble that they're all sort of sitting on, that is generated purely through geometry nodes. So it's not the result of a simulation, but it's relatively accurate. And so we've got our spikes bouncing and, of course, because it's in geometry nodes, we can cut into it. We can see RNA that's generated again purely through geometry nodes from great curves and instancing and all that sort of fun stuff. And so this scene lives entirely within geometry nodes, plays back relatively real time, actually, even inside something like cycles. And we've got our nice little simulation of COVID. And so, well, let's look at something like polio virus, which we had earlier. And so we've got all of our atoms from this enormous structure. This isn't a simulation. So they're moving these, sorry, the movements of these atoms are based purely inside of geometry nodes. Both myself and a number of other people inside of molecular graphics were very excited when I got this working. But using the information that Blender now understands, so it understands this constant backbone which we're highlighting in red and the side chains and the atoms and how they should behave, we can procedurally create animations of how these amino acids are moving about on the surface of this virus and so we can walk through like we can see here. And so, again, these animations aren't simulations, but they're relatively close and rather than weeks worth of computation, again, this runs basically real time using geometry nodes. A massive shout out to Johnny Matthews for the accumulate field node. This is basically hundreds of accumulate field nodes all running back to back. And so, let's go back to our flagella motor and so we can import this now via geometry nodes instead of via the classic export. We're dealing with only, you know, 800 megs worth of RAM versus gigabytes and gigabytes does it in 30 seconds instead of 40 minutes and importantly you maintain your connection to the underlying data so you can create more and more animations that are very ridiculous things like this where you just, you know, have dozens I think in this theme we have around 50 million atoms which are all being animated on the fly by geometry nodes and you can see you have your massive structure all moving but you can get close, you can zoom in and you can see each individual amino acid going about its day, you know, doing its thing as we would expect. So, to sort of finish off we can basically have a we're just going to go through a few sort of massive structures that are all in the protein data bank so this is clathrin, it's sort of a cage that traps things this is hepatitis B so this is what hepatitis B I'm going to say quote-unquote looks like I'll get into that in a second and we have polyovirus which I've already sort of looked at we're going to have a few more massive structures come through so this is the flagella motor and again this is all running real-time inside of geometry nodes all based on real scientific data this is the human epstein bar virus portal complex if these structures are looking ridiculous to you I love this one this is basically a grappling hook for bacteria they shoot out the top and grab on and pull along if these structures look ridiculous to you and really really cool you should study structural biology because it's all ridiculous it's all really really cool and on the cellular level this is all happening all of the time this is how it all works and so there's one point I'll sort of finish on well there's one point I'll cover before wrapping up and that is that while I say this is what it quote-unquote looks like all of the colors here are fake the positions of the atoms are real and we know and we're confident in that but everything here is too small for color to really be meaningful it does exist it's not that color doesn't exist at this scale it's just that it's not meaningful at this scale and so the color and the shadows is all artistic interpretation but ultimately all of this data is real and based on real underlying experiments and so you can see some of the ludicrous complexity that's happening inside of biology so I'll come in on one virus to finish off a massive thanks to again everyone who got me here financially and I encourage you everyone here while if you're sort of interested again this all of this data is publicly available on the protein data bank it's on my github feel free to download it please tweet at me have a look at the YouTube channel to see how you sort of play with it but like there's a massive amount of weird symmetrical data that's all from the molecular scale that you're not really aware of and it's all now available inside of geometry nodes to animate to include in weird artworks and go for your life so yeah, thank you all very much