Lagrange - Procedural Planet Builder (Vue.js + three.js, TSL in-progress!)

Lagrange - Procedural Planet Builder :ringed_planet:


A passion project that I’ve been working on for a long time, the culmination of my fascination with our universe!

My goal with Lagrange is for it to become a spiritual successor to the wonderful Chrome experiment PlanetMaker that I had lots of fun with years ago. I wanted to be able to create more detailed planets, to have more control over its surface and features, and this is where I’m at today!

:ringed_planet: Try it here: Lagrange - Procedural Planet Builder :ringed_planet:

You can also check the source code on my GitHub, contributions are welcome!
I’m also looking for more translations if you’d be willing to help out.


Current features

  • Star-like lighting & lens-flare, for a slightly more realistic environment.
  • Procedural surface generation, using a combination of fBm noise, metallic-roughness, bump-mapping & color-ramp for distinct terrain. Includes clouds as well.
  • Basic biome generation with three modes: realistic, pole-to-pole, or full noise. Each biome has a given color, as well as temperature & humidity scales.
  • Atmosphere customization: allows to change the look of the atmosphere given either a hue value, a color tint, or both!
  • Ring system: add one, two or more rings around your planets, with each ring having its own parameters
  • Exportable planets, using the glTF format, that can be imported in other apps such as Blender! However, it does not include the atmosphere, as it’s a custom shader and glTF doesn’t support it.

Some examples from the GitHub page


Next steps

  • I’m currently working on a full rewrite of the shaders using TSL, as WebGPU seems to be moving forward nicely in terms of adoption (and it’s a very interesting challenge!).
  • Afterwards, I have many updates planned: cracks, craters, biome-based bump mapping & noise adjustments, and more!
  • Eventually, I’d like to create a galactic map akin to NASA’s Eyes on Exoplanets – NASA/JPL project, although it won’t be for a good while.

I hope I didn’t write too much… In any case, thanks so much for reading, and I hope my little project is interesting enough to showcase here! :blush:

5 Likes