IACTrace¶
Differentiable optical ray tracing for Imaging Atmospheric Cherenkov Telescopes
IACTrace is a ray tracing library for simulating the optical properties of IACT systems. Built on JAX and Equinox, it enables gradient-based optimization and differentiable simulations.
import jax
import jax.numpy as jnp
from iactrace import Telescope, Camera
# Load telescope and camera.
key = jax.random.key(0)
telescope = Telescope.from_yaml(
"configs/HESS/CT3.yaml", n_samples=256, key=key,
)
camera = Camera.from_yaml("configs/HESS/HESS1U.yaml")
# Simulate an on-axis parallel source.
sources = jnp.array([[0.0, 0.0, -1.0]]) # direction vector
values = jnp.array([1.0]) # intensity
# Trace through optics, then form a pixel image.
ray_bundle = telescope.render(sources, values, source_type="parallel")
image = camera.image(ray_bundle)
About This Project
Getting Started
Example Gallery
API Reference