Differentiable initial conditions for N-body simulations of star clusters, stellar populations, and binary systems — JAX-native, gradient-friendly, physically rigorous.
progenax is part of the jaxstro
ecosystem. Every initial condition you generate — Plummer or King spatial
profiles, isotropic or anisotropic velocity distributions, IMF samples, and
binary orbits — is differentiable through jax.grad, vectorisable through
jax.vmap, and JIT-compilable through jax.jit. Gravoturbulent /
fractal-density-field substructure is an experimental follow-up-paper
feature in the repo-only gravoturb package (not in the released wheel).
This site is the single source of truth for the package: theory, architecture, API, tutorials, and history. Whether you arrived to learn how to build your first cluster, to dig into the (experimental) gravoturbulent freefall-density factor formalism, to understand why we chose a protocol-based composition pattern over inheritance, or to look up a specific function signature — there’s a path for you.

Every model on this site is sampled, verified, and drawn: -star
equilibria on the phase-space plane, with the analytic escape
envelope computed three independent ways and no star crossing it. From the
velocity-DF theory chapter; every figure
regenerates from laboratory/icviz.
Find your reading path¶
For students new to differentiable astrophysics or JAX. A guided narrative path: install, build your first Plummer sphere in 5 minutes, take a gradient through it, sample an IMF, and understand the glossary along the way.
For researchers wanting full depth. Derivations from first principles for every model in the package — spatial profiles, velocity DFs, IMFs, binaries, tidal physics, gravoturbulence — each anchored on the original papers via {cite}-rendered citations.
For daily use. Auto-generated reference for every public symbol, regenerated on each build so it can never drift from the source. Search the full symbol index or browse by module.
Other entry points¶
Architecture & design — why progenax is shaped the way it is. JAX-native philosophy, three-brick state pattern, protocol-based composition, units policy, virial-Q convention.
How-to recipes — task-oriented snippets for common workflows.
Validation — what the test suite asserts, and a gallery of physics-validation plots.
Development log — historical decisions and notable bug fixes.
Bibliography — full reference list.
What progenax is not¶
progenax generates initial conditions. It does not integrate them
forward in time — for that you want
gravax (N-body integrators)
or stellax (stellar evolution,
planned). The “Interface with gravax” recipe in
How-to shows the handoff.
Citing progenax¶
If you use progenax in published work, please cite the package and the
papers underlying any models you use. The
bibliography page lists the canonical
references for every model in the package.