I’ve worked with other software engineers, creative technologists, product designers, art / creative directors, various managers and they were all aware of “three.js” as some sort of a technology. The further people were from code the more it seemed conflated with “webgl”, but even the engineers were often unclear on what it’s actually supposed to do or does.
So i wrote a blog post on this topic but i still am fuzzy about a lot of things.
Is three.js a library? Some people use it as such, some use it indirectly (aframe?) but a lot seem to expect the three.js scene editor to be some sort of a content creation tool?
Is three.js a graphics thing? Is CSS considered graphics? What if it runs on some headless back end, just doing matrix math?
Is three.js analogous to WebGL? I think most people use it to abstract WebGL but its by no means the only way to render an abstract scene graph with three.js. I can only make a guess based on anecdotal evidence, is this actually known by someone? Is three.js used more with WebGL than canvas or css renderers?
Are three.js examples three.js? Most (all?) of these come from someone experimenting with three.js and sharing their results. Some seem more relevant than the others. There is some criteria probably for what makes it “into three.js” ie. the repo and what not? Are some examples more relevant than others, for example OrbitControls
compared to Octree
?
Is three.js a web thing? While most of the examples until recently would tell you to embed <script>
tags into an html
file, one can use it to make native apps, one can run it in node.js. While WebGL may be the interface, the implementation could be something like a software emulation if you run it in node.
Github says:
The aim of the project is to create an easy to use, lightweight, 3D library with a default WebGL renderer .
Has this aim been achieved? I’ve seen people use three.js for 2d graphics, like 2d games, video editing, image processing etc. So while it aimed to make a 3d library, it could have created a 2d library as a side effect.
Is it easy to use? I think it is because it takes so much boilerplate and bureaucracy out of writing WebGL. However some data such as this, tells otherwise. Over all time 40% of the questions are unanswered, in recent times this is rising. Ie. lots of questions, and no answers may mean it’s not easy to use.
Why is WebGL so important to outline in the description? I use it exclusively to abstract WebGL, but on the other hand, so many WebGL features are locked, that i can’t utilize WebGL. At the end of the day, if i author my shaders using a node editor, and author my app in a three.js editor, do i care if it’s WebGL and GLSL under the hood or something else?
I’d love to hear other people’s thoughts on these topics.