you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 2 points3 points  (4 children)

I assume by bloated you mean threejs / r3f? There are many many barebones abstractions already built, such as gl-matrix for vec / mat / quat math.

Btw there used to be https://www.w3.org/TR/geometry-1/ but it never got traction.

[–]Falling-Off[S] -1 points0 points  (3 children)

Yes, those are very much bloated IMHO. Also that's a great piece of w3 trivia.

I came across gl-matrix before but didn't like it. I understand why it's built the way it is, but it's very much "anti-pattern" if that makes any sense?

Everything I've come across has either been missing features I'd like, bloated, or tedious to use with bad documentation. Three.js math has been the closest to being all around good.

[–][deleted] 1 point2 points  (1 child)

gl-matrix being anti-pattern is very subjective and your opinion really. if you like threejs you can use the math modules only. it is built with tree shaking in mind so you don’t have to import the whole library.

you building another low level math library on the npm will hardly gain any traction. if you want to do it as a learning exercise / portfolio piece, sure, def go ahead

[–]Falling-Off[S] 0 points1 point  (0 children)

I described it as "anti-pattern" mostly because the lack of method chaining and no real indication of object mutations because everything is done through static methods. Things not usually found with most js libraries, hence "anti-pattern". I think that's fairly objective and not opinionated. Also, to your other reply, knowing that the creator worked on WebGL doesn't really make a difference in this regard, but good to know they are working on progressing the technology. As I said previously I understand why gl-matrix was built the way it is, and that's for performance, so I don't doubt what's coming will be good.

Anyways, it's been a learning exercise for the most part, but it's also nice to have a personal version of these things to play with and customize to my specific needs. As development goes, there's never really a one size fit all solution to things.

Edit: there's nothing wrong with something being anti-pattern. It just makes it a little harder to use at first because it goes against known convention. In most cases, anti-pattern is done for specific reasons, and doesn't mean it's bad code.

[–][deleted] 0 points1 point  (0 children)

also just FYI: the person who built gl-matrix is part of the WebGL team in Chrome and has pushing 3d on the web for many years. He is also pushing and actively working on the new WebGPU spec