StringJAX – Differentiable string compactifications in JAX

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.

How to navigate#

New to the project

Start with the introduction. It explains why a differentiable compactification pipeline is worth building, how the member packages divide the work, and the design principles they share.

Introduction
New to the code

Use the tutorial catalogue. Three minimal quickstart notebooks cover the three public member packages – one each for jaxvacua, stringforge, and jaxpolylog.

Tutorials
Looking for a member package

The ecosystem page links into each member package’s authoritative documentation and explains how they fit together.

The StringJAX ecosystem
Looking for installation help

The install guide covers CPU / GPU / TPU / Apple-Silicon configurations, the stringjax[all] extras, and the stringjax doctor self-check.

Installation

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.