Skip to content

Getting started¤

cymyc is a library for numerical differential geometry on Calabi-Yau manifolds written in JAX, enabling performant:

  • Approximations of useful tensor fields;
  • Computations of curvature-related quantities;
  • Investigations of the complex structure moduli space;

in addition to many other features.

If you are new to Jax and want to get your hands dirty, then start with this example.

Installation¤

First, clone the project:

git clone git@github.com:Justin-Tan/cymyc.git
cd cymyc

Next, with a working Python installation, create a new virtual environment and run an editable install, which permits local development.

pip install --upgrade pip
python -m venv /path/to/venv
source /path/to/venv/bin/activate

python -m pip install -e .
Requires Python >=3.10 - all needed dependencies will be automatically installed. See this example on how to use the main scripts.

Tip

This library is device-agnostic. That being said, autodiff routines will usually be significantly faster if the user has access to a GPU. If this applies to you, follow the Jax GPU installation instructions to enable GPU support.

Contributing / Development¤

This library is under active development, and the current state is but the leading order approximation. Please open an issue / pull request if you encounter unexpected behaviour. Additionally, feel free to get in touch anytime to discuss the project or help us guide development.

Citation¤

If you found this library to be useful in academic work, then please cite: (arxiv).

@article{cymyc,
    author = {Butbaia, Giorgi, Tan, Justin, ...},
    title = {\textsf{cymyc}: {\it A \textsf{{JAX}} package for {C}alabi--{Y}au 
    {M}etrics {Y}ukawas and {C}urvature}},
    eprint = "2410.19728",
    archivePrefix = "arXiv",
    primaryClass = "hep-th",
    month = "10",
    year = "2024"
}

The source code is available on GitHub.

This codebase was used to generate the 'experimental' results for the following publications:

  1. Curvature on Calabi-Yau manifolds - arxiv:2211.90801.
  2. Physical Yukawa couplings in heterotic string compactifications - arxiv:2401.15078.
  3. Precision string phenomenology - arxiv:2407.13836.

We would like to acknowledge the authors of the cymetric library (Larfors et. al. (2022)), whose excellent work this library builds upon.

Numerical metrics on Calabi-Yaus

  • cymetric - Python library for studying Calabi-Yau metrics.
  • cyjax - Donaldson's algorithm for Calabi-Yau metrics in Jax.
  • MLGeometry - Machine learning Calabi-Yau metrics

JAX ecosystem

  • equinox - JAX enhancement suite.
  • flax - Neural network library.