Avogadro 2.0.0#
1 April 2026
Avogadro v2 was designed for fast modern rendering and improved stability. It is a platform to make it easy to build the next generation of molecular and materials visualization and editing tools. If you haven’t used an Avogadro2 beta (1.95 through 1.103) you will find many new features, performance improvements and changes.
🌟 Highlights (tldr)#
New plugin system will load menu commands, input generators, file formats, energy and electrostatic models, including installation of any required libraries and tools using
pixion Mac and Windows. (Highly recommended on Linux too)New plugin install window and index, including over 20 plugins (and growing)
Includes a variety of ML potentials, charge assignment using AM1-BCC and ABCG2, building nanotubes and surface slabs, generating disordered ice unit cells, and many more.
Easy to build and customize with Python - link to a wide variety of packages
Faster geometry optimizations ~50% faster on all models, and up to 5-10x faster on large molecules using UFF.
Added a faster protocol for using external energy models, including ML potentials, XTB, and more.
Added a simple molecular dynamics mode to the AutoOpt tool, including with energy models.
Improved ORCA input generator, including syntax highlighting.
✨ Features#
Add keyboard shortcuts for next file (
Ctrl+Tab) and previous file (Ctrl+Shift+Tab) @brockdyer03 (#795)Add keyboard shortcuts for going forward / backwards in animations @ghutchis (#2760)
If the molecule changes (e.g., plugin) render a new cube @ghutchis (#2731)
Allow user-options metadata to be “dynamic” and call the script @ghutchis (#2703)
Add support for reading from a filename (e.g., hd5 file) @ghutchis (#2695)
Move autoopt and forcefield optimizations off the main GUI thread @ghutchis (#2700)
For local installs, use the README @ghutchis (#2692)
Adjust format of command script menu paths @matterhorn103 (#2682)
fix: add label font scale setting for display customization @newtontech (#2662)
Updated “manage plugins” interface @ghutchis (#2646)
Update the energy-model (scriptenergy.cpp) to allow user-options @ghutchis (#2660)
Enable user-options for commands and input-generators to be TOML files @ghutchis (#2643)
Update plugin installer for packages @ghutchis (#2639)
Implement new plugin framework @ghutchis (#2626)
Add faster scriptenergy protocol @ghutchis (#2621)
Allow a context menu to select the partial charge model @ghutchis (#2609)
Add write support for molden @ghutchis (#2602)
Add simple molecular dynamics @ghutchis (#2527)
🚀 Performance Improvements#
Update the binary protocol for energy+grad and Hessian @ghutchis (#2699)
Refactor to use newest cppoptlib (C++17) and make it private @ghutchis (#2697)
Improve latency with binary mode @ghutchis (#2667)
Add faster scriptenergy protocol @ghutchis (#2621)
🔌 Plugins#
Add more syntax highlighting options and add support for dark mode. @brockdyer03 (#2709)
Clean the pixi cache every 30 days @ghutchis (#782)
Add support for removing old plugins on first launch @ghutchis (#775)
Update plugin installation message @ghutchis (#765)
Add code to load new packages out of directories for install @ghutchis (#739)
🐛 Bug Fixes#
Parse PDB space group from CRYST1 record @ghutchis (#2771)
Make sure to clear old cubes and meshes when generating VdW, etc. @ghutchis (#2769)
Fix default colors for spectra dialog to be dark/light theme aware @ghutchis (#2767)
Make sure to capture the FBO before initialize @ghutchis (#2768)
Use bold font for active file or layer - works better w/dark mode @ghutchis (#2756)
Fix wireframe render @ghutchis (#2753)
When MDL molfile or sdfile have valence records, use them @ghutchis (#2750)
fix(plugin): appropriately remove selected plugins that are installed locally @e-kwsm (#2746)
If a generator doesn’t output a highlight style, use “default” @ghutchis (#2735)
Make sure to save the Hall number from a fill unit cell @ghutchis (#2747)
Fix bugs with reduce-to-primitive and supercell @ghutchis (#2744)
Fix molden parsing for uppercase angular momentum and harden against extra spacing @brockdyer03 (#2707)
Fix units in vibrational table @ghutchis (#2656)
fix(JsonWidget): correctly set integral range in spinbox @e-kwsm (#2743)
Make sure all new window / dialogs use show/raise/activate @ghutchis (#2738)
Increase the force constant for constraints @ghutchis (#2734)
Create secondary structure for insertpeptide and retain it @ghutchis (#2728)
Fix bug with adding a perpendicular point w/no selection @ghutchis (#2724)
Avoid calling –display-name for package scripts, set via metadata @ghutchis (#2706)
Ensure dialogs activate / raise - sometimes this would fail on mac @ghutchis (#2702)
Fix ignore non json output @ghutchis (#2691)
Fix local packages @ghutchis (#2690)
Fix some bugs uncovered with calculating charges with AIMNet2 plugin @ghutchis (#2683)
Update to check for extraction and destination paths identical @ghutchis (#2684)
Carefully remove symlink packages (e.g., local installs) @ghutchis (#2675)
Plugin installer should use selected rows if nothing is checked @ghutchis (#2673)
Fix installer window - would “double check” when selecting @ghutchis (#2671)
Adapt to new generators user-options syntax @ghutchis (#2670)
Fix download plugin - bug in parsing plugins2.json @ghutchis (#2668)
Improve latency with binary mode @ghutchis (#2667)
Switch Turbomole export to default to using Bohr coords @ghutchis (#2664)
Change occupancy guess for unrestricted jobs @jcerezochem (#2658)
Fix a bug with the xtb plugin loading orbitals @ghutchis (#2655)
Fix bug with undo / redo and bond orders @ghutchis (#2645)
Fix xyz and cjson crashes from fuzz testing @ghutchis (#2614)
Ensure apply colors (both atoms and residues) is undo/redo-able @ghutchis (#2607)
Fix popup menus on Mac that would sometimes not appear @ghutchis (#788)
Return with an unknown error if a local socket exists on UNIX @ghutchis (#772)
Make sure the “first run” for installing packages is reset @ghutchis (#768)
Don’t install plugins (e.g., generators) if in a read-only dir @ghutchis (#758)
Add methods to remove actions cleanly (e.g., plugin un-register) @ghutchis (#757)
Add code to make sure the window is restored to an active screen @ghutchis (#750)
🧰 Maintenance#
Drop the default pyproject.toml and pixi environment @ghutchis (#2725)
Implement estimateVelocities in Molecule class @harikrishna-au (#2473)
Improve the package normalization to recognize trailing SHA hash @ghutchis (#2719)
Remove Forced X11 compatibility in AppImage @brockdyer03 (#2754)
Ask for correct OpenGL context on Linux w/ Nvidia drivers @brockdyer03 (#791)
style: add override specifier @e-kwsm (#770)
fix: fix CPP conditional @e-kwsm (#769)
Fix more uninitialized warnings @ghutchis (#2751)
Drop VTK code @ghutchis (#2748)
Fix compile warnings @ghutchis (#2749)
Fix Windows build with new path to makensis tool @ghutchis (#2721)
style: add override specifier @e-kwsm (#2694)
build: fix toml++ include path @e-kwsm (#2650)
refactor: use four-parameter version of std::equal to check size consistency @e-kwsm (#2642)
Enable build of standalone tests @drew-parsons (#2575)
chore(EnergyCalculator): suppress error message when no atoms are frozen @e-kwsm (#2632)
style: fix -Wdangling-else @e-kwsm (#2633)
Add more fuzz tests to qtgui @ghutchis (#2625)
Fix a few macOS deployment issues @ghutchis (#2622)
Migrate to scikit-build-core @ghutchis (#2619)
Fix several bugs exposed via fuzz testing @ghutchis (#2617)
Fix compile errors with molecule fuzzers @ghutchis (#2616)
Add more fuzz tests @ghutchis (#2615)
Add a IO and QuantumIO fuzztest with daily and on-request run @ghutchis (#2610)
Add AGENTS and AI use policy guides @ghutchis (#2606)
Refactor gradients including out-of-plane for UFF @ghutchis (#2605)
Add more unit tests @ghutchis (#2601)
🌐 Translations#
Automated translation updates @github-actions[bot] (#2755)
Fix tooltip strings for packagemanager @ghutchis (#2686)
Remove units (e.g., pm, fs, eV, etc.) from translation @ghutchis (#2644)
👏 Credits#
Thanks to many contributors, including: @HenriqueCSJ, @NorwayFun, @SantosSi, @TamilNeram, @andibing, @arifpedia, @brockdyer03, @dependabot[bot], @drew-parsons, @e-kwsm, @fxcoudert, @ghutchis, @harikrishna-au, @ivo6t, @jakobbb, @jcerezochem, @matterhorn103, @milotype, @nbehrnd, @newtontech, @nfoxers, @ovari, @pltmo, @sensor0x0, @the-phinet, @weblate, Alexander Krappe, Alexandre R Soares, Eisuke Kawashima, Frank Hoffmann, LibreTranslate, Remus-Gabriel Chelu, Weblate Translation Memory, dependabot[bot], github-actions[bot] and croomfolk