Elm 0.12.3 – Hardware accelerated 3D rendering with WebGL
elm-lang.orgThis release makes me very happy. I never really took a look at Elm but yesterday I've receive a bug report on a very old library of mine to parse GLSL. The author of Elm told me it was used in their WebGL work and pointed to that Thwomp example. I didn't know that library was actually used by anyone!
John here. Having language-glsl available on hackage was a boon for the features in this release. Thank you!
The Elm hackers continue to impress me. FRP, the interactive timeline debugger, and now functional 3D graphics. Functional game programming is a big interest of mine, and I've taken a lot of inspiration from Elm in my own personal project to create a 2D game engine for Guile Scheme.
I still think first of a terminal mail program when I read "elm". Same for "pine".
Loading this page insta-kills my Browser.
FF 29.0.1 on 3.10.39-1-MANJARO x86_64 with lots of plugins (HTTPSEverywhere, Ghostery, FlashBlock...)
It does not recognize the crash and does not offer a crash report on restart.
Works for me on 3.14 with the nvidia blob driver. Definitely sounds like a video driver issue. File a bug report?
Will do.
I'm curious, why isn't type inference used in the examples? For example:
http://elm-lang.org/edit/examples/WebGL/Triangle.elm
Edit: ok, the language has full type inference, but not the webgl examples.
Type inference works on all Elm programs, but it's best practice to add type annotations.
In the WebGL examples, I felt it made things a bit clearer since folks are probably not familiar with how WebGL works. Once you get comfortable reading types, it helps you see how things fit together, and they definitely helped me learn John's API when I was new to it :)
But if you don't need/want type annotations, you can totally take them all away and they'll be inferred! How did having them effect your experience of looking at the examples?
The main effect was that I thought "why is this ML-style language not using type inference!". :) But now that you have explained why you've annotated the examples, I can see that it would be educational to see the types when the reader wouldn't have seen the library before.
>We switched away from Hue-Saturation-Value (HSV) because Value is a bit more confusing than Lightness.
That's funny to me because I've always found HSV colors and color choosers to be a lot more intuitive.
Does it only support Triangles? What about buffers? Rendering individual triangles is not efficient if you have anything more than a simple scene.
The API expects triangles, but it is implemented to always use buffers under the hood. Basically, mesh data of 10 triangles with 4 attributes per vertex is converted to 4 buffers, each of length 30.
elm was my daily-use email client at work twelve years ago. http://en.wikipedia.org/wiki/Elm_(email_client)