v0.2.7 · BSD 3-Clause

Molecular visualization, rewritten

A complete Rust reimplementation of PyMOL. GPU-accelerated via WebGPU. Memory-safe. Same commands you already know — entirely new engine underneath.

Molecular complex rendered in PyMOL-RS — cartoon representation with transparent surface, colored by chain
99%
PyMOL command compatible
×1000
Surface generation speedup
WebGPU
Desktop & browser first-class citizen

One download, ready in seconds. Drag to Applications and you're visualizing. Python plugin system works out of the box — no extra setup needed.

macOS may block the app on first launch. To fix, run: xattr -cr /Applications/PyMOL-RS.app

One structure, many stories

Every representation is GPU-accelerated with custom shaders. No legacy OpenGL — pure WebGPU pipeline.

1FSD protein in cartoon representation
Cartoon
Secondary structure ribbons — helices, sheets with arrow taper, loops as smooth tubes
1FSD protein in sticks representation
Sticks
Cylinder bonds with sphere caps, double and aromatic bond rendering
1FSD protein in surface representation
Surface
Molecular surfaces via parallelized marching cubes — SAS, SES, VdW
1FSD protein in spheres representation
Spheres
Van der Waals spheres via GPU ray-sphere impostor shading
Built for the next 25 years

Not a wrapper. Not a port. A ground-up reimplementation in a language designed for performance and safety.

WebGPU rendering
Modern wgpu backend with GPU impostor shaders for spheres and cylinders, multi-directional shadow mapping, and multi-light Phong shading.
🔒
Memory-safe by design
Rust's ownership model guarantees correctness at compile time. No buffer overflows, no segfaults, no use-after-free.
🐍
Python API via PyO3
The familiar cmd.* interface, custom commands via cmd.extend(), script execution. Drop-in compatibility for existing workflows.
📦
Modular crates
Independent crates for every component. Use just the selection parser, or the file readers, or the full GUI. No monolith.
🗂️
Format support
PDB, mmCIF, bCIF, MOL2, SDF, XYZ, GRO — and PyMOL session files (.pse). Load structures from any source.
🎯
Full selection language
Boolean algebra, distance operators, expansion operators, numeric comparisons, slash-macro syntax. Full PyMOL compatibility.
🧩
Plugin system
Dynamic native Rust plugins (dylib/cdylib), IPC server, and embedded Python via PyO3. Extend the viewer your way.
🔬
Structural analysis
Kabsch alignment, CE structural alignment, symmetry detection, SVD decomposition — built-in, not bolted on.
🖥️
Cross-platform
macOS, Linux, Windows. Single cargo build. egui-based GUI that looks native everywhere.
pymol-rs
# Load a structure from PDB
PyMOL-RS> fetch 1alk

# Show cartoon and color by chain
PyMOL-RS> show cartoon
PyMOL-RS> color chain

# Add transparent surface
PyMOL-RS> show surface
PyMOL-RS> set transparency, 0.7

# Select active site residues
PyMOL-RS> select site, byres near_to 5 of resn ZN
PyMOL-RS> show sticks, site
PyMOL-RS> set stick_color, atomic, site

# Save the session
PyMOL-RS> save my_session.prs

Feels like home

If you know PyMOL, you know PyMOL-RS. The same command syntax, the same selection algebra, the same muscle memory. We reimplemented the language, not just the renderer.

  • Full PyMOL command set — load, fetch, show, hide, color, select, set, save
  • Selection algebra with boolean, distance, and expansion operators
  • Script execution (.pml files)
  • Python scripting via PyO3
  • Session files (.prs native, .pse import)

Make it yours

Invent your own commands. Change interface. Read and write any file format. Automate entire workflows — or just play at work.

  • Create custom commands that feel native
  • Use any scripting language — Python, Lua, or maybe your own
  • Read and write files in any format you need
  • Add your own GUI panels and controls
  • Connect to external tools and pipelines
  • Yes, we already ran DOOM in it
DOOM running inside PyMOL-RS as a plugin demo
Skripkin mode

A unique lighting preset inspired by structural bioinformatics aesthetics. Multi-directional soft illumination that brings out secondary structure detail.

Modular by design

Every component is an independent crate. Use the selection parser in your pipeline, the renderer in your app, or the full GUI.

Application layer
pymol-gui
GUI (egui)
pymol-cmd
Command parser & executor
pymol-plugin
Plugin system
pymol-framework
Messaging & core components
Rendering layer
pymol-scene
Viewer, camera, scene graph
pymol-render
wgpu rendering engine
Domain layer
pymol-mol
Core data: Atom, Bond, Molecule
pymol-io
Format parsers & writers
pymol-session
Sessions save & load
pymol-select
Selection language
Foundation
pymol-settings
Configuration system
pymol-color
Colors, schemes, ramps
pymol-algos
Molecular algorithms
Plugins
raytracer
GPU ray tracing
toolbar
Quick-action buttons
python
Embedded Python scripting
ipc
Unix socket control
Warren Lyford DeLano
1972–2009
PyMOL-RS exists because Warren DeLano created PyMOL — and made it open-source at a time when publication-quality molecular visualization was largely limited to expensive commercial tools. That decision gave an entire generation of structural biologists a tool they could freely use, modify, and learn from. This project carries that spirit forward: a modern codebase, open by default, built with respect for the working scientist. We owe a great deal to his work.

Ready to try it?

PyMOL-RS is free, open-source, and ready for your structures.

By the way — you're already using it. Scroll back up to the Skripkin example and try to rotate or zoom. That's not an image, it's the web version of PyMOL-RS running live in your browser.

Get PyMOL-RS Docs — Coming soon