Releases: PyAutoLabs/PyAutoGalaxy
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.
May 2024
PyAutoFit:
Nautilusnow outputs results on the fly: PyAutoLabs/PyAutoFit#961- Output latent samples of a model-fit, which are parameters derived from a model which may be marginalized over:
PR: PyAutoLabs/PyAutoFit#994
Example: https://github.com/Jammy2211/autofit_workspace/blob/release/notebooks/cookbooks/analysis.ipynb
model.infofile displays complex models in a more concise and readable way: PyAutoLabs/PyAutoFit#1012- All samples with a weight below an input value are now removed from
samples.csvto save hard disk space: PyAutoLabs/PyAutoFit#979 - Documentation describing autofit scientific workflow: PyAutoLabs/PyAutoFit#1011
- Refactor visualization into stand alone module: PyAutoLabs/PyAutoFit#995
- Refactor how results are returned after a search: PyAutoLabs/PyAutoFit#989
- Improved parallelism logging: PyAutoLabs/PyAutoFit#1009
- Likelihood consistency check now performed internally: PyAutoLabs/PyAutoFit#987
- Generation of initial search samples is now performed in parallel: PyAutoLabs/PyAutoFit#997
- No longer store
search_internalon hard-disk. simplifying source code internals: PyAutoLabs/PyAutoFit#938 - Multiple small bug fixes and improvements to interface.
PyAutoGalaxy:
- Remove
Planeobject and replace withGalaxiesobject - Shapelets improvements: #173
- Adaptive over sampling of grids for a pixelization: #168
BasisPlotterwhich plots each basis (e.g. each Gaussian of an MGE): #173- Plot mappings between source and image plane of a pixelization as lines: #172
- For multi-wavelength datasets model offsets between each dataset: #171
- Modeling of background sky: #170
- Improvements to use of adapt images for adaptive pixelizations: #160
- Improved angle conversions for computing errors on mass profile and shear angles from
ell_comps: #169 - Remove
sub_sizefrom all classes (e.g.Array2D,Mask2D) to simplify API. MaternKerneladded: #148
January 2024 (2024.1.27.4)
- Log10 plots implemented in 1D and 2D, which show certain quantities (e.g. galaxy convergence) more clear and include contours showing log10 values:
- Improved subplots including addition of log10 panels:
PixelizationAPI now has separate entry for animage_mesh, defining how the source pixel centres are computed (E.g. using a KMeans clustering) and themeshis now just the method (e.g.Delaunay):
pixelization = al.Pixelization(
image_mesh=al.image_mesh.Overlay(shape=(25, 25)),
mesh=al.mesh.Delaunay(),
regularization=al.reg.Constant(coefficient=1.0),
)
-
Implemented
Hilbertimage-mesh which is a significant improvement onKMeansclustering for creating the distribution of source pixels for a pixelization and inversion. -
Simplified
adapt_datasetAPI to now only pass via anAdaptImageclass, which is not passed asGalaxyattributes anymore but instead through theFitImagingobject. -
Removed
SetupAdaptobject and passimage_mesh_pixelsas an integer through pipelines. -
Added Exponential / Gaussian smoothing kernels for regularization documented in Vernardos 2022 (https://arxiv.org/abs/2202.09378)
October 2023 (2023.10.23.3)
- Support for Python 3.11 by updating requirement on core libraries (e.g.
numpy,scipy,scikit-learn). - Fix issues with sqlite database following switch from
.pickleoutputs to.json/.fits/.csv. - Database use of
Samplesobject much more efficient. - Methods to output classes to hard-disk (e.g.
output_to_json,from_json,to_dict) are now all handled and called fromautoconf. - Fix bug where
nautilusparallel fits sometimes crashed. - Fix bug where
nautilussingle CPU fits did not work.

