About StringJAX#

StringJAX is an umbrella project for differentiable, JAX-native tools that study string compactifications — from Calabi–Yau geometry through the four-dimensional effective theory to moduli stabilisation and phenomenology. This page explains why the project exists, the principles it is built on, and where it is heading.

Motivation#

Mapping and analysing the landscape of string vacua is computationally demanding. In practice it has long relied on bespoke scripts, ad-hoc data formats, and numerics that are slow and non-differentiable. That makes results hard to reproduce, hard to scale, and hard to connect to modern optimisation and machine-learning methods.

StringJAX takes a different starting point. By building every component on JAX, the whole pipeline becomes:

  • Differentiable — exact gradients propagate through the geometry → effective theory → moduli-stabilisation chain, so vacua can be solved for rather than only scanned, and sensitivities are available for free.

  • Hardware-portable — the same code runs on CPU, GPU, and TPU; large scans parallelise with vmap and jit instead of hand-written loops.

  • Reproducible — pinned environments, archival releases with DOIs, and curated datasets mean a published result can be regenerated from a single specification.

Design principles#

  1. Small, single-purpose packages. Each member package does one thing well — a flux-vacuum engine, differentiable special functions, curated data — and is independently versioned and citable. You install only what you need.

  2. A thin umbrella. The stringjax metapackage carries no physics. It is a one-command installer, an environment doctor, and a documentation hub. This keeps the brand stable while the members move quickly.

  3. Shared, differentiable interfaces. Members exchange JAX-native objects (arrays and pytrees), so the output of one stage is the differentiable input of the next without glue code.

  4. Reproducibility as a feature. Compatibility windows, lockable environments, and DOIs are first-class, not afterthoughts.

How the pieces fit together#

Layer

Member package

Responsibility

Geometry & data

StringForge

Calabi–Yau databases and the vacua vault

Special functions

JAXPolyLog

Differentiable polylogarithms / instanton sums

Effective theory & vacua

JAXVacua

Type IIB flux-EFT construction and vacuum search

Distribution

StringJAX

Installer, environment doctor, documentation hub

New capabilities enter the ecosystem as additional member packages that consume and produce the same differentiable interfaces, rather than as monolithic additions to a single codebase.

Long-term goals and strategy#

StringJAX is released incrementally. The umbrella is deliberately thin so members can evolve at their own pace without coordinated “big bang” releases.

  • Near term. Stabilise the JAXVacua engine and its public API, ship archival releases with DOIs, and grow the StringForge data layer so that scans start from curated, versioned inputs.

  • Medium term. Extend coverage of the low-energy effective theory — the Kähler sector together with α′ and string-loop corrections, axion physics, and uplift scenarios — delivered as new member packages that plug into the existing interfaces. Introduce a shared stringjax-core only if genuinely common code emerges, to avoid premature coupling.

  • Long term. A unified differentiable environment in which large regions of the landscape can be sampled, optimised, and connected to phenomenology and machine-learning workflows, with strong interoperability and reproducibility guarantees across the ecosystem.

Governance and sustainability#

  • Versioning. The umbrella follows Semantic Versioning and pins members to compatible ranges; see the Compatibility matrix matrix. A member’s breaking change widens the umbrella’s window in a new minor release.

  • Licensing. The stringjax metapackage is MIT-licensed, but installing the ecosystem pulls in GPL-3.0 members (notably JAXVacua); downstream use is subject to those terms. See Installation.

  • Citation. Users cite the specific member packages they used, not the umbrella; see Citing StringJAX.

  • Contributions. Physics belongs in the member repositories; the umbrella accepts packaging, tooling, and documentation changes. See the project’s contributing guide and code of conduct.