
From PDB to UNREAL - our Protein Design Workflow
STEP 1 | THE PROTEIN DATA BANK
on the Protein Data Bank, you can find scientific data about over 1.2 million proteins. Structural biologists from all over the world share their work there as PDB files. Those files contain a line of text about every single atom in the specific molecule’s structure. It is truly amazing to watch those amounts of data and imagine the incredible amount of work needed to explore those figures.
STEP 2 | BLENDER & MOLECULAR NODES
How do deal now with such data?
In our research we found this fellow Australian, Brady Johnston, who wrote Molecular Nodes, an AddOn for Blender which does exactly that. The discovery of molecular nodes was the basic prerequisite for us to implement our project in a scientifically accurate manner. A thousand thanks to Brady Johnston for this tool, which he shares with the community - only asking for coffee.
Molecular Nodes let you import PDB data into an artist friendly and understandable format, which is blenders Geometry nodes. Additionaly, the addon has a lot of great features to process the data in an artistic way, as coloring, different geometry models, etc… As intermediate products, we can always create beautyful renderings out of this step.
Biological Assemblies
Molecular Nodes also store data about geometrical assembly of proteins. Like this amazingly beautiful Clathrin D6 structure.
STEP 3 | DECIMATE GEOMETRY
Molecular Nodes is dealing well with decimating the amount of pure Atomic data, for rendering Proteins in Blender. For our needs of realtime rendering in VR, we have to go further in terms of decimating and optimizing Geometry.
after coloring and shaping with Molecular Nodes, we reducing the structure into a single element, to go further the traditional game asset workflow.
Traditional Game Asset Workflow
That means baking color information into a map , and exporting a high and a low poly mesh for texturing in Substance Painter. With Low Poly Version we exactly mean intermediate - After Texturing we will decimate further for usage in game.
STEP 4 | TEXTURING & LODs
In Substance Painter we are baking normals from high to low and add some extra Layers which we already managed to pack into our own Smart Material. Nothing special about this Process. Only the baked normal and color maps, resulting from the decimation, are not always perfect, so we adjust it to our desired quality by painting.
Why not using Nanite?
This is a great question, and we ask ourselves this constantly as well. Currently, we haven't found a proper way to utilize Nanite within a VR world. We remain hopeful that we will discover a suitable solution. For this purpose we keep a Nanite version ready to go, so we can switch over when we find the right approach.
STEP 5 | IMPORT TO ENGINE - PCG
Then we import the static Mesh into Unreal Engine. We are checking LOD Settings and - if needed - Collisions.
Reassembling with PCG
Then, we reconstruct the biological structure we captured in Molecular Nodes using PCG graphs (Procedural Content Generation). If you're familiar with Geometry Nodes, this system is pretty easy to pick up, and it's incredibly powerful, especially for our needs. PCG creates hierarchical instanced static meshes, which do a fantastic job rendering the huge number of elements we have in the cell.
STEP 6 | IMPLEMENTING THE STRUCTURES INTO OUR STORYTELLING
Ultimately, we employ PCG or Niagara to distribute proteins within the cellular environment, imbuing them with the functionalities required for our narrative. Clathrin, a protein with diverse roles within the cytoskeleton system, is utilized for intracellular transport within its cage. In this context, we leverage it as a nodal point for Actin filaments, which contribute to the cell's structural integrity.
The usage of different Unreal Engine Techniques
Here's how we use different Unreal Engine techniques in our Cytoskeleton Builder:
First, we use PCG to spread Clathrin around the outer membrane mesh.
Then, a Blueprint runs a sphere-tracing check to find connections on the membrane surface that don't bump into other cell parts.
Next, it draws splines between those connection points.
After that, another PCG graph puts Actin filaments along the splines.
This tool lets us redraw the cytoskeleton whenever we move things around inside the cell. It creates a pretty dense mesh (though not as dense as in nature), but it won't get in the way of other organelles.
Developing and Sharing
This is just one of the workflows we've come up with, and we have a few more. If we get the chance, we'd love to make some video tutorials about them.
We think other creators might find these topics useful, since there's not a lot of information out there on using Unreal Engine for microbiological visualization. We definitely plan to share our content with the community. We really want to give back, because we built this project on the work of others too.
We believe that sharing knowledge is one of the coolest things about the digital age we are living in.
Johann Steinegger, 3D Artist