Try online

About LambdaCube 3D

LambdaCube 3D is Haskell-like purely functional domain specific language for programming the GPU (graphics processing unit).

The purpose of LambdaCube 3D is to provide a platform and host language independent graphics API. It allows the programmer to define the rendering pipeline with a single language, which is compiled into shaders and CPU-side setup code. Other parts of the program (e.g. networking or application logic) can be implemented in Haskell, C++ or JavaScript. LambdaCube 3D can be used for desktop and mobile applications, either in standalone applications or in browsers too.

Quick References Documentation
LambdaCube 3D blog Getting Started
GitHub organisation Conceptual Overview
Questions & Answers API documentation
History Language Specification
Related projects Package Overview



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!

Contact Us