Difference between revisions of "LambdaCubeEngine"
Jump to navigation
Jump to search
(9 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
== Overview == |
== Overview == |
||
− | LambdaCube is a |
+ | [http://lambdacube3d.wordpress.com/ LambdaCube] is a Domain Specific Language for 3D graphics. |
− | 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 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. |
⚫ | |||
− | An application building on LambdaCube is composed of the following layers: |
||
− | |||
− | {| cellspacing="0" cellpadding="2" |
||
− | | colspan="5" align="center" style="background: #ccccff" | application |
||
− | |- |
||
− | | colspan="2" style="background: #ffffcc" | |
||
− | | colspan="3" align="center" style="background: #ccffcc" | optional components |
||
− | |- |
||
− | | colspan="5" align="center" style="background: #ffffcc" | generic core |
||
− | |- |
||
− | | colspan="5" align="center" style="background: #ffcccc" | render system |
||
− | |- |
||
− | | align="center" style="background: #cccccc" | native OpenGL |
||
− | | align="center" | or |
||
− | | align="center" style="background: #cccccc" | DirectX |
||
− | | align="center" | or |
||
− | | align="center" style="background: #cccccc" | ... |
||
− | |} |
||
− | |||
− | * 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 |
||
⚫ | |||
⚫ | |||
⚫ | |||
+ | * 2012-08-15 - Started development [http://lambdacube3d.wordpress.com/ blog] |
||
+ | * 2011-06-23 - The second big release which already includes a more advanced Bullet binding and the Stunts example; details in the [http://just-bottom.blogspot.com/2011/06/renewed-lambdacube-bullet-bindings-and.html announcement] |
||
* 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 |
||
* 2009-09-22 - The summer report was presented at the [http://ocaml.janestcapital.com/?q=node/68 JSSP meeting] |
* 2009-09-22 - The summer report was presented at the [http://ocaml.janestcapital.com/?q=node/68 JSSP meeting] |
||
Line 37: | Line 19: | ||
* 2009-01-?? - Development started |
* 2009-01-?? - Development started |
||
− | == |
+ | == Screenshots == |
+ | === 2012-06 - LC DSL Q3 example === |
||
⚫ | |||
+ | [[Image:Lc-q3.png|800px|Quake3 example]] |
||
⚫ | |||
+ | === 2012-06 - LC DSL Stunts example === |
||
− | * Must have: |
||
− | ** texture effects |
||
− | ** (DONE) 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) |
||
− | ** (DONE) rewrite to [http://hackage.haskell.org/package/OpenGLRaw OpenGLRaw] |
||
− | ** LOD support |
||
− | * Low priority: |
||
− | ** particle system |
||
− | ** shadow mapping |
||
− | ** skeletal animation |
||
− | ** volumetric clouds |
||
− | ** imposters |
||
− | ** Collada support |
||
− | ** terrain support (heightmap with LOD, cf. [http://www.andrasbalogh.com/RangerMk2/ SOAR]) |
||
− | ** mesh modelling interface |
||
− | * Long term: |
||
− | ** Quake3 map loader (BSP support) |
||
+ | [[Image:Lc-stunts-1.png|800px|Stunts example]] |
||
− | == Screenshots == |
||
+ | |||
+ | [[Image:Lc-stunts-2.png|800px|Stunts example]] |
||
=== 2009-11 - Hackage release === |
=== 2009-11 - Hackage release === |
||
Line 90: | Line 53: | ||
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] |
||
− | ** Geometry is supported |
||
− | * [http://www.ogre3d.org/docs/manual/manual_14.html#SEC23 Material Script] |
||
− | |||
− | == Dependencies == |
||
− | |||
− | * 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/uulib uulib] - 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/zip-archive zip-archive] |
||
− | ** [http://hackage.haskell.org/package/hslogger hslogger] |
||
− | * Optional components: |
||
− | ** [http://hackage.haskell.org/package/stb-image stb-image] - image loader |
||
− | ** [http://hackage.haskell.org/package/xml xml] - Ogre interchange format loader |
||
− | * Examples: |
||
− | ** [http://hackage.haskell.org/package/GLFW GLFW] |
||
− | ** [http://hackage.haskell.org/package/elerea elerea] |
||
− | ** [http://hackage.haskell.org/package/bullet Bullet Physics binding] |
||
− | |||
⚫ | |||
[[Category:Applications]] |
[[Category:Applications]] |
Revision as of 09:00, 8 September 2012
Overview
LambdaCube is a Domain Specific Language for 3D graphics.
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.
Download
LambdaCube DSL repository at GitHub
History
- 2012-08-15 - Started development blog
- 2011-06-23 - The second big release which already includes a more advanced Bullet binding and the Stunts example; details in the announcement
- 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
Screenshots
2012-06 - LC DSL Q3 example
2012-06 - LC DSL Stunts example
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.
The engine and the examples not using physics build out of the box on a fresh Haskell Platform install under Windows. If Bullet is installed, the Stunts example should also be possible to get running with cabal-install.