I'm not the best person for this, but here it goes
Quick sketch:
- Learn WebGL (or OpenGL and transition)
- Learn some linear algebra, don't worry, all you need is 4D matrices, so you don't need to know proofs, just how to use it.
- Create a 3D graphics engine like this: https://www.youtube.com/watch?v=PH6-dLvZEiA (that's mine, I haven't progressed since in this area, so this is the level I'm at, enough to know what fields are needed to learn this but not enough to know all the specific techniques)
- Look up names/techniques people have used to create something specific like OPs post, see [1]
In fact, it's a really simple app: a height map on a sphere approximated with triangles. With a bit more extra complexity, the app could do raymarching on a interpolated height map: this would remove triangle artifacts around "cliffs" on the height map. It would still be real time 60 fps even on smartphones.
To do something like this, you need to know a bit of WebGL and a bit of JS. No frameworks really needed at this level. The best guide to WebGL I know of is this:
Complexity starts when the height map isn't enough and you want to make arcs or otherwise arbitrarily shaped structures. This is where you'd need a framework, unless you want to implement all the math and glsl yourself.
And as always, the idea is really the 1% of the work. Anyone can say "it's just a height map on a sphere". 99% of the work is materialising the idea, debugging glsl, fixing ugly bugs on smartphones and esotheric browsers, dealing with partial WebGL API and so on.
I think since you've asked this question, it's been answered that this specific tool was written using SculptGL.
How do you even start? I started with `three.js` about two years ago and a ton of documentation. I didn't write a sculpting tool, but I wrote a PoC for a tool that "renders" custom tessellated data, pan/tilt/zoom, by the documentation from their site in about a weeks' time[0].
[0] I do more back-end than front-end, but I did the PoC in React/TypeScript with a kludge for the Canvas and a few ugly functions for handling loading/camera positions.