Doing it through React seems a little bit odd... but I haven't looked closely enough to understand why/whether this coupling is actually necessary
OpenGL used to have a true immediate mode where you called a function for each triangle vertex, and you didn't need shaders or buffers. That mode is not present in WebGL.
Last time I checked rendering text into a webgl context was basically reinventing harfbuzz or using a proper game engine like unity.
Edit: So a reactive way to lay over HTML which properly hooks into the 3d context doesn't sound beyond crazy, at least for web tech standards.
You don't, it might be a case of VRML cargo-culting or something.
https://en.wikipedia.org/wiki/VRML
While the DOM has some issues which makes React handy, Three.js and its "display list" have none of these problems, but I guess shoving React somewhere will translate in a better conversion for the authors of that article...
There are tons of good examples of how to use react-three-fiber on Codesandbox - https://codesandbox.io/search?query=react-three-fiber&page=1
react-three-fiber isn't a magic bullet that will make all web 3D things fast. You still have to be sensible. It does make it much easier to prototype things though, and a lot of the time performance is great. And if it isn't then most of the code is quite straightforward to move to pure WebGL.
But why not just have the live WebGL thing on each page itself?
I could embed the live WebGL, or a codesandbox embed. I might do that eventually.
The real fun begins when you need to implement some sort of Level-of-Detail system and streaming in data to give the illusion of high detail everywhere without sacrificing performance.
Last year I released an open-source framework (https://github.com/felixpalmer/procedural-gl-js) for creating 3D terrains for web applications, you can see Uluru here: https://www.procedural.eu/map/?longitude=131.036&latitude=-2... (unfortunately the aerial imagery from our default provider isn't as high resolution as other places in Europe)
One thing I learned is that if you really want to recreate "real-world" terrain you have to account for the curvature of the earth. Uluru is over 3km wide and I estimate your image is around 5km. Across this distance the earth will curve 2 meters so you could modify the elevation model to drop off a meter gradually from the center to the edges.
As you pan, zoom and change the time, the url updates so you can share a permalink with others and they see exactly what you do. It looks like somehow you got an invalid timestamp (NaNt should be a timestamp: 1614115393106t). Will dig more into this. Thanks.
And to think 50% of my traffic this month has been from Europe. A lot of users I won't be getting back...
Thanks for the bug report.
[1] https://twitter.com/0xca0a [2] https://twitter.com/0xca0a/status/1357346054635544584
Also I had no idea what "frijoles" was, but I now have recipes bookmarked.
Edit - thank you for all the replies, we have now established that different hardware renders at different speeds, quite the discovery.
Edit: Here's something. You could probably hack something up that would check if the vendor name includes AMD or NVIDIA, or something. Might be fragile though https://developer.mozilla.org/en-US/docs/Web/API/WebGLRender...
https://github.com/gpuweb/gpuweb/issues/445
However, an issue is that many mobile GPUs don't support them.