🌟 Highlights (tldr)
- 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
- 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
- Many thanks to everyone for bug reports, suggestions and ideas!
✨ 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 angsfor 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
🧰 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]