New Tools/experiments page: Tectonic surface

Published on
Last changed on

Well, posting videos online here and there or there is nice and all but… nothing beats the actual initial tool/playground/experiment, don't you think? :-)

So I just happily released a very initial version of the "planetary tectonic surfaces engine". A little bit of explaining is in order, so here goes.

Brief how-to

As of April, 21st 2025, the tool allows you to enjoy a few basic interactions with the planetary surface:

  • Ability to navigate more or less close to it, thus viewing how the surface LOD changes in function of distance, angle, etc. Ho, and no collision so you can fly "inside" the planet. 8-}
  • Ability to visualise some of the "logical" layers of the surface: tectonic plate assignement, compression, speed, etc.
  • Ability to select the random seed and radius of the planet. Concerning the radius: a 20 km wide planetoid cannot have 22 tectonic plates simply because it probably has no tectonic activity whatsoever (even coming from tidal forces of more massive neighbours)! But again, this is more a visual and performance test than anything else so the current version does not incorporate that kind of subtlety. Not yet. You will also notice that the displacement does not scale with the selected radius - and for a good reason: that value is hardcoded for now (ho noes!)

Current status

In a word, it is obviously not finished and needs much polishing before I am satisfied with it.

Below is a list of aspects that need taking care of either in the very close future of further away, depending on time, availability, etc.:

AspectStill to doTime consuming?
Final elevationsSome transitions are still too abrupt when they should not be, and some obvious artifacts do crop up because some fields (compression, for example) are not noisy enough when they should be.Somewhat, yes, this is tricky and changes in one place can result in unexpected side-effects in other places.
Unique crust "characteristics"The current tool is just one crust, rendered in various ways, but still the same. It needs to inherit some characteristics from the procedural (server-side) generated data such as composition, which will influence plate elasticity, weight/mass, maximum speed, etc.Yes.
The code must be usuable both client- and server-side so a careful integration must be implemented. Careful means time.
Client-side for visualisation of course; server-side for checks and private information generation.
Eye candy Textures, vertex colours, etc.
At the moment, the vertex colours are 100% inherited from the displayed layers. What we want if of course texturing, more subtle shading and what not.
And since this is all depends on:
  • Crust composition, etc (see above)
  • But also atmospheric composition, climate, etc. (gas depositions, glaciers, seas and lakes)
… it means this will take some time. :-)
Very.
Performance The 16ms time budget limit still holds true, so care must be taken about performance. As mentioned in the previous post, this whole thing might end up spreading the work over several workers, especially once atmospheric effects have to be rendered and their influence taken into account by the crust (and vice-versa!).
Even though the timings feel reasonably safe for now, the current tools is rendered in a small canvas, so we should expect slightly slower performance once this becomes integrated in the 3D explorer.
Yes
Subtools/variations Integrate the tool into the actual explorers:
  • Obvious in the case of the 3D explorer
  • In the case of the Data explorer, less obvious, but wouldn't it be nice to be able to view the planetary surfaces in mini-canvases alongside the planet's characteristics?
Yes, mostly because depends on all the previous steps…
CollisionVia BabylonJS, will come round to doing it - should not be too hard.Not really - I think?
Erosion/depositsLinked to atmospheric stuff, see above.
This will also perhaps include the very knotty problem of climate/outgassing and liquid erosion (not necessarily water, mind you).
Yes

In conclusion for now

Far from finished, but starting to feel satisfying. I need feedback, so please do feel free to comment below, or even contact me if you're shy.

But above all I hope you enjoy this initial version!

Please signin to add your comment.