Avogadro 1.103#

6 February 2026

🌟 Highlights (tldr)#

  • This release is intended as a final beta before a 2.0 stable release

  • Switch to use OpenGL 4.0 core profile for improved rendering speed

  • Volumetric rendering style for surfaces (orbitals, electron density, spin density)

  • Add peptide builder

  • Add keyboard shortcuts for functional groups and ligands to template tool @ghutchis

  • Display both alpha / beta orbitals in the orbital window

  • Performance optimizations for basis set calculations

  • Improved heuristics for opening CIF and crystallographic files

  • Update conformer plots for RMSD and energy

  • Support for isotope specification for atoms

  • Improved LAMMPS and Turbomole support

  • A pile of bug fixes, updated language translations, and more

✨ Features#

  • Typeset the Hall symbols using HTML @ghutchis (#2572)

  • Tweak the “Fill Unit Cell” and add “Fill Translational Cell” for DFT packages @ghutchis (#2571)

  • Add a warning if attempting to fill a primitive cell @ghutchis (#2569)

  • Allow export to the same filename (and format) from the warning dialog @ghutchis (#714)

  • Re-enable JSON-RPC support @ghutchis (#699)

  • Updated AutoSave Feature @ghutchis (#668)

  • Add an “export graphics” toolbar button @ghutchis (#681)

  • Read molfile / sdf conformers @ghutchis (#2563)

  • Add support for reading elements from VASP OUTCAR formats @ghutchis (#2567)

  • Volumetric rendering support @ghutchis (#2559)

  • Update arrow rendering for force and dipoles @ghutchis (#2545)

  • Support pdb trajectories @ghutchis (#2560)

  • Migrate to OpenGL 4.0 core profile @ghutchis (#2548)

  • Orbital table - add “occupation” arrows instead of status @ghutchis (#2542)

  • Improved Lammps import @e-kwsm (#2504)

  • feat(CrystalTools): enable rotateToStandardOrientation to convert cell to right-handed system @e-kwsm (#2492)

  • Set a better default zoom for orthographic projection @ghutchis (#2480)

  • Change shift modifier to twist, not twist-and-zoom @ghutchis (#2476)

  • Tweak edit and template tool to rotate, etc. with modifier keys @ghutchis (#2475)

  • Add imported spectra, vibrational and magnetic CD support to spectra dialog @ghutchis (#2444)

  • Add support for custom residue labels @ghutchis (#2424)

  • Put the axes back as a scene plugin / display type @ghutchis (#2423)

  • feat(Turbomol): output $isosub @e-kwsm (#2393)

  • fix(Turbomole): use $coord angs for read @e-kwsm (#2418)

  • Turbomole: support $periodic @e-kwsm (#2379)

  • Update Conformer plots for RMSD and Energy @ghutchis (#2382)

  • Add peptide builder @ghutchis (#2351)

  • Enable the XRD display from other programs (just return a spectra) @ghutchis (#2385)

  • Fixes to constraints dialog @jcerezochem (#2384)

🐛 Bug Fixes#

  • Fix formula computation with unit cells to account for edges and corners @ghutchis (#2587)

  • Use a looser criteria for detecting identical atoms with Fill Cell @ghutchis (#2578)

  • Added code to handle corrupted CJSON input (#2578)

  • Fix incorrect layer info in CJSON @ghutchis (#2568)

  • During animation and vibrations, don’t update properties frequently @ghutchis (#2536)

  • Ensure end frame value is properly set in playertool @ghutchis (#2539)

  • Add a guard against recursion for property tables @ghutchis (#2535)

  • Use LC_NUMERIC=C for AppImage run script @ghutchis (#2533)

  • Redraw the plot when changing spectra shift and offset @ghutchis (#2532)

  • Re-enable editing the molecule name, broken by #2523 @ghutchis (#2531)

  • Fix issues for interactive undo/redo crashes @ghutchis (#2524)

  • fix(Hdf5DataFormat): fix memory leak @e-kwsm (#2511)

  • Only request name updates when the dialog is open @ghutchis (#2523)

  • Fix a crash when deleting atoms from an imported molecule @ghutchis (#2513)

  • Fix crash when using the align tool and switching molecules @ghutchis (#2515)

  • Running commands with pixi would fail because asyncExecute was called @ghutchis (#2510)

  • Migrate the name code away from the model - hopefully less crash-prone @ghutchis (#2509)

  • For orthographic projection go back to frustrum planes @ghutchis (#2482)

  • Fix jump in light source from opaque to translucent @ghutchis (#2481)

  • If we encounter a 2D molfile use the Open Babel support @ghutchis (#2464)

  • Fix signal to display surfaces after generation @ghutchis (#2457)

  • Ignore some Open Babel formats for writing (e.g., png, nul) @ghutchis (#2455)

  • Validate colors with the color button before use (e.g., cancel) @ghutchis (#2454)

  • Validate property edits to make sure inadvertent edits set to zero @ghutchis (#2450)

  • Fix CML support with HDF5 data files @ghutchis (#2446)

  • Fix NWChem geometry parsing @ghutchis (#2439)

  • Adjust the N-H dihedral angle to work better in folded states @ghutchis (#2438)

  • Ensure we can read NWChem files with lowercase element symbols @ghutchis (#2434)

  • Fix import of large (>1000 atom) MOPAC aux files @ghutchis (#2426)

  • Fix off-by-one MO rendering bug with MOPAC orbitals @ghutchis (#2422)

  • Adjust surface generation to keep winding consistent + and - mesh @ghutchis (#2420)

  • Fixed color gradient for labeling by atomic index @brockdyer03 (#2387)

  • Fix reading energies in xyz files from crest @ghutchis (#2381)

  • Check for a working python in the pixi env @ghutchis (#2377)

  • Reject invalid bond orders in cjson @ghutchis (#2374)

  • Fix reading Molden files from ORCA with spherical basis @ghutchis (#2373)

  • Fix reading XYZ files with no ending newline @ghutchis (#2371)

  • Fix numeric issue with centroid and center-of-mass @ghutchis (#2369)

  • If pixi is available, but not a default manifest, try python @ghutchis (#2358)

  • Fix a crash with reading ORCA when no MO coefficients are found @ghutchis (#2355)

  • Fix zoom with orthographic projection - make sure to resetCamera @ghutchis (#688)

  • Fix checking for display types - also check against names @ghutchis (#682)

🚀 Performance Improvements#

  • Optimizations for basis set calculations @ghutchis (#2540)

🧰 Maintenance#

  • Fix USE_PLOTTER to allow builds to disable JKQtPlotter and charts

  • Try copying Qt6 DLLs seemingly left out of Windows installer @ghutchis (#2570)

  • Add [[nodiscard]] to all read and write methods @ghutchis (#2566)

  • Some packaging fixes @ghutchis (#2551)

  • Make sure to include Qt6 icu.dll in Windows builds @ghutchis (#2544)

  • Work to speed up Windows builds @ghutchis (#2518)

  • For now, disable builds with Windows ARM @ghutchis (#2516)

  • fix: correct broken links @antonkesy (#2503)

  • fix: correct supportedOperations @e-kwsm (#2489)

  • Use –as-is flag for pixi run to avoid environment updates @harikrishna-au (#2472)

  • fix: do not discard return value of QFile::open() @e-kwsm (#2448)

  • fix: add missed header inclusion @e-kwsm (#2447)

  • test: refactor UffGradientTest @e-kwsm (#2494)

  • refactor: tweak usage of std::max and std::min @e-kwsm (#2502)

  • fix(UFF): clamp acos argument to avoid NaN @e-kwsm (#2499)

  • build(python)!: change install destination @e-kwsm (#2465)

  • Update installation instructions and links in README @ghutchis (#2413)

  • fix: replace deprecated eigen method @e-kwsm (#2409)

  • build!: drop Qt5 @e-kwsm (#2366)

  • fix: use nullptr instead of 0/NULL @e-kwsm (#2365)

  • AvogadroLibsConfig.cmake: Find JKQTPlotter6 @heirecka (#2357)

  • Add a cache for vcpkg to speed Windows rebuilds @ghutchis (#2363)

  • Fix Mac volume names and escape Windows paths @ghutchis (#2362)

  • Fix release tag reference in upload action @ghutchis (#2361)

  • Add a “continuous” release (prelease) and upload builds @ghutchis (#2360)

  • Fix path to entitlemenets for Mac codesign @ghutchis (#2349)

  • chore: fix HTML link @e-kwsm (#708)

📚 Translations#

  • Mark the homepage URL as non-translatable @ghutchis (#710)

  • Rename View Configuration dock to better reflect its function @matterhorn103 (#482)

  • Move close contact and noncovalent i18n to cpp files @ghutchis (#2558)

  • Automated translation updates @github-actions[bot] (#2526)

  • chore: translate Qt messages @e-kwsm (#2491)

Credits#

Thanks to many contributors, including: @NorwayFun, @andibing, @antonkesy, @arifpedia, @brockdyer03, @dependabot[bot], @e-kwsm, @ghutchis, @harikrishna-au, @heirecka, @jcerezochem, @maksim2005UKR, @milotype, @weblate, Alexandre R Soares, Eisuke Kawashima, Frank Hoffmann, Javier Cerezo, Remus-Gabriel Chelu, @DJ-Aswin, @andibing, @arifpedia, @matterhorn103, @oersen, @vinayakjeet, David D., Weblate Translation Memory, dependabot[bot] and github-actions[bot]