Crystal Space 1.4.0

Crystal Space is a free and portable 3D engine.
Crystal Space
  3 Screenshots
Crystal Space is a free and portable 3D Game Development Kit written in C . It supports: true six degrees of freedom, colored lighting, lightmapped and stencil based lighting, shader support (CG, vertex programs, fragment programs, ...), mipmapping, portals, mirrors, alpha transparency, reflective surfaces, 3D sprites (frame based or with skeletal animation using cal3d animation library), procedural textures, particle systems, halos, volumetric fog, scripting (using Python, Perl, Java, or potentially other languages), 16-bit and 32-bit display support, OpenGL, and software renderer, font support (also with freetype), hierarchical transformations, physics plugin based on ODE, ... See the extensive list of features for more details.

Crystal Space currently runs on GNU/Linux, general Unix, Windows, Windows NT, and MacOS/X. It can optionally use OpenGL (on all platforms), SDL (all SDL platforms), X11 (Unix or GNU/Linux) and SVGALIB (GNU/Linux). It can also optionally use assembler routines using NASM and MMX.

Crystal Space is a large open source project. There are about 700 people subscribed to the Crystal Space mailing list.

The second important feature of Crystal Space is that it is written to run under a wide variety of hardware and software platforms. As of this writing Crystal Space has been known to run on the following systems. Note that if a system is listed here it does not necessarily mean that it is 100% supported:

- Unix (Linux, FreeBSD, etc.)
- Windows (Windows 9x/NT/ME/2000/XP)
- MacOS/X

Main features:

  • Geometric utility library with handy classes such as 2D and 3D vectors, matrices, transforms, quaternions, kdtree, axis aligned and oriented bounding box routines, rectangle subdivision, etc. See section 6.3 Geometry Library (csGeom).
  • General utility library with stuff like templated arrays, smart pointer, hashmap, object registry, plugin manager, radix sort, bit array, optimized allocators, strings, etc. See section 6.1 Utility Library (csUtil).
  • Higher level tool library containing things like some example procedural textures (plasma, fire, and water), full screen effects, collider support, texture generation tools, etc.
  • Graphics library with simple utilities to do mipmapping, color quantization, calculation of color gradients, simple bumpmapping, etc.
  • 2D and 3D polygons
  • Shared Class Facility SCF. See section 6.2 Shared Class Facility (SCF). See section 5.1 Developing a Crystal Space Application.
  • Smart Pointers. See section 5.8.1 Correctly Using Smart Pointers.
  • Flexible plug-in system. See section 6.2 Shared Class Facility (SCF). See section 5.8.20 Create Your Own Plugin.
  • Virtual file system and transparent support for ZIP files. See section 7.2 Virtual File System (VFS).
  • Configuration files. See section 3.2 Configuration File.
  • Command-line parsing. See section 5.1 Developing a Crystal Space Application.
  • Event system.
  • Full screen effects (fading, whiteout, etc).
  • Procedural textures. See section 7.3.1 Procedural Texture System. See section 7.5.6 Texture Mapping.
  • Level of Detail. See section 7.5.11 Level of Detail.
  • Animated 3D models (3D sprites). See section 7.9 Animation.
  • 2D animations.
  • Quake MD3 and MDL to Crystal Space convertor. See section 5.6 md32spr Tutorial.
  • The `sprcal3d' plugin is able to load Cal3D models. See section 7.7.6 SpriteCal3D Mesh Object.
  • Crystal Space native windowing system(s). See section 7.11 Alternate Windowing System (AWS). See section 6.4 Crystal Space Windowing System (CSWS).
  • 2D canvases (OpenGL, DirectDraw, X11, CoreGraphics, Cocoa, null, memory)
  • 3D renderers (OpenGL, software, null). See section 7.3 Graphics Drivers.
  • Playing AVI streams (DivX 4, OpenDivX) on a texture.
  • Various image loaders (BMP, GIF, JPG, PNG, SGI, TGA, WAL).
  • Portals and sectors. See section 7.5.2 Portal Engine.
  • Lighting: static, pseudo-dynamic, dynamic, halos, shadows, stencil shadows. See section 7.5.3 Lighting. See section 5.8.9 Pseudo-dynamic Lights.
  • Bezier curves.
  • Visibility culling based on kd-tree with coverage buffers (Dynavis). See section 7.5.7 Visibility Culling In Detail.
  • Multiple cameras. See section 5.8.7 Camera Movement.
  • Textures, materials, and shaders. See section 7.5.6 Texture Mapping.
  • Sound drivers (CoreAudio, OSS, and WaveOut). See section 7.4 Sound Drivers.
  • Sound renderers (software, DirectSound 3D, EAX, aRts). See section 7.4 Sound Drivers.
  • Sound loaders (WAV, AU, IFF, AIFF, MOD, MP3, OGG). See section 7.4 Sound Drivers.
  • Thing and other mesh objects. See section 7.7 Mesh Object Plug-In System. See section 7.7.19 Thing Mesh Object, See section 5.8.5 Creating a Thing Mesh. See section 7.7.7 Genmesh Mesh Object. See section 5.8.6 Creating a Genmesh Mesh.
  • 2D and 3D sprites. See section 7.7.5 Sprite3D Mesh Object. See section 7.7.4 Sprite2D Mesh Object.
  • Terrain engines with support for texture splatting (dynamically merging multiple textures on a terrain and LOD). See section 7.7.18 Terrain Mesh Object.
  • Particle systems (fire, explosions, rain, snow, spirals, fountain). See section 7.7.10 Particle Systems in General.
  • Haze mesh (a bit like volumetric light). See section 7.7.17 Haze Mesh Object.
  • Pull-down console that you can integrate in your own games. See section 3.4.5 Console Configuration.
  • Collision detection (using RAPID or OPCODE). See section 5.8.2 Doing Collision Detection.
  • Powerful sequence manager to control movement, animation and other features in a world. See section 7.5.12 Sequence Manager.
  • Bitmapped and vector fonts (FreeFont). See section 5.8.22 Using a Custom Font.
  • Map file loader and converters. See section 7.6.1 Format of Map File (XML), See section 5.4 Simple Tutorial 3: Map Loading. See section 7.6.2 Old Format of Map File.
  • Scripting bindings (Python, Perl, Java). See section 7.8 Scripting Languages.
  • Skeletal animation. See section 7.7.6 SpriteCal3D Mesh Object.
  • Object movement. See section 5.8.4 Mesh Movement.
  • Movie Recording plugin. See section 5.8.23 Recording Movies.
  • Debugging system

last updated on:
January 26th, 2010, 15:06 GMT
license type:
LGPL (GNU Lesser General Public License) 
developed by:
Jorrit Tyberghein
ROOT \ Games \ FPS
Crystal Space
Download Button

In a hurry? Add it to your Download Basket!

user rating 22



Rate it!
3 Screenshots
Crystal SpaceCrystal Space
What's New in This Release:
  • Animesh:
  • Animesh is a new mesh object for animated meshes, integrating vertex based animation with skeletal animation. Skeletal animations are blended together using an extensible and flexible blending tree allowing different parts of the skeleton to be influenced by different animation sequences in a controlled manner. Animesh utilizes volume preserving dual quaternion skinning to give high quality meshes.
  • Terrain2:
read full changelog


Add your review!