Personal tools
You are here: Home development Google Summer of Code MultiwindowGem

Possible Mentors

  • IOhannes Zm√∂lnig


Gem is the Graphics Environment for Multimedia. It was originally written by Mark Danks to generate real-time computer graphics, especially for audio-visual compositions. It is a collection of externals, which allow the user to create OpenGL graphics and video processing chains within Pd.

Currently GEM can only be used with one output window. There is already a branch with an initial implementation of multiple output windows in Gem SVN, but there are many problems (see Because GEM runs currently in the same thread as Pd, it can lead to audio dropouts. Therefore, together with the implementation of multiple output windows, all GEM processing should be done in a separate thread.

This project should include the following tasks:

  • implement an infrastructure that supports multiple output targets for GEM (for more details see

    • targets can be windows, video-output devices, movie files, vector graphics (post script),...

    • implement several "standard" targets (most important: windows)

  • it should also be possible to use GEM without an output window at all (rendering without Gemwin)

  • finally the graphic/video processing should be done in a seperate thread,

    • to avoid audio dropouts (since rendering to multiple output targets will most likely need significantly more processing power)

  • all these feature must be cross platform (with the exception of the implementation of the

    • output target modules, which might be platform dependent)

Resources to start:

Required Skills

  • C and C++ programming

  • some OpenGL knowledge

  • some knowledge with pthreads

Update --rfabbri, Sun, 23 Oct 2011 23:47:35 +0200

Gem source has moved to Git. See

Powered by IEM Powered by Plone Section 508 WCAG Valid XHTML Valid CSS Usable in any browser