![Ph.D. thesis on Differentiable Ray Tracing for Radio Propagation Modeling [R]](https://external-preview.redd.it/ad5lLzVoRxnN6U_wMjl8fi6KC7g3SSZ7d__iDZKIbtI.png?width=640&crop=smart&auto=webp&s=765aa0227a3fd7caf81df8f3b94a58880044be0a)
Ph.D. thesis on Differentiable Ray Tracing for Radio Propagation Modeling [R]
Hi everyone, I recently finished my Ph.D. thesis on Differentiable Ray Tracing for Radio Propagation Modeling. Instead of just compiling my published papers, I tried to write it as an accessible, self-contained textbook for anyone interested in the intersection of radio propagation simulation, autodiff, and ML.
- Permanent handle: https://hdl.handle.net/2078.5/278727
- Repo with TeX source files
While my research focuses on wireless communications rather than pure ML, I think it fits right in here. A major part of the project revolves around automatic differentiation. By taking frameworks like JAX out of their traditional ML context and integrating differentiability into a ray tracing pipeline, we can compute exact gradients through complex physical environments. This allows us to solve inverse problems and directly train machine learning models, which is currently a hot topic in next-gen wireless design.
To make the physics and the math easy to digest, the manuscript is split into three parts:
- Understanding: The physics fundamentals (electromagnetic theory, geometrical optics, and diffraction).
- Building: The algorithmic core, including GPU-accelerated path tracing and the discontinuity smoothing techniques you need to actually make differentiable simulations stable.
- Using: Practical applications like channel modeling, localization, material calibration, and ML-assisted generative path sampling.
A major focus of my thesis is the link between scientific research and reproducible open-source software. On that note, I want to give a massive shoutout to Patrick Kidger (u/patrickkidger). His own thesis inspired me to go the "textbook way" for my manuscript, and I heavily relied on his fantastic JAX packages (jaxtyping, equinox, and optimistix) when developing my open-source libraries, such as DiffeRT.
I hope you find it an interesting read! I'd be happy to answer any questions in the comments about differentiable simulation, ray tracing, or building ray tracing engines in JAX :-)
If you are curious, you can watch the presentation slides and video teaser here