|
Well, it happened. After endless release candidates, we've finally made it to v0.1.0. What's inside: GPU-accelerated rendering with WebGPU shaders, shadows, and goodies like silhouette edges and a special soft-light mode Core operations run up to 1000x faster than the original PyMOL. Surface generation that used to send you on a coffee run now finishes the moment you hit the button Full PyMOL selection algebra support — 95+ keywords, boolean logic, distance/expansion operators, slash-macros Distance, angle, and dihedral measurements, atom labels — everything you need for structural analysis Python API — from pymol_rs import cmd and you're right at home PDB, mmCIF, BinaryCIF, SDF/MOL, MOL2, XYZ, GRO — read and write, automatic format detection, transparent gzip decompression Scenes, movies, ray tracing — all on the GPU Kabsch superposition, CE alignment, RMSD, DSS, symmetry across all 230 space groups Out of PyMOL's 798 original settings, some number of them actually work. Nobody knows exactly how many, but it's definitely in the hundreds. Plus we've added new settings that the original never had — like per-chain surface generation 13 independent crates — if you're writing Rust, you can use just the selection parser, the file readers, or the full GUI. No monolith |
While the Rust code is cleaned up and easier to read, I can see that it preserves similar data flow, uses similar variable names, and of course identical constants.
For example, this is PyMol layer3/Selector.cpp:
and this is pymol-rs's pymol-mol/src/dss.rs That's close enough that I really think you should include the PyMol license info, before Schrödinger's lawyers notice.