“Aether: an embedded domain specific sampling language for Monte Carlo rendering”

  • ©Luke Anderson, Tzu-Mao Li, Jaakko Lehtinen, and Frédo Durand



Session Title:

    Rendering Systems


    Aether: an embedded domain specific sampling language for Monte Carlo rendering




    Implementing Monte Carlo integration requires significant domain expertise. While simple samplers, such as unidirectional path tracing, are relatively forgiving, more complex algorithms, such as bidirectional path tracing or Metropolis methods, are notoriously difficult to implement correctly. We propose Aether, an embedded domain specific language for Monte Carlo integration, which offers primitives for writing concise and correct-by-construction sampling and probability code. The user is tasked with writing sampling code, while our compiler automatically generates the code necessary for evaluating PDFs as well as the book keeping and combination of multiple sampling strategies. Our language focuses on ease of implementation for rapid exploration, at the cost of run time performance. We demonstrate the effectiveness of the language by implementing several challenging rendering algorithms as well as a new algorithm, which would otherwise be prohibitively difficult.


    1. James Arvo and David Kirk. 1990. Particle Transport and Image Synthesis. Comput. Graph. (Proceedings of SIGGRAPH 1990) 24, 4 (Sept. 1990), 63–66. Google ScholarDigital Library
    2. Iliyan Georgiev, Jaroslav Krivánek, Tomáš Davidovič, and Philipp Slusallek. 2012. Light Transport Simulation with Vertex Connection and Merging. ACM Trans. Graph. 31, 6, Article 192 (2012), 10 pages.Google ScholarDigital Library
    3. Noah Goodman, Vikash Mansinghka, Daniel Roy, Keith Bonawitz, and Daniel Tarlow. 2012. Church: a language for generative models. arXiv preprint arXiv:1206.3255 (2012).Google Scholar
    4. Noah D Goodman and Andreas Stuhlmüller. 2014. The Design and Implementation of Probabilistic Programming Languages. http://dippl.org. (2014). Accessed: 2015-12-17.Google Scholar
    5. Toshiya Hachisuka, Wojciech Jarosz, Richard Peter Weistroffer, Kevin Dale, Greg Humphreys, Matthias Zwicker, and Henrik Wann Jensen. 2008a. Multidimensional Adaptive Sampling and Reconstruction for Ray Tracing. ACM Trans. Graph. (Proceedings of SIGGRAPH 2008) 27, 3, Article 33 (Aug. 2008), 10 pages. Google ScholarDigital Library
    6. Toshiya Hachisuka, Shinji Ogaki, and Henrik Wann Jensen. 2008b. Progressive Photon Mapping. ACM Trans. Graph. (Proceedings of SIGGRAPH Asia 2008) 27, 5, Article 130 (Dec. 2008), 8 pages. Google ScholarDigital Library
    7. Toshiya Hachisuka, Jacopo Pantaleoni, and Henrik Wann Jensen. 2012. A Path Space Extension for Robust Light Transport Simulation. ACM Trans. Graph. (Proceedings of SIGGRAPH Asia 2012) 31, 6, Article 191 (Nov. 2012), 10 pages. Google ScholarDigital Library
    8. Wenzel Jakob. 2010. Mitsuba renderer. (2010). http://www.mitsuba-renderer.org.Google Scholar
    9. Wenzel Jakob and Steve Marschner. 2012. Manifold Exploration: A Markov Chain Monte Carlo technique for rendering scenes with difficult specular transport. ACM Trans. Graph. 31, 4 (2012), 58:1–58:13.Google ScholarDigital Library
    10. Henrik Wann Jensen. 1996. Global Illumination Using Photon Maps. In Proceedings of the Eurographics Workshop on Rendering Techniques ’96. 21–30. Google ScholarCross Ref
    11. Nathaniel L. Jones and Christoph F. Reinhart. 2016. Parallel Multiple-bounce Irradiance Caching. In Proceedings of the Eurographics Symposium on Rendering (EGSR ’16). 57–66. Google ScholarDigital Library
    12. James T. Kajiya. 1986. The rendering equation. In SIGGRAPH 1986. 143–150. Google ScholarDigital Library
    13. Alexander Keller. 1997. Instant Radiosity. In Proceedings of the 24th Annual Conference on Computer Graphics and Interactive Techniques (SIGGRAPH ’97). 49–56. Google ScholarDigital Library
    14. Markus Kettunen, Marco Manzi, Miika Aittala, Jaakko Lehtinen, Frédo Durand, and Matthias Zwicker. 2015. Gradient-Domain Path Tracing. ACM Trans. Graph. (Proceedings of SIGGRAPH 2015) 34, 4 (2015).Google Scholar
    15. Claude Knaus and Matthias Zwicker. 2011. Progressive Photon Mapping: A Probabilistic Approach. ACM Trans. Graph. 30, 3, Article 25 (May 2011), 13 pages.Google Scholar
    16. Andrew McCallum, Karl Schultz, and Sameer Singh. 2009. Factorie: Probabilistic programming via imperatively defined factor graphs. In Advances in Neural Information Processing Systems. 1249–1257.Google Scholar
    17. Brian Milch, Bhaskara Marthi, Stuart Russell, David Sontag, Daniel L Ong, and Andrey Kolobov. 2007. BLOG: Probabilistic Models with Unknown Objects. Statistical relational learning (2007), 373.Google Scholar
    18. Jiawei Ou and Fabio Pellacini. 2010. SafeGI: Type Checking to Improve Correctness in Rendering System Implementation. Computer Graphics Forum (Proceedings of EGSR 2010) 29, 4 (2010), 1269–1277.Google ScholarDigital Library
    19. Matt Pharr and Greg Humphreys. 2010. Physically Based Rendering, Second Edition: From Theory To Implementation (2nd ed.). Morgan Kaufmann Publishers Inc., San Francisco, CA, USA.Google Scholar
    20. Peter Shirley, Changyaw Wang, and Kurt Zimmerman. 1996. Monte Carlo Techniques for Direct Lighting Calculations. ACM Trans. Graph. 15, 1 (Jan. 1996), 1–36. Google ScholarDigital Library
    21. Stan Development Team. 2015. Stan Modeling Language Users Guide and Reference Manual, Version 2.9.0. http://mc-stan.org/Google Scholar
    22. Eric Veach. 1998. Robust Monte Carlo Methods for Light Transport Simulation. Ph.D. Dissertation. Stanford University.Google Scholar
    23. Eric Veach and Leonidas Guibas. 1994. Bidirectional Estimators for Light Transport.Google Scholar
    24. Eric Veach and Leonidas J. Guibas. 1997. Metropolis Light Transport. In SIGGRAPH 1997. 65–76. Google ScholarDigital Library
    25. Todd Veldhuizen. 1995. Expression templates. C++ Report 7, 5 (1995), 26–31.Google ScholarDigital Library
    26. Todd Veldhuizen. 1996. Using C++ template metaprograms. In C++ gems. SIGS Publications, Inc., 459–473.Google Scholar
    27. Ingo Wald, Sven Woop, Carsten Benthin, Gregory S. Johnson, and Manfred Ernst. 2014. Embree: A Kernel Framework for Efficient CPU Ray Tracing. ACM Trans. Graph. (Proceedings of SIGGRAPH 2014) 33, 4, Article 143 (July 2014), 8 pages. Google ScholarDigital Library
    28. Bruce Walter, Sebastian Fernandez, Adam Arbree, Kavita Bala, Michael Donikian, and Donald P. Greenberg. 2005. Lightcuts: A Scalable Approach to Illumination. ACM Trans. Graph. (Proceedings of SIGGRAPH 2005) 24, 3 (July 2005), 1098–1107. Google ScholarDigital Library
    29. Rui Wang, Rui Wang, Kun Zhou, Minghao Pan, and Hujun Bao. 2009. An Efficient GPU-based Approach for Interactive Global Illumination. ACM Trans. Graph. (Proceedings of SIGGRAPH 2009) 28, 3, Article 91 (July 2009), 8 pages.Google Scholar
    30. Gregory J. Ward, Francis M. Rubinstein, and Robert D. Clear. 1988. A Ray Tracing Solution for Diffuse Interreflection. Comput. Graph. (Proceedings of SIGGRAPH 1988) 22, 4 (June 1988), 85–92. Google ScholarDigital Library
    31. Wolfram Research, Inc. 2016. Mathematica.Google Scholar
    32. E Woodcock, T Murphy, P Hemmings, and S Longworth. 1965. Techniques used in the GEM code for Monte Carlo neutronics calculations in reactors and other systems of complex geometry. In Proc. Conf. Applications of Computing Methods to Reactor Problems, Vol. 557.Google Scholar

ACM Digital Library Publication: