A 3D rendering engine for Elm: elm-3d-scene 1.0 is now out!

After three years and hundreds of hours of development, I’m excited (and a bit relieved) to release elm-3d-scene 1.0. It’s a 3D rendering engine built from the ground up for Elm, designed to be beginner-friendly with a smooth onramp to advanced features like shadows, HDR lighting and physically based materials.

Kitchen table

You can use elm-3d-scene to make:

To get started, check out the tutorial and examples. If you have questions, please reach out in the #webgl channel or to @ianmackenzie on the Elm Slack.

Rubber duckling

A big thanks to @unsoundscapes and everyone else who has helped out with bug fixes, testing, and documentation review in the leadup to release. If you encounter any bugs yourself, please open an issue. Really looking forward to seeing what people build with this!

76 Likes

Hi @ianmackenzie, congratulations on this release! I have recently played around with this library a bit, and I was amazed by how comfortable the API has been to work with already, and also by the amount of features and their completeness that this library offered.

(I have also noticed that quite a bit has changed since I have been working with it, and I am curious to see what’s new or what’s changed!)

I think that this is an extremely solid foundation that the Elm community will benefit from immensely and I am curious to see what people will do with it! Thank you for all the work you and all the contributors have put into this library so far already!

4 Likes

That building model/animation looks great @aforemny, and thanks for the kind words! Hopefully the recent API changes have mostly been good, let me know if you run into any issues or if anything is confusing =)

I think the scene dimensions should use Int instead of Quantity Int Pixels since it’s too much abstraction in my opinion

1 Like

Absolutely fantastic. Congratulations on release @ianmackenzie!

1 Like

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.