README

Molecular Nodes 🧬🍝💻

Lint Build Docs CodSpeed

Blender Extensions downloads GitHub release GitHub downloads PyPI PyPI downloads

License DOI Powered by Biotite Powered by MDAnalysis GitHub stars

Join the scientific visualisation in Blender discord. Support me on Patreon with ongoing donations Support me by buying a couple of coffees as a one-off donation

Molecular Nodes imports structural biology data into Blender and styles, animates and renders it. It reads static structures from the PDB, AlphaFold and local files, molecular dynamics topologies and trajectories, oxDNA simulations, electron microscopy density maps, and .star and CellPack ensembles. Styles are Geometry Nodes trees, so every part of a style can be edited, combined and animated with the rest of Blender.

Molecular Nodes works as a Blender extension through the GUI, and as a Python package that scripts Blender for notebooks and pipelines.

Procedural animations Styles MD trajectories EM density maps

Installation

Blender extension

In Blender 5.2, open Edit > Preferences > Get Extensions, search for Molecular Nodes and click Install. The extension is also on the Blender Extensions platform and on GitHub releases, to install from disk. The installation page has step-by-step instructions.

Python package

pip install "molecularnodes[bpy]"

molecularnodes requires Python 3.13, the version Blender 5.2 uses. bpy (Blender as a Python module) is an optional dependency, so installing inside Blender doesn’t install a second copy of Blender; the [bpy] extra installs it for use outside Blender.

Supported Blender versions

The version number follows Blender: Molecular Nodes 520.x is built for Blender 5.2. Each Blender version below runs the test suite on Linux, macOS and Windows, both with the bpy module and inside an installed Blender. Unreleased Blender versions are tested with their daily builds.

Blender Molecular Nodes Tests
5.2 520.x Blender 5.2
5.3 (beta) tested on main Blender 5.3
5.4 (alpha) tested on main Blender 5.4

Each night, Test Daily Build installs the built extension into the latest Blender daily build and runs the tests there.

Releases for earlier Blender versions remain on GitHub releases and the Blender Extensions platform.

Using the GUI

After installing the extension, add structures from the 3D Viewport’s Add > Molecular Nodes menu: fetch from the PDB or AlphaFold, or import a local file, an MD trajectory, an oxDNA simulation, a density map, a .star file or a CellPack model. The Molecular Nodes tab of the 3D Viewport sidebar (N) lists the imported entities and their styles, and holds the trajectory, DSSP and annotation settings.

Each style is a node group in the object’s Geometry Nodes tree. The node documentation describes every node, and the tutorials walk through importing, selections, trajectories and cryo-EM data.

Using the Python API

The Python API creates the same objects and node trees as the GUI. Create a Canvas first, which sets up the scene, then load, style and render molecules:

import molecularnodes as mn

canvas = mn.Canvas(mn.scene.Cycles(samples=32), resolution=(720, 480))

mol = mn.Molecule.fetch("4ozs")
mol.add_style("cartoon", material=mn.material.AmbientOcclusion())
mol.add_style("ball_and_stick", selection="resname ARG")
canvas.look_at(mol)
canvas.snapshot("4ozs.png")

Selections are MDAnalysis selection strings. MD topologies and trajectories load into the same Molecule, either from files or from an existing MDAnalysis.Universe, and the scene frame steps through the trajectory:

import MDAnalysis as mda

u = mda.Universe("topology.psf", "trajectory.dcd")
traj = mn.Molecule(u)  # or mn.Molecule.load("topology.psf", "trajectory.dcd")
traj.add_style("cartoon")
canvas.look_at(traj)
canvas.animation("trajectory.mp4", frame_start=1, frame_end=50)

The Python API documentation covers the canvas, styles, materials, trajectories and rendering, with rendered examples. The API is experimental and may change between versions.

Examples

The examples page collects videos and projects made with Molecular Nodes, and the citations page lists academic papers that use it.

Clockwork Veritasium BCON22 talk
Clockwork: Your Unstoppable Copy Machine Veritasium: What if all the world's biggest problems have the same solution? Molecular Nodes talk at the Blender Conference 2022

Contributing

Open an issue to discuss a new feature, or comment on an existing issue to help fix it. CONTRIBUTING.md explains how the project is structured and how to build, test and document changes, and AI_POLICY.md sets out how AI tools may be used in contributions.

Citation

There is no paper on Molecular Nodes yet. To cite it in academic work, use the Zenodo record.

Thanks

Thanks to the Blender Foundation, which develops Blender as free and open source software, and to the developers of the Python packages Molecular Nodes builds on, in particular Biotite and MDAnalysis.

The Blender logo.

评论

暂无评论