{"id":20892924,"url":"https://github.com/galsim-developers/jax-galsim","last_synced_at":"2026-02-08T00:07:22.228Z","repository":{"id":37891709,"uuid":"499808724","full_name":"GalSim-developers/JAX-GalSim","owner":"GalSim-developers","description":"JAX port of GalSim, for parallelized, GPU accelerated, and differentiable galaxy image simulations.","archived":false,"fork":false,"pushed_at":"2024-09-15T18:21:13.000Z","size":1109,"stargazers_count":25,"open_issues_count":15,"forks_count":3,"subscribers_count":8,"default_branch":"main","last_synced_at":"2024-09-16T10:46:18.194Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GalSim-developers.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-06-04T11:39:02.000Z","updated_at":"2024-09-15T18:21:15.000Z","dependencies_parsed_at":"2024-01-05T16:30:40.845Z","dependency_job_id":"c3840215-a0fc-44a3-b71e-39b7a8f6ba6a","html_url":"https://github.com/GalSim-developers/JAX-GalSim","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GalSim-developers%2FJAX-GalSim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GalSim-developers%2FJAX-GalSim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GalSim-developers%2FJAX-GalSim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GalSim-developers%2FJAX-GalSim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GalSim-developers","download_url":"https://codeload.github.com/GalSim-developers/JAX-GalSim/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225156982,"owners_count":17429701,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-18T10:14:16.468Z","updated_at":"2026-02-08T00:07:22.221Z","avatar_url":"https://github.com/GalSim-developers.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JAX-GalSim\n\n**JAX port of GalSim, for parallelized, GPU accelerated, and differentiable galaxy image simulations.**\n\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](code_of_conduct.md) [![Python package](https://github.com/GalSim-developers/JAX-GalSim/actions/workflows/python_package.yaml/badge.svg)](https://github.com/GalSim-developers/JAX-GalSim/actions/workflows/python_package.yaml) [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff) [![pre-commit.ci status](https://results.pre-commit.ci/badge/github/GalSim-developers/JAX-GalSim/main.svg)](https://results.pre-commit.ci/latest/github/GalSim-developers/JAX-GalSim/main) [![CodSpeed Badge](https://img.shields.io/endpoint?url=https://codspeed.io/badge.json)](https://codspeed.io/GalSim-developers/JAX-GalSim)\n\n**Disclaimer**: This project is still in an early development phase, **please use the [reference GalSim implementation](https://github.com/GalSim-developers/GalSim) for any scientific applications.**\n\n## Objective and Design\n\nThe goal of this library is to reimplement GalSim functionalities in pure JAX to allow for automatic differentiation, GPU acceleration, and batched computations.\n\n### Guiding Principles\n\n- Strive to be a drop-in replacement for GalSim, i.e. provide a close match to the GalSim API.\n- Each function/feature will be tested against the reference GalSim implementation.\n- This package will aim to be a **subset** of GalSim (i.e. only contains functions with a reference GalSim implementation).\n- Implementations should be easy to read and understand.\n- Code should be pip-installable on any machine, no compilation required.\n- Any notable differences between the JAX and reference implementations will be clearly documented.\n\n### Notable Differences\n\n- JAX arrays are immutable. Thus, in-place operations on images are not possible and a new image is\n  returned instead. Also, the RNG classes cannot fill arrays and instead return new arrays.\n- JAX arrays do not support all the kinds of views that numpy arrays support. This means that some\n  operations that work in GalSim may not work in JAX-GalSim (e.g., real views of complex images).\n- JAX-GalSim uses a different random number generator than GalSim. This leads to different results in terms of both the\n  generated random numbers and in terms of which RNGs have stable discarding.\n\n## Contributing\n\nEveryone can contribute to this project, please refer to the [CONTRIBUTING.md](CONTRIBUTING.md) document for details.\n\nIn short, to interact with the project you can:\n\n- Ask or Answer questions on the [Discussions Q\u0026A](https://github.com/GalSim-developers/JAX-GalSim/discussions/categories/q-a) page\n- Report a bug by opening a [GitHub issue](https://github.com/GalSim-developers/JAX-GalSim/issues)\n- Open a [GitHub issue](https://github.com/GalSim-developers/JAX-GalSim/issues) or [Discussions](https://github.com/GalSim-developers/JAX-GalSim/discussions) to ask for feedback on a planned contribution.\n- Submit a Pull Request to contribute to the code.\n\nIssues marked with _contributions welcome_ or _good first issue_ are particularly good places to start. These are great ways to learn more\nabout the inner workings of GalSim and how to code in JAX.\n\n## Current GalSim API Coverage\n\n\u003c!-- start-api-coverage --\u003e\nJAX-GalSim has implemented 22.5% of the GalSim API. See the list below for the supported APIs.\n\n\u003cdetails\u003e\n\n- galsim.Add\n- galsim.AffineTransform\n- galsim.Angle\n- galsim.AngleUnit\n- galsim.BaseDeviate\n- galsim.BaseNoise\n- galsim.BaseWCS\n- galsim.BinomialDeviate\n- galsim.Bounds\n- galsim.BoundsD\n- galsim.BoundsI\n- galsim.Box\n- galsim.CCDNoise\n- galsim.CelestialCoord\n- galsim.Chi2Deviate\n- galsim.Convolution\n- galsim.Convolve\n- galsim.Cubic\n- galsim.Deconvolution\n- galsim.Deconvolve\n- galsim.Delta\n- galsim.DeltaFunction\n- galsim.DeviateNoise\n- galsim.Exponential\n- galsim.FitsHeader\n- galsim.FitsWCS\n- galsim.GSFitsWCS\n- galsim.GSObject\n- galsim.GSParams\n- galsim.GalSimBoundsError\n- galsim.GalSimConfigError\n- galsim.GalSimConfigValueError\n- galsim.GalSimDeprecationWarning\n- galsim.GalSimError\n- galsim.GalSimFFTSizeError\n- galsim.GalSimHSMError\n- galsim.GalSimImmutableError\n- galsim.GalSimIncompatibleValuesError\n- galsim.GalSimIndexError\n- galsim.GalSimKeyError\n- galsim.GalSimNotImplementedError\n- galsim.GalSimRangeError\n- galsim.GalSimSEDError\n- galsim.GalSimUndefinedBoundsError\n- galsim.GalSimValueError\n- galsim.GalSimWarning\n- galsim.GammaDeviate\n- galsim.Gaussian\n- galsim.GaussianDeviate\n- galsim.GaussianNoise\n- galsim.Image\n- galsim.ImageCD\n- galsim.ImageCF\n- galsim.ImageD\n- galsim.ImageF\n- galsim.ImageI\n- galsim.ImageS\n- galsim.ImageUI\n- galsim.ImageUS\n- galsim.Interpolant\n- galsim.InterpolatedImage\n- galsim.JacobianWCS\n- galsim.Lanczos\n- galsim.Linear\n- galsim.Moffat\n- galsim.Nearest\n- galsim.OffsetShearWCS\n- galsim.OffsetWCS\n- galsim.PhotonArray\n- galsim.Pixel\n- galsim.PixelScale\n- galsim.PoissonDeviate\n- galsim.PoissonNoise\n- galsim.Position\n- galsim.PositionD\n- galsim.PositionI\n- galsim.Quintic\n- galsim.Sensor\n- galsim.Shear\n- galsim.ShearWCS\n- galsim.SincInterpolant\n- galsim.Spergel\n- galsim.Sum\n- galsim.TanWCS\n- galsim.Transform\n- galsim.Transformation\n- galsim.UniformDeviate\n- galsim.VariableGaussianNoise\n- galsim.WeibullDeviate\n- galsim.bessel.j0\n- galsim.bessel.kv\n- galsim.bessel.si\n- galsim.fits.closeHDUList\n- galsim.fits.readCube\n- galsim.fits.readFile\n- galsim.fits.readMulti\n- galsim.fits.write\n- galsim.fits.writeFile\n- galsim.fitswcs.CelestialWCS\n- galsim.integ.int1d\n- galsim.noise.addNoise\n- galsim.noise.addNoiseSNR\n- galsim.random.permute\n- galsim.utilities.g1g2_to_e1e2\n- galsim.utilities.horner\n- galsim.utilities.printoptions\n- galsim.utilities.unweighted_moments\n- galsim.utilities.unweighted_shape\n- galsim.wcs.EuclideanWCS\n- galsim.wcs.LocalWCS\n- galsim.wcs.UniformWCS\n\n\u003c/details\u003e\n\u003c!-- end-api-coverage --\u003e\n\n_**Note**: The coverage list is generated automatically by the `scripts/update_api_coverage.py` script. To update it, run `python scripts/update_api_coverage.py` from the root of the repository._\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgalsim-developers%2Fjax-galsim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgalsim-developers%2Fjax-galsim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgalsim-developers%2Fjax-galsim/lists"}