I am currently working on a simple program to randomly generate and display rocky exoplanets (for a space based strategy game), but I am having some problems figuring out what colour the rocks of rocky planets may or may not have.

Specifically, I am thinking of what natural colours may be so dominantly found on the surface of a planet or moon, that the whole planet or moon, seen from space would seem to be (completely or partially) that colour, which is not made out of ice, and which neither has oceans nor life.

As far as I can tell from looking at pictures of the not lifebearing rocky planets, dwarf planets and moons in our solar system, it seems that red and yellow colors are dominant on larger bodies such as Mars, Venus or Io (maybe because their atmosphere cause oxidation of metals on the surface, or in Io's case volcanic activities as pointed out by Phiteros):

Io looks red/yellow-ish

All while smaller bodies such as the Moon or Ceres are completely grey:

very grey Ceres

Therefore my current approach is to make sure the red component of the RGB colour of the planets is the biggest, the green the second biggest and the blue the smallest.

However just the fact that there aren't any rocky planets or moons in our solar system made of blue and green rock, doesn't mean that they can't possibly exist.

Therefore my question is: is my assumption that rocky planets tend to be mostly red or yellow correct, or are there any good logical arguments for that predominantly blue, green or purple rocky planets could exist.


Maybe i was a little to vargue on defining colour; i was thinking about the »diffuse colour« (sometimes called »albedo colour«) input, used in the openGL shader that i am using to display the planets; this colour is however the same as something not very reflective (like planets) has when under white light.

  • 1
    $\begingroup$ Io's surface coloration is actually due to sulfur emitted from volcanoes. $\endgroup$
    – Phiteros
    Mar 15, 2017 at 20:00
  • 1
    $\begingroup$ Don't forget brown, for example Mars' moon Phobos $\endgroup$
    – Cody
    Mar 15, 2017 at 21:22
  • 1
    $\begingroup$ Venus is closer to reddish-brown (or is that brownish-red?). It's yellow color is it's atmosphere. curious.astro.cornell.edu/our-solar-system/… I don't know how to work out a good estimate for planetary colors. Probably about half of planets, and many larger planets have atmospheres and the atmosphere will affect the color. No atmosphere, I think the options are more limited and it's most reds (Iron oxide), greys and browns. Io's yellow happens on an ice/water planet with extensive volcanism and evaporation. $\endgroup$
    – userLTK
    Mar 15, 2017 at 21:25
  • 1
    $\begingroup$ It's worth adding that Io isn't a rocky world. It's an icy-moon that has lost it's surface ice due to being too close to Jupiter's van Allen belt and too close to the sun and it's lost much of it's water due to volcanism. Ceres isn't a true rocky world either, it's was probably an icy Kuiper belt object originally, which has also lost almost all it's surface ice due to being too close to the sun. Ceres may have an under-surface ocean too. $\endgroup$
    – userLTK
    Mar 15, 2017 at 22:11
  • 2
    $\begingroup$ @StephenG I did actually consuder posting it there, but worldbuilding seems more about constructing fictional World and societies, and I thought that I rather neaded an answer based on our current knowledge of planets and moons. That was at least my motivation for posting it here (or rather on space exploration SE from which it was migrated here), if you have any better arguments that Worlduilding would be better you are of course welcome to tell me. $\endgroup$
    – Nikolaj
    Mar 16, 2017 at 6:36

2 Answers 2


I'll begin by saying that for exoplanets, the answer to your question is an active area of research, and currently there are no observational constraints on what rocky exoplanets would look like to the human eye.

Also, this may be a lot more complicated an answer than what you want for a computer game.

If you want to hunt around for this in the astronomical or planetary science literature, what you're trying to do is determine the reflectance, or albedo spectrum, of the planet. That's what tells you how much of the incoming light is bounced back off the surface for you to see as function of wavelength. Note that this assumes the planet is not hot enough to thermally emit in the optical, which will only start to matter if it's >3000K or so. This albedo spectrum is determined by the surface properties of the planet: what it's made out of, how shiny it is, the scattering properties, etc.

Once you have an albedo spectrum, you then can multiply it be the incoming radiation from whatever primary star you've chosen. That's what will make a planet seem slightly more orange around an M-dwarf, and more "normal" around a Sun-like star.

To get to how a person would see it, you'd then need to then multiply that resulting reflected-light spectrum by the spectral sensitivity of the human eye, and then convert that final observed spectrum into a color.

For the planetary albedo spectrum, there aren't a lot of sources in the astronomical literature. The best I can find is this paper. You'll probably have more luck looking through Solar System planetary stuff.

For the stellar spectra, you can try here, but that presumes you're comfortable with astronomical FITS files. For stars hotter than >4500K (the Sun is 5800K), you can probably just assume that the incoming radiation into the planet's surface is blackbody of whatever temperature you want.

Unfortunately, I am not familiar with the spectral sensitivity of the human eye, or how to go from an input observed spectrum to a single color value.

  • 1
    $\begingroup$ Welcome to Astronomy. This is a great first answer, keep up the good work! $\endgroup$ Mar 17, 2017 at 17:46
  • $\begingroup$ Thanks. I will admit that this is pretty much my day job. $\endgroup$
    – Thomas
    Mar 17, 2017 at 21:06

You've got two problems (yeah, I know that's the start of a bad software joke). First, you have to decide if you want the planets/moons/asteroids to appear as they would under strong solar illumination, or from a red dwarf (or a rgb scanning laser on your spaceship).
Second, you have to decide what elements and simple compounds make up the surface. I'd say the comments have provided some realistic color choices, but you could always posit a pure-amethyst rock that was formed as ejecta from some violent explosion, for example.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .