About LambdaCube 3D
LambdaCube 3D is Haskell-like purely functional domain specific language for programming the GPU (graphics processing unit).
|LambdaCube 3D blog||Getting Started|
|GitHub organisation||Conceptual Overview|
|Questions & Answers||API documentation|
|Related projects||Package Overview|
- easy code reuse – pipeline pieces are pure functions
- single language – CPU-side setup code and shaders are written in a common language
- type safety – if it typechecks, you won’t get a blank screen (well, you need to set up your matrices right)
- hotswapping – no need to stop the program when you change the pipeline
- multiplatform – WebGL1.0/GLES2.0/GL3.3
- language independence – Haskell, PureScript (coming soon: C++, Java)
Motivations and Goals
The basic motivation for creating LambdaCube is really simple: it represents the perfect intersection of different fields that have excited us for a long time – pure functional programming, computer graphics, and compiler research. We intend to explore a totally new branch of the design space for authoring and developer tools.
Ideally this project would be of interest to people with very different backgrounds. We’re employing some of the latest and greatest bits of type theory – in some ways being a step or two ahead of the newest extensions to Haskell –, but at the same time we’re also aiming to create a friendly, efficient environment for rapidly iterating visual ideas.
We strongly believe in the value of exposing ourselves and others to completely new fields of thought, and approaching them with an open mind. Great discoveries often happen at the boundaries, when a new connection is made – both between the people and the ideas from each side. Only the future can tell whether LambdaCube will have any such impact, but one can always hope!