Welcome to PyOSG

A Python wrapper for OpenSceneGraph


  • There seems to be continuing desire for a Python binding for OpenSceneGraph
  • An apparent lack of care and feeding of both the website and source code at SourceForge site
  • Only sporadic access to what is apparently the developer's personal svn repository with no URL published I could find (except on mailing lists)
  • Two apparently active branches of PyOSG diverging, one by the original PyOSG author Gideon May, and one by Joeseph Winston & Bill Hart.
  • My personal plan to continue using PyOSG

I have gathered the latest PyOSG sources I could find and begun a new, publicly accessible subversion repository here. This was done primarily so that PyOSG could have a more-or-less 'official' URL that gives some indication this is a viable project and that the latest source code can be found in one place. Another goal is to unify the diverging trees.

I thank all previous coders and contributors to PyOSG, particularly Gideon May, who I believe has done the vast majority of the work in creating PyOSG. I believe the source code is licensed under the BSD license, and any contributions I make will be under this BSD license.

As I am not able to devote much time to maintaining PyOSG, I ask the community for any and all help with this site and the source -- I will happily grant commit access to either if to anyone with more than a trivial patch.


  • 2007-04-01 PyOSG (trunk in svn repository) now compiles against OSG 1.0, 1.1, and 1.2 on linux and Mac OS X. I'm still having trouble getting it running on Mac OS X (boost::python issues), but hopefully the worst is behind us and Windows support can be added relatively painlessly.


We have a subversion repository online. There are two branches you may be interested in:

It is my hope that we can unify these two sources, which have appartenly diverged some time ago.

The SourceForge project page has links to the mailing list.


The releases are at http://code.astraw.com/pyosg_downloads :

  • PyOSG-1.2.1-1.tar.gz - built from 'trunk' revision 41, builds against OSG 1.0, 1.1, 1.2 on linux and Mac OS X
  • pyosg_ads_r15.tar.gz - built from 'trunk' revision 15, removes scons and builds entirely with distutils
  • pyosg_billhart_r15.tar.gz -built from 'billhart' branch revision 15, cleans up Bill Hart's "April 2005" release
  • pyosg_ads_r5.tar.gz - first release made here, built from 'trunk' revision 5, builds with standard python distutils, only tested on linux

Other OpenSceneGraph bindings

PyOSG has hand-crafted wrappers for the OSG classes. This is very work-intensive, but has the advantage that a lot of cool stuff can be done in the wrappers. Like allowing to subclass from NodeVisitors in Python.

  • osgPython, by Miguel Escriva et al., relies on the new osgIntrospection/osgWrappers. According to Ulrich Hertlein, this makes it more up-to-date with less work. But he found that it's not possible to sub-class from NodeVisitor, so that method didn't work so well for him. Also they took a long(-ish) time to load on his old 1.3 GHz system.
  • Hartmut Seichter is creating a SWIG-based wrapper of OSG with Python as a primary target language.

Building notes

PyOSG is known to compile and run with OSG versions 1.0, 1.1, and 1.2 on linux. It compiles on Mac OS X but doesn't currently run.

- Andrew Straw strawman@astraw.com