Releases: a-tiny-project/genjax
Release list
v1.0.14
GenJAX 1.0.14 is the first 1.x release on PyPI. It replaces 0.10.3, the last release of the 0.x codebase, as the version pip install genjax selects.
Install
pip install genjaxinstalls the package.pip install "genjax[viz]"also installs matplotlib for the plotting helpers.- The 1.x API differs from 0.x. A project written against 0.x can pin
genjax<1. - 1.0.14 requires Python 3.12 or later. On Python 3.11,
pip install genjaxstill selects 0.10.3. - genjax 0.x depended on
tensorflow-probability, and 1.0.14 depends ontfp-nightly. Both install thetensorflow_probabilitymodule, so uninstalltensorflow-probabilitybefore upgrading an environment from 0.x. To repair an environment upgraded without that step, removetensorflow-probabilityand then runpip install --force-reinstall --no-deps tfp-nightly==0.26.0.dev20260831.
Changes since 1.0.13
- The repository moved from github.com/femtomc/genjax to github.com/a-tiny-project/genjax. github.com/femtomc/genjax and github.com/probcomp/genjax are now forks of it.
import genjaxno longer needs matplotlib. The plotting names (genjax.viz,raincloud,horizontal_raincloud) load on first use.from genjax import *raised AttributeError in 1.0.13, because__all__named three functions the package never bound.genjaxnow exports the MCMC diagnosticscompute_rhatandcompute_ess, and__all__no longer listslinear_gaussian_ssm, which existed nowhere.- The PyPI page shows the description, the Apache-2.0 license, keywords, and links to the repository, the paper DOI, and the Zenodo DOI. The README's links resolve on PyPI.
- The source distribution holds the package, its tests, the examples, and the citation file.
- Two case studies are ported from the artifact of the PLDI 2024 paper "Probabilistic Programming with Programmable Variational Inference": the cone model's variational objectives (its Table 4) and the AIR estimators (attend-infer-repeat, a model that explains an image as a variable number of objects).
- In ADEV (automatic differentiation of expected values, which supplies the gradient estimators for variational inference), the flip primitives sample through the
flipdistribution, so every estimator reads its argument as a probability. ADEV treats JAXfloat0tangents (the tangent type of integer and boolean values) as zero.genjaxexports two new ADEV estimators for uniform draws:uniform_reinforce(score function) anduniform_reparam(reparameterization). init_csmcandextend_csmcgive particle 0 the retained latent choices, the observed values, and the same importance weight as the other particles. In 1.0.13init_csmckept a proposal's trace for particle 0 and weighted it by the joint density, which biased conditional SMC, andextend_csmcraised TypeError on every call.- With the default proposal, conditional SMC requires that no latent choice's distribution reads an observed value. A model where one does needs a custom proposal.
seed,modular_vmapand the other transforms that stage a function accept functions with return annotations. In 1.0.13,seedraised TypeError on a function annotated to return an array.- An exception raised inside a generative function no longer leaves its handler installed. In 1.0.13, after such an exception, later distribution calls and ADEV sites in the same process, such as the next notebook cell, could return
Thunkobjects instead of values. - The requirements changed:
jax>=0.11.1,<0.12is now declared. 1.0.13 declared no JAX requirement.- TensorFlow Probability comes from
tfp-nightly==0.26.0.dev20260831instead oftensorflow-probability>=0.25.0,<0.26. - beartype moves from
>=0.21.0,<0.22to>=0.22.9,<0.23. - jaxtyping moves from
>=0.3.2,<0.4to>=0.3.11,<0.4.
- Deprecated command-line paths and compatibility shims are removed.
- Comments and docstrings were trimmed. Those edits change no code.
- In the Game of Life example,
create_showcase_figure(load_from_file=...)returns its figure. In 1.0.13 it raised UnboundLocalError on every load. - The Game of Life showcase defaults to the wizards pattern, and the mit, popl and hermes patterns are removed. In 1.0.13 the default mit pattern raised NameError, and the images for those three patterns were not in the repository. The wizards image is no longer in the repository or the source distribution either. The README gives its pinned URL and SHA-256.
- In the localization example,
plot_smc_method_comparison(include_legend=True)draws its legend. In 1.0.13 it raised NameError. - Development, the examples and the performance benchmarks use uv dependency groups and a committed
uv.lockfor Linux x86_64 and macOS arm64. 1.0.13 used Pixi environments. The move to uv changes no requirement of the published package. - The performance benchmark's importance sampling workload now matches across the compared frameworks.
Repository history
The commit messages on main were edited on 2026-09-25, and on 2026-09-27 the tags v0.1.0 through v1.0.13 moved to the edited commits. Every commit and every tag kept its file tree. A clone made before those dates needs git fetch origin --tags --force and then git reset --hard origin/main, which discards any local commits on main.
Acknowledgments
GenJAX 1.0 continues the GenJAX project, whose 0.x releases were developed in genjax-community/genjax from 2022 to 2025. GenJAX thanks the 22 people other than the maintainer who contributed commits to that codebase:
Matthew Brulhardt, Jacob Burnim, Guillaume Dalle, Arijit Dasgupta, Cameron Freer, Matin Ghavami, Alex Hiser, Matt Huebert, Mathieu Huot, Mirko Klukas, Urs Köster, Ben Lee, Ian Limarta, Joao Loula, David R. MacIver, George Matheos, Jay Pottharst, Sam Ritchie, Rif A. Saurous, Colin Smith, Xiaoyan Wang, Fabian Zaiser.
Files
The wheel and the source distribution are attached. PyPI serves the same files. Their SHA-256 checksums:
04634bce70015dae58586afa06750e6b095b89f162efb6a15f7de1f1eda7ed3b genjax-1.0.14-py3-none-any.whl
e6a73a2994bff442461d9f6c3db7c7aa0677f22f14864e94c607bfaa0c01e696 genjax-1.0.14.tar.gz
Zenodo archives this release under the GenJAX record, and CITATION.cff gives the citation.
v1.0.13
What's Changed
Documentation
- Further README enhancements and improvements
Full Changelog: femtomc/genjax@v1.0.12...v1.0.13
v1.0.12
What's Changed
Documentation
- Enhanced README with additional details
- Updated perfbench documentation
Full Changelog: femtomc/genjax@v1.0.11...v1.0.12
v1.0.11
What's Changed
Features
- Add perfbench case study and tasks
- Add customizable curvefit Pixi tasks
Bug Fixes
- Multiple fixes for CLI flags
- Fixes for benchmark case studies
Documentation
- Update performance benchmark details in README
- Document device guidance and curvefit scaling controls
- Clarify CUDA requirements in Localization section
- Improve clarity and consistency across documentation
- Clarify Fair Coin case study description
Other Improvements
- General progress and refinements
- Update Zenodo and citation metadata
Full Changelog: femtomc/genjax@v1.0.10...v1.0.11
GenJAX v1.0.10 - POPL 2026 Canonical Artifact
GenJAX v1.0.10 - POPL 2026 Canonical Artifact
This is the canonical version for POPL 2026 artifact evaluation.
About GenJAX
GenJAX is a probabilistic programming language (PPL) designed around programmable inference - automation that allows users to express and customize Bayesian inference algorithms.
What's Included
- Complete GenJAX implementation with source code and comprehensive tests
- Four case studies from the empirical evaluation:
- Fair Coin (Beta-Bernoulli conjugate inference) → Figure 16 (a)
- Curve Fitting with Outlier Detection → Figures 4, 5, 6
- Game of Life Inverse Dynamics → Figure 18
- Robot Localization with SMC → Figure 19
Reproducing Paper Figures
pixi install
pixi run paper-figures # CPU execution (~4 minutes on Apple M4)
pixi run paper-figures-gpu # GPU execution (requires CUDA 12)Changes in v1.0.10
- Refined README examples: Improved clarity and wording in Quick Example section
- Better explanation of generative functions composition
- Clearer inline comments throughout code snippets
Tested Hardware
- CPU: Apple M4 MacBook Air (10 cores, 16GB, macOS 15.6)
- GPU: RTX 4090 + AMD Ryzen 7 7800X3D (Pop!_OS 22.04)
Citation
See CITATION.cff in the repository for complete citation information with all 10 authors and their ORCID identifiers.
GenJAX v1.0.9 - POPL 2026 Canonical Artifact
GenJAX v1.0.9 - POPL 2026 Canonical Artifact
This is the canonical version for POPL 2026 artifact evaluation.
About GenJAX
GenJAX is a probabilistic programming language (PPL) designed around programmable inference - automation that allows users to express and customize Bayesian inference algorithms.
What's Included
- Complete GenJAX implementation with source code and comprehensive tests
- Four case studies from the empirical evaluation:
- Fair Coin (Beta-Bernoulli conjugate inference) → Figure 16 (a)
- Curve Fitting with Outlier Detection → Figures 4, 5, 6
- Game of Life Inverse Dynamics → Figure 18
- Robot Localization with SMC → Figure 19
Reproducing Paper Figures
pixi install
pixi run paper-figures # CPU execution (~4 minutes on Apple M4)
pixi run paper-figures-gpu # GPU execution (requires CUDA 12)Changes in v1.0.9
- Comprehensive README Quick Example: Complete walkthrough of polynomial regression from paper's Overview section:
- Vectorizing generative functions with vmap (matches Figure 3)
- Vectorized programmable inference via importance sampling (matches Figure 5)
- Improving robustness with stochastic branching (matches Figure 6)
- Programmable inference kernel mixing Gibbs + HMC
- Added inline comments throughout all examples
- Can be run as linear notebook-style walkthrough
Tested Hardware
- CPU: Apple M4 MacBook Air (10 cores, 16GB, macOS 15.6)
- GPU: RTX 4090 + AMD Ryzen 7 7800X3D (Pop!_OS 22.04)
Citation
See CITATION.cff in the repository for complete citation information with all 10 authors and their ORCID identifiers.
GenJAX v1.0.8 - POPL 2026 Canonical Artifact
GenJAX v1.0.8 - POPL 2026 Canonical Artifact
This is the canonical version for POPL 2026 artifact evaluation.
About GenJAX
GenJAX is a probabilistic programming language (PPL) designed around programmable inference - automation that allows users to express and customize Bayesian inference algorithms.
Reproducing Paper Figures
pixi install
pixi run paper-figures # CPU execution (~4 minutes on Apple M4)
pixi run paper-figures-gpu # GPU execution (requires CUDA 12)Changes in v1.0.8
- Fixed Zenodo title to match paper exactly
- Removed "Language" from title
- Now: "GenJAX: Probabilistic Programming with Vectorized Programmable Inference"
Tested Hardware
- CPU: Apple M4 MacBook Air (10 cores, 16GB, macOS 15.6)
- GPU: RTX 4090 + AMD Ryzen 7 7800X3D (Pop!_OS 22.04)
Citation
See CITATION.cff in the repository for complete citation information with all 10 authors and their ORCID identifiers.
GenJAX v1.0.7 - POPL 2026 Canonical Artifact
GenJAX v1.0.7 - POPL 2026 Canonical Artifact
This is the canonical version for POPL 2026 artifact evaluation.
About GenJAX
GenJAX is a probabilistic programming language (PPL) designed around programmable inference - automation that allows users to express and customize Bayesian inference algorithms.
What's Included
- Complete GenJAX implementation with source code and comprehensive tests
- Four case studies from the empirical evaluation:
- Fair Coin (Beta-Bernoulli conjugate inference) → Figure 16 (a)
- Curve Fitting with Outlier Detection → Figures 4, 5, 6
- Game of Life Inverse Dynamics → Figure 18
- Robot Localization with SMC → Figure 19
Reproducing Paper Figures
pixi install
pixi run paper-figures # CPU execution (~4 minutes on Apple M4)
pixi run paper-figures-gpu # GPU execution (requires CUDA 12)Note: Multi-system benchmarking figure (Fig 16, b) code is in git history but requires complex deployment setup.
Tested Hardware Specifications
Apple M4 (MacBook Air) - CPU Testing
- 10 cores (4 performance + 6 efficiency)
- 16 GB memory
- macOS 15.6 (Sequoia)
Linux RTX 4090 - GPU Testing
- AMD Ryzen 7 7800X3D (8-core, 16 threads)
- NVIDIA GeForce RTX 4090 (24GB VRAM)
- Pop!_OS 22.04 LTS
Changes in v1.0.7
- Cleaned up hardware specifications formatting
- Version consolidation
Citation
See CITATION.cff in the repository for complete citation information with all 10 authors and their ORCID identifiers.
GenJAX v1.0.6 - POPL 2026 Canonical Artifact
GenJAX v1.0.6 - POPL 2026 Canonical Artifact
This is the canonical version for POPL 2026 artifact evaluation.
About GenJAX
GenJAX is a probabilistic programming language (PPL) designed around programmable inference - automation that allows users to express and customize Bayesian inference algorithms.
What's Included
- Complete GenJAX implementation with source code and comprehensive tests
- Four case studies from the empirical evaluation:
- Fair Coin (Beta-Bernoulli conjugate inference) → Figure 16 (a)
- Curve Fitting with Outlier Detection → Figures 4, 5, 6
- Game of Life Inverse Dynamics → Figure 18
- Robot Localization with SMC → Figure 19
Reproducing Paper Figures
pixi install
pixi run paper-figures # CPU execution (~4 minutes on Apple M4)
pixi run paper-figures-gpu # GPU execution (requires CUDA 12)Note: Multi-system benchmarking figure (Fig 16, b) code is in git history but requires complex deployment setup.
Tested Hardware Specifications
Apple M4 (MacBook Air) - CPU Testing
- 10 cores (4 performance + 6 efficiency)
- 16 GB memory
- macOS 15.6 (Sequoia)
Linux RTX 4090 - GPU Testing
- AMD Ryzen 7 7800X3D (8-core, 16 threads)
- NVIDIA GeForce RTX 4090 (24GB VRAM)
- Pop!_OS 22.04 LTS
Changes in v1.0.6
- Added tested hardware specifications for both CPU and GPU environments
- Enhanced execution property guidance for artifact evaluators
- Improved section organization in README
Version History
- v1.0.6 (CURRENT): Hardware specifications and improved documentation
- v1.0.5: Enhanced artifact evaluation guidance
- v1.0.4: Complete author metadata with ORCIDs
Citation
See CITATION.cff in the repository for complete citation information with all 10 authors and their ORCID identifiers.
GenJAX v1.0.5 - POPL 2026 Canonical Artifact
GenJAX v1.0.5 - POPL 2026 Canonical Artifact
This is the canonical version for POPL 2026 artifact evaluation.
About GenJAX
GenJAX is a probabilistic programming language (PPL) designed around programmable inference - automation that allows users to express and customize Bayesian inference algorithms.
What's Included
- Complete GenJAX implementation with source code and comprehensive tests
- Four case studies from the empirical evaluation:
- Fair Coin (Beta-Bernoulli conjugate inference) → Figure 16 (a)
- Curve Fitting with Outlier Detection → Figures 4, 5, 6
- Game of Life Inverse Dynamics → Figure 18
- Robot Localization with SMC → Figure 19
Reproducing Paper Figures
pixi install
pixi run paper-figures # CPU execution (~4 minutes on Apple M4)
pixi run paper-figures-gpu # GPU execution (requires CUDA 12)Note: Multi-system benchmarking figure (Fig 16, b) code is in git history but requires complex deployment setup.
Changes in v1.0.5
- Enhanced artifact evaluation guidance:
- Added note about which figures are reproducible in the artifact
- Added CPU vs GPU execution property expectations
- Added paper figure references for each case study
- Added timing guidance (CPU takes ~4 minutes on Apple M4)
- Clarified scaling behavior differences between CPU and GPU
Version History
- v1.0.5 (CURRENT): Enhanced documentation for artifact evaluation
- v1.0.4: Complete author metadata with ORCIDs
- v1.0.3: Documentation updates
- v1.0.2: Version consolidation
- v1.0.1: MCMC acceptance tracking fix
Citation
See CITATION.cff in the repository for complete citation information with all 10 authors and their ORCID identifiers.