Metadata-Version: 2.4
Name: openrxn-perovskite-optimizer
Version: 1.0.0
Summary: AI-driven perovskite solar cell optimization platform with OpenAI Agents SDK
Project-URL: Homepage, https://github.com/openrxn/openrxn-perovskite-optimizer
Project-URL: Documentation, https://openrxn-perovskite-optimizer.readthedocs.io
Project-URL: Repository, https://github.com/openrxn/openrxn-perovskite-optimizer
Project-URL: Issues, https://github.com/openrxn/openrxn-perovskite-optimizer/issues
Project-URL: Changelog, https://github.com/openrxn/openrxn-perovskite-optimizer/blob/main/CHANGELOG.md
Author-email: Nik Jois <nikjois@llamasearch.ai>
Maintainer-email: Nik Jois <nikjois@llamasearch.ai>
License: MIT
License-File: LICENSE
Keywords: ai-agents,machine-learning,materials-science,optimization,perovskite,photovoltaics,quantum-chemistry,solar-cells
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Scientific/Engineering :: Chemistry
Classifier: Topic :: Scientific/Engineering :: Physics
Requires-Python: >=3.11
Requires-Dist: aiofiles>=23.2.0
Requires-Dist: alembic>=1.12.0
Requires-Dist: ase>=3.22.0
Requires-Dist: bokeh>=3.3.0
Requires-Dist: botorch>=0.9.0
Requires-Dist: celery>=5.3.0
Requires-Dist: click>=8.1.0
Requires-Dist: dgl>=1.1.0
Requires-Dist: fastapi>=0.104.0
Requires-Dist: flower>=2.0.0
Requires-Dist: h5py>=3.10.0
Requires-Dist: httpx>=0.25.0
Requires-Dist: matminer>=0.9.0
Requires-Dist: matplotlib>=3.7.0
Requires-Dist: mp-api>=0.37.0
Requires-Dist: numpy>=1.25.0
Requires-Dist: openai-agents>=0.2.0
Requires-Dist: openai>=1.35.0
Requires-Dist: openpyxl>=3.1.0
Requires-Dist: optuna>=3.4.0
Requires-Dist: pandas>=2.1.0
Requires-Dist: plotly>=5.17.0
Requires-Dist: prometheus-client>=0.18.0
Requires-Dist: psycopg2-binary>=2.9.0
Requires-Dist: pydantic-settings>=2.0.0
Requires-Dist: pydantic>=2.4.0
Requires-Dist: pygmo>=2.19.0; platform_system != 'Darwin'
Requires-Dist: pymatgen>=2023.10.11
Requires-Dist: python-dotenv>=1.0.0
Requires-Dist: python-multipart>=0.0.6
Requires-Dist: pyyaml>=6.0.0
Requires-Dist: redis>=5.0.0
Requires-Dist: rich>=13.6.0
Requires-Dist: scikit-learn>=1.3.0
Requires-Dist: scipy>=1.11.0
Requires-Dist: sentry-sdk>=1.38.0
Requires-Dist: sqlalchemy[asyncio]>=2.0.0
Requires-Dist: streamlit>=1.28.0
Requires-Dist: structlog>=23.2.0
Requires-Dist: tenacity>=8.2.0
Requires-Dist: torch-geometric>=2.4.0
Requires-Dist: torch>=2.1.0
Requires-Dist: transformers>=4.35.0
Requires-Dist: uvicorn[standard]>=0.24.0
Requires-Dist: zarr>=2.16.0
Provides-Extra: all
Requires-Dist: black>=23.10.0; extra == 'all'
Requires-Dist: bluesky>=1.11.0; extra == 'all'
Requires-Dist: cirq>=1.2.0; extra == 'all'
Requires-Dist: dask[distributed]>=2023.10.0; extra == 'all'
Requires-Dist: hypothesis>=6.88.0; extra == 'all'
Requires-Dist: ipython>=8.16.0; extra == 'all'
Requires-Dist: jupyterlab>=4.0.0; extra == 'all'
Requires-Dist: line-profiler>=4.1.0; extra == 'all'
Requires-Dist: memory-profiler>=0.61.0; extra == 'all'
Requires-Dist: mpi4py>=3.1.0; extra == 'all'
Requires-Dist: mypy>=1.6.0; extra == 'all'
Requires-Dist: myst-parser>=2.0.0; extra == 'all'
Requires-Dist: nbsphinx>=0.9.0; extra == 'all'
Requires-Dist: notebook>=7.0.0; extra == 'all'
Requires-Dist: nvidia-ml-py>=12.0.0; extra == 'all'
Requires-Dist: ophyd>=1.7.0; extra == 'all'
Requires-Dist: pennylane>=0.32.0; extra == 'all'
Requires-Dist: pre-commit>=3.5.0; extra == 'all'
Requires-Dist: py-spy>=0.3.0; extra == 'all'
Requires-Dist: pymeasure>=0.13.0; extra == 'all'
Requires-Dist: pyright>=1.1.0; extra == 'all'
Requires-Dist: pytest-asyncio>=0.21.0; extra == 'all'
Requires-Dist: pytest-benchmark>=4.0.0; extra == 'all'
Requires-Dist: pytest-cov>=4.1.0; extra == 'all'
Requires-Dist: pytest-mock>=3.12.0; extra == 'all'
Requires-Dist: pytest-xdist>=3.4.0; extra == 'all'
Requires-Dist: pytest>=7.4.0; extra == 'all'
Requires-Dist: qiskit>=0.45.0; extra == 'all'
Requires-Dist: ray[default]>=2.8.0; extra == 'all'
Requires-Dist: ruff>=0.1.0; extra == 'all'
Requires-Dist: sphinx-autodoc-typehints>=1.25.0; extra == 'all'
Requires-Dist: sphinx-click>=5.0.0; extra == 'all'
Requires-Dist: sphinx-rtd-theme>=1.3.0; extra == 'all'
Requires-Dist: sphinx>=7.2.0; extra == 'all'
Requires-Dist: sphinxcontrib-mermaid>=0.9.0; extra == 'all'
Requires-Dist: torch[cuda]>=2.1.0; extra == 'all'
Provides-Extra: dev
Requires-Dist: black>=23.10.0; extra == 'dev'
Requires-Dist: hypothesis>=6.88.0; extra == 'dev'
Requires-Dist: ipython>=8.16.0; extra == 'dev'
Requires-Dist: jupyterlab>=4.0.0; extra == 'dev'
Requires-Dist: line-profiler>=4.1.0; extra == 'dev'
Requires-Dist: memory-profiler>=0.61.0; extra == 'dev'
Requires-Dist: mypy>=1.6.0; extra == 'dev'
Requires-Dist: notebook>=7.0.0; extra == 'dev'
Requires-Dist: pre-commit>=3.5.0; extra == 'dev'
Requires-Dist: py-spy>=0.3.0; extra == 'dev'
Requires-Dist: pyright>=1.1.0; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.21.0; extra == 'dev'
Requires-Dist: pytest-benchmark>=4.0.0; extra == 'dev'
Requires-Dist: pytest-cov>=4.1.0; extra == 'dev'
Requires-Dist: pytest-mock>=3.12.0; extra == 'dev'
Requires-Dist: pytest-xdist>=3.4.0; extra == 'dev'
Requires-Dist: pytest>=7.4.0; extra == 'dev'
Requires-Dist: ruff>=0.1.0; extra == 'dev'
Provides-Extra: docs
Requires-Dist: myst-parser>=2.0.0; extra == 'docs'
Requires-Dist: nbsphinx>=0.9.0; extra == 'docs'
Requires-Dist: sphinx-autodoc-typehints>=1.25.0; extra == 'docs'
Requires-Dist: sphinx-click>=5.0.0; extra == 'docs'
Requires-Dist: sphinx-rtd-theme>=1.3.0; extra == 'docs'
Requires-Dist: sphinx>=7.2.0; extra == 'docs'
Requires-Dist: sphinxcontrib-mermaid>=0.9.0; extra == 'docs'
Provides-Extra: experimental
Requires-Dist: bluesky>=1.11.0; extra == 'experimental'
Requires-Dist: ophyd>=1.7.0; extra == 'experimental'
Requires-Dist: pymeasure>=0.13.0; extra == 'experimental'
Provides-Extra: gpu
Requires-Dist: nvidia-ml-py>=12.0.0; extra == 'gpu'
Requires-Dist: torch[cuda]>=2.1.0; extra == 'gpu'
Provides-Extra: hpc
Requires-Dist: dask[distributed]>=2023.10.0; extra == 'hpc'
Requires-Dist: mpi4py>=3.1.0; extra == 'hpc'
Requires-Dist: ray[default]>=2.8.0; extra == 'hpc'
Provides-Extra: quantum
Requires-Dist: cirq>=1.2.0; extra == 'quantum'
Requires-Dist: pennylane>=0.32.0; extra == 'quantum'
Requires-Dist: qiskit>=0.45.0; extra == 'quantum'
Description-Content-Type: text/markdown

# OpenRXN Perovskite Optimizer

[Python Version](https://www.python.org/downloads/)
[License](LICENSE)
[Code Style: Black](https://github.com/psf/black)
[Agents: OpenAI SDK](https://github.com/openai/openai-agents-python)

**Author:** Nik Jois (<nikjois@llamasearch.ai>)

Welcome to the OpenRXN Perovskite Optimizer. This platform provides AI-driven materials discovery and optimization for perovskite solar cells using a multi-agent architecture.

## Key Features

- **Multi-Agent Architecture**: Coordinated AI agents for discovery, synthesis, and optimization.
- **Machine Learning**: Advanced property prediction and materials design.
- **Experimental Integration**: Automated synthesis protocols and characterization.
- **Web Interface**: Interactive dashboard and comprehensive REST API.
- **High Performance**: GPU acceleration and distributed computing support.
- **Scientific Rigor**: Comprehensive testing and experimental validation.

## Quick Start

Install the package and start optimizing perovskite materials:

```bash
# Install with automatic setup
curl -sSL https://raw.githubusercontent.com/openrxn/openrxn-perovskite-optimizer/main/scripts/install.sh | bash

# Or install manually
git clone https://github.com/openrxn/openrxn-perovskite-optimizer
cd openrxn-perovskite-optimizer
uv venv --python 3.11
source .venv/bin/activate
uv pip install -e ".[all]"
```

Discover new materials:

```bash
# Discover materials based on MAPbI3
perovskite-optimizer discover materials --composition MAPbI3 --target-efficiency 25.0

# Generate synthesis protocols
perovskite-optimizer synthesize protocol --composition "MA0.8FA0.2PbI3"

# Optimize compositions
perovskite-optimizer optimize composition --base "MAPbI3" --objectives efficiency stability cost
```