Crystal Space

A complete platform for developing interactive applications on Windows, Mac, *Nix, and a variety of other operating systems (including handhelds). Crystal Space is modular and efficient, plus it has a vibrant developer community.

It has been successfully used to create successful gaming titles and is the foundation for the Peragro Tempus engine, upon which UMMO was to be built.

Original page located at:

Feature Spotlight

This page was simplified due to massive amount of visits from other sites.

Version 1.1




In the development version of Crystal Space (1.1) we recently added support for decals. In this screenshot you can see how decals will be used in future versions of PlaneShift for doing shadows under characters and for a targetting effect. Of course you can use decals for many other things (footsteps, bullet holes, …).

Version 1.0

Terrain with Foliage

Trees on a hill

Trees on a hill

Crystal Space includes a foliage generator. This generator can randomly (based on user supplied input like density map and material based densities) place objects like stones, trees, grass, and so on. Especially in combination with our outside terrain engine this will make your worlds feel a lot less empty.

Funny Shaders

Wolf with fur shader

Wolf with fur shader

Our support for vertex and fragment shaders will give you great possiblities of enhancing your art with the nicest, up-to-date effects. Several shaders are included standard with Crystal Space but you are free to make your own.

Skeletal Animation and Dynamic Shadows

Evil character

Evil character

Skeletal animation and dynamic shadows let you create characters that look and feel more lifelike. We support skeletal animation through the cal3d library but we also support our own skeletal animation system. Including support for 3D hardware based animation.


Haze effect

Haze effect

Haze is a moody visual effect showing light cones or boxes with standard, animated or procedural texture.

Upcoming Version 1.2

This is a preliminary list and subject to change.


For the upcoming 1.2 release we are working on an imposter system. Basically this means that objects that are far away will be replaced automatically with a single procedural texture. This will help gain speed in wide open areas (like landscape or space based games) with very little effort for the game developer or artist.


Most 3D worlds typically contain a lot of static geometry (i.e. houses and hills that don’t move). In such situations the PVS visibility culler will help by precomputing visibility in a separate tool. At runtime it will then become very easy to calculate which objects are visible from a given camera position.

New Terrain

We are also working on a new improved terrain engine. One of the most important improvements of this new terrain engine is better paging support.

Complete Feature List

  • Generic
    • Highly platform independent with good platform abstraction. Officially supports Linux, OSX and Windows using a wide range of compilers.
    • Modularized using a lightweight component framework, SCF, based upon the COM model.
    • Self contained so that many modules requires no or few external dependencies.
    • Written in standard C++ using very few non*standard extensions. Source available under LGPL license.
  • Comprehensive and competent
    • Contains modules for 2d and 3d graphics, sound, collision detection and dynamics via ODE and bullet as well as support modules for filesystem abstraction, xml loading etc.
    • Graphics subsystem:
      • Generic renderer abstraction with main implementation being OpenGL based.
      • Supports hardware accelerated rendering on all supported platforms and cards from all well known vendors.
      • OpenGL renderer uses acceleration techniques such as vertex buffers in AGP or VRAM and asyncronious uploads.
      • Shader centric design with shaders defined in xml markup and shader programs implemented using Cg, assembly language or fixed function operations.
      • Complicated shaders can be constructed using a meta syntax as composed by simpler modules that gets combined on load.
      • Library of common shaders such as normal mapping, parallax (virtual displacement) mapping and hardware skinning.
      • Contains a software renderer with scaled down features for platforms without OpenGL and/or debugging.
    • Mesh objects:
      • Plugin based mesh object system
      • Generic triangle based mesh with support for frame and bone based animation.
      • Terrain mesh with fast block based LOD system.
      • Configurable and extensible particle system mesh.
      • General system for static LOD on all types of meshes.
      • Bone based animation mesh using the cal3d library.
    • Collision detection and dynamics:
      • Provides bindings for ODE and bullet dynamics systems.
      • Automatic setup of collision detection meshes and syncronization of position and orientation of meshes.
      • Simplified collision detection when you don’t need the full dynamics simulation
    • Sound system:
      • 2D and 3D sound rendering via DirectSound, Alsa, OSS and CoreAudio.
      • Provides both one*time playing of effects and streaming playing in the background for music.
    • Other:
      • Filesystem abstraction layer, VFS, that handles both physical files on disk and files within ZIP files, giving virtual layout independent from platform and physical layout.
      • Abstracted configuration layer with support for settings in configuration file, system dependent storage such as the registry and command line.
  • Compatible
    • Custom model and scene file format with exporters for Blender and 3d studio max and model importers for common file formats such as 3ds and md2.
    • Supports all common texture file formats including dds, jpg, png as well as some more exotic ones such as mng (animated texture format).
    • Sound loaders for wav and ogg formats.
    • All subsystems easily extendable for new file formats.

Crystal Space vs the Other Graphics Rendering Engine

Often, Crystal Space is compared with OGRE, and “Crystal Space or Ogre?” is a question a lot of people that wish to venture in realtime 3D graphics probably face sooner or later. Naturally, people from one or the other community have a biased opinion; Walt Collins looked at both sides and wrote a comparison between CS and Ogre.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s