StringJAX – Differentiable string compactifications in JAX#
StringJAX is the umbrella project for a family of interoperating, JAX-native Python packages for the systematic study of string compactifications. It is not itself a physics package: it is the common entry point that installs the member packages, fixes their pinned compatibility windows, and routes you to the right module.
The guiding principle is that the map from compactification data to four-dimensional effective field theory should be implemented as a differentiable, vectorisable, just-in-time-compilable, and reproducible computational pipeline. Modern automatic differentiation and accelerated linear algebra turn what used to be a chain of bespoke, hand-coded calculations into composable primitives that can be re-used across vacuum searches, stability analyses, ensemble scans, and machine-learning workflows.
The documentation is organised by how users typically approach the project: first the motivation and ecosystem, then executable quickstart notebooks, then the member-package documentation for detailed APIs.
Recommended first path#
For a first pass through the documentation, read:
Introduction for the conceptual map and the motivation for a differentiable compactification framework.
Tutorials for executable per-package quickstart notebooks.
The ecosystem page once you need precise per-package APIs and want to link out to the member docs.
The shortest route to a working example is the jaxvacua quickstart notebook.
Install#
pip install stringjax # CPU; JAXVacua engine + CYTools + bundled models
pip install "stringjax[all]" # + StringForge databases + the flux-bounding extra
See Installation for GPU/TPU/Apple-Silicon configurations and run
stringjax doctor to check your environment.
Citing StringJAX#
If you find this project useful, please cite the member package(s) you used rather than the umbrella. See Citing StringJAX for BibTeX entries.