What does HackerNews think of matrix?

matrix (web-based green code rain, made with love)

Language: JavaScript

#6 in HTML
#110 in JavaScript
https://github.com/Rezmason/matrix/

Then you'll love this project. The Holographic demo supports the Looking Glass display and I'm pretty sure natively supports the Kinect Azure but also works with a webcam.

Imagine writing and directing a trans allegory in 1999— when the studio thinks a character portrayed as male in the real world and female in the Matrix is crossing the line— and then rapidly:

• having your whole franchise met with critical acclaim and commercial success

• sparking philosophical conversations among people who might've never had them otherwise

• having a bunch of MRAs led covertly by a Republican politician co-opt your shit anonymously on the Internet, misdirecting frustrated people for decades toward misogyny and damaging countless lives*

• building up an enormously anticipated film trilogy and video game franchise with tons of media attention

• inspiring a devoted fan base to look deeper and deeper for different varieties of symbolism throughout the canon

...all the while carrying this underlying message, unbeknownst to almost every trend-surfing professor, every armchair philosopher, every idiot misogynist, every news reporter, film critic and fan. It's flown over so many inflated heads, because it was subtle out of necessity, and we were too blind to see.

Shameless cranial plug: try and maybe fork my Matrix code! https://github.com/Rezmason/matrix

* not blaming the Matrix for this, that's a whole other conversation

Good question! Maybe with my side project, I can shed some light on the state of OpenGL exposed through the web:

I maintain a Matrix code rain project: https://github.com/Rezmason/matrix . The effect is basically a compute shader with post-processing steps applied on top of it. It's built on top of WebGL via ThreeJS, and I can attest that its cross-browser, cross-device support is currently terrible.

That's because ThreeJS's (otherwise nice!) compute shader implementation is written on top of WebGL 1's fragment shaders, rendering to floating point buffers enabled through the "oes_texture_float" extension.

This extension's implementation has been plagued by spec mistakes, made possible (I believe) by ambiguities and tacit assumptions about differences between the speccing process of OGLES 2 and WebGL 1 that proved incorrect. Fixing it has frayed implementors' constitutions and made the API more complicated; WebGL 2 incorporates this extension's behavior into its core, but isn't widely adopted, because (in my opinion) asking a browser maker to double down on their investment in WebGL again after the aforementioned debacle is a tall order. Or maybe there are security implications. Or maybe the only Mobile Safari programmers available decided OpenGL is a weird-shaped API to expose through JavaScript, and have lost interest. One can only speculate.

Anyway! In the meantime, to do any sort of GPU compute across all major browsers (including mobile), you're way better off enabling the "oes_texture_half_float" extension instead. Half floats, or Float16s, are common in the mobile graphics sphere, but not on the desktop, where most web development takes place; it's entirely understandable why a web developer might try and use "oes_texture_float", get it working on their desktop machines, fail to see it working in Mobile Safari, assume that the extension isn't supported, and call it a day. And even if they DO find the Stack Overflow answers that'd prompt them to switch to "oes_texture_half_float", JavaScript has no native Float16Array data view, so they have to make/download a slow JavaScript implementation or spin their own float to half float converter.

This is the state of things with WebGL.