Skip to content

ProteinMotion 0.13.0 — Studio rendering and readable authoring

Choose a tag to compare

@pdpppd pdpppd released this 29 Sep 02:07
· 9 commits to main since this release

ProteinMotion 0.13.0 adds the Studio renderer alongside native GPU rendering and Blender EEVEE, plus a more readable animation API.

Studio rendering

  • Four lighting presets (studio, soft, dramatic, flat) and three materials (rough, medium, glossy).
  • Classic helix bands, beta-sheet arrows, and round loops; the original Studio cartoon style remains available.
  • VDW, solvent-accessible, and solvent-excluded surfaces with shared radius, probe, and grid controls. SES is a voxel approximation.
  • Cutaways and fixed depth tunnels with 5 Å rings and brighter marks every 10 Å.
  • Luminance-based grain, bloom, and halation, controlled individually or through clean, subtle, film, and dreamy recipes.
  • Scene-level renderer/look settings shared by stills, movie export, CLI commands, and Studio interactive preview.

Animation and authoring

Actual cartoon, ribbon, or ball-and-stick geometry can thread into view with eased motion. The entrance is illustrative, not a folding simulation.

Reusable molecular/text styles, fluent animation chains, independent action durations and delays, selection filters and set operations, and camera composition reduce setup code. Ordinary setters are recorded at timeline boundaries, fades restore prior opacity, and backward seeking remains deterministic.

Measurement/trajectory improvements include shared ruler/plot anchors, physical timestamps, and residue-based morph matching. Interaction diagnostics, selection-to-selection networks, ligand/ion labels, wrapped captions, and density attachment controls are also included.

Upgrade notes

  • Thread and Unthread now default to actual geometry. Use mode="wire" for the earlier glowing-wire animation. Surface threading raises an error.
  • SetOpacity(protein, value) now changes global object opacity. Use scope="residues" for the previous per-atom/residue behavior.
  • Distance plots now default to backbone anchors, matching distance rulers. Use anchor="centroid" for the previous plot behavior.

The native renderer remains the default. Blender 4.5+ is still required separately for EEVEE.

Install

python -m pip install --upgrade proteinmotion==0.13.0

For interactive preview and trajectory readers:

python -m pip install --upgrade 'proteinmotion[preview,md]==0.13.0'

Studio guide · Authoring and migration guide · Rendered examples

Validation

A clean source archive and wheel were checked with strict distribution metadata validation and installed into a fresh Python 3.12 environment outside the checkout. Native and Studio movies rendered and decoded successfully, and the installed package passed 284 tests, including native Metal GPU and Blender checks. Five NVIDIA encoder tests were skipped on the Apple M3 Max. Website build, type checks, and 129 exported pages passed verification.

The PyPI publishing workflow additionally checks wheel installation on Linux (Python 3.11–3.14), Windows, and macOS before upload.