Skip to content

Releases: PyAutoLabs/PyAutoGalaxy

v2026.4.13.6

13 Apr 09:46

Choose a tag to compare

PyAutoGalaxy v2026.4.13.6

What's New

Bug Fixes

  • fix: pin autofit/autoarray dependency versions and update homepage (#348)

Upstream Changes

PyAutoFit

  • fix: pin autoconf dependency version and update homepage URL (#1206)

PyAutoArray

  • fix: pin autoconf dependency version and update homepage URL (#273)

Full changelog: 2026.4.13.5...2026.4.13.6

v2026.4.13.5

13 Apr 09:31

Choose a tag to compare

PyAutoGalaxy v2026.4.13.5

What's New

Bug Fixes

  • fix: pin autofit/autoarray dependency versions and update homepage (#348)

Upstream Changes

PyAutoFit

  • fix: pin autoconf dependency version and update homepage URL (#1206)

PyAutoArray

  • fix: pin autoconf dependency version and update homepage URL (#273)

Full changelog: 2026.4.13.3...2026.4.13.5

v2026.4.13.3

13 Apr 08:35

Choose a tag to compare

PyAutoGalaxy v2026.4.13.3

What's New

Breaking Changes

  • refactor: rename env vars to PYAUTO_* prefix (#343)
    • One env var rename. Quantity visualizer now controlled by PYAUTO_SKIP_VISUALIZATION instead of PYAUTOFIT_TEST_MODE. See full details below.
  • fix: give each basis independent ell_comps in mge_model_from (#342)
      • New parameter: centre_per_basis: bool = False on mge_model_from — when True, each basis gets independent centre priors
      • Behaviour change: mge_model_from with gaussian_per_basis > 1 now produces independent ell_comps per basis (was previously tied). Calls with gaussian_per_basis=1 are unchanged.
  • refactor: merge PYAUTO_DISABLE_CRITICAL_CAUSTICS into PYAUTO_FAST_PLOTS (#340)
    • Environment variable only — no Python API changes. PYAUTO_DISABLE_CRITICAL_CAUSTICS is retired; set PYAUTO_FAST_PLOTS=1 instead to skip both tight_layout() and critical-curve/caustic overlay computation. Callers that only set PYAUTO_DISABLE_CRITICAL_CAUSTICS will no longer skip overlays — they must migrate to PYAUTO_FAST_PLOTS=1.
    • Paired PyAutoBuild PR removes the retired flag from the release workflow, default env vars, and docs. A follow-up workspace sweep will remove it from the autofit/autogalaxy/autolens workspace env_vars.yaml, run_scripts.sh, and CLAUDE.md files.
  • feat: reinstate title_prefix on all matplotlib subplot panel titles (#333)
  • refactor: remove integral-based deflection/potential methods from mass profiles (#324)
    • The following methods are removed from mass profile classes:
      • deflections_2d_via_integral_from — removed from Gaussian, Sersic, SersicGradient, NFW, gNFW, gNFWSph
      • deflection_func — removed from Gaussian, Sersic, SersicGradient, NFW, gNFW

New Features

  • docs: update Python version to 3.12-3.13 (#346)
  • perf: defer matplotlib imports and lazy-load plot submodule (#330)
  • perf: cache cosmology distances and cap MGE gaussians for smoke tests (#329)
  • feat: PYAUTO_DISABLE_CRITICAL_CAUSTICS env var to skip curve computation (#325)

Bug Fixes

  • fix: re-export subplot_interferometer_dataset from autogalaxy.plot (#337)
  • Fix cosmology distance cache breaking JAX JIT tracing (#334)
  • fix: correct stale module paths in docs API (#319)

Internal

  • build: add Python 3.13 to CI matrix (#345)
  • build: raise astropy cap, update JAX Partial imports for 0.5+ compat (#344)
  • Retire main_build: check out PyAutoFit main in CI (#338)
  • Expose dataset_util via autogalaxy.util.dataset (#336)
  • Remove Copilot dispatch workflow (#335)
  • perf: remove unused astropy.modeling import from convert.py (#331)
  • perf: skip savefig in _save_subplot when PYAUTO_FAST_PLOTS=1 (#328)
  • refactor: import is_test_mode from autoconf (#327)
  • feat: use tight_layout wrapper for PYAUTO_FAST_PLOTS support (#326)
  • perf: reduce unit test runtime from 82s to 28s (#322)
  • Use centralized is_test_mode() from PyAutoFit (#320)
  • Add ReadTheDocs config with Python 3.12 (#318)
  • Drop Python 3.9-3.11, add 3.13 (#317)

Upstream Changes

PyAutoFit

  • refactor: replace search YAML config with explicit Python defaults (#1202)
  • fix: guard interpolator and grid search against edge cases (#1201)
  • docs: update Python version to 3.12-3.13 (#1199)
  • build: add Python 3.13 support (#1198)
  • build: raise scipy cap, relax threadpoolctl and SQLAlchemy pins (#1197)
  • fix: bump scipy cap to <=1.15.2 (#1196)
  • refactor: separate PYAUTOFIT_TEST_MODE into distinct PYAUTO_* env vars (#1195)

PyAutoArray

  • fix: guard zoom_array against non-autoarray mask objects (#270)
  • build: add Python 3.13 to CI matrix (#268)
  • build: raise caps on scipy, astropy, scikit-image, scikit-learn (#267)
  • fix: bump scipy cap to <=1.15.2 (#266)
  • refactor: rename env vars to PYAUTO_* prefix (#265)
  • Guarantee GaussianKernel regularization matrix is PD (#264)
  • refactor: clamp brightest_coordinate_in_region_from to array bounds (#263)
  • fix: add _mappings_sizes_weights_split to InterpolatorRectangular (#262)
  • Add should_simulate utility for auto-simulation with small datasets (#261)
  • feat: add title_prefix support to subplot_imaging_dataset (#260)
  • perf: defer scipy imports to reduce import time (#259)
  • perf: skip radial bins computation when PYAUTO_WORKSPACE_SMALL_DATASETS=1 (#258)
  • perf: force over_sample_size=2 when PYAUTO_WORKSPACE_SMALL_DATASETS=1 (#257)
  • fix: import is_test_mode from autoconf instead of autofit (#256)
  • perf: skip savefig rendering in PYAUTO_FAST_PLOTS mode (#255)
  • feat: add tight_layout wrapper with PYAUTO_FAST_PLOTS env var (#254)
  • feat: PYAUTO_WORKSPACE_SMALL_DATASETS env var for fast smoke tests (#253)
  • perf: speed up unit tests 63% by removing JAX from triangle tests (#252)
  • Use centralized is_test_mode() from PyAutoFit (#250)
  • Drop Python 3.9-3.11, add 3.13 (#249)

Full changelog: 2026.4.5.3...2026.4.13.3

v2026.4.5.3

05 Apr 18:59

Choose a tag to compare

PyAutoGalaxy v2026.4.5.3

What's New

New Features

  • Use configurable output_format default from autoarray (#316)
  • Update docs for new flat plot function API (#315)

Bug Fixes

  • Fix JAX jit boundary in LensCalc + document decorator/JAX patterns (#291)
  • feature/ell_comps_division_0_bug_fix (#278)
  • feature/geometry_hot_fix (#274)
  • Jax hot fix (#273)

Internal

  • Drop Python 3.9-3.11, add 3.13 (#317)
  • Visualization final: fits API, plot consolidation (#314)
  • Visualization cleanup and NFW truncated enhancements (#313)
  • Add jax_zero_contour-based critical curve and caustic tracing (#312)
  • Remove sigma cb_unit from normalized residual map in subplot_fit (#311)
  • Plot improvements: rename fits functions, move fits_to_fits, add cb_unit (#310)
  • Plot improvements batch 2 (#309)
  • Overhaul plot styling and extract fits_* output functions (#308)
  • Rename PlotterInterface -> Plotter; extract subplot functions; update docs (#307)
  • PR G1-G2: replace mat_plot_2d.plot_array with _plot_array() bridge in… (#306)
  • Refactor mass profile unit tests to be more granular (#305)
  • Feature/ellipse utils (#304)
  • docs(api): update RST API reference pages for consistency (#303)
  • docs(util): add module-level docstrings to util package (#302)
  • docs(aggregator): add module-level docstrings to aggregator package (#301)
  • docs: add module docstrings to analysis package (#300)
  • docs: add module docstrings to quantity package (#299)
  • docs: add module docstrings to ellipse package (#298)
  • docs: add module docstrings to interferometer package (#297)
  • docs: add module docstrings and fill missing docstrings in imaging package (#296)
  • docs: add module docstrings and fill missing method docstrings in operate package (#295)
  • docs: add module docstring and improve class docstrings in cosmology package (#294)
  • docs: add module docstrings and improve method docstrings in galaxy package (#293)
  • docs: add module docstrings and improve method docstrings in profiles package (#292)
  • Feature/cnfw mge (#290)
  • Add luminosity_distance to LensingCosmology (#289)
  • Add hilbert_pixels_from_pixel_scale to model_util (#288)
  • Add mge_point_model_from to model_util for compact point-source model… (#287)
  • feature/jaxify_gnfw_conc (#286)
  • Feature/deflections operate jax (#285)
  • Feature/jax mge (#284)
  • Feature/remove preloads (#283)
  • Feature/psf convolution refactor (#282)
  • Feature/mesh refactor (#281)
  • Feature/cored nfw (#280)
  • Feature/jax e nfw (#279)
  • Feature/jax in image dict (#277)
  • Feature/unconvolved images (#276)
  • Feature/linalg mixed precision (#275)
  • zeta_from made jax compatible, zeta_from and wofz in higher precision… (#272)
  • Feature/fft jax imaging (#271)
  • Feature/cosmology jax (#269)
  • Feature/gaussian mass (#268)
  • feature/remove_mapper_valued (#267)

Upstream Changes

PyAutoFit

  • Drop Python 3.9-3.11, add 3.13 (#1177)
  • Make search logging JAX-aware (#1176)
  • Flatten plot API: replace Plotter classes with module-level functions (#1174)
  • Add expanded model mapping unit tests (#1172)
  • feature/jax_cpu_jit (#1170)
  • feature/jax_cpu_batch_size_1 (#1169)
  • feature/samples_summary_failsafe (#1168)

PyAutoArray

  • Drop Python 3.9-3.11, add 3.13 (#249)
  • Make output_format configurable, default to show (#248)
  • Visualization final: config origin, fits API, output mode (#247)
  • Colorbar tick fontsize reduction and scientific notation consistency (#246)
  • Plot improvements: DPI config, Delaunay aspect ratio, tick rounding, source vmax (#244)
  • Add RGB support to plot_array (#243)
  • Plot improvements: line_colors, is_subplot colorbar sizing, inversion panels (#242)
  • Plot improvements: arcsec tick labels, circular import fix, test imports (#241)
  • Plot improvements batch 2 (#240)
  • Overhaul 2D plot styling and subplot layout (#239)
  • Add subplot_imaging and subplot_imaging_dataset_list standalone plot functions (#238)
  • Claude/refactor plotting module s6 zq1 (#236)
  • Refactor dataset and operator tests for granularity and clarity (#235)
  • Refactor inversion and mapper tests for granularity and clarity (#234)
  • Refactor regularization tests for granularity and clarity (#233)
  • refactor: split mask tests into granular focused tests (#232)
  • refactor: split structures tests into granular focused tests (#231)
  • refactor: split fit tests into granular focused tests (#230)
  • improve docstrings for autoarray/inversion package and update fit log… (#229)
  • Improve docstrings for autoarray/fit package (#228)
  • docs: refactor docstrings for autoarray/structures package (#227)
  • docs: refactor docstrings for autoarray/mask package (#226)
  • docs: refactor and complete docstrings for autoarray/geometry (#225)
  • docs: refactor and complete docstrings for autoarray/dataset (#224)
  • Add CLAUDE.md documenting decorator system and JAX jit boundary (#223)
  • eature/blurring_mask_padding (#222)
  • perform fix by not linking state blurring grid to dataset grid (#221)
  • Feature/remove preloads (#220)
  • fix rectangular mesh grid plot (#219)
  • Feature/psf convolution refactor (#218)
  • Feature/mesh refactor (#217)
  • feature/psf_centering_fix (#216)
  • Feature/matern adaptive ([#214]...
Read more

PyAutoGalaxy JAX

22 Jan 08:55

Choose a tag to compare

UPDATE: Latest JAX version is now 2025.11.5.1

This release marks the completion of two years work implementing JAX (https://docs.jax.dev/en/latest/notebooks/thinking_in_jax.html) in PyAutoGalaxy.

With JAX, any modeling analysis can be run on GPU, with speed up of ~x50 or more.

Core Release

The core PyAutoGalaxy API does not change significantly, however existing users redownload the new autogalaxy workspace, which has new configs and examples:

https://github.com/Jammy2211/autogalaxy_workspace

New user should checkout the start_here.ipynb notebook, which can be read via a Google Colab by clicking the hyperlink.

GPU Modeling Examples

The following Juypter Notebooks, which run via Google Colab, illustrate < 10 minute galaxy modeling for different science cases:

Performance Of Features

  • Interferometer with many Visibilities: Above ~ GPU uv-plane analysis with hundreds of millions of visibilities and extremely high resolutions run in under and hour, a monumental speed up compared to CPU modeling.

  • Pixelized sources run ~x5 - x20 faster on modern HPC GPU clusters, with galaxy modeling times typically ~10 - 20 minutes. Pixelized source performance depends on the available GPU VRAM.

May 2025

07 May 20:44

Choose a tag to compare

  • Results workflow API, which generates .csv, .png and .fits files of large libraries of results for quick and efficient inspection:

https://github.com/Jammy2211/autolens_workspace/tree/main/notebooks/results/workflow

  • Visualization now outputs .fits files corresponding to each subplot, which more concisely contain all information of a fit and are used by the above workflow API.

  • Visualization Simplified, removing customization of individual image outputs.

  • Remove Analysis summing API, replacing all dataset combinations with AnalysisFactor and FactorGraphModel API used for graphical modeling:

https://github.com/Jammy2211/autolens_workspace/blob/main/notebooks/advanced/multi/modeling/start_here.ipynb

  • Pixelized source reconstruction output as a .csv file which can be loaded and interpolated for better source science analysis.

  • Latent variable API bug fixes and now used in some test example scripts.

January 2025

18 Jan 12:45

Choose a tag to compare

The main updates are visualization of Delaunay mesh's using Delaunah triangles and a significant refactoring of over sampling, with the primary motivation to make the code much less complex for the ongoing JAX implementation.

What's Changed

Full Changelog: 2024.11.13.2...2025.1.18.7

November 2024 update

13 Nov 14:00

Choose a tag to compare

Small bug fixes and optimizations for Euclid lens modeling pipeline.

November 2024

06 Nov 09:26

Choose a tag to compare

Minor release with stability updates and one main feature.

September 2024

21 Sep 11:04

Choose a tag to compare

This release updates all projects to support Python 3.12, with support tested for Python 3.9 - 3.12 and 3.11 regarded as most stable.

This includes many project dependency updates:

https://github.com/rhayes777/PyAutoFit/blob/main/requirements.txt
https://github.com/rhayes777/PyAutoFit/blob/main/optional_requirements.txt
https://github.com/Jammy2211/PyAutoGalaxy/blob/main/requirements.txt
https://github.com/Jammy2211/PyAutoGalaxy/blob/main/optional_requirements.txt

Workspace Restructure:

This release has a workspace restructure, which is now grouped at a high level by tasks (e.g. modeling, simulators) rather than datasets:

https://github.com/Jammy2211/autogalaxy_workspace

The readthedocs have been greatly simplified and include a new user guide to help navitgate the new workspace:

https://pyautogalaxy.readthedocs.io/en/latest/overview/overview_2_new_user_guide.html

PyAutoGalaxy:

PyAutoFit:

https://github.com/rhayes777/PyAutoFit/pulls?q=is%3Apr+is%3Aclosed