Skip to content

Releases: a-tiny-project/genjax

v1.0.14

Choose a tag to compare

@femtomc femtomc released this 27 Sep 04:40

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 genjax installs 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 genjax still selects 0.10.3.
  • genjax 0.x depended on tensorflow-probability, and 1.0.14 depends on tfp-nightly. Both install the tensorflow_probability module, so uninstall tensorflow-probability before upgrading an environment from 0.x. To repair an environment upgraded without that step, remove tensorflow-probability and then run pip 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 genjax no 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. genjax now exports the MCMC diagnostics compute_rhat and compute_ess, and __all__ no longer lists linear_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 flip distribution, so every estimator reads its argument as a probability. ADEV treats JAX float0 tangents (the tangent type of integer and boolean values) as zero. genjax exports two new ADEV estimators for uniform draws: uniform_reinforce (score function) and uniform_reparam (reparameterization).
  • init_csmc and extend_csmc give particle 0 the retained latent choices, the observed values, and the same importance weight as the other particles. In 1.0.13 init_csmc kept a proposal's trace for particle 0 and weighted it by the joint density, which biased conditional SMC, and extend_csmc raised 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_vmap and the other transforms that stage a function accept functions with return annotations. In 1.0.13, seed raised 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 Thunk objects instead of values.
  • The requirements changed:
    • jax>=0.11.1,<0.12 is now declared. 1.0.13 declared no JAX requirement.
    • TensorFlow Probability comes from tfp-nightly==0.26.0.dev20260831 instead of tensorflow-probability>=0.25.0,<0.26.
    • beartype moves from >=0.21.0,<0.22 to >=0.22.9,<0.23.
    • jaxtyping moves from >=0.3.2,<0.4 to >=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.lock for 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

Choose a tag to compare

@femtomc femtomc released this 12 Nov 20:10

What's Changed

Documentation

  • Further README enhancements and improvements

Full Changelog: femtomc/genjax@v1.0.12...v1.0.13

v1.0.12

Choose a tag to compare

@femtomc femtomc released this 12 Nov 20:08

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

Choose a tag to compare

@femtomc femtomc released this 12 Nov 20:06

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

Choose a tag to compare

@femtomc femtomc released this 13 Oct 21:15

GenJAX v1.0.10 - POPL 2026 Canonical Artifact

This is the canonical version for POPL 2026 artifact evaluation.

DOI

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

Choose a tag to compare

@femtomc femtomc released this 13 Oct 21:12

GenJAX v1.0.9 - POPL 2026 Canonical Artifact

This is the canonical version for POPL 2026 artifact evaluation.

DOI

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

Choose a tag to compare

@femtomc femtomc released this 13 Oct 20:00

GenJAX v1.0.8 - POPL 2026 Canonical Artifact

This is the canonical version for POPL 2026 artifact evaluation.

DOI

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

Choose a tag to compare

@femtomc femtomc released this 13 Oct 19:58

GenJAX v1.0.7 - POPL 2026 Canonical Artifact

This is the canonical version for POPL 2026 artifact evaluation.

DOI

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

Choose a tag to compare

@femtomc femtomc released this 13 Oct 19:56

GenJAX v1.0.6 - POPL 2026 Canonical Artifact

This is the canonical version for POPL 2026 artifact evaluation.

DOI

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

Choose a tag to compare

@femtomc femtomc released this 13 Oct 19:50

GenJAX v1.0.5 - POPL 2026 Canonical Artifact

This is the canonical version for POPL 2026 artifact evaluation.

DOI

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.