We are pleased to announce the latest release of Avogadro, including piles of bug fixes and many feature enhancements. This includes Patryk Skowroński from 3Dconnexion for contributing support for their devices.
Thanks to many for suggestions, bug reports, and discussions.
Draft developer documentation can be found at https://two.avogadro.cc
You can download Linux, Windows, and Mac versions at: Release Avogadro 1.98.0 · OpenChemistry/avogadrolibs · GitHub
If you have comments or suggestions, please join us at https://discuss.avogadro.cc and as always, help and contributions in many forms are always welcome, particularly if you’d like to help with user documentation or website developement.
Highlights (tldr)
- Integration with 3Dconnexion input devices on Mac and Windows
- Many thanks to 3Dconnexion and Patryk Skowroński (@pskowronskiTDx)
- Improved rendering including ambient occlusion and real-time shadows
- New template tool for assembly of inorganic complexes and ligands or attaching functional groups (e.g, “click to add phenyl group”) (#1075)
- New forcefield framework supporting external Python scripts (e.g., XTB, ASE, ANI-2x, etc.) (#1370)
- Better perception of bond orders
- Align tool (#1364)
- Manual translate / rotate dialog
- Fetch molecule names from PubChem, including markup
- Commands to create centroid and center-of-mass points
- Improved “fill unit cell” (#1375)
- Preview images of insert molecule fragments and import crystals
- Build improvements, including initial support for Qt6 and VTK9 fixes @cryos
- Integrated Orca ouputfile support (from Orca-enhanced Avogadro) (#1326)
- Add a generic compchem output reader (i.e., should automatically handle
.out
and.log
files) (#1347) - Initial scripting support (e.g., used to generate preview images through a directory) (#1344)
- Several updated toolbar icons
Features
- Reading Gaussian fchk vibrations when present @ghutchis (#1380)
- Add support for atom labels (e.g., C1, C2, H1…) in the coordinate editor using “L” symbol @ghutchis (#1362)
- More pybind methods and properties @ghutchis (#1342)
- Perceive bond orders when requested by Python scripts @ghutchis (#1211)
- Support for color PLY format @spotenza2016 (#1177)
- Tweak the edge detection to allow changing the strength too @ghutchis (#1140)
- Add copy as SMILES / InChI @ghutchis (#1147)
- Add atoms for selection in wireframe rendering @ghutchis (#1128)
- Grab the “markup” name from the PubChem JSON response @ghutchis (#1105)
- Estimate bond distances in template tool @aerkiaga (#1099)
- Add formal charge combobox to template tool @aerkiaga (#1090)
- Add support for undo/redo selections, including custom menu text. @ghutchis (#1056)
- Add initial crystal and space group scripting, including fillUnitCell @ghutchis (#1374)
- Initial port of align tool from Avogadro 1.x code @ghutchis (#1364)
- Add a preview panel when PNG images are present for molecules @ghutchis (#1353)
- Auto-select a format for the user @ghutchis (#1348)
- Integration with 3Dconnexion input devices @pskowronskiTDx (#1311)
- Add extension and tool register / handle commands for scripts @ghutchis (#1320)
- Add an action to create a bond between selected atoms @ghutchis (#1303)
- Add dialog for manual manipulation @ghutchis (#1289)
- Read mopac vibrations @ghutchis (#1239)
- Screen space shading @ghutchis (#1135)
- Pick a contrasting color (vs. the background) for the text @ghutchis (#1131)
- Add a copy button for molecular properties @ghutchis (#1119)
- Fetch molecule names from PubChem PUG interface @ghutchis (#1103)
- Enable Yaehmop commands - enable if in PATH @ghutchis (#1100)
- Fix template tool, add more ligands and preview @aerkiaga (#1097)
- Perceive bond orders @ghutchis (#1096)
- Add support for polydentate ligand templates @aerkiaga (#1080)
- Add commands for centroid and center-of-mass atoms @ghutchis (#1076)
- Initial template tool @ghutchis (#1075)
- Add default spin multiplicity methods @ghutchis (#1062)
- Initial support for total charge and spin through CJSON. @ghutchis (#1058)
- Add AltLoc support to PDB importer @aerkiaga (#1047)
- Add AltLoc support to MMTF importer @aerkiaga (#1057)
Bug Fixes
- Add molden as a possible reader for generic
.out
files @ghutchis (#1409) - Fix a few UI / UX issues in the surface dialog @ghutchis (#1404)
- Fix spurious “change layer” crash with the selection tool (#1406) (#1408)
- Fix for reading imaginary vibrational frequencies in ORCA outputs. @dtelsing (#1398)
- Ensure the VTK plot widget has a minimum size @cryos (#1231)
- Add uncommon “ent” extension for PDB entries @ghutchis (#1144)
- Put charge / spin in one line with two labels @ghutchis (#1143)
- By default only enable regular cartoons @ghutchis (#1141)
- Add VTK auto-init call, which avoids VTK context error message @ghutchis (#1115)
- Fix some cases where bond order perception gave up @ghutchis (#1164)
- Fix crash reading non-standard PDB file @ghutchis (#1161)
- Tweak rendering multiple bonds, rotate 45 degree angle @ghutchis (#1191)
- Fix a few UI / UX issues in the surface dialog (#1404)
- Allow for reading imaginary vibrational frequencies in ORCA outputs. @dtelsing (#1398)
- Validating filenames before opening files for read / write @ghutchis (#1367)
- Re-enable CML fragments in case someone has old files @ghutchis (#1359)
- Don’t bond Noble gases @ghutchis (#1357)
- Fix autodetect for force field with inorganic complexes @ghutchis (#1337)
- Give better warnings when scripts do not load @ghutchis (#1336)
- Cleanup label serialize, fixing a potential crash @ghutchis (#1332)
- Adjust nitrogen valence determination @ghutchis (#1330)
- Fix #1317 - editor wasn’t using the format specification for parsing @ghutchis (#1327)
- Fix #1179 (finally) setting the colors and transparency of MO @ghutchis (#1300)
- Add OpenSSL support on Windows @ghutchis (#1273)
- Update parsing GAMESS coordinates to store the final version @ghutchis (#1276)
- When deleting an atom, properly adjust the hydrogens of the neighbors @ghutchis (#1236)
- When removing an atom, remove bonded hydrogens if needed @ghutchis (#1230)
- Fix atom index labels to start with 1, not zero, as users expect @ghutchis (#1229)
- Fix POV-Ray mesh export @ghutchis (#1180)
- Fix requests to the NIH resolver to use new scheme @ghutchis (#1158)
- Fix editor smooth drag @ghutchis (#1157)
- Mitigate bright edges in SSAO @aerkiaga (#1148)
- Fix mis-translated export dialog @ghutchis (#1133)
- Fix colormap vtk action @ghutchis (#1145)
- Fix rendering bug that dropped half of the MO rendering @ghutchis (#1146)
- Fix bug with “combined rows” like Theory / Basis set @ghutchis (#1136)
- Catch exceptions thrown by mmtf:decode @ghutchis (#1132)
- Make sure to add / adjust valence in the correct order @ghutchis (#1112)
- Don’t “apply layer” if layer is already zero @ghutchis (#1108)
- Fix bug to allow editing atom formal charges @ghutchis (#1091)
- Fix properties menu priorities @ghutchis (#1079)
- Fix some Edit and Build menu priorities @ghutchis (#1078)
- Avoid using QWheelEvent::pixelDelta() on X11 @aerkiaga (#1065)
- Fix bug selecting incorrect angle and torsion atoms @ghutchis (#1063)
Performance Improvements
- Switch to (fixed) faster dihedral formula @ghutchis (#1315)
- Fix editor smooth drag @ghutchis (#1157)
- Use singleton shaders @ghutchis (#1156)
- Make sure to cache icons for the LayerModel @ghutchis (#1152)
- Optimize NeighborPerceiver @aerkiaga (#1061)
Maintenance
- Move arc and quad mesh and linestrip convenience classes @ghutchis (#1068)
- fix typos and punctuation inconsistency (… vs …) @e-kwsm (#1046)
- Modernize Eigen3, GLEW and OpenGL use as imported targets @cryos (#1267)
- CMake modernization @cryos (#1264)
- Remove the ProtoCall code from the repository @cryos (#1260)
- Remove the MongoChem plugin from the project @cryos (#1256)
- ImportPQR should not delete the molecule! @cryos (#1250)
- Port the OpenBabel plugin to work with Qt 6 @cryos (#1248)
- VTK charts @cryos (#1247)
- CMake modernization @cryos (#1246)
- Qt6 porting @cryos (#1241)
- CMake VTK updates @cryos (#1228)
- chore: fix typos and spelling inconsistency @e-kwsm (#1174)
- Make Python bindings build as a standalone project @yurivict (#1198)
- Switch to using CJSON as the default format with obabel @ghutchis (#1378)
- Fix the AppImage build for a newer base ubuntu @ghutchis (#1339)
- CMake: Allow using externally-provided libraries @berquist (#1286)
- Add arm64 Python wheel builds for Mac @ghutchis (#1281)
- Now uses notarization for Mac builds @ghutchis (#1244)
- Now uses a CodeQL scanning workflow @ghutchis
- Avoid ambigous definition of mmtf’s is_polymer @StefanBruens (#1209)
- Turn off deprecated declarations (e.g., Qt 5.15) @ghutchis (#1142)
- Fix to use “eta” filenames for “C” locale @ghutchis (#1102)
- Add Dependabot update checks for GitHub actions @ghutchis (#1083)
Translations
- i18n: fixed & added russian translations @anmorgunov (#1137)
- support C locale @balducci (#1101)
- Many, many translations updates from Hosted Weblate @weblate
- Strong translations in English, Esperanto, French, Georgian, German, Hungarian, Japanese, Korean, Portuguese, Serbian, Spanish, and Turkish.
Credits
Thanks to many contributors, including: @DDinghoya, @DasJott, @Lisapple, @M3CG, @NorwayFun, @OfficerBrasidas, @SantosSi, @StefanBruens, @Surajjalpun2002, @WilliamBeltranC, @Xav83, @adityaomar3, @aerkiaga, @ahenao, @anmorgunov, @awvwgk, @balducci, @berquist, @comradekingu, @cryos, @dependabot, @dominikflorjan, @dtelsing, @e-kwsm, @ghutchis, @github-actions, @grsousajunior, @hgokhanb, @koenr, @matterhorn103, @mck89, @milotype, @nbehrnd, @nicolazanna, @ovari, @pskowronskiTDx, @salif, @simmon-nplob, @spotenza2016, @tacitcoast, @tictactoe101, @trollixx, @vamsibarnala, @weblate, @yurivict, Ajith, Alejandro Díaz-Moscoso, Alex B, Eisuke Kawashima, FAN JI, Hugel, Jörg S, Kateryna Golovanvoa, Patryk Skowroński, Shusong Zhang, Weblate Translators, gallegonovato and victor dargallo