Differentiable photonic design and simulation on XLA accelerators
Project description
PHOXLA
PHOXLA ("FOX-luh") - Differentiable photonic design and simulation on XLA accelerators.
PHOXLA is a framework blueprint for building modern photonic inverse-design systems with JAX/Flax. The goal is to treat differentiable physics as a first-class deep learning component, so photonic simulation modules can be plugged into end-to-end trainable workflows.
Vision
- XLA-native photonic simulation and optimization (GPU/TPU first, CPU compatible)
- Differentiable physics modules usable as model layers/loss terms
- Inverse design pipelines integrated with standard deep learning tooling
- Extensible interoperability with JAX-based solvers (including FDTDX-style workflows)
Current Status
This repository is an initial blueprint and governance scaffold. Core simulation and training modules will be added incrementally.
Planned Package Layout
src/phoxla/sim: differentiable photonic simulation coresrc/phoxla/nn: NN-facing modules and differentiable operatorssrc/phoxla/inv: inverse design workflows and optimizerssrc/phoxla/integrations/fdtdx: interoperability layer
Repository Bootstrap
See:
docs/REPO_LAUNCH_GUIDE.mddocs/REPO_ABOUT_AND_TOPICS.mddocs/PACKAGE_NAMESPACE_PLAN.mddocs/PYPI_CLAIM_PLAYBOOK.mddocs/NAMESPACE_PRIORITY.mddocs/AUTOMATION_FLOW.mddocs/ARCHITECTURE_BLUEPRINT.mddocs/COMMIT_MESSAGE_GUIDE.mdROADMAP.md
Quick Release Commands
make venv
make qa
make next-tag
make release-check
# then with PyPI token in env:
make publish-pypi
Modern Tooling Stack
- Ruff: lint + format
- Pytest: test runner
- Mypy: static type checks
- pre-commit: local hook runner
- GitHub Actions: CI (
ci.yml) + auto-tag (auto-tag.yml) + release publish (release.yml)
Local setup
make venv
. .venv/bin/activate
pre-commit install
Daily checks
make qa
Conventional commit -> version bump
feat:,fix:,perf:,refactor:-> alpha bump (...aN)feat!:/fix!:/BREAKING CHANGE-> next major alpha (X+1.0.0a0)docs:,chore:,test:,ci:only -> no release
End-to-end Automation Flow
- Push to
main ci.ymlruns Ruff/Mypy/Pytest/build checksauto-tag.ymlcomputes next alpha tag from commit messages and pushesvX.Y.ZaNtagrelease.ymlruns full quality/build checks on that tagrelease.ymlpublishes GitHub Release notes + uploads package to PyPI (Trusted Publishing)
auto-tag.yml writes the new version (e.g., 0.1.4a0) into pyproject.toml and src/phoxla/__init__.py, so manual a1/a2/a3 edits are not needed.
Push To GitHub
git add .
git commit -m "feat(core): add initial phoxla module scaffold"
git remote add origin git@github.com:phoxla/phoxla.git
git push -u origin main
Publish To PyPI (name claim)
. .venv/bin/activate
python -m build --sdist --wheel --no-isolation
python -m twine check dist/*
read -s -p "PyPI token: " PYPI_TOKEN; echo
TWINE_USERNAME=__token__ TWINE_PASSWORD="$PYPI_TOKEN" python -m twine upload dist/*
unset PYPI_TOKEN
License
Apache-2.0 (LICENSE)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file phoxla-0.1.4a2.tar.gz.
File metadata
- Download URL: phoxla-0.1.4a2.tar.gz
- Upload date:
- Size: 7.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
26f92f9c13caa3421af333b20328d46600207c2e7f059f4e376f391014e5146d
|
|
| MD5 |
e1e6e0453db9cf36f924ab73e064a4b4
|
|
| BLAKE2b-256 |
d7ab070bec223f5dae24c438ca58cd6a0ad420ee1c87a58b35e42eff6180a321
|
Provenance
The following attestation bundles were made for phoxla-0.1.4a2.tar.gz:
Publisher:
release.yml on phoxla/phoxla
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
phoxla-0.1.4a2.tar.gz -
Subject digest:
26f92f9c13caa3421af333b20328d46600207c2e7f059f4e376f391014e5146d - Sigstore transparency entry: 958598351
- Sigstore integration time:
-
Permalink:
phoxla/phoxla@69e53bfb5e045fbfbd9ea1e99d54152aea7700b5 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/phoxla
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@69e53bfb5e045fbfbd9ea1e99d54152aea7700b5 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file phoxla-0.1.4a2-py3-none-any.whl.
File metadata
- Download URL: phoxla-0.1.4a2-py3-none-any.whl
- Upload date:
- Size: 6.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a4b60660cb22ec6a55e5f32cb4a9913e4b20dc5fc0a38f4a38c2f25a14980ebf
|
|
| MD5 |
81c1a9725571f367eede9585777d925d
|
|
| BLAKE2b-256 |
f05f97710e8fdce5b465d4ccdb707dab101c68bd247676d3478ce47624757b0d
|
Provenance
The following attestation bundles were made for phoxla-0.1.4a2-py3-none-any.whl:
Publisher:
release.yml on phoxla/phoxla
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
phoxla-0.1.4a2-py3-none-any.whl -
Subject digest:
a4b60660cb22ec6a55e5f32cb4a9913e4b20dc5fc0a38f4a38c2f25a14980ebf - Sigstore transparency entry: 958598454
- Sigstore integration time:
-
Permalink:
phoxla/phoxla@69e53bfb5e045fbfbd9ea1e99d54152aea7700b5 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/phoxla
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@69e53bfb5e045fbfbd9ea1e99d54152aea7700b5 -
Trigger Event:
workflow_dispatch
-
Statement type: