Molecular Data¶
In a previous chapter, we used Geometry Nodes primarily for animation such as moving, rotating, and transforming objects over time. But Geometry Nodes is capable of much more than that: it can procedurally construct geometry itself, generating complex 3D objects on the fly from nothing more than raw data or a few simple parameters.
To see why this matters, consider a typical molecular visualization workflow. You want to render a protein in Blender, so you generate a 3D mesh in dedicated software such as PyMOL or ChimeraX, export it, and import it into Blender. This works, but the mesh is static, every time the molecule changes, you have to rebuild and reimport it from scratch.
Molecular Nodes¶
The plugin "Molecular Nodes" by Brady Johnston solves this issue. Rather than importing a mesh, it imports the raw PDB or mmCIF file, a lightweight description of every atom's position, type and other metadata. Geometry Nodes then procedurally builds the representation directly in Blender, whether ribbons, surfaces, or space-filling spheres. The geometry is created directly from the data.
This opens up possibilities that a static mesh never could, for example: (1) you can animate the icosahedral assembly of a virus, (2) simulate the thermal wiggling of atoms, or (3) visualize a protein folding and unfolding, highly suitable for more accurate scientific communication and education.
Here is an example visualisation of tomato bushy stunt virus done completely in Blender+Molecular Nodes. The protein chain is shown using the Ribbon Style, the three non-symmetry related chains are shown in different colors, and the side-chain atoms are displayed as spheres.

For a better overview of what else is possible, watch Brady Johnston's own showcase on YouTube.
Install and Imports¶
The add-on is hosted on the official Blender website. Just click "Get Add-on" and drag-and-drop the appearing field into Blender. We tested it with Blender 5.0 and it works.
Once installed, a new "Molecular Nodes" tab appears in the Properties panel (Scene section), with options for importing files — including directly from the Protein Data Bank. In the example below, we import 2tbv (Tomato Bushy Stunt Virus), select the Ribbon style, and let Molecular Nodes generate the icosahedral assembly automatically. Any of these settings can be changed later by editing the Node Graph.
![]() |
|---|
| Figure 2: Scene Setup |
Default Node Graph¶
The virus appears in the viewport. Select it and switch to the Geometry Nodes workspace to inspect the node tree generated by the import.
![]() |
|---|
| Figure 3: Default node graph |
This may look overwhelming at first — let's break it down:
- Input: The molecular geometry, with vertices as atoms and edges as bonds. Metadata such as B-factor is stored as vertex attributes.
- Output: The final geometry passed to the viewport.
- Set Color Assigns standard CPK colors to atoms. The carbon color is overridden by Color Named Attribute, which assigns a random color per chain using the
chain_idattribute. - Style Ribbon: Generates the ribbon representation of the protein backbone. This node can be swapped for any other style node included with Molecular Nodes.
- Join Geometry: Merges multiple geometry streams — useful when combining several styles, e.g. ribbon and ball-and-stick.
- Biological Assembly: The virus consists of 60 copies of the asymmetric unit. The transformation matrices are read from the PDB/mmCIF file and applied here.
assembly_idcan be changed to select a different assembly if multiple are available.
Molecular Styles¶
To change the representation, add a style node via Add → Molecular Nodes → Style and swap it in place of the existing one. Molecular Nodes ships with six styles (shown below). All styles are procedural — parameters such as sphere radius or ribbon thickness can be adjusted directly on the node.
![]() |
|---|
| Figure 4: Available styles in Molecular Nodes |
PyMOL versus ChimeraX versus Blender¶
At this point you may ask: if Blender with Molecular Nodes can import and render molecular, when should you still use dedicated software such as ChimeraX or PyMOL?
Although there is overlap, the tools are designed with different priorities in mind.
ChimeraX and PyMOL are specialised scientific applications. They are optimized for interactive exploration of structural/molecular data, rapid inspection of models and density maps, structural alignment, measurements, and the efficient production of large numbers of publication figures. Blender, in contrast, is a general-purpose 3D software used across film, design, simulation, and scientific visualization. Its focus is not scientific analysis but procedural modeling, advanced shading, animation, compositing, and scene building.
For molecular visualization, Blender has a clear role when the goal shifts toward high-quality visuals, outreach, storytelling, or animation. It is frequently used when presentation quality, lighting, and visual impact are the primary objectives rather than analytical depth.
We tried to make a table comparing the three softwares in different use-cases:
| Task | PyMOL | ChimeraX | Blender (+ Plug-Ins) |
|---|---|---|---|
| Quick inspection of a PDB file | Excellent | Excellent | Possible, but slower |
| High-quality static figures for papers | Good | Very good | Definitely possible, but more setup |
| 3D volume fitting and density inspection | Limited | Excellent | Not intended for this |
| Structure comparison and alignment | Excellent | Excellent | Not intended for this |
| Measurements and structural analysis | Excellent | Excellent | Not intended for this |
| Procedural animation | Limited | Limited | Excellent |
| Complex lighting and cinematic rendering | Limited | Limited | Excellent |
| Combining molecules with other 3D elements | Limited | Good | Excellent |
Below is a comparison of visualizations of Tomato Bushy Stunt Virus (PDB: 2TBV) in the three softwares, prepared to the best of our ability (which is clearly lowest for PyMOL...).
![]() |
|---|
| Figure 5: Molecular visualisation in three different softwares |
💻 Exercises¶
-
Load '2tbv' from the Protein Data Bank. Play around with the default node graph. Assign a custom color of your choice to each of the three chains. HINT: Check what is available in Add-->Molecular Nodes-->Color
-
Make use of the "selection" sockets and style one chain as a ribbon and the other chains as a surface.
-
Animate the wiggling of the side chain atoms. Hints:
- Use the node Add → Molecular Nodes → Animation → Res Wiggle
- Use the
#frameshort in the 'Animate' field to avoid having to define keyframes
-
Load your favourite protein from the PDB database using Molecular Nodes. Style it according to your taste. You can also load the corresponding 3D volume from the EMDB (if it is a cryo-EM structure) and superimpose it.



