pygame is
Simple DirectMedia Layer is
Site Swing

Vizier - 2.2.0rc

Chandler Armstrong (omnirizon)



vizier is a game world and sprite image management library. vizier offers two features: 1) image scrolling, zooming, and rotating transformation processes and 2) 2d frustum culling.

vizier facilitates image transformation by offering scrolling and zooming methods for the world image, and rotating methods for sprites. vizier manages the images to ensure the scrolling and zooming is properly applied, relieving client code of responsilibity for repositioning and scaling images. the vizier.Sprite class keeps a cache of and manages all the various images that sprites generate for rotate operations.

vizier provides 2d frustum culling for managing very large game worlds. a frustum loads only that portion of the world within the frustum. the frustum is centered on the visible screen and is typically the size of the screen or bigger. very large worlds challenge game design with memory and precision burdens; frustum culling eliminates these challenges. vizier loads and evicts portions of the world from the frustum, using client supplied load and evict size parameters. see

Bilas, Scott. (2003). The Continuous World of Dungeon Seige. In Proceedings of the Game Developer's Conference 2003.

for more information of frustum culling as it is implemented by vizier.

vizier manages all sprites, ensuring sprites are loaded and evicted along with the portions of the world. evicted sprites are frozen but reactivated automatically when the portion of the world they are upon becomes added to the frustum once again.


Initial RC for the new vizier 2. Vizier has morphed to a frustum culling library. Consult and run the example script, in the 'examples' directory for a run down and demonstration of vizier. All portions of vizier are documented, so use help(...) for usage information on the module, classes, and methods.


Home Page:


click to view original size


Vizier - 2.3.0rc - Dec 4, 2011
Vizier - 2.2.0rc - Jun 24, 2011 account Comments

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

October 11, 2009 6:44pm - Sean - nickname: (stup) - 4/5
It looks like it requires pygame 1.9 and python 2.6.

I'd recommend having a key to break out of the test loop, otherwise it looks pretty good, I'm looking forward to trying it out.
October 7, 2009 8:50pm - Chandler Armstrong - nickname: (omnirizon)
hmmm... that's an odd one. RotoRect subclasses pygame.rect.Rect, which _does_ have a copy method. Could it be that the copy method of pygame.rect.Rect was just added in pygame 1.9?

If that's not it, make sure you are using the most recent version of the library, also ensure you havn't mixed the xrect and vizier module of two different versions.

October 7, 2009 2:56am - Xandar Kablandar - nickname: (eternalcheesecake)
I tried to run it using Pygame 1.8.1 but I get this error:

Traceback (most recent call last):
File "", line 270, in <module>
test = VizierTest()
File "", line 235, in __init__
topleft = (i, j)) #load sprite
File "", line 39, in load_sprite
return Sprite(image, path, rect)
File "", line 72, in __init__
self.rect = rect.copy()
AttributeError: 'RotoRect' object has no attribute 'copy'

our projects welcomes all python game, art, music, sound, video and multimedia projects. If they use pygame or not.
recent releases
May 22, 2016

May 21, 2016

May 18, 2016

May 1, 2016

Mar 27, 2016

Mar 26, 2016

Mar 22, 2016

Mar 19, 2016

Mar 17, 2016

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