LambdaCubeEngine: Difference between revisions
GergelyPatai (talk | contribs) (Added todo list.) |
GergelyPatai (talk | contribs) m (Fixed titles.) |
||
Line 1: | Line 1: | ||
== Overview == | |||
LambdaCube is a 3D rendering engine entirely written in Haskell. | LambdaCube is a 3D rendering engine entirely written in Haskell. | ||
Line 30: | Line 28: | ||
* render system: a thin abstraction layer to unify low-level APIs | * render system: a thin abstraction layer to unify low-level APIs | ||
== News == | |||
* 2009-11-18 - The first release on Hackage: [http://hackage.haskell.org/package/lambdacube-engine engine] and [http://hackage.haskell.org/package/lambdacube-examples examples], plus a [http://hackage.haskell.org/package/lambdacube-bullet bullet example] that will eventually grow into a library | * 2009-11-18 - The first release on Hackage: [http://hackage.haskell.org/package/lambdacube-engine engine] and [http://hackage.haskell.org/package/lambdacube-examples examples], plus a [http://hackage.haskell.org/package/lambdacube-bullet bullet example] that will eventually grow into a library | ||
Line 39: | Line 37: | ||
* 2009-01-?? - Development started | * 2009-01-?? - Development started | ||
== Download == | |||
[http://code.google.com/p/lambdacube/ LambdaCube repository at Google Code] | [http://code.google.com/p/lambdacube/ LambdaCube repository at Google Code] | ||
== Todo == | |||
* Must have: | * Must have: | ||
Line 68: | Line 66: | ||
** Quake3 map loader (BSP support) | ** Quake3 map loader (BSP support) | ||
== Screenshots == | |||
=== 2009-11 - Hackage release === | |||
[[Image:Lambdacube-basic.png|LambdaCube basic example]] | [[Image:Lambdacube-basic.png|LambdaCube basic example]] | ||
=== 2009-09 - JSSP meeting === | |||
Tile Racer track loader: | Tile Racer track loader: | ||
Line 84: | Line 82: | ||
[[Image:Lambdacube-physics.png|800px|LambdaCube and Bullet physics example]] | [[Image:Lambdacube-physics.png|800px|LambdaCube and Bullet physics example]] | ||
=== 2009-03 - Pre-summer mock-up === | |||
[[Image:Lambdacube1.jpeg]] | [[Image:Lambdacube1.jpeg]] | ||
== Licence == | |||
The code is released under BSD3. | The code is released under BSD3. | ||
== Features == | |||
* [http://www.ogre3d.org/docs/manual/manual_9.html#SEC12 Mesh file format] | * [http://www.ogre3d.org/docs/manual/manual_9.html#SEC12 Mesh file format] | ||
Line 98: | Line 96: | ||
* [http://www.ogre3d.org/docs/manual/manual_14.html#SEC23 Material Script] | * [http://www.ogre3d.org/docs/manual/manual_14.html#SEC23 Material Script] | ||
== Dependencies == | |||
* Core library: | * Core library: |
Revision as of 16:45, 26 November 2009
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-11-18 - The first release on Hackage: engine and examples, plus a bullet example that will eventually grow into a library
- 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
Download
LambdaCube repository at Google Code
Todo
- Must have:
- texture effects
- light setup
- frustum culling
- full shader support
- Medium priority:
- overlay support + font rendering
- binary loader for the native Ogre format
- framework for supporting various shaders (glsl, Cg)
- rewrite to OpenGLRaw
- LOD support
- Low priority:
- particle system
- shadow mapping
- skeletal animation
- volumetric clouds
- imposters
- Collada support
- terrain support (heightmap with LOD, cf. SOAR)
- mesh modelling interface
- Long term:
- Quake3 map loader (BSP support)
Screenshots
2009-11 - Hackage release
2009-09 - JSSP meeting
Tile Racer track loader:
Bullet physics integration:
2009-03 - Pre-summer mock-up
Licence
The code is released under BSD3.
Features
- Mesh file format
- Geometry is supported
- Material Script
Dependencies
- Core library:
- Optional components:
- Examples:
The engine and the examples not using physics build out of the box on a fresh Haskell Platform install under Windows.