
LambdaCube 3D - lelf
http://lambdacube3d.com/
======
overgard
This is pretty fascinating, although superficially a lot of this seems more
complex than just plain opengl. For example:

    
    
      clear = FrameBuffer $ (DepthImage @1 1000, ColorImage @1 navy)   -- ...
      mapFragments s fs = Accumulate colorFragmentCtx PassAll (\a -> FragmentOutRastDepth $ fs a) s clear
    
    

Compared with:

    
    
      glClearColor(...)
      glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT)
    
    

State management is a nightmare in OpenGL, but that second chunk of code is a
lot easier to wrap my head around even if it's objectively worse in a lot of
ways. Still though, I'm waiting to see the language tutorial before I make up
my mind. Looks interesting!

~~~
csabahruska
that OpenGL code is written like this in LambdaCube 3D:

    
    
      main = ScreenOut (FrameBuffer (ColorImage @1 (V4 0 1 0 1.0)))
    

or with depth + color buffer

    
    
      main = ScreenOut (FrameBuffer (DepthImage @1 1000, ColorImage @1 navy))

------
abecedarius
For anyone else wondering what this has to do with
[https://en.wikipedia.org/wiki/Lambda_cube](https://en.wikipedia.org/wiki/Lambda_cube)
\-- in a few minutes I couldn't find anything.

------
vlastachu
[http://lambdacube3d.com/editor.html](http://lambdacube3d.com/editor.html) why
type inference (for hints in editor) is so cool? Can I do something similar
for haskell (without pain if possible)?

------
vegabook
Does anything like this exist in Ocaml?

------
wiz21
it compiles, but how does it run ?

~~~
S4M
Just edit the code, and if there are no compile errors, it will reload a new
version. To make sure it works for you, load the example "Example01.lc" and
change the color (the tuple at the end of the line). it should change the
color displayed after a second or two.

