# CRUD ThreeJS wrapper for Elm

**URL:** <https://discourse.elm-lang.org/t/crud-threejs-wrapper-for-elm/9652>\
**Category:** Show and Tell\
**Created:** [February 11, 2024, 8:19am UTC](https://discourse.elm-lang.org/t/crud-threejs-wrapper-for-elm/9652 "2024-02-11T08:19:39Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![demensdeum](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/demensdeum/32/4602_2.png) [@demensdeum](https://discourse.elm-lang.org/u/demensdeum)\
**Post date:** [February 11, 2024, 8:19am UTC](https://discourse.elm-lang.org/t/crud-threejs-wrapper-for-elm/9652/1 "2024-02-11T08:19:39Z")

</div>

Sorry for creating duplicate thread, mistakenly pressed “Create Topic”.  
I wanted to show my findings that started in this thread:  
[https://discourse.elm-lang.org/t/what-is-tohtml-that-webgl-elm-is-using/9499](https://discourse.elm-lang.org/t/what-is-tohtml-that-webgl-elm-is-using/9499)

With community help, I have implemented simple ThreeJS CRUD wrapper for Elm.  
Here is simple demo of 3D scene of hi-tech ~town with flying cars:  
[https://demensdeum.com/demos/dust\_flyer/](https://demensdeum.com/demos/dust_flyer/)

First confirm window will enable auto-controls for player character.

![3d](https://canada1.discourse-cdn.com/flex035/uploads/elm_lang/original/2X/1/174b82f36298a7eb9bc442a43117792e4cf8a07d.png)

Also wanted to show source code for people who interested in implementing something like it.  
Here is TypeScript custom component, which takes JSON 3D Scene from Elm:  
[https://github.com/demensdeum/Digital-Mage-Uprising/blob/main/client/gameClient/typeScript-src/src/threeCanvas.ts](https://github.com/demensdeum/Digital-Mage-Uprising/blob/main/client/gameClient/typeScript-src/src/threeCanvas.ts)

And here is Elm custom component code:  
[https://github.com/demensdeum/Digital-Mage-Uprising/blob/main/client/gameClient/src/CustomControls.elm](https://github.com/demensdeum/Digital-Mage-Uprising/blob/main/client/gameClient/src/CustomControls.elm)

Entry point Main.elm:  
[https://github.com/demensdeum/Digital-Mage-Uprising/blob/main/client/gameClient/src/Main.elm](https://github.com/demensdeum/Digital-Mage-Uprising/blob/main/client/gameClient/src/Main.elm)

---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex035/uploads/elm_lang/original/1X/50a05e53677a2c3b47776d7abd0f113eb50193a1.png) [@system](https://discourse.elm-lang.org/u/system)\
**Post date:** [February 21, 2024, 8:20am UTC](https://discourse.elm-lang.org/t/crud-threejs-wrapper-for-elm/9652/2 "2024-02-21T08:20:25Z")

</div>

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