Skip to content

Animation expansion#14

Merged
NCCU-Schultz-Lab merged 9 commits into
mainfrom
animation-expansion
Apr 17, 2026
Merged

Animation expansion#14
NCCU-Schultz-Lab merged 9 commits into
mainfrom
animation-expansion

Conversation

@NCCU-Schultz-Lab
Copy link
Copy Markdown
Collaborator

This pull request migrates the interactive GUI from Streamlit to Dash, updates the documentation and examples to reflect this change, and introduces several improvements to the molecular visualization rendering, including enhanced bond rendering with elliptical end caps for double and triple bonds. It also adds a new script for generating demo animations, updates project dependencies, and improves markdown/documentation support for rich media.

GUI migration and documentation updates:

  • Migrated the GUI from Streamlit to Dash, updated all references and instructions in CHANGELOG.md, docs/index.md, docs/quickstart.md, examples/gui_app.py, and Windows/macOS launch scripts to reflect this change. [1] [2] [3] [4] [5] [6]
  • Updated the optional gui dependency to require dash and dash-bootstrap-components instead of streamlit in pyproject.toml.

Visualization and rendering improvements:

  • Improved bond rendering: Bonds now use elliptical end caps for double and triple bonds, providing more visually accurate representations. This includes changes to make_bond_mesh_trace, a new helper _make_oval_cap, and updates in draw_bonds. [1] [2] [3] [4] [5]
  • Added a script examples/render_demo_webm.py to generate a rotating molecule animation for use in documentation.

Documentation and markdown enhancements:

  • Added support for embedding videos and additional HTML elements in markdown by updating .markdownlint.json, and included demo videos in the documentation. [1] [2] [3]
  • Removed the outdated CI troubleshooting summary documentation.

Project maintenance and configuration:

  • Excluded large files in docs/assets/ from pre-commit checks to speed up CI.
  • Added explicit re-export of create_trajectory_animation in the main package __init__.py.

Introduce create_trajectory_animation to build animated Plotly figures from a list of XYZ blocks representing optimization frames (with optional per-frame energies, charge, mode, resolution and title). The function parses the first frame for connectivity, updates atom positions per frame, assembles frames and animation controls (play/pause and slider), and raises ValueError if fewer than 2 frames are provided. Export the new function from the package __init__.py. Add comprehensive tests to validate return type, frame count, minimum-frame requirement, slider steps, initial traces, and energy labels in frame titles.
Delete four large documentation files from the docs/ directory: CI_TROUBLESHOOTING_SUMMARY.md, PERFORMANCE_TESTING_GUIDE.md, ROADMAP.md, and VIBRATION_FEATURE_SUMMARY.md. These removals clean up outdated/duplicated long-form docs (likely consolidated or moved elsewhere) and do not affect source code. If needed, ensure their content is preserved elsewhere (wiki, external docs site, or a new consolidated docs file) before merging.
Delete stop_app.bat and stop_app.vbs. These Windows helper scripts were used to stop the Streamlit GUI by locating and force-stopping the process; they have been removed as part of cleanup since they're no longer required or used.
Prefer a specific conda environment Python on Windows and run the app script directly; fall back to system Python if not found. Removes the previous .venv/streamlit -m invocation. Adds a macOS-friendly launch_app.command that runs .venv/bin/python if present or python3 otherwise (make executable with chmod +x to enable double-click launching).
Replace Streamlit-based interactive GUI with a Dash implementation and update docs/examples. app.py was rewritten to create a Dash app with PubChem search, sample library, display options, lighting presets, callbacks, and a graceful exit; examples/gui_app.py updated to launch the Dash app. Added demo rendering helper (examples/render_demo_webm.py) and two demo webm assets; docs updated to embed videos and reflect the Dash GUI. pyproject.toml gui extras updated to require dash and dash-bootstrap-components. Minor API tweak: add_caps parameter added to make_bond_mesh_trace. Also add .markdownlint.json, update .gitignore and CHANGELOG.
Comment thread src/plotlymol3d/app.py Fixed
Install types-requests for mypy in CI and pre-commit so requests stubs are available for type checking. Refactor search_pubchem in app.py by replacing the spread _no_render tuple with a helper function and a dedicated _hide style, consolidating early returns and exception paths to return a consistent output tuple and improving readability.
Replace repository references and badges from NCCU-Schultz-Lab to The-Schultz-Lab across README, docs, mkdocs.yml, CHANGELOG, and pyproject.toml; update site_url, repo metadata, and issue/discussion links. Add docs/stylesheets/extra.css for a new hero title style and adjust docs/index.md layout to use it. Also enable MD041 in .markdownlint.json and update minor tutorial/example links.
@NCCU-Schultz-Lab NCCU-Schultz-Lab merged commit 687b785 into main Apr 17, 2026
16 checks passed
@NCCU-Schultz-Lab NCCU-Schultz-Lab deleted the animation-expansion branch April 17, 2026 23:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants