Difference between revisions of "LambdaCubeEngine"

From HaskellWiki
Jump to navigation Jump to search
(Cleaned up dependencies and updated licence info.)
m (Separated optional components from core.)
Line 76: Line 76:
 
* Core library:
 
* Core library:
 
** [http://hackage.haskell.org/package/OpenGL OpenGL] - to be dropped completely in favour of [http://hackage.haskell.org/package/OpenGLRaw OpenGLRaw]
 
** [http://hackage.haskell.org/package/OpenGL OpenGL] - to be dropped completely in favour of [http://hackage.haskell.org/package/OpenGLRaw OpenGLRaw]
** [http://hackage.haskell.org/package/uulib uuLib] - used for parsing scripts
+
** [http://hackage.haskell.org/package/uulib uulib] - used for parsing scripts
 
** [http://hackage.haskell.org/package/alex alex] - used for parsing scripts
 
** [http://hackage.haskell.org/package/alex alex] - used for parsing scripts
 
** [http://hackage.haskell.org/package/fgl fgl] - scene graph handling
 
** [http://hackage.haskell.org/package/fgl fgl] - scene graph handling
 
** [http://hackage.haskell.org/package/zip-archive zip-archive]
 
** [http://hackage.haskell.org/package/zip-archive zip-archive]
 
** [http://hackage.haskell.org/package/hslogger hslogger]
 
** [http://hackage.haskell.org/package/hslogger hslogger]
  +
* Optional components:
** [http://hackage.haskell.org/package/stb-image stb-image] - optional component: image loader
 
** [http://hackage.haskell.org/package/xml xml] - optional component: Ogre interchange format loader
+
** [http://hackage.haskell.org/package/stb-image stb-image] - image loader
 
** [http://hackage.haskell.org/package/xml xml] - Ogre interchange format loader
 
* Examples:
 
* Examples:
 
** [http://hackage.haskell.org/package/GLFW GLFW]
 
** [http://hackage.haskell.org/package/GLFW GLFW]

Revision as of 22:05, 15 October 2009

Lambdacube Engine

Overview

Lambdacube is a 3D rendering engine entirely written in Haskell.

The main goal of this project is to provide a modern and feature rich graphical backend for various Haskell projects, and in the long run it is intended to be a practical solution even for serious purposes. The engine uses Ogre3D's mesh and material file format, therefore it should be easy to find or create new content for it. The code sits between the low-level C API (raw OpenGL, DirectX or anything equivalent; the engine core is graphics backend agnostic) and the application, and gives the user a high-level API to work with.

An application building on Lambdacube is composed of the following layers:

application
  optional components
generic core
render system
native OpenGL or DirectX or ...
  • optional components: e.g. loaders for various formats, physics engine
  • generic core: resource handling, script loading, rendering
  • render system: a thin abstraction layer to unify low-level APIs

News

  • 2009-09-22 - The summer report was presented at the JSSP meeting
  • 2009-08-10 - Major public commit that went with the mid-summer report
  • 2009-05-12 - Project announced to be among the JSSP winners
  • 2009-03-31 - Application for Jane Street Summer Project sent in
  • 2009-01-?? - Development started

Todo

  • clean up code and upload it to Hackage

Download

Lambdacube repository at Google Code (outdated at the moment)

Screenshots

2009-09 - JSSP meeting

Tile Racer track loader:

Lambdacube Tile Racer track loader example

Bullet physics integration:

Lambdacube and Bullet physics example

2009-03 - Pre-summer mock-up

Lambdacube1.jpeg

Licence

The code will be released under BSD3.

Features

Dependencies

The engine and the examples not using physics build out of the box on a fresh Haskell Platform install under Windows.