A small collection (94 packages) of pointers to Python software for working in three dimensions
"Open Source" of some type
Batch converter from CAD files to Acrobat 3D-PDF
Site is in German. Don't know what type of CAD documents are being
converted. Seems to work by automating the Acrobat tools.
Pygame GUI Library compatible with OpenGL
Derived from a number of PyWeek entries,
provides buttons, list-controls, layout tools, file dialogs,
and other assorted "GUI" bits for use with Pygame-based games.
GUI for editing files for the Yafray raytracer
XML-editing GUI for tweaking Yafray data-files.
Appears to call out to the Yafray renderer in order to provide various
views within the application.
BattleTech (game) implementation using PyOpenGL
3D Modeler with Python scripting support
Full-featured tool with a rather non-standard
interface (for those accustomed to main-line tools such as 3DSMax or Maya).
Provides a free-software 3D Modeling/animation tool. Python scripting
is extensive. Supports VRML97 output via a Python plug-in.
Editor for BZFlag game files
2D Rendering engine for a variety of back-ends including OpenGL
Kiva and Chaco were, at one point, part of SciPy,
but they appear to have been dropped at some point. The CVS
repository is still available.
Custom (BSD-like terms)
Client-server chess game with 3D interface
Uses Twisted for networking and PyOpenGL
Molecular modelling framework
Interactive molecular graphics modelling platform.
Seems to be cross-platform. Quite good according to Steve Ludtke.
Utility types and functions for 3D (Renderman focus)
The Python Computer Graphics Kit is a collection
of Python modules that contain the basic types and functions to be able
to create 3D computer graphics images. The kit mainly focuses on Pixar's
RenderMan interface, but some modules can also be used for OpenGL programs
or non-RenderMan compliant renderers like POV-Ray, for example.
C++ Library for Visual FX with Python binding
Focussed on the needs of those creating
Visual effects tools/toolchains. RIB (renderman) format support,
Maya importers, image handling, UI controls.
Large C++ 3D Game engine with (second-class) Python bindings
Large, popular 3D engine which apparently provides
Python bindings of some sort. Lots of nice features in the core engine.
Small GLUT + OpenGL C-python library
A simplified interface to OpenGL and GLUT, but still very low-level,
you're basically working with minimal wrappers around the OpenGL calls.
3DStudio (classic) format loader (and renderer)
Utility library for loading .3ds files generated
by the original 3DStudio and lots of other programs. Includes code for
rendering the loaded models using PyOpenGL
C++ Python extension providing DirectX 9.0 access
Interface to the 2D, 3D, and audio features of the Direct-X library from
Microsoft. Includes support for loading .x meshes. Provides access to
HLSL shaders and the like.
Tile-based real-time strategy game using OpenGL for graphics
The project has been "frozen" for a very long time.
Creates 3D objects for Poser(R) from Truetype(R) Fonts
Lets you enter a string of text and saves it out as .obj files.
Early-stage Free CAD modeller with Python scripting
Project appears to be trying to create a generic 3D CAD system,
the various demonstration scripts all appear to be in Python.
Recent C++ engine with mechanical engineering feel
comes with an IDE for creating the 3D and programmatic features. Lots of
physics simulation support as well. Built on OpenGL 2.0.
Advanced 3D Interface for Pyglet
with convenient abstractions for commonly used advanced
OpenGL features (GLSL, FBOs, etc.)
Provides 2D UI elements using PyOpenGL/GLUT
Attempts to provide a Tkinter-like 2D GUI
using the cross-platform GLUT API. CVS repository seems to have been
largely cleaned out and then the project abandoned.
Visualizer for Numpy in IPython using PyOpenGL
glumpy is a fast-OpenGL based numpy visualization based on top of
PyOpenGL and IPython (for interactive sessions) that allows for the fast
vizualization of numpy arrays (mainly two dimensional). It had been
designed with efficiency in mind and if you want to have a sense of
what's going on in your simulation while it is running, then maybe
glumpy can help you.
Game-style? C++ engine with Python binding
C++ engine with fairly extensive list of
features and fairly high-quality screenshots. Python
binding apparently "somewhere around the net", though
other sources suggest that it's a built-in scripting
API. Uses OpenGL or Direct3D for its rendering back-end.
Has content loaders for e.g. Quake BSPs.
Wrapper around Coin for Qt-based visualization tasks
Intends to provide reasonable platform for doing 3D work under Qt
with large data-sets. Uses Coin as the rendering engine, not based on
Code-based generator for producing LDraw (LEGO) modeller scenes
Write a simple Python script to output code for standard LEGO modellers.
Appears to just do textual generation (i.e. doesn't model/display the code).
Raytracing engine with experimental Python binding
Apparently abandoned (inactive) project with a
python binding marked experimental in early 2000
New 2D sprite engine for PyGame written using OpenGL
Game-focused 2D graphics engine providing
accelerated operations for PyGame sprite-based games. Sprites
are to 2D graphics engines as scenegraphs are to 3D graphics
engine, (retained-mode method of drawing figures).
Parameterized human modeler
Produces models of humans by deforming a mesh
with Python scripting API.
Scientific data visualizer written on top of VTK
MayaVi is a free, easy to use scientific
data visualizer. It provides a Tkinter GUI
Minimalistic Raytracer with a Python Translation
Poetic form raytracer (short, elegant) that
includes translations to a number of languages, has a
shed-skin version that is many times faster than the
Reads in model definition files and kicks out image
files. A radiosity/global-illumination renderer.
2D Graphics package trying to create Director-like API
New project originally based on wxPython, now
trying to generalise their API for use with other PyOpenGL
Analysis and manipulation of molecular models
Molecular viewer and editor using PyOpenGL
Virtual world engine with networking and 3D graphics
Uses Panda or Ogre for rendering, Twisted for networking, ODE for physics.
Server infrastructure with "portal" modelling to limit area-of-interest.
Visualisation of planetary datasets from NetCDF files
Built on top of VTK
TK/PMW GUI. Seems to be intended primarily for use by scientists
who need to see time-dependent changes in datasets across the
entire globe based on Lat/Long coordinate-indexed data-sets.
3D Game/VR engine with "pending" support for Python
Currently Windows only, with support for other
platforms planned. C++ engine with bindings to TCL/Tk and
Fairly advanced C++ rendering engine with Python binding
OGRE is a fairly advanced Game-style engine.
The Python binding has been resurrected and is now under active
development and has apparently covered the bulk of the OGRE API.
Engine for running physical simulations (non-graphical)
ODE is an open source, high performance library
for simulating rigid body dynamics. Has advanced joint types and
integrated collision detection with friction. ODE is useful for
simulating vehicles, objects in virtual reality environments
and virtual creatures. Used in games, tools and simulations.
Python binding is apparently quite usable.
Package providing Pyrex-coded access to advanced OpenGL extensions
GLEWpy aims to bring advanced OpenGL extensions
to Python. This will allow the Python OpenGL developer to use features
such as fragment and vertex shaders and image processing on the GPU. It
serves as a compliment to PyOpenGL
toolkits such as GLUT and SDL (PyGame
VRML97-compatible scenegraph engine written in Python
Built directly on top of PyOpenGL
, OpenGLContext is
a retained-mode rendering engine which demonstrates many of the most
basic features desired by those building scenegraph engines.
It is written primarily to provide a source of sample and testing
code for the PyOpenGL library, but represents a fairly complete
OSGPL ("Relaxed LGPL")
General-purpose C++ engine with Python binding
Large C++ rendering engine with what
looks to be a fairly large user base. Rendering quality is
rather good judging from the screenshots. Uses OpenGL for it's
rendering back-end. Rather minimal homepage
for the Python
CMU/Disney collaboration on 3D game/simulation engine
C++ engine with Python bindings. Goals are to be:
fast, powerful, easy to program, flexible, modifiable, long-lived,
platform agnostic, and reprogrammable on the fly. Focus of the
project is on the Python interface.
BSD (but requires commercial or GPL Coin)
Wrapper for the Coin/Inventor Scenegraph Library
Pivy is a Coin binding for Python.
Coin is a high-level 3D graphics library with a C++
Application Programming Interface. Coin uses scene-graph
data structures to render real-time graphics suitable for
all kinds of scientific and engineering visualization
applications. Can be extended with PyOpenGL
. Includes loaders
for a number of common formats, including VRML97.
Scientific visualisation toolkit
Interactive molecular and particle visualization
Various visualization, plotting, and analysis tools for pre- and
post-processing of molecular dynamics simulation data. Tools can be
used via the command-line, Python scripting, or Tk GUIs.
Clone of MineSweeper with a "3D" view of the 2D board
Written with PyGame and PyOpenGL, doesn't
seem to use the 3D effect for anything other than warping the 2D
board. Seems to use textures for the individual tiles.
Generation of POVRay files from Python
Textual generator for producing POVRay files from
Python code. Written as a recipe in the Python cookbook. Includes sample
code for a few scenes. All of the sample code I can see uses something
akin to "immediate mode" in that it renders directly to the file, rather
than creating a graph first and then rendering out to the file.
Polygonal geometry editor/converter
Project uses SSG via C++, not at the moment
scriptable using Python, but has been in the past and plans to be
in the future.
Python-based modeling and animation tool for use with SGI's OpenGL Performer
Appears to be focused on the production of scenes for
use in university-level classes.
2D Font rendering library (wrapper) using FreeType
Provides a very simple API to render directly into a (Py)OpenGL context
Provides access to Cg shader language from Python
Callback driven framework for generating Cg shaders.
Simple Directmedia Library (SDL) wrapper for Python
Commonly used library for providing a PyOpenGL
rendering context. Includes sprite-based animations, media playback,
image loading, text-rendering, rich "surface" mechanism
for compositing (non-hardware-accellerated, however), text rendering
and the like. OpenGLContext provides a full PyGame context.
2D PyGame library
Collection of modules for use in writing games with
, includes an OpenGL accelerated 2D drawing
library, a scenegraph-based sprite engine, and some extensions to PyGame's
Cross platform windowing and multimedia (game) framework in Python
Pyglet is a Python-coded library which uses ctypes to produce
a portable GUI/multimedia layer that lets you write games in an OpenGL-implemented
engine. It includes full bindings for a C-style OpenGL library with most extensions.
Pyglet is under active development, with new frequent new features and releases.
BSD (+ zlib/libpng)
Python binding to the GLFW library
GLFW is a (C?) library which provides a cross-platform
abstraction for system-level events such as window creation, mouse and
keyboard interaction. PyGLFW is a binding for GLFW for Python.
Virtual Reality engine with Python extension API
Large research project written in C++ with
Python either embedded in or embedding the engine. Focus appears
to be on the creation of a single API usable across all platforms
(at the C++ level).
C++ Game development platform with Python binding
2D Game development platform based on
a C++ SDL sprite platform (not Pygame). Kyra includes
toolchains for isometric art and the like.
Library for handling various multimedia tasks
Provides rich and simple interface for
digital media manipulation( wav, mp3, ogg, avi, divx,
dvd, cdda etc ). It includes parsing, demutiplexing,
multiplexing, encoding and decoding. Cross platform.
Molecular graphics system with embedded Python interpreter
PyMOL is a molecular graphics system with an embedded
Python interpreter designed for real-time visualization and
rapid generation of high-quality molecular graphics images
and animations. Can also edit PDB files.
Standard Python binding to the OpenGL, GLU, GLUT and GLE libraries
PyOpenGL provides access to the common
immediate-mode libraries associated with OpenGL. It is a large
SWIG-based wrapper available on most platforms in source or binary
Wrapper around 3D graphing library widgets for PyQt/PyQwt
SIP-based wrapper to a C++ class library providing
3D graphing of functions, data-sets and the like.
BSD (w/out advertising clause)
Package/tool to produce stimuli for psychology experiments
Provides simple mechanisms for generating stimuli
for psychology experiments with bitmap and text manipulations. The
primary goals are to provide for the busy scientist tools to control
timing and windowing and a simple set of pre-packaged stimuli.
Rewrite of Soya3D game engine
Cloud-based game engine under active development,
targeting deployment in the near-term future.
MIT? CWI Python?
General image-handling routines for common bitmap formats
This is the standard module used in Python
for working with bitmapped images (JPEG, PNG, BMP, etceteras).
Many of the 3D engines described here rely on PIL for their
image-decoding (and encoding) operations.
Library porting Matlab NURBs facilities to Python
3D Library aimed at CAD/CAM/CAE/AEC/GIS with Python binding
Big old project that apparently has a (relatively new?) Python binding
Library for robotics explorations include OpenGL visualisation
Large AI/robotics project, lots of scientific tools
where the visualisation component is just a small part of the total.
Very early-stage engine for 3D role playing games
2D-only CAD package written entirely in Python
Project appears to have become moribund.
2D UI Elements using (among others) OpenGL as a back-end
Game-focused 2D user interface library
which can use OpenGL as its backend to provide acceleration using
Text-mode editor w/ previews for the POV raytracer
Basically a text editor with syntax highlighting
Also has automatic insertion of common elements and property configuration.
"In short WinPov for Linux"
"Open Source" (unspecified)
C++ raytracer with Python binding
Raytracer with what looks like a fairly
extensive Python binding (with some limitations on the type of
extending you can do with Python). Focus appears to be on "script"
writing (similar to VPython) with nodes similar to those seen in
any of the scenegraph engines.
Large 3D and 2D rendering project using PyOpenGL
Currently unmaintained, but has Python code for a lot of interesting tasks,
such as rendering a subset of SVG in OpenGL and loading various 3D file
formats. Appears to use wxPython as its GUI-hosting environment.
Scientific visualization of water flow/effects
Provides a graphical interface for a particular
modeling mechanism (CHILD) which simulates water flow patterns
(such as streams and mudflows). Python interface to C++
Academic focus on user-interface design. Uses OpenGL to render (2D) SVG
graphics. Considered alpha quality.
Large collection of scientific modules including some 3D operations
Scientific Python is the first port-of-call for
those wishing to use Python for any sort of scientific work. Among
the large collection of code are numerous utilities which are useful
when writing low-level 3D code. There is also some code for exporting
VRML files (I believe version 1.0, however, not VRML97).
ZOE Derivative with 'extensions including perspective and lighting'
In summary, a conversion of ZOE
to use PyGame for
GUI operations instead of GLUT. PyOpenGL
Focus on wireframes and particle systems inherited from ZOE.
Python + Numeric raytracer for platonic solids
Appears to be an early project to produce a raytracer
Library for creating animated PowerPoint-style presentations (with PyOpenGL)
Allows for creating animated graphics presentations
using OpenGL and Python. This is AFAICT largely a research project,
rather than an attempt to create a production-level tool. That said,
may be suitable for various uses. This is not a
PowerPoint application clone, it's a rendering engine for PowerPoint-style
presentations (you must write code to generate presentations).
A "sketchbook" for (networked) OpenGL graphics
Built on top of PyOpenGL
Twisted and PyGame; a rather extensive-seeming engine for experimenting
with OpenGL rendering.
Very high level 3D engine for Python games
Aims at providing a professional-level development
platform for (GPL) 3D games. Impressive screenshots. Written in PyRex,
uses Cal3D for character animation, ODE for physical simulation.
3D Game engine in Python w/ Pyrex
Focus on flexibility, clean design and ease of use (for coders).
This is more properly a game engine, with a set of
features apparently including, for instance, collision detection,
physics simulation (using ODE), and a 3DSMax exporter. Rendering
pipeline is GLSL-based with no legacy (fixed) pipeline.
LGPL (GPL Demos)
Portable library for creating 3D games
At some point, had a Python binding, don't currently
see any mention of it. This is a fairly large engine for creating
games or game-like programs, includes a scenegraph engine, support for
audio, UI, joysticks, that kind of thing.
Python interface to the Google SketchUp 3D Modeller
Plugin to SketchUp which allows for Python scripting
Under active development as of 2009-02
3DStudio (classic) format loader (and renderer)
Utility library for loading .3ds files generated
by the original 3DStudio and lots of other programs. Includes code for
rendering the loaded models using PyOpenGL
High level scripting of custom C 3D engine in Python
Fairly early project that seems to be focussing on
ease-of-use for writing quick scripts to explore an idea. Integration with
gstreamer and PyODE
TTF Font querying, including outline extraction for 3D text
Originally part of OpenGLContext, TTFQuery
builds on top of FontTools to provide a cross-platform mechanism
which can read TTF Font files and extract from them the metrics
required to render fonts in 3D (as is done in OpenGLContext). Also
includes primitive font finding/matching code.
Custom, apparently free-for-non-commercial
Programming environment for visualisations
Lots of Python papers written about it.
Molecular biology focus AFAICS. Quite good according to Steve Ludtke.
Package/tool to produce stimuli for vision research experiments
The Vision Egg is a high level interface between
Python and OpenGL. In addition to methods for automatic generation of
traditional visual stimuli such as sinusoidal gratings and random dot
patterns, it has a number of functions for moving numeric data, images,
movies, text, and 3D objects to and from your video card and allowing
use of some of its features like perspective distortion. Written on
top of PyOpenGL
PyOpenGL + wxPython wrapper around molecular visualisation tool
Vimes intends to provide tools to visualize molecules and materials,
perform simple manipulations of the structures, input/output the structures
to/from a variety of different file formats, and provide some tools for editing
options for the input files for a some different applications..
3D Programming for Ordinary Mortals
Simple 3D scenegraph engine with focus on
educational rendering. Large user community, novice friendly. Not
really focused on cutting-edge rendering features or the like.
Uses a simple C/C++ engine wrapped for use by Python.
BSD-like (+ notification-of-changes)
Research/visualisation focused toolkit with strong Python bindings
VTK is a C++ retained-mode rendering engine
with fairly complete Python bindings. It has quite a few mechanisms
which attempt to make the process of visualising phenomena easier.
Embeddable in wxPython.
Data-visualation of 1D to 4D array data
PyOpenGL-based renderer for scientific data using
Collection of recipes/scripts for automating CAD applications on Win32 platforms
Sub-collection of a larger set of Win32 scripting
recipes which deals with CAD/CAM-related scripting. Scripts
tend to be very short "Cookbook"-style snippets intended to
be edited together to accomplish your task, rather than
stand-alone products or processes.
Licenses are not explicitly specified, but code is short enough
and generic enough that likely could be considered fair use when
using as a pattern in your code.
Uses Mark Hammond's Win32 libraries for automation.
wxWidgets wrapper providing decent OpenGL and VTK contexts
Not really a 3D library, just a library that tends
to be used to host 3D contexts. OpenGLContext provides a full wxPython
context built on the wxGLCanvas.
Scenegraph with focus on wireframes and particle systems
ZOE (formerly OGLE) is a very trivial OpenGL
graphics engine, written entirely in Python. It's primary
focus is rapid prototyping and experimentation, so it only
supports the barest essentials, with focus on wire frames.
Special emphasis is placed on particle systems (where
non-interacting particles follow simple rules).