Analytical scoring gradients
The scoring function exposes exact, differentiable gradients rather than finite-difference estimates — the foundation for fast local optimization and the differentiable v2 roadmap.
Open source · Rust-native · MIT licensed
A Rust-native classical docking engine targeting AutoDock Vina parity — with
differentiable scoring, a unified wgpu GPU path, Python and JS/TS
bindings, and an in-browser WebAssembly + WebGPU demo where you draw a molecule
and dock it without installing anything or sending your structures anywhere.
Everything in the browser demo runs client-side. Your drawings and uploads never leave your machine.
Torsor is an open-source molecular docking engine written in Rust. It aims for
parity with the classical AutoDock Vina scoring function and Monte-Carlo search,
while adding capabilities that the established C++ tools do not offer in one
package: analytical scoring gradients (differentiable scoring
rather than finite-difference approximations), GPU acceleration
through a single wgpu compute path that runs on Vulkan, Metal,
DirectX 12 and WebGPU, and first-class Python and JavaScript/TypeScript
bindings so the same engine drives a research notebook, a CLI, and a web
page.
The name fuses three ideas. Torsion angles are the rotatable bonds a docking search explores. The pose space of a rigid body is an SE(3)-torsor — a space that looks like the group of rigid-body motions but has no privileged origin, which is exactly how a docking pose behaves. And torsor-like structures appear in the equivariant neural networks that the v2 roadmap layers on top. Chemistry, geometry, and machine learning meeting in one word.
Every item below is an architectural capability or a documented design goal — not a benchmark claim. Measured numbers live in the repository's verification records, not on this page.
The scoring function exposes exact, differentiable gradients rather than finite-difference estimates — the foundation for fast local optimization and the differentiable v2 roadmap.
One compute codebase, cross-platform: Vulkan, Metal, DirectX 12 and WebGPU. The same kernels that run on a desktop GPU run in the browser.
Draw and dock entirely in the browser through WebAssembly and WebGPU — no install, no server round-trip, no account.
In the web demo all computation is client-side. Structures you draw or upload stay in your browser; there is no telemetry, no analytics, and no off-origin network egress.
The engine ships Python bindings (PyO3) and a JavaScript/TypeScript package so the same docking core drives notebooks, pipelines, and web pages.
PDB-to-PDBQT preparation in pure Rust — protonation- and disulfide-aware — with no dependency on external Meeko or OpenBabel processes.
A command-line interface that mirrors the AutoDock Vina workflow, so existing docking habits and scripts carry over.
Determinism is defined as a pinned tuple — engine version, GPU backend, driver, OS and CPU — so a run is replayable under a documented reproducibility envelope.
Sketch a ligand in the 2D editor — or paste a SMILES string.
The 2D structure is turned into a 3D conformer right in the browser.
Pick a receptor and an active-site box, then dock the ligand into the pocket.
Explore ranked poses, overlays, and interactions in the 3D viewer.
v1 is in active development. The engine, bindings, and browser demo are being built in the open; interfaces and capabilities are still evolving.
The v1 tool paper is in preparation. It is not yet submitted and not published — no peer-reviewed results are claimed here.
All first-party code is MIT licensed.
This page makes no performance or accuracy claims. Any docking-quality or speed number will be published with its full reproducibility envelope in the project's verification records once it is measured.
The browser demo needs no installation. Open it and start drawing.
Launch the docking app →The engine, bindings, and web app are open source. Clone the repository and build from source today; published packages will follow with the v1.0.0 release.
Source on GitHubThe intended distribution identifiers — available once v1.0.0 is released; until then, build from source:
torsor — planned for crates.iotorsor — planned for PyPI@torsor/core — planned for npm