Source

gloopy /

Filename Size Date modified Message
docs
gloopy
97 B
glGenVertexArrays apparently no longer needs a wrapper function - either because I'm on Windows today, or because PyOpenGL has been improved
63 B
Added tag pyweek-apr11-deadline for changeset 94e9fd8143b1
82 B
tweak docs, add make_virtualenv.bat
1.7 KB
tweak docs, add make_virtualenv.bat
405 B
Oops, add MANIFEST.in, omitted from previous checkin.
1.6 KB
Move gloopy/docs to docs. This required change to doc install, to use data_files instead of package_data.
2.6 KB
tweak docs, add make_virtualenv.bat
19.9 KB
fix some leftover references to Vector.ZAxis
15.5 KB
simplified setup.py. Remove py2exe, we will never use it in this project, it is a library, not an application
75 B
capture pyobjc dependency in requirements.txt. It's only needed on OSX though, and will soon go away with latest pyglet, which uses ctypes instead
2.6 KB
Oops, add MANIFEST.in, omitted from previous checkin.

Gloopy is a Python library for creating 3D polyhedra and rendering them using OpenGL. It uses Pyglet to open a window and manage events, and PyOpenGL for OpenGL bindings.

Gloopy provides the following services:

  • Creation and manipulation of 3D, flat-surfaced, polyhedra, using the Shape class.
  • Factory functions to produce particular shapes, such as Cube or Icosahedron.
  • Some basic algorithms to modify existing shapes, such as by subdividing or extruding their surfaces.
  • Conversion of shapes into Glyph instances, which manage vertex arrays stored in a VBO.
  • A simple Render class which renders glyphs with given positions and orientations.
  • A camera attribute on the single Gloopy instance, that can be positioned, oriented, or told to look at a particular item or position.

Dependencies

Written mostly on Windows, tested occasionally on Ubuntu.

  • Python 2.7
  • distribute 0.6.14
  • pyglet 1.1.4
  • PyOpenGL 3.0.1

Documentation

In the Gloopy source, see 'docs/html/index.html'

This is installed into your Python installation's 'share/doc' directory.

See also the scripts in the 'gloopy/examples' directory.

Documentation is not currently available online.

License

Gloopy is released under the terms specified in LICENSE.txt.

Status & Known Issues

It works for me, but has not been used on any real projects. The API is a mess and may change substantially in later releases.

No issue tracker is currently maintained, but the major shortfalls as I percieve them are:

  • Some algorithmic modifiers, such as face subdivision, extrusion, stellation, do not currently work on MultiShapes. This is because these modifiers rely on modifying attributes of the given shape in place, such as by inserting new entries in the .faces collection. However, MultiShapes provide many of these attributes by using generators to form a composite stream of their children. I guess I ought to make all shape modifiers functional.
  • The supplied 'directional lighting' shader is broken - rotating an object does not modify the apparent illumination of its surfaces.
  • No attempt is made to handle textures. All faces are plain colors.
  • We don't currently handle multiple shaders within a single scene.

Thanks

PyWeek participants 'Scav' and 'Threads' for showing me how it should be done, and PyWeek message board users donal.h, Cosmologicon, RB[0], PyTM30, Tee and saluk for cajoling me into accepting the merit of allowing people to bring pre-existing codebases into PyWeek so long as they are public.