How to Make an Apple Style Icon in GIMP

This tutorial was originally posted on I have since placed it in a few other places.

Without further ado, here it is:

The video form of the tutorial. Before you ask, yes it is slightly different than the written version.

This is the end result:
End Result

To begin, we will create a 100×100 image (Avatar size) But your image can be any size you would like Picture

Now zoom in to 400% by clicking the little menu on the bottom (Or any other zoom that suites you)

For the sake of ease, I will be doing a simple red sphere, but you can make whatever shape you want. Create a new layer over the background and name it “Sphere” Picture

Next select the circle select tool and drag a circular selection where your sphere will be. Leave sufficient room underneath for the dropshadow. Picture

Select the bucket fill tool and choose a good color (Gradients work too but are more advanced and require the gradient tool instead of the bucket fill tool) I chose a red to dark red gradient. Fill the selection with your color. Picture

Click Select>Grow from the menubar and choose about 2-4 pixels. Fill the resulting selection in with black on a new layer named “Sphere Outline 1” and move it’s layer below the original layer Picture

Create another new layer on the bottom (Above the background) and name this one “Sphere Outline 2”. Click Select>Grow And grow it by about the same amount as the last, but it can be higher. This time though, you will use a dark grey to black gradient. Stroke from top to bottom. Picture

Right click the “Sphere” layer and choose Alpha to selection and click the circle select tool again and choose the intersect mode. On a new layer above everything else, named “Gloss”, fill the selection in with a white to transparency gradient and adjust the opacity of the layer to about 90% Picture

On a final layer below the rest named “Shadow”, use the circle select tool again (set to replace not intersect) to choose a fitting shadow area. Select what looks good and choose a darker grey color. Fill in the selection and click Filters>Blur>Gaussian Blur and choose somewhere from 5 to 15 pixels depending on what looks good. click ok, adjust the positioning of the shadow to fit better and viola! You can optionally delete the background layer for a cool effect when used anywhere. Picture is Online

This is somewhat of old news, but GimpKnowHow’s website is now up and running. It’s a forum with a pretty large userbase. Most of the people are helpful and creative. Many tutorials for both GIMP and Photoshop have been posted there. Go and check it out at My username is DarkFlame there.

PyGameEngine Release 1 Now Available!

The source for PyGameEngine release 1 is now available at There is also a discussion topic there. The highlight of this first release is the camera class.
The camera class is designed to work seamlessly with the game class provided by the game engine. It allows you to focus on one point at a time. It comes with a useful function just for centering on a set of coordinates. It also can be constrained to not pass too far off the screen. There’s much more to come as well.

The project’s page is located at


I began work today on a new game engine for use with Pygame. Right now, it only has classes and functions to facilitate cameras and camera movement. There’s also a working demo for the camera class. It is in a pre-alpha version and has many known bugs. Including ones as simple as making a background larger than the camera. But it seems more stable than many other engines out there.

Here’s an example of a simple use of the game engine:

from PyGameEngine import *

class NewSprite(GameSprite):


def main():
background = pygame.surface.Surface((800,600))
pygame.draw.line(background, (255,255,255), (0,0), (background.get_rect().width-1, 0), 9)
pygame.draw.line(background, (255,255,255), (background.get_rect().width-1, background.get_rect().height-1), (background.get_rect().width-1, 0), 9)
pygame.draw.line(background, (255,255,255), (0, background.get_rect().height-1), (background.get_rect().width-1, background.get_rect().height-1), 9)
pygame.draw.line(background, (255,255,255), (0, 0), (0, background.get_rect().height-1), 9)

game = Game(screensize=(800, 600), caption="PyGameEngine testing", background=background, bgcolor=Color(40,0,0), backgroundfixed=False, fullscreen=False, maxfps=30, debug=True)

spritesurf = pygame.surface.Surface((32, 32))
testSprite = NewSprite(game, image=spritesurf, bounds=Rect(0,0, 800,600))
game.centerOn = testSprite
testSprite.centerOn(Rect(0,0, 800,600).center)
testGroup = GameSpriteGroup(game, [testSprite])
game.playersprite = game.groups[0].sprites()[0]

if __name__ == '__main__':

I will upload the source code as soon as I feel it’s ready. I may upload a video of the working demo though.