In case it’s not obvious yet, I’m more of an artist mindset than an engineer.
Direction
I started building the library because I needed it to express myself.
I needed it to create these kind of things.
While creating I saw that there were a lot of computer graphics problems to solve, so I tried to solve them and shared my “solutions” so other creative web devs didn’t have to.
It’s also good to know that, before that, I was using Adobe Flash. Even if Flash was great, relying on Adobe was not. I didn’t like depending on a corporation for expressing myself, so in the transition to HTML5/WebGL I saw an opportunity of building a toolset that would let creative web devs free from having to give your email/password to a corporation in order to get new features. Let alone paying a subscription fee.
I just didn’t expect it was going to take me 10 years, and counting…
So you can think of it as a collection of open solutions for computer graphics problems that work in harmony (more or less).
WebGL2, WebGPU and the editor
It’s easy to get lost by adding features and more features that make graphics more advanced; order-independent transparency, deferred rendering, … These are a bit use-case specific and hard to develop and maintain.
I’m personally more interested in solving problems that allow people to express themselves. OIT and DR do not add “that much” value. People are not going to feel happier, sadder or angrier when playing your game, but it sure will increase the maintenance burden on the library side (unless someone solves it nicely).
Look at what people are doing with DreamsPS4. I’m more interested in facilitating that kind of output and experimentation. I’m more interested in reducing the friction of creation.
But, at the same time, I’m trying to keep an open mind, trying to empathize with the library users and accommodate use cases I could never imagine, and then I look at the maintenance cost of each feature to see if it’s viable or if it could damage the traction of the project.
Having said that, I was planning on working on WebGPU on the second half of this year.
What is Three.js?
Going back to my artist mindset… I see the project more and more like a painting. And in between all of us we paint different parts.
Then you step back and try to explain the painting. A painting means different things depending on the viewer. Depending on your past experiences. Depending on your use case.
Unfortunately, I can’t say what Three.js is, I just know that it helps me create things without too much friction. Seems like it helps others too, but the things they create are very different than the things I create.
I hope this makes things a bit more clear.
PS: So, yes @makc3d… I definitely see the Rick resemblance 