This applet is yet another overhaul on some part of a CS 142 lab. The lab consisted of basically making a big circle and then randomly adding smaller random-sized circles (favoring smaller ones more than larger ones) onto the big circle to look like a moon. I extended that description to make it a sphere with a randomized surface with craters on the surface, and a few options.
Pick parameters and click the "Generate" button. "Craters" is the number of craters of various sizes that should appear. Several will probably be extremely small, so you won't be able to see quite that many. "Power" is the supposed impact of the crater on the surface, and corresponds to the typical size of the crater. "Radius" is a constant that is used to decide the width of the crater relative to the depth. "Roughness" determines the 'rockiness' of the surface of the planet apart from the craters. Zero will make it otherwise completely smooth.
This was originally part of a 3-D renderer I wrote for CS 455, and I basically copied and pasted the user interface from there. Use the arrow keys to move it up, down, left and right (not very useful), use "Page Up" to make it move farther away, or "Page Down" to move it closer. Use '+' and '-' to scale it larger and smaller. With your Num Lock on, use the 2, 4, 6, 7, 8 and 9 on the numpad to rotate it various directions. You can also click and drag to rotate the moon, or the light-direction chooser.
Just FYI, the moon is generated with 5120 polygons and rendered using Gouraud shading.