[Edu-sig] Elementary graphics library

Paul D. Fernhout pdfernhout at kurtz-fernhout.com
Sun May 28 22:31:01 CEST 2006


If you haven't already, you could check out:

Pyxel
   http://bellsouthpwp.net/p/r/prochak/pyxel.html
   "Pyxel is a python library that provides a dynamic, interactive, highly 
portable, graphical environment.  It makes diagrams and widgets look 
identical in whatever underlying environment it supports."

wxOGL
   http://wiki.wxpython.org/index.cgi/wxOGL
   "The OGL library was originally written in C++ and provided to wxPython 
via an extension module wrapper as is most of the rest of wxPython. The 
code has now been ported to Python (with many thanks to Pierre Hjälm!) in 
order to make it be more easily maintainable and less likely to get rusty 
because nobody cares about the C++ lib any more."
   (bottom of that pages has more alternatives, like the next)

Piddle
   http://piddle.sourceforge.net/
"PIDDLE is a Python module for creating two-dimensional graphics in a 
manner that is both cross-platform and cross-media; that is, it can 
support screen graphics (e.g. QuickDraw, Windows, Tk) as well as file 
output (PostScript, PDF, GIF, etc.). It makes use of the native 2D drawing 
calls of each backend, for maximum efficiency and quality. It works by 
defining a base class (piddle.Canvas) with methods for all supported 
drawing primitives. A particular drawing context is provided in the form 
of a derived class. PIDDLE applications will be able to automatically 
select an appropriate backend for the user's environment. "

and of course PyGame or PySDL or even the OpenGL Canvas stuff (there are 
probably more) for ideas and to see what others have done before in pure 
Python and you could possibly build on. Or even PyGeo if your focus is 
mainly on geometry instead of arbitrary 2D graphics (I wasn't sure).

There are a lot of charting and plotting and other graphics packages out 
there with Python bindings (including Cairo, which you are looking at as 
your first backend target). You can ask yourself if a newer API really 
gets you that much over these existing things? Will it really be that much 
simpler once you really try to make it useful? And if you have a 
crossplatform backend already like Cairo or wx, does it gain you that much 
to abstract above that if can you simplify it somehow, versus just make a 
simple interface to one cross-platform library (which may be hard enough)?

Now, it still might be worth doing for you even if the answers are no, but 
to maximize your effectiveness it is nice go in with your eyes open about 
whether you are doing this to learn and to have fun, to improve an 
existing thing, or to make something new that fills an empty niche (or to 
try do do all three); that is a question I often wrestle with for my own 
projects. :-)

--Paul Fernhout


Johannes Woolard wrote:
> As part of my Summer of Code proposal, I said i would write a simple
> graphics library.
> I've spent the last couple of hours brainstorming this, and written it all up:
> 
> http://crunchy.python-hosting.com/wiki/GraphicsDoc.
> 
> If anyone has any comments/ideas I would love to hear them!
> 
> Johannes
> 



More information about the Edu-sig mailing list