SIREN (Sky Image Rendering ENgine) is a lightweight, instrument-agnostic simulator for astronomical guide cameras. It generates realistic, on-the-fly images that respond dynamically to telescope pointing, seeing, detector properties, and sky conditions—allowing complete testing and development of autoguiding and acquisition systems without on-sky telescope and instrument access.
SIREN was originally developed as the simulated camera (internally known as wvagsim) of the WEAVE Autoguider, part of the WEAVE Project. It has since been generalised and released openly for use by the wider astronomical community.
Realistic astronomical imaging simulators are surprisingly rare. Most existing systems provide only minimal simulation modes based on static images and do not respond to telescope motions or sky conditions. SIREN enables:
- Development of guiding algorithms without telescope access
- Automated regression tests for acquisition and guiding software
- Instrument commissioning rehearsals on laptops and desktops
- Stress-testing under clouds, poor seeing, bright backgrounds, or sparse fields
- Pipeline development for centroiding, PSF extraction, and autoguiding
If you need to test a guiding or acquisition system, SIREN gives you a realistic, controllable sky on your desktop.
If you use SIREN in academic work, please cite:
Gafton, E. et al. (2026). The WEAVE acquisition and guiding software: pattern recognition-based acquisition and multi-fibre guiding, submitted to RASTI.
- Generates star fields based on the Gaia DR3 (or a custom) catalogue
- Configurable PSF models (Gaussian, Moffat, or write your own)
- Seeing drawn from fixed or random distributions
- Accurate flux scaling from magnitudes
- Transforms ICRS mean coordinates to detector coordinates
- Includes optical distortions, field rotation, and pixel geometry
- Accounts for telescope pointing, offsets, dithering, and tracking errors
- Differential atmospheric refraction included by default
- Bad pixels, bad columns
- Dust donuts and flat-field structure
- Read noise, Poisson noise, bias
- Configurable gain, pixel scale, image size
SIREN supports multiple “camera modes”, enabling simulation of different classes of instruments:
- MOS mode: renders synthetic fibre images at specified positions on the detector
- Imaging mode: renders full-frame detector images with realistic artefacts
- Custom modes: easily defined by the user via Python classes
A communication interface emulating the behaviour of real instrument control systems (e.g., CORBAs) can be enabled for environments that require protocol compatibility.
To quickly get started with SIREN, first clone the repository from GitHub,
git clone https://github.com/egafton/siren.git
cd sirenand then (provided you have Docker installed on your computer) execute the command
xhost +local:
docker compose run --build sirenwhich will build, run and attach to a Docker container with all necessary software already installed. The xhost command allows the display of GUIs (such as matplolib plots) from inside the container on your host machine.
You can launch a simple GUI for SIREN using:
./gui.pyYou can specify the instrument, telescope pointing, Sky PA, exposure time and FWHM, and SIREN will show a realistic preview of an exposure taken under the given observing conditions.
To be implemented
To be implemented
To be implemented
To be implemented
SIREN can be extended with modules describing specific instruments, distortion models, or noise characteristics.
To be implemented
- Support for time-dependent clouds and transparency variations
- Modules for common telescopes and instruments (apart from WHT/WEAVE)
- Web-based real-time visualisation
- A standard test suite of “challenge fields” for algorithm benchmarking
Contributions are welcome!
Please see CONTRIBUTING.md for details on coding style, testing, and submitting pull requests.
If you identify bugs or have feature requests, open an issue on GitHub.
SIREN is released under the MIT License (see LICENSE.md).