GSoC/GCI Archive
Google Summer of Code 2011

Crystal Space

Web Page:

Mailing List:


Crystal Space is an Open Source and portable 3D Engine Framework. Crystal Space is very powerful, extensible and flexible. It uses OpenGL for rendering and supports advanced features like CG shaders, skeletal animation with ragdoll, support for physics using bullet or ODE, 3D sound using OpenAL, terrain engine, particle systems, and a lot more. Crystal Space is written in C++ but has high quality bindings for Java and Python even allowing the creation of full 3D applications in these languages.


  • Adding OpenCL support to lighter2 The aim of this project is to provide a generic way to easily take advantage of GPGPU via OpenCL in order to speed up expensive operations such as offline lighting computation which will be used as prototype problem to demonstrate the performance gains that can be achieved.
  • Approximating Dynamic Global Illumination in Crystal Space My proposal is to implement a technique called Screen-Space Directional Occlusion, which approximates indirect lighting and ambient occlusion from nearby objects, for large and fully dynamic scenes at interactive frame rates.
  • Improvements of the collision and physics simulation systems Crystal Space now uses OPCODE as collision system; uses Bullet/ODE as physical system. The collision part of Bullet can be used in Crystal Space as an alternative of OPCODE. The functionalities of collision system and physical system in CS need to be unified. So I will clean the API of the two parts. Besides, there are some useful features of Bullet which haven’t been implemented in CS. I will add these features to CS then make some improvement, like portal, explosion, character controller, etc.
  • Real-time self-shadowing for dynamic transparent objects Rendering real-time self-shadowing dynamic transparent objects, such as clouds, smoke or hair is a problem which cannot be solved using common shadowing techniques such as show mapping or stencil shows. The solution is to create multiple shadow maps which store transparency and interpolate between the values stored in these textures, by using either opacity shadow maps or deep shadow maps.
  • Support of GLSL shaders into Crystal Space The purpose of this project is to provide Crystal Space a full support of OpenGL GLSL shaders, including geometry and tessellation shaders.
  • Video decode support I am planning to add video support to CrystalSpace by creating two new plugins. One of them is a link to Theora, a free and open-source codec, which can later be replaced with another plugin, according to what the developer wants, and the other one is an abstract video player that gets video and audio data from the codec link via an abstract interface.