| CARVIEW |
Select Language
HTTP/1.1 200 OK
Connection: keep-alive
Server: nginx/1.24.0 (Ubuntu)
Content-Type: text/html; charset=utf-8
Cache-Control: public, max-age=300
Content-Encoding: gzip
Via: 1.1 varnish, 1.1 varnish
Accept-Ranges: bytes
Age: 0
Date: Sat, 17 Jan 2026 23:31:00 GMT
X-Served-By: cache-dfw-kdfw8210148-DFW, cache-bom-vanm7210058-BOM
X-Cache: MISS, MISS
X-Cache-Hits: 0, 0
X-Timer: S1768692660.833833,VS0,VE864
Vary: Accept, Accept-Encoding
transfer-encoding: chunked
lambdacube-engine: 3D rendering engine written entirely in Haskell
[Skip to Readme]
lambdacube-engine: 3D rendering engine written entirely in Haskell
Deprecated
in favor of lambdacube-core
LambdaCube is a 3D rendering engine written entirely in Haskell. It targets newer graphics hardware. The engine uses Ogre3D's mesh and material file format. The main goal of this project is to provide a modern and feature rich graphical backend for various Haskell projects (e.g. FRP libraries).
While the interface looks huge on the surface, the only part of interest to application developers is the Graphics.LambdaCube module, and possibly Graphics.LambdaCube.Loader.StbImage. The rest is only exposed to make low-level interfacing possible.
[Skip to Readme]
Modules
[Index]
- Graphics
- Graphics.LambdaCube
- Graphics.LambdaCube.AnimationState
- Graphics.LambdaCube.BlendMode
- Graphics.LambdaCube.Common
- Graphics.LambdaCube.Compositor
- Graphics.LambdaCube.Entity
- Graphics.LambdaCube.Frustum
- Graphics.LambdaCube.GpuProgram
- Graphics.LambdaCube.GpuProgramParams
- Graphics.LambdaCube.GpuProgramUsage
- Graphics.LambdaCube.HardwareBuffer
- Graphics.LambdaCube.HardwareIndexBuffer
- Graphics.LambdaCube.HardwareOcclusionQuery
- Graphics.LambdaCube.HardwareVertexBuffer
- Graphics.LambdaCube.Image
- Graphics.LambdaCube.Light
- Loader
- Graphics.LambdaCube.Loader.CompositorScript
- Generated
- Graphics.LambdaCube.Loader.MaterialScript
- Graphics.LambdaCube.Loader.MeshXML
- Graphics.LambdaCube.Loader.ParserUtil
- Graphics.LambdaCube.Loader.ResourceScript
- Graphics.LambdaCube.Loader.SkeletonXML
- Graphics.LambdaCube.Loader.StbImage
- Graphics.LambdaCube.Loader.VMesh
- Graphics.LambdaCube.Material
- Graphics.LambdaCube.Mesh
- Graphics.LambdaCube.MeshUtil
- Graphics.LambdaCube.Pass
- Graphics.LambdaCube.PixelFormat
- Graphics.LambdaCube.RenderOperation
- Graphics.LambdaCube.RenderQueue
- Graphics.LambdaCube.RenderSystem
- Graphics.LambdaCube.RenderSystem.GL
- Graphics.LambdaCube.RenderSystem.GL.Capabilities
- Graphics.LambdaCube.RenderSystem.GL.GpuProgram
- Graphics.LambdaCube.RenderSystem.GL.IndexBuffer
- Graphics.LambdaCube.RenderSystem.GL.OcclusionQuery
- Graphics.LambdaCube.RenderSystem.GL.RenderSystem
- Graphics.LambdaCube.RenderSystem.GL.Texture
- Graphics.LambdaCube.RenderSystem.GL.Utils
- Graphics.LambdaCube.RenderSystem.GL.VertexBuffer
- Graphics.LambdaCube.RenderSystem.GL
- Graphics.LambdaCube.RenderSystemCapabilities
- Graphics.LambdaCube.Resource
- Graphics.LambdaCube.SceneGraph
- Graphics.LambdaCube.Skeleton
- Graphics.LambdaCube.Technique
- Graphics.LambdaCube.Texture
- Graphics.LambdaCube.TextureUnitState
- Graphics.LambdaCube.Tree
- Graphics.LambdaCube.Types
- Graphics.LambdaCube.Utility
- Graphics.LambdaCube.VertexBufferVector
- Graphics.LambdaCube.VertexIndexData
- Graphics.LambdaCube.World
- Graphics.LambdaCube
Downloads
- lambdacube-engine-0.2.4.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates
| Versions [RSS] | 0.1.1, 0.1.2, 0.2.1, 0.2.2, 0.2.3, 0.2.4 |
|---|---|
| Change log | CHANGES |
| Dependencies | array (>=0.2.0.0 && <1), base (>=4.0.0.0 && <5), binary (>=0.5.0.1 && <1), bitmap (>=0.0.2 && <0.1), bytestring (>=0.9.1.4 && <1), bytestring-trie (>=0.2 && <0.3), containers (>=0.2 && <1), directory (>=1.0.0.2 && <2), filepath (>=1.1.0.1 && <2), mtl (>=2 && <3), OpenGLRaw, stb-image (>=0.2.1 && <0.3), uulib (>=0.9.10 && <1), vect (>=0.4.6 && <1), vector, vector-algorithms, xml (>=1.3 && <2), zip-archive (>=0.1.1.8 && <1) [details] |
| Tested with | ghc ==6.10.1, ghc ==6.10.4, ghc ==7.0.3 |
| License | BSD-3-Clause |
| Author | Csaba Hruska, Gergely Patai |
| Maintainer | csaba (dot) hruska (at) gmail (dot) com |
| Uploaded | by GergelyPatai at 2012-07-01T16:54:10Z |
| Category | Graphics |
| Home page | https://www.haskell.org/haskellwiki/LambdaCubeEngine |
| Bug tracker | https://code.google.com/p/lambdacube/issues |
| Distributions | |
| Reverse Dependencies | 2 direct, 0 indirect [details] |
| Downloads | 4965 total (25 in the last 30 days) |
| Rating | (no votes yet) [estimated by Bayesian average] |
| Your Rating |
|
| Status | Docs uploaded by user Build status unknown [no reports yet] |
Readme for lambdacube-engine-0.2.4
[back to package description]This is all highly experimental. Check out the examples package and
the website for further details.
There is one important feature that none of the examples can use due
to the way cabal deals with data files. You can specify the paths to
your resources in an ini-style config file, which looks something like
this:
# Comment
[Section]
Zip=path/to/resources-1.zip
Zip=path/to/resources-2.zip
FileSystem=path/to/more/resources/1
FileSystem=path/to/more/resources/2
...
You can use the addConfig function (found in comments in all the
examples) to load this file.
Internals:
Internals overview:
...
render pipeline:
Scene -> FlattenScene -> RenderQueue -> RenderablePass
|-> Light |-> Light (optimize - setup light and pass
|-> Camera |-> Camera render - render each RenderOperation (call RenderSystem's render function)
|-> Entity |-> RenderEntity operations)
for each RenderTarget
renderViewport
data types:
- RenderSystem related typeclasses
- HardwareBuffer
- HardwareVertexBuffer
- HardwareIndexBuffer
- Texture
- GpuProgram
- LinkedGpuProgram
- RenderSystemCapabilities
- World (top level data structure)
low level model data types:
- VertexData
- IndexData
- VertexDeclaration
- VertexBufferBinding
high level model data types:
- SubMesh
- Mesh
- VectorVertexData
material data types:
- Material
- Technique
- Pass
- TextureUnitState
scene related data types:
- FlattenScene
- SceneObject
- Entity
- SubEntity
- Camera
- Light
- SceneNode
- Scene
- MkSceneObjectAction
- MkNodeAction
- Frustum
high level render related data types:
- Compositor
- RenderTarget
- Viewport
-
low level rendering related data types:
- Renderable (type class)
- RenderEntity
- RenderOperation
- RenderablePass
-
resource related data types:
- ResourceLibrary
-
User Guide:
- lambdacube is a rendering engine, does not care with window management and input handling.
- usage:
- create render system
- create world:
- init world with render system and resource paths and loaders
- create the scene
- render loop:
- derive a world data for each new frame, with required world modifications