All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- GUI migrated from Streamlit to Dash — launch with
python examples/gui_app.py guioptional dependency updated:dash>=2.14.0+dash-bootstrap-components>=1.5.0(replacesstreamlit)launch_app.batandstop_app.batupdated for Dash process management- Bumped
blackminimum from>=23.0.0to>=24.3.0inrequirements.txt
- Removed stale
streamlitdependency fromrequirements.txtandenvironment.yml - Corrected all remaining Streamlit references in docs to Dash (
about.md,installation.md,contributing.md,tutorials/index.md) - Updated version number from 0.1.0 to 0.2.0 in
docs/about.md(including BibTeX citation) - Fixed Python minimum version in
docs/installation.md(3.8 → 3.9) - Updated author contact email to
The-Schultz-Lab@users.noreply.github.comindocs/about.md - Replaced broken
docs/ROADMAP.mdanddocs/PERFORMANCE_TESTING_GUIDE.mdlinks inREADME.mdanddocs/contributing.md - Updated stale Streamlit cache reference in
tests/test_performance.py - Fixed logo not rendering on PyPI by replacing relative
logo.svgpath with absolute raw GitHub URL
- Vibrational Mode Visualization - Complete system for visualizing molecular vibrations from quantum chemistry calculations
- Three file format parsers: Gaussian (.log), ORCA (.out), Molden (.molden) with auto-detection
- Three visualization modes:
- Static displacement arrows using Plotly Cone traces
- Animated vibrations with interactive controls (play/pause, frame slider)
- Heatmap coloring by displacement magnitude
- New
vibrations.pymodule with comprehensive dataclasses and functions - Streamlit "Vibration Settings" section with file upload and interactive controls
- 21 new tests achieving ~95% coverage of vibration module
- Test fixtures for all three file formats (water molecule examples)
- Exported vibration functions in
__init__.pyfor public API access - Symbol-to-atomic-number mapping (
symbol_to_number) inatomProperties.py - Conda environment (
environment.yml) replacing venv-based setup - Security CI workflow:
pip-auditdependency scanning + CodeQL static analysis - Dependabot configuration for automated dependency updates
- Branch protection rules (required status checks, no force-push)
- PyPI publishing checklist (
docs/PYPI_PUBLISHING.md)
- Aromatic bond rendering now uses ring-center geometry for correct dashed bond offset direction
- Displacement arrows auto-scaled relative to molecular size for consistent visibility
- Animation caching replaced
@st.cache_datawith session-state caching and live progress bar - Longer dashes (75% vs 60%) for aromatic bond rendering
- Updated README installation instructions for conda workflow
- Expanded test suite from 26 to 47 tests
- Bumped
requires-pythonfrom>=3.8to>=3.9 - Fixed repo URLs in
pyproject.toml(now correctly point to The-Schultz-Lab org)
- Core 3D molecular visualization with Plotly and RDKit integration.
- Input support for SMILES, XYZ, MOL/PDB, and cube files.
- Streamlit GUI for interactive visualization.
- Test suite and CI workflows.