Skip to content

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.

Figure 1: Ribbon style rendering of Tomato Bushy Stunt Virus

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:

  1. Input: The molecular geometry, with vertices as atoms and edges as bonds. Metadata such as B-factor is stored as vertex attributes.
  2. Output: The final geometry passed to the viewport.
  3. 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_id attribute.
  4. Style Ribbon: Generates the ribbon representation of the protein backbone. This node can be swapped for any other style node included with Molecular Nodes.
  5. Join Geometry: Merges multiple geometry streams — useful when combining several styles, e.g. ribbon and ball-and-stick.
  6. 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_id can 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

  1. 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

  2. Make use of the "selection" sockets and style one chain as a ribbon and the other chains as a surface.

  3. Animate the wiggling of the side chain atoms. Hints:

    • Use the node Add → Molecular Nodes → Animation → Res Wiggle
    • Use the #frame short in the 'Animate' field to avoid having to define keyframes
  4. 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.


Last update: 04 March 2026 16:05:48