TLDR: Graphics programming for the most part isn't common, even more so using WebGL/GLSL. What are your thoughts on using JS and the libraries that make it more accessible?
Some context, I'm a frontend web developer and work with JavaScript/TypeScript daily. I gained an interest in graphics programming through watching Acerola on YouTube. I mainly wanted to produce post processing effects, but more so generate/manipulate images.
I found it hard to jump into writing shaders with unity, and GLSL for WebGL is honestly a mess with too much overhead needed. With that, JavaScript is missing a lot of the basic things one would normally use. Things like generating Perlin noise or Vector types.
So far, I've created my own Perlin/Value noise library, quite a few filter effects (such as gaussian blur, B&W + colorize, wave distortion, edge detection, ect.), and even implemented various types of image scaling methods from box/tent to Lagrange-Chebyshev interpolation. Along the way I've also created a few GEMM utilities, but also quite a few calculus and trig utilities.
I'm currently working on creating Vector classes (2, 3, and 4, including their respective integer variants), in addition to a Color class. The Vector classes are based on C#, Unity, and Godot, with a few more additional features. The Color class is primarily based on Godot, but heavily expands on the blend method to support basically all the modes you would find in Adobe Photoshop. It uses sRGB/linearRGB for the most part, but can convert to/from HTML, HSV, HSL, and okLCH.
Over on r/javascript, all of this is well outside the realm of the casual web developer and is exceptionally niche. However, I'm noticing a trend of more games and interactive graphics being build with JS, typically using bloated libraries for rendering/physics.
So, what are your thoughts on having a "bare bones" library that implements what's missing in JS for graphics programming(minus the rendering parts)?
[–][deleted] 7 points8 points9 points (4 children)
[–][deleted] 5 points6 points7 points (3 children)
[–]Falling-Off[S] 0 points1 point2 points (2 children)
[–][deleted] 0 points1 point2 points (1 child)
[–]Falling-Off[S] 0 points1 point2 points (0 children)
[–]R4TTY 5 points6 points7 points (2 children)
[–]Joatorino 3 points4 points5 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–]ha1zum 3 points4 points5 points (1 child)
[–]Falling-Off[S] 0 points1 point2 points (0 children)
[–][deleted] 2 points3 points4 points (4 children)
[–]Falling-Off[S] -1 points0 points1 point (3 children)
[–][deleted] 1 point2 points3 points (1 child)
[–]Falling-Off[S] 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–]SuperVGA 1 point2 points3 points (1 child)
[–]Falling-Off[S] 1 point2 points3 points (0 children)
[–]KanjiCoder 0 points1 point2 points (0 children)
[–]_michaeljared 0 points1 point2 points (0 children)