On this page I demonstrate how to construct a ring system around a planet. All of the gas giants in the Solar System contain rings although only Saturn’s ring system is readily visible. But in our imagination, any planet may be adorned with a beautiful set of rings!

The techniques discussed below are adapted from a selection of online tutorials listed here.

TECHNICAL DETAILS: GIMP 2.10.18 on Ubuntu 20.04.2 1.7.0 LTS (August 2021)

TIP: Don’t be afraid to experiment with different settings in the windows and dialog boxes below. You can usually reverse a command by going to the Edit menu and selecting the Undo option.

TIP: Pay attention to which layer is currently active!

1. Preliminaries

Creating a new image in GIMP
Creating a new image in GIMP

We begin by starting up GIMP and creating a new file. There are a variety of templates that you can use or you can just input your own dimensions and resolution. For instance, I have chosen a Width of 800 pixels and a Height of 450 pixels to give a 16:9 aspect ratio, plus a 72 pixels/inch Resolution since I don’t need high-definition. Most of the Advanced Options you can leave alone but make sure that you are working in the RGB Colour Space. Black is my default foreground colour so I have chosen to Fill my new image with that. The Comment section is for you to add whatever text you wish to have associated with your new file: image title, your name, copyright date, description, whatever. Press [OK] when you are happy with your choices and a new image will appear.

If your new image does not have a black background, then it is time to break out your Toolbox. In the Toolbox window, make black your foreground colour. Then use the Bucket Fill tool to fill in your image with the colour black.

Now make your background consisting of a basic star field and maybe a nebula or two.

Put this image aside for the moment. We will come back to it in section 5 when we are ready to add our ringed planet.

2. Planet

2.1 New image

Creating a new image in GIMP
Creating a new image in GIMP

Create another new file. This one should be square. Decide how big you wish your planet layer to be and then triple it to get the dimensions of the image. (This is assuming that the ring diameter is about three times the planet diameter. Scale your image accordingly.) In this example, my planet will be (approximately) 800 pixels by 800 pixels so my new image will be 2400 pixels by 2400 pixels. Fill it with black, either at this stage or afterwards with the Bucket Fill tool.

This background layer simply provides contrast for the planet and ring system that we will create.

2.2 New Layer

Creating a new transparent layer called Planet which is smaller than the image size and offset from the origin
Creating a new transparent layer called Planet which is smaller than the image size and offset from the origin

LAYER: Background

Add a square transparent layer.

Image: Layer → New Layer

Name the layer ‘Planet’ and choose Transparency as the Fill with colour. The dimensions should be square. In this example, both the Width and Height are 800 pixels. I want the new layer to be centred so I have chosen an Offset of 800 pixels in both the X and Y directions. (The coordinates of the offset are actually the coordinates of the upper left corner of the layer.)

2.3 Create planet

LAYER: Planet

Create a planet in the planet layer
Creating a planet in the Planet layer

Using either the rocky planet or gas giant tutorials, create a planet. In this example, I have created a rocky planet in a gibbous phase.

You should now have a planet centred in your plain black square image.

3. Rings

3.1 New Layer

Creating a new transparent layer called Rings
Creating a new transparent layer called Rings

LAYER: Planet

Add a square transparent layer.

Image: Layer → New Layer

Name the layer ‘Rings’ and choose Transparency as the Fill with colour. The dimensions should be the same as the image. In this example, the layer is 2400 pixels by 2400 pixels.

If necessary, set your foreground colour to black. Then use the Bucket Fill tool to fill in the layer, turning it black.

Toolbox: Bucket Fill

3.2 CIE lhc Noise

Using the CIE lch Noise filter to create a field of random coloured dots on the black background
Using the CIE lch Noise filter to create a field of random coloured dots on the black background

LAYER: Rings

Any of the CIE lch NoiseHSV NoiseHurl or RGB Noise filters may be used to create a field of random dots. Here I demonstrate the use of the CIE lch Noise filter.

Image: Filters → Noise → CIE lch Noise

In the dialog box, there are a number of options.  Maximise the Lightness and press [OK]. The result is a black layer thickly covered in coloured dots.

3.3 Desaturate

Desaturating the coloured dots to produce white and grey dots on the black background
Desaturating the coloured dots to produce white and grey dots on the black background

LAYER: Rings

Change the coloured dots to white dots by desaturating them.

Image: Colours → Desaturate → Desaturate 

In the dialog box, there are several different modes for desaturating the image. I have simply used the default. Press [OK] when you are finished. The result is a black layer thickly covered in white dots.

3.4 Duplicate Layer

LAYER: Rings

We need a duplicate of our Rings layer.

Image: Layer → Duplicate Layer

Rename the duplicate layer ‘Particles’. You rename a layer by double clicking the name in the Layers window and typing in the new name, then pressing the <enter> key.

3.5 Mode

Changing the Particles layer mode from Normal to Dodge and then rendering it invisible
Changing the Particles layer mode from Normal to Dodge and then rendering it invisible

LAYER: Particles

In the Layers window, change the Mode from Normal to Dodge. Then temporarily render this layer invisible by clicking on the ‘eye symbol’ for this layer in the Layers window.

3.6 New Layer

See section 3.1 for more details.

LAYER: Rings

Return to the Rings layer and add a square transparent layer above it.

Image: Layer → New Layer

Name the layer ‘Noise’ and choose Transparency as the Fill with colour. The dimensions should be the same as the image. In this example, the layer is 2400 pixels by 2400 pixels.

From top to bottom, you should have the following layers:

  • Particles
  • Noise
  • Rings
  • Planet
  • Background

3.7 Simplex Noise

Using the Simplex Noise filter to create a field of random, irregular, black and white shapes
Using the Simplex Noise filter to create a field of random, irregular, black and white shapes

LAYER: Noise

Add a random black and white pattern to this layer using the Simplex Noise filter.

Image: Filters → Render → Noise → Simplex Noise

In the dialog box, there are a number of options, but the most important ones are the Scale and the Iterations. Reduce the Scale so that there are far fewer black and white zones but make the edges more complicated by increasing the Iterations. In this example, I have used 0.2 for the Scale and 5 for the Iterations.

3.8 Mode / Merge Down

Appearance of the Rings layer after merging with the Noise layer
Appearance of the Rings layer after merging with the Noise layer

LAYER: Noise

In the Layers window, change the Mode from Normal to Multiply. Then merge this layer with the Rings layer.

Image: Layer → Merge Down

This eliminates the Noise layer, leaving us with an altered Rings layer consisting of cloudy areas populated with white dots.

3.9 Polar Coordinates

Applying the Polar Coordinates filter to turn a square into a circle
Applying the Polar Coordinates filter to turn a square into a circle

LAYER: Rings

We will now distort this square into a perfect circle by using the polar coordinate transform.

Image: Filters → Distorts → Polar Coordinates

The Circle depth in percent should be 100.00 and the To polar box should be checked. Press [OK]. We now have a perfect circle of random white dots and black spaces. There may be a faint vertical line artefact within the circle but do not worry about this. It will disappear later.

3.10 Scale Layer

Scaling the Rings layer to make it slightly smaller
Scaling the Rings layer to make it slightly smaller

LAYER: Rings

We need to slightly reduce the size of our speckled circle so that it no longer touches the sides of its layer. Why? We will eventually want to blur the ring slightly to soften its appearance. By making sure that our ring is well within the image, the blurring effect will not get cut off, leaving a sharp edge wherever the circle touches the edge of the layer.

Image: Layer → Scale Layer

In this example, I have used the size of 2300 pixels by 2300 pixels which is slightly smaller than my original 2400 pixels by 2400 pixels image size.

3.11 Layer to Image Size

LAYER: Rings

Now that our speckled circle is reduced in size, we need to resize the layer to again match the image.

Image: Layer → Layer to Image Size

3.12 Circular Motion Blur

Applying the Circular Motion Blur filter
Applying the Circular Motion Blur filter

LAYER: Rings

Now we turn our random white dots and black spaces into rings.

Image: Filters → Blur → Circular Motion Blur

Choose a larger angle than the default or you will be here all night. Too large of a value will result in artefacts around the edge of the image so experiment with various angles. Press [OK] when you are ready to proceed.

You will need to repeat this step a number of times to get smooth-looking rings. You may vary the angle or simply use the same value over and over again. If you wish to use the same angle each time, you can use the Repeat option under Filters.

Image: Filters → Repeat “Circular Motion Blur”

If you wish to change the angle, use the Re-Show option instead.

Image: Filters → Re-Show “Circular Motion Blur”

In older versions of GIMP, this effect is achieved through the Motion Blur filter, using the Radial option.

3.13 Colour Levels

Adjusting the colour levels to brighten and sharpen the rings
Adjusting the colour levels to brighten and sharpen the rings

LAYER: Rings

The rings are a bit murky and indistinct. Sharpen them up by adjusting their colour Levels.

Image: Colours → Levels

In the dialog box, there are a number of options, but the most important ones are the Input Levels. The black triangle slider (first text box) determines the black point. All values below this are converted to black. Permitted values range from 0 to the white point. The white triangle slider (third text box) determines the white point. All values above this are converted to white. Permitted values range from the black point to 255. The grey triangle slider (second text box) controls the grey point. Make sure that the Preview box is checked, then decrease the white point and increase the black point to achieve the desired ring brightness and contrast. Press [OK] when you are finished. In this example I have used a black point of 20 and a white point of 40 to get a distinct ring pattern.

NOTE: There are four buttons following the Channel options. The first two switch between linear and perceptual (non-linear) modes and the last two switch between linear and logarithmic histograms in the Input Levels. I usually use perceptual mode and logarithmic histograms.

3.14 Gaussian Blur

Using the Gaussian Blur filter to soften the appearance of the rings
Using the Gaussian Blur filter to soften the appearance of the rings

LAYER: Rings

Blur the rings slightly to even out the tone and remove any artefacts within the rings.

Image: Filters → Blurs → Gaussian Blur

With the Preview box checked, increase the Size of the blur radius until you are satisfied with the results. Press [OK] when you are finished.

3.15 Merge Down

Appearance of the Rings layer after merging with the Particles layer
Appearance of the Rings layer after merging with the Particles layer

LAYER: Particles

Return to the Particles layer and make it visible by clicking in the space where the ‘eye symbol’ would be. Merge the Particles layer with the Rings layer.

Image: Layer → Merge Down

This gives grainy-looking rings. You should now have three layers. From top to bottom they are

  • Rings
  • Planet
  • Background

3.16 Ellipse Selection / Feather / Cut

Using the Ellipse Selection tool to define a circle
Using the Ellipse Selection tool to define a circle

LAYER: Rings

We need to cut out the centre of the disk to reveal the planet beneath. This is done with the Ellipse Selection tool in the Toolbox.

Toolbox: Ellipse Selection

Create a circle somewhat larger than the dimensions of your planet and centred in the image. Since my planet has a diameter of about 800 pixels, I have chosen a circle with a diameter of 1200 pixels to be the boundary of the innermost ring. Once your ellipse is properly situated, feather the edges to soften the inner ring border.

Image: Select → Feather

In this example, I have used 50 pixels.

NOTE: You can also use the built-in Feather edges option in the Ellipse Selection Tool Options dialog box in the Toolbox.

Finally, cut the centre out of the disk, leaving a ring with the planet appearing in the centre.

Image: Edit → Cut

The planet and its rings, polar view
The planet and its rings, polar view

If the inner part of the ring is too close to the planet, redo these steps with a slightly larger circle.

Finally, remove the ‘marching ants’ marking the elliptical selection.

Image: Select → None

4. Planet and ring system

Now that we have both the planet and its ring system visible, it is time to harmonise them.

4.1 [optional] Colourise

Colourising the monochrome rings by adjusting the Hue, Saturation and Lightness
Colourising the monochrome rings by adjusting the Hue, Saturation and Lightness

LAYER: Rings

The ring is monochrome or shades of grey. If you wish, colourise it to complement the colour of your planet.

Image: Colours → Colourise

Make sure that the Preview box is checked, then adjust the Hue, Saturation and Lightness to the desired colour. (You can also choose the colour by clicking on the colour box.) Press [OK] when you are finished.

4.2 Scale Layer

Scaling the Rings layer unequally to flatten it
Scaling the Rings layer unequally to flatten it

See section 3.10 for more details.

LAYER: Rings

At the moment, the rings present a perfect circle around the planet seemingly as viewed from the north or south pole. For an oblique angle, we need to flatten the rings. We can accomplish this most easily by scaling the layer.

Image: Layers → Scale Layer

The dialog box shows the current size of the layer. Make sure that the ‘chain’ to the right of the Width and Height boxes is broken so that the layer will scale unequally in both directions. In this example, I have reduced the Height whilst leaving the Width alone. This compresses the layer into a rectangle that is wider than it is tall. Press [OK] when you are finished.

Don’t panic! If you get the scaling wrong, you can undo it and try again. It may take several attempts before you get the size to your liking.

See section 6.1 for more ideas on flattening the ring.

4.3 Layer transform

Rotating the Rings layer about its centre
Rotating the Rings layer about its centre

LAYER: Rings

Our ring is horizontal relative to the planet but it is possible to rotate it to a different angle.

Images: Layers → Transform → Arbitrary Rotation

Enter the desired angle and press [ROTATE] when you are ready.

4.4 [optional] Colour to Alpha

Making the darkest (blackest) rings transparent using Colour to Alpha
Making the darkest (blackest) rings transparent using Colour to Alpha

LAYER: Rings

What do the dark rings represent, darker ring material or gaps in the rings? If they are meant to be gaps, then we need to make the blackest parts transparent.

Image: Colours → Colour to Alpha

First, make sure that the Preview box is checked. In the colour bar, choose black or any shade of grey and press [OK]. (The HTML notation for any shade of grey is xxxxxx where x is 0 through 9, plus letters a through f. If x = 0, then you get black. If x = f, then you get white.) This will affect the brightness of your rings so experiment. Press [OK] a second time when you are ready to proceed.

4.5 [optional] Opacity

Reducing the opacity of the Rings layer
Reducing the opacity of the Rings layer

LAYER: Rings

If you wish your rings to look more transparent, adjust the Opacity in the Layers window.

4.6 Ellipse Selection / Eraser

Using the Ellipse Selection tool to precisely outline the planet
Using the Ellipse Selection tool to precisely outline the planet

LAYER: Rings

At the moment, our ring is completely in front of our planet. We need to erase the parts of the rings that are meant to be behind the planet. You can do this freehand with the eraser or you can make a circular selection exactly the same size of the planet first. It may be a good idea to turn off the Feather attribute in the Tool Options dialog box so that you get a nice sharp selection.

Toolbox: Ellipse Selection

Using the Eraser tool to eliminate the sections of the ring 'behind' the planet
Using the Eraser tool to eliminate the sections of the ring ‘behind’ the planet

You may wish to increase the brush size of the eraser in the Tool Options dialog box. Carefully erase the portion of the rings inside the ellipse that should be hidden by the disk of the planet.

Toolbox: Eraser

Depending on the way your planet is lit and how the rings are situated, the planet may be casting a shadow on the rings. If this is the case, then we need to add a bit of shadow to the rings in the appropriate place. To do this, first invert your elliptical selection.

Image: Select → Invert

Depending on how good your selection fits your planet, you may need to grow the selection by a pixel or two to avoid leaving a bright streak next to the limb of the planet.

Image: Select → Grow

Then increase the brush size of the eraser so that it is at least as wide as the rings. In the Tool Options dialog box, reduce the Opacity to 95.0. Carefully erase the shadowed part of the ring with smooth brush strokes.

Remove the ‘marching ants’ around our selection.

Image: Select → None

NOTE: You may need to retry this step a few times until you get the ellipse and eraser selections exactly right. I certainly did!

See section 6.2 for adding other shadow effects.

4.7 Result

Our ringed planet is ready for the next step
Our ringed planet is ready for the next step

5. Ringed planet in space

It is time to place our ringed planet in the outer space background that we created in step 1.

5.1 Scale Image

Ringed Planet Image: Image: Image → Scale Image

We have created our planet and ring system at a much larger scale that our outer space background so we need to scale our image to an appropriate size. In this example, I have used 450 pixels by 450 pixels. Press [SCALE] when you are finished.

5.2 Copy

In the Layers window, click on the ‘eye symbol’ next to the Background layer. Your ringed planet should now appear above a grey-and-white-chequered background which is how GIMP denotes transparency. Make a copy of this image.

Ringed Planet Image: Image: Edit → Copy Visible

5.3 Paste

We return to our space background image. Paste the GIMP Clipboard (which holds the ringed planet image) into the image.

Starry Background Image: Image: Edit → Paste

Starry Background Image: Image: Layers → To New Layer

Feel free to rename the ‘Pasted Layer’!

5.4 Final positioning

Starry Background Image: LAYER: Pasted Layer

Use the Move tool in the Toolbox window to place the planet in its final position. You may also wish to rotate the layer.

Starry Background Image: Image: Layers → Transform → Arbitrary Rotation

5.5 Layer to Image Size

Starry Background Image: LAYER: Pasted Layer

If the size of the Pasted Layer differs from the size of the image, you can change it.

Image: Layer → Layer to Image Size

5.6 Result

Our ringed planet floats amongst the stars.  Because the rings are not fully opaque, stars shine through them.
Our ringed planet floats amongst the stars. Because the rings are not fully opaque, stars shine through them.

6. Fine tuning

There are a couple of steps we can take to make our image even more realistic.

6.1 Perspective transform

Dialog box for the Perspective transform
Dialog box for the Perspective transform

LAYER: Rings

In section 4.2, we scale the Rings layer in order to flatten it. Another way to accomplish this is to use the Perspective transform, either instead of or in addition to scaling the layer. In this example, I have scaled the Rings layer first, then fine-tuned the image with the Perspective transform.

Image: Layers → Scale Layer

Image: Tools → Transform Tools → Perspective

t may be necessary to zoom out in order to place the Perspective transform handles in the correct places
It may be necessary to zoom out in order to place the Perspective transform handles in the correct places

(The Perspective transform tool is also available in the Toolbox window.) The Perspective transform tool is controlled by the four handles at each corner. There are also a number of options in the Tool Options dialog box. You may find it useful to have some kind of Guides turned on. Also, since we want the ring to remain centred on the planet, check the Around centre box. Press [TRANSFORM] when you are finished adjusting the rings. You may need to zoom the image out in order to manipulate the transform.

Personally, I find the Perspective transform tool somewhat fiddly to use but it does give a good result if you are patient (and have excellent fine motor skills!).

6.2 Ring shadows

LAYER: Rings

Strictly speaking, the rings will cast a shadow on the face of the planet. We can add a shadow by making a monochrome copy of the rings, scaling them down, and carefully erasing the unwanted portions. These steps take place just before section 4.5 where we begin erasing unwanted portions of the rings.

6.2.1 Duplicate Layer

See section 3.4 for more details.

LAYER: Rings

Make a copy of the rings.

Image: Layers → Duplicate Layer

Rename the duplicate layer ‘Rings Shadows’.

6.2.2 Desaturate

See section 3.3 for more details.

LAYER: Rings Shadows

We remove the colour by desaturating the ring.

Image: Colours → Desaturate → Desaturate

Our ring is now shades of white and grey.

6.2.3 Invert

LAYER: Rings Shadows

Invert the colours. The lighter the colour, the darker the inversion.

Image: Colours → Invert

6.2.4 Colour correction

LAYER: Rings Shadows

The grey colours of the rings can be darkened if necessary. This can be done using the Levels (see section 3.13 for more details) or Threshold options in the Colours menu.

Image: Colours → Levels

Image: Colours → Threshold

Adjust them to suit.

6.2.5 Scale Layer

Adding a closely fitting shadow
Adding a closely fitting shadow

See section 3.10 for more details.

LAYER: Rings Shadows

Now we scale this layer so that is closely fits the planet.

Image: Layer → Scale Layer

In this example, I have chosen the size 1600 pixels by 1600 pixels. (The image shows only the planet and the shadows of the rings. The Rings and Background layers are temporarily invisible.) Depending on where the light source is meant to be, it may be necessary to Move the layer to place the shadows of the rings in the correct place on the planet’s surface. In this example, the rings are meant to be almost edge-on to the light source.

6.2.6 Ellipse Selection / Eraser

LAYER: Rings

LAYER: Rings Shadows

At this point, return to section 4.6 to erase the unwanted portions of the rings and shadow.

6.3 Comparison

Left: original image, Right: using perspective and adding ring shadows on the disk of the planet
Left: original image, Right: using perspective and adding ring shadows on the disk of the planet