3 ms·
This looks really cool. Although I'm not very familiar with React, I can provide some insight into the history of mixing GL/HTML content for anyone that's inter
by rl3 8y ago
This looks really cool. Although I'm not very familiar with React, I can provide some insight into the history of mixing GL/HTML content for anyone that's interested:
Three.js has had something called the CSS3DRenderer for like 5+ years now. It uses CSS 3D transformation effects to proportionally scale/distort HTML content to what the Three.js viewport is doing. It does most of the heavy lifting for you in terms of matrix math, but you still need to write a lot of glue code if you want a unified feel. I worked with it a lot in 2014, and it felt like alien technology at the time. Ultimately I settled on purely immediate mode though, because you can't apply custom post-process effects to DOM content beyond whatever CSS effects offer.
Famo.us as it originally existed launched in 2015 and was all about mixing WebGL/HTML content, but they pivoted shortly after launch. Some interesting developments came out of that, however:
Their VP of Product, Zach Brown, ended up founding Haiku in 2016, and their first product Animator[0] just officially launched for Mac. I view it as a more capable replacement for Adobe Edge, which was a fantastic little tool for animating HTML content. How flexible Animator actually is in terms of mixing GL/HTML content, I'm not sure. It'd probably need to take the modern Adobe Flash approach and decouple the tool output from the underlying client runtime to succeed at that.
Following the famo.us pivot, community members founded a project called Infamous with the goal of keeping the mixed content dream alive. While most people fell away, one person (Joe Pea) did stay the course and has spent the past few years since then developing Infamous[1], which is basically an entire framework built off the premise of mixing GL and HTML content.
I'm not sure if it's ready for prime time yet, but it sure looks good and I'm extremely impressed with Joe's perseverance. Just looking at the commit history messages, you can kind of get a feel for all the little issues that mixing GL and HTML content creates.
[0] https://www.haikuforteams.com/ https://www.haikuforteams.com/
[1] https://github.com/trusktr/infamous https://github.com/trusktr/infamous
- FarhadG 8y agoI was one of the core contributors to Famo.us' WebGL engine. Feel free to ask any questions about "mixed mode" (i.e. WebGL interlaced with DOM)