PyZOE 1.0a reviewDownload
ZOE (formerly OGLE) is a simple OpenGL graphics engine written entirely in Python.It's primary focus is rapid prototyping and experim
ZOE (formerly OGLE) is a simple 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.
Some familiarity with OpenGL is expected, although when exploiting the particle system abstractions no specific OpenGL knowledge is required.
Demos included are the obligatory spinning polyhedra, static views of conic sections and the Solar System, a 3D surface plotter, a fountain of sparks, a swarming behavior model, a random walk example, a whirpool effect using gravity and drag, and an example of chaos theory and sensitivity to initial conditions.
ZOE is a very simple OpenGL-based graphics engine. OpenGL describes the primitives for doing 3D graphics; a graphics engine assists in organizing these primitives into higher-level abstractions. Some basic familiarity with OpenGL is expected to be able to use ZOE.
ZOE has five primary abstractions, in the form of classes. The first is the engine, which encapsulates the functioning window system. The second is the object, which encapsulates individual objects moving and interacting in the system. A subclass of an object is a group, a collection of objects that move in unison, possibly with some transformations applied before and undone afterward. Third, a camera encapsulates the transformations involved in placing and manipulating the view. Fourth, an interface encapsulates all the user interface controls (keystrokes and mouse manipulation) so that they can be exploited by the system.
ZOE also has some support for particle systems; that is, a group of non-interacting particles that behave according to the same rules. A particle is a special form of object that is merely represented with a point, and an optional trail (to make its motion more prominent), and a system is a group object which contains and manages a collection of non-interacting particles.
PyZOE 1.0a keywords