v0.20.0 (2026.10.30)¶
Enhancements
Desktop App
- added a Qt desktop app (
simmate desktop start) through the newdesktopextra - added a compound dashboard with linked plots, a table, a detail card, and a Ketcher substructure filter
- added loading of custom datasets (parquet, CSV, SDF, and SMILES)
- added analyze, featurize, export, and chatbot panels
- added a workers tab for launching containerized API workers (Podman or Docker)
- added a CPU, memory, and disk usage monitor
- added
simmate desktop buildanduploadfor single-file executables, plus in-app update notices - the desktop app can be rebranded and extended without forking
Website
- added dashboards for compute, inventory, projects, lab automation, and dev tools (git, docker, and k8s)
- added a customizable home dashboard with widgets
- added a data quick search with a periodic table input
- added a workflow quick-submit form and a calculations tab on user profiles
- added Data Explorer views for crystal datasets (3D viewer, exports, and search forms)
- added web reports for static energy and relaxation calculations
- added
htmx_structure_inputand datetime inputs for htmx forms - added plotly data streaming
- added update-many selection in tables
- added social (OAuth) login
- redesigned the home, about, FAQ, and contact pages
- cleaned up dataset pages for ChEMBL, COD, Materials Project, JARVIS, BCPC, and more
Compute
- added a REST API worker mode for workers without database access (
is_api_worker_safe) - added a
@scheduledecorator and anonkwarg for weekly schedules - workers now shut down cleanly on SIGTERM (e.g. k8s and docker) and stale workers are detected
- added nightly Postgres backups to S3 (
database_backupssetting)
Workflows
- added
upload_outputanddelete_outputworkflow parameters - added a draft
accuracy_ratingto help beginners pick settings - upgraded the Quantum Espresso and evolution apps
- added QE SSSP potentials to docker images
Database & Datastores
- added a
Datastorebase class for parquet datasets too large for the ORM - added
MoleculeDatastorewith similarity search (usearch HNSW and faiss IVF-PQ) - added Chemspace and ChEMBL datastores
- added memory-safe repartitioning and parallel chunk loading
- added a
@batch_bulk_createdecorator forload_source_datamethods - added parquet support for data archives
- added
simmate databasecommands:snapshot,load-test-data,prebuild, andupload-prebuild - added
--use-templatetosimmate database resetfor fast resets - updated data loads for OQMD, COD, AFLOW, JARVIS, Materials Project, and PDB
- updated the CAS Registry app to use the official API
- added SSH directory syncing and a
sourcekwarg for Trino connections
Inventory Management
- added Molecule and Structure tables for substances
- added a single entry point for substance registration (
get_or_create_ids) - added a
SubstanceDatastorefor very large substance catalogs - added a
SubstanceIdChangelog for merges, promotions, and splits - added helper methods for batches, containers, and storage locations
Toolkit
- added
toolkit.modeling(ridge, random forest, gradient boosting, Tanimoto k-NN, andLinearFit) - updated fingerprint featurizers
- improved SDF metadata parsing
Lab Automation
- added
OnOff,TimeProportional,FuzzyLogic, and PID controllers - added a
StirringHotPlatedevice - added a draft lab dashboard with a task planner
CLI & Deployment
- added one-line installers (
curl -LsSf https://simmate.org/install.sh | sh) and anallextra - added
simmate dev(lint,test,docs, andclean) withk8sands3subgroups - added
simmate website startanddownload-ketcher - improved CLI help texts with rich markdown
- added a Helm chart for single-node k3s deployments
- added a draft VASP dockerfile (image not shared, since VASP is proprietary)
- slimmed the main docker image to <500 MB
Refactors
- Python 3.13 is now required
simmate engineis nowsimmate compute, withworker,cluster,scheduler, andworkitemssubgroupssimmate run-serveris nowsimmate website startsimmate start-projectis nowsimmate initsimmate database downloadis nowsimmate database load- removed
simmate database dump-dataandload-data simmate utils archive-old-runsmoved tosimmate workflows archive-old-runssimmate workflows list-allandshow-configare nowlistandconfigS3Workflowis nowShellWorkflowuse_databasenow defaults toFalseon workflowscompress_outputno longer deletes the run folder (usedelete_output)- run folders default to
<scratch_dir>/<run_id> - moved
workflows.executionandworkflows.schedulertosimmate.compute - moved
WorkItemandSimmateWorkerto the newcompute_managementapp (old rows are not migrated) - the scheduler now submits
WorkItems instead of running tasks in-thread DynamicTableFormis nowTableComponentindata_explorer.components- substances now link to datasets (the relation was reversed)
- reset the
inventory_managementmigrations - moved Blender tools into a
blenderapp - the simmate logger no longer configures the root logger (use
from simmate.utils import logger) - switched the default molecule sketcher from ChemDoodle to Ketcher
- switched docs from MkDocs to Zensical
- switched linting from black and isort to ruff
- removed the dask dependency and old example configs
- the web server now runs multithreaded
- static files are no longer date-stamped
- removed unused web templates and assets
Fixes
- fixed an extra
$$$$delimiter in bulk SDF exports - fixed a typo in the
volume_changeformula for relaxations - fixed
htmx_molecule_inputfor non-ChemDraw sketchers - missing static files now return a 404
- fixed connection closing in
database.external_connectors - added a missing CAS Registry migration
- patched status tracking, htmx forms, reports, and the project management mixin
- used full image paths so Helm works with Podman
- bumped dependencies (pandas, pymatgen, rdkit, plotly, rich, django-allauth, and more)