Python 3D Software Collection


Python 3D Software

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 for graphics
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.
PSF Python
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
Extends Pyglet with convenient abstractions for commonly used advanced OpenGL features (GLSL, FBOs, etc.)
CNRI Python
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.
zlib/libpng License
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 Pivy.
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 pure-Python implementation. 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-hosting GUI libraries.
Artistic License
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 Lua currently.
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 and 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 rendering engine.
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 wrapper.
Custom (GPL-like?)
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 PyGame, includes an OpenGL accelerated 2D drawing library, a scenegraph-based sprite engine, and some extensions to PyGame's drawing commands.
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.
CNRI Python
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 format.
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 3D hardware.
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++ visualization engine.
SVG graphic display using PyOpenGL
Academic focus on user-interface design. Uses OpenGL to render (2D) SVG graphics. Considered alpha quality.
CWI Python
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-based. 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..
CNRI Python
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 scripting-friendly APIs.
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).