Fork me on GitHub
#clojure-gamedev
<
2021-11-04
>
Chris McCormick01:11:58

@tylertracey09 you might find this reference code useful. I used Three.js directly from ClojureScript without any kind of wrapper or what have you. https://infinitelives.github.io/px3d/ https://github.com/infinitelives/px3d

Chris McCormick01:11:06

threagent looks great thanks for sharing!

Ty01:11:47

Yeah this is awesome! I dig the rendering style, definitely interesting in diving into the code

Ty01:11:13

I saw a few examples of raw Three.js stuff and the imperative statefulness of it seemed a bit overwhelming.

Chris McCormick01:11:15

Yeah it's hard to work with. I would much prefer a declarative approach.

Ty02:11:39

Gotcha, yeah I think react-three-fiber/threeagent are a good approach for that kind of thing.

Ty02:11:43

I will say I've done a bit of vanilla js stuff with react-three-fiber, and I found the actual library to be a bit messy. It gets the job done but it is essentially a react concretion where the three.js primitives are generated into react components. It's definitely cool, but I think there's a better approach. Threeagent in general is probably a good start. My current issue with it is that if a threeagent component is rendered by a reagent component, hiccup gets pretty confused and tries to interpret the threeagent primitives as HTML.

👍 1
Chris McCormick09:11:45

I saw that Three can take a JSON definition of a full scene - something I wanted to test was using this to update the scene dynamically. Probably be slow though.