Open source · Rust-native · MIT licensed

Torsor — molecular docking with analytical gradients, GPU acceleration, and a browser-native draw-and-dock experience.

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.

What is Torsor?

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.

Where the name comes from

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.

Key capabilities

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.

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.

GPU acceleration via wgpu

One compute codebase, cross-platform: Vulkan, Metal, DirectX 12 and WebGPU. The same kernels that run on a desktop GPU run in the browser.

Browser-native demo

Draw and dock entirely in the browser through WebAssembly and WebGPU — no install, no server round-trip, no account.

Privacy by default

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.

Python & JS/TS bindings

The engine ships Python bindings (PyO3) and a JavaScript/TypeScript package so the same docking core drives notebooks, pipelines, and web pages.

In-engine receptor prep

PDB-to-PDBQT preparation in pure Rust — protonation- and disulfide-aware — with no dependency on external Meeko or OpenBabel processes.

Vina-compatible CLI

A command-line interface that mirrors the AutoDock Vina workflow, so existing docking habits and scripts carry over.

Reproducibility as a contract

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.

How the browser demo works

  1. 1

    Draw a molecule

    Sketch a ligand in the 2D editor — or paste a SMILES string.

  2. 2

    Generate a 3D conformer

    The 2D structure is turned into a 3D conformer right in the browser.

  3. 3

    Dock against a receptor

    Pick a receptor and an active-site box, then dock the ligand into the pocket.

  4. 4

    Inspect the poses

    Explore ranked poses, overlays, and interactions in the 3D viewer.

Open the docking app →

Project status

In development

v1 is in active development. The engine, bindings, and browser demo are being built in the open; interfaces and capabilities are still evolving.

Paper

The v1 tool paper is in preparation. It is not yet submitted and not published — no peer-reviewed results are claimed here.

License

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.

Getting started

Build from source

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 GitHub

Packages (coming with v1.0.0)

The intended distribution identifiers — available once v1.0.0 is released; until then, build from source:

  • Rust crate torsor — planned for crates.io
  • Python package torsor — planned for PyPI
  • npm package @torsor/core — planned for npm