pygame is
Simple DirectMedia Layer is
Site Swing
Pygame Advanced Graphics Library

Pygame Advanced Graphics Library - 8.1.1

Ian Mallett (geometrian)



Pygame Advance Graphics Library


This is an all purpose graphics library for easily creating complicated effects quickly, and with a minimum of code. Run the very well commented examples, each less than a page long (not counting comments), and learn how to make complicated effects like shadows and antialiasing. Have fun!


Psyco (optional)

To Do

-Improve Antialiasing speed with the new features in PyGame 1.8
-Thicker Dotted Lines?
-Some More Demos
Email me to give suggestions.


A minor fix to add compatibility to Python 2.7.


Home Page:


click to view original size


Pygame Advanced Graphics Library - 8.1.1 - Jul 25, 2013
Pygame Advanced Graphics Library - 8.1.0 - Jan 8, 2013
Pygame Advanced Graphics Library - 8.0.2 - Jan 5, 2013
Pygame Advanced Graphics Library - 8.0.1 - Jan 1, 2013
Pygame Advanced Graphics Library - 8.0.0 - Dec 31, 2012
Pygame Advanced Graphics Library - 5.0.0 - May 9, 2008
Pygame Advanced Graphics Library - 4.0.0 - Apr 5, 2008
Pygame Advanced Graphics Library - 3.0.0 - Mar 30, 2008
Pygame Advanced Graphics Library - 2.0.0 - Mar 28, 2008
Pygame Advanced Graphics Library - 1.0.0 - Mar 4, 2008 account Comments

If you wish to leave a comment with your account, please sign in first.

July 25, 2013 7:24am - Ian Mallett - nickname: (geometrian)
Version 8.1.1 released!
January 8, 2013 7:00am - Ian Mallett - nickname: (geometrian)
Version 8.1.0 released!
January 5, 2013 3:50am - Ian Mallett - nickname: (geometrian)
Version 8.0.2 released!
January 1, 2013 10:42am - Ian Mallett - nickname: (geometrian)
Version 8.0.1 released!
December 31, 2012 11:15pm - Ian Mallett - nickname: (geometrian)
Version 8.0.0 released (versions 6.0.0 and 7.0.0 were prerelease work)! This version is almost completely rewritten for awesomeness.
May 10, 2008 1:28pm - pymike - nickname: (pymike)
Nice bezier curves :)
May 9, 2008 11:23pm - Ian Mallett - nickname: (geometrian)
Version 5.0.0 released!
April 6, 2008 12:03pm - Ian Mallett - nickname: (geometrian)
I was something to do with the way you did it, I think--something about your use of factorials. The method you used for your cubic splines actually is generic--you just needed to allow it to use different numbers of points. Curiously, it only works for 2, 4, or 6 control points. I didn't attempt odd numbers, and 8+ doesn't work...?
April 6, 2008 5:45am - Francesco Mastellone - nickname: (effeemme)
Hi! Nice job with the curves. I'm still trying to understand what causes the origin to be the last point of the curve, in my generic algorithm...
April 5, 2008 8:53pm - Wil Alvarez - nickname: (satanas666)
Wow dude! Really nice particles effects... Awesome.

Great Job!
April 5, 2008 8:47pm - Ian Mallett - nickname: (geometrian)
Version 4.0.0 released!
April 5, 2008 8:47pm - Ian Mallett - nickname: (geometrian)
I see, the gameApp from your other one works...
I generalised your algorithm, an got something that works with 2, 4, and 6 control points. Here it is.
April 5, 2008 1:21pm - Ian Mallett - nickname: (geometrian)
It says it needs gameApp...
April 4, 2008 5:10pm - Francesco Mastellone - nickname: (effeemme)
Ian, the n-degree beziér curves almost work, but for some reason the 0,0 point gets added to the curve. Here's the source, in hope you can get something useful out of it.
March 30, 2008 3:10pm - Ian Mallett - nickname: (geometrian)
This page's link fixed.
March 30, 2008 3:10pm - Ian Mallett - nickname: (geometrian)
Opps. Yes it is. I'll fix it. However, you could still have downloaded it from my website--those links were fine. effeemme, I'm afraid not. The shadow occluders must be rectangles. I'll look into changing that, though it wouldn't be easy.
March 30, 2008 9:05am - Francesco Mastellone - nickname: (effeemme)
Hey Ian, I'm almost done with the n-dimensional curves. Could your shadow system be adapted to use lines as occluders?
March 30, 2008 9:02am - Nathan Tornquist - nickname: (petron)
the link points to version 2 which I assume you removed
March 30, 2008 8:50am - Nathan Tornquist - nickname: (petron)
your link is broken
March 30, 2008 1:13am - Ian Mallett - nickname: (geometrian)
Version 3.0.0 released!
March 30, 2008 1:13am - Ian Mallett - nickname: (geometrian)
March 29, 2008 9:22am - Luca Fabbri - nickname: (keul) - 4/5
I really liked the shadown effects!!!

I'm thinking about using it! ;)
March 28, 2008 10:04pm - Ian Mallett - nickname: (geometrian)
Thanks. Note that the comments are in the examples, not the library. I'll add your bézier curves to this if you decide to make them n-dimensional. Thanks for that, by the way.
March 28, 2008 4:36pm - Francesco Mastellone - nickname: (effeemme)
Man, I'm stupid. There ARE comments, plenty of them! For some reason I just skip the #(one line) ones! No more gripe with the library then. Good job!
March 28, 2008 4:24pm - Francesco Mastellone - nickname: (effeemme)
What I find to be wonderful actually is the shadow system. I could use it someday, but the main problem I have with the library is that it's a bit ugly, and it's not commented. A bit of an issue considering it's a library. The visual effects are beautiful though.
March 28, 2008 2:42pm - pymike - nickname: (pymike)
Nice rounded rects :) Those would be great for GUI!
March 28, 2008 2:13pm - Ian Mallett - nickname: (geometrian)
Version 2.0.0 released!
March 11, 2008 9:43pm - Ian Mallett - nickname: (geometrian)
I have 1.8.something. Thanks for finding this.
March 10, 2008 3:22pm - RB[0] - nickname: (roebros)
Ian, there a re a few different reasons - different OS, different pygame distro (I have the last stable, 1.7.1?), etc.

I'm not sure exactly, but this does happen to some people ;)
Keep up the good work :)
March 10, 2008 8:32am - Dylan J. Raub - nickname: (dylanjraub) - 4/5
Dude, you forgot to init? I can't believe that. I'm sorry, but everybody knows you have to init a pygame module- oh, wait! Everybody can't know that because... never mind. All i'm saying is that it's a simple mistake that you should of noticed before you put it on this web site. I can't wait to see it!
(btw. I made my own that I bet is faster! MUAHAHAHA!)
March 10, 2008 3:37am - publeo - nickname: (publeo)
Thanks roebros, that fixed the problem for me too!
Nice library and examples Ian!
March 10, 2008 2:18am - Ian Mallett - nickname: (geometrian)
OK, thanks roebros. I will change that. Why didn't it cause me problems?
March 9, 2008 8:04pm - RB[0] - nickname: (roebros) - 3/5
Nice functionality - needs a bit of speed, but otherwise :)

For the errors below - I was getting them too, what is happening is that Ian, you forgot to call pygame.init(), which should really be done before you do *anything* in pygame.
I placed that line below the Screen = (512, 512) line.
March 9, 2008 12:57am - James Frederick - nickname: (monp)
i downloaded psyco and it didnt make a difference.
March 8, 2008 12:10am - Ian Mallett - nickname: (geometrian)
hmmmm. The only thing I can think of is Psyco, which I used to make the program faster. You could either install that or comment out the lines at the top. I put them in a try/except statement, but maybe that might not be alleviating some problems.
March 7, 2008 8:27am - Dylan J. Raub - nickname: (dylanjraub) - 2/5
I have the same problem. A little message appears not in IDLE, but in a window saying 'run time error!' or something like that. WHAT'S UP WITH THAT?!?
March 7, 2008 12:59am - Ian Mallett - nickname: (geometrian)
Which line?
March 6, 2008 2:17am - publeo - nickname: (publeo)
I have the same crash. Before an example even started the program is terminated
in commandline it gives an error:

Fatal python error: (pygame paracute) segmentation fault
this application has requested the runtime to terminate it in an unusual way.
please contact the applications support team for more information.

re-downloading didn't fix the problem
March 5, 2008 10:09pm - Ian Mallett - nickname: (geometrian)
Where is the crash occurring? You might try re-downloading it.
March 5, 2008 9:58pm - James Frederick - nickname: (monp)
For any demo i try to run it gives me that error.
March 5, 2008 9:28pm - Ian Mallett - nickname: (geometrian)
First, which demo are you running?
Second, none of the demos run without, which is included in the download. If you do not have it, the program will not run.
I don't know what <i>exactly</i> caused your error, though.
March 4, 2008 10:59pm - James Frederick - nickname: (monp)
i am trying to get this to work but i keep getting an error.
Fatal python error: (pygame paracute) segmentation fault
this application has requested the runtime to terminate it in an unusual way.
please contact the applications support team for more information.
March 4, 2008 9:25pm - Ian Mallett - nickname: (geometrian)
I noticed that. You can set the antialias level to something lower, but this is really just a proof of concept.
March 4, 2008 12:24pm - pymike - nickname: (pymike)
Great particle effects! The antialiasing is too slow for use in a game though.
March 4, 2008 1:23am - Ian Mallett - nickname: (geometrian)
Version 1.0.0 released!

our projects welcomes all python game, art, music, sound, video and multimedia projects. If they use pygame or not.
recent releases
Jan 31, 2017

Jan 24, 2017

Jan 19, 2017

Jan 18, 2017

Jan 7, 2017

Dec 30, 2016

Dec 8, 2016

Nov 28, 2016

Nov 27, 2016

... more!
for pygame related questions, comments, and suggestions, please see help (lists, irc)