GSoC/GCI Archive
Google Summer of Code 2012 Scala Team

Real-time raytracer written functionally in Scala

by Jerzy Redlarski for Scala Team

The aim of the project is to create a graphics engine with a raytracing renderer. The project would be written mostly in Scala and adhering to the functional programming paradigms. One of the goals is to make the rendering in real-time, so that it can be used in games, 3D visualization tools and CAD applications. Functional programming is perfect for this kind of problems, since rendering as a whole is a functional problem (take a model and generate an image). Raytracing is also an embarrassingly parallel problem (scaling near linearly with the number of processors), which means that functional programming allows for easy multithreading. The mathematical nature of 3D computer graphics makes functional programming a natural choice for expressing many of the algorithms and data structures. The project will be written with the Kojo Learning Environment in mind ( http://www.kogics.net/kojo ), serving as a 3D renderer for this project founded by Lalit Pant.