Releases: PyAutoLabs/PyAutoGalaxy
v2026.4.13.6
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
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
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_VISUALIZATIONinstead ofPYAUTOFIT_TEST_MODE. See full details below.
- One env var rename. Quantity visualizer now controlled by
- fix: give each basis independent ell_comps in mge_model_from (#342)
-
- New parameter:
centre_per_basis: bool = Falseonmge_model_from— when True, each basis gets independent centre priors
- New parameter:
-
- Behaviour change:
mge_model_fromwithgaussian_per_basis > 1now produces independent ell_comps per basis (was previously tied). Calls withgaussian_per_basis=1are unchanged.
- Behaviour change:
-
- refactor: merge PYAUTO_DISABLE_CRITICAL_CAUSTICS into PYAUTO_FAST_PLOTS (#340)
- Environment variable only — no Python API changes.
PYAUTO_DISABLE_CRITICAL_CAUSTICSis retired; setPYAUTO_FAST_PLOTS=1instead to skip bothtight_layout()and critical-curve/caustic overlay computation. Callers that only setPYAUTO_DISABLE_CRITICAL_CAUSTICSwill no longer skip overlays — they must migrate toPYAUTO_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/autolensworkspaceenv_vars.yaml,run_scripts.sh, and CLAUDE.md files.
- Environment variable only — no Python API changes.
- 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
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]...
PyAutoGalaxy JAX
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:
-
start_here_imaging.ipynb: Galaxy-scale strong galaxyes observed with CCD imaging (e.g. Hubble, James Webb).
-
start_here_interferometer.ipynb: Galaxy scale strong galaxyes observed with interferometer data (e.g. ALMA).
-
start_here_multi_wavelength.ipynb: Model multiple images (different wavelength imaging, imaging + interferometer) simultaneously.
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
- 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
AnalysisFactorandFactorGraphModelAPI used for graphical modeling:
-
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
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
- Feature/disable noise by @Jammy2211 in #211
- feature/delaunay_visual by @Jammy2211 in #210
- feature/inversion noise map by @Jammy2211 in #212
- feature/operate deflections api by @rhayes777 in #195
- Revert "feature/operate deflections api" by @rhayes777 in #213
- Feature/over sampling refactor by @Jammy2211 in #214
Full Changelog: 2024.11.13.2...2025.1.18.7
November 2024 update
Small bug fixes and optimizations for Euclid lens modeling pipeline.
November 2024
Minor release with stability updates and one main feature.
- Extra Galaxies API for modeling multiple galaxies at once: https://github.com/Jammy2211/autogalaxy_workspace/blob/release/notebooks/features/extra_galaxies.ipynb
September 2024
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:
- Improved Cosmology wrapper to support new
astropyand easier to use in models: #193 - Ellipse Fitting: https://github.com/Jammy2211/autogalaxy_workspace/tree/release/notebooks/advanced/misc/ellipse
PyAutoFit:
https://github.com/rhayes777/PyAutoFit/pulls?q=is%3Apr+is%3Aclosed
- Improvements to HowToFit lectures: PyAutoLabs/PyAutoFit#1022
- Support for NumPy arrays in model composition and prior creation, for example creating an
ndarrayof inputshapewhere each value is a free parameter in the seach: PyAutoLabs/PyAutoFit#1021 - Name of
optimizesearches renamed tomle, for maximum likelihood estimator, with improvements to visualization: PyAutoLabs/PyAutoFit#1029 - Improvement to sensitivity mapping functionality and results: https://github.com/rhayes777/PyAutoFit/pulls?q=is%3Apr+is%3Aclosed
- More improvements to JAX Pytree interface, documentation still to come.