We generate a sphere with uniformly distributed vertices. Layered simplex and ridge noises are then used to create mountains, oceans, and plains.
By taking a vertice’s normal and distance from the center, we can color the planet based on altitude and steepness.
The entire process happens in the editor, using shaders to calculate the various heights and colors in parallel. Utilizing Unity’s custom editor feature, I can call to recalculate new planets live, with every change, without ever pressing play.