Personal tools
You are here: Home downloads Gem Documentation GemFAQ
Document Actions


View entire FAQ in full Up to Table of Contents
Frequently Asked Questions


What is Gem?

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 originally ran under FTS/Max (which is why you might see some papers reference it), but all new development is under Pd.

You can get GEM at

GEM was sponsored by a grant from Intel (

GEM was ported to linux by Günter Geiger

GEM is now maintained by IOhannes m zmölnig.

the core-development team consists of

  • chris clepper
  • günter geiger
  • daniel heckenberg
  • james tittle
  • IOhannes m zmölnig
lots of contributions are made by various people (thanks to all of them)

What is Pd?

Pd is a real-time environment for audio and MIDI. It was written by Miller Puckette, who created FTS/Max when he was at IRCAM. Basically, Pd can be seen as the next generation of real-time visual programming languages. GEM runs inside of the Pd environment.

You can get Pd at

The community site of Pd is hosted at

What platforms do GEM and Pd run on?

GEM and Pd run on

  • Windows (95, 98, ME, NT 4.0, 2000, XP)
  • linux
  • macOS-X (>10.2).
  • SGI-Irix (> 6.2) used to be supported by Gem (but i don't have any prove that it still works).

What is a good intro to OpenGL?

The best book is the OpenGL Programming Manual by Mason and Woo. This is also called the "Red Book".

If you search the web, there are many sites on OpenGL.

A good starting point is

Also, Mark Kilgard (who used to work for SGI) has a wonderful site with lots of links (

Also, Normal Lin has written another great book on 3D-graphics under linux

Are there any web sites for Pd or GEM?

Except for the ones noted above, there is the Japanese installation page at

There is a Pd mailing list. Subscription info is on IEM's site

One of pd's unofficial home-pages is at hosted by the Institute of Electronic Music and Acoustics, Graz, Austria

Also hosted by the iem is the site of the pd-community

An interesting place might also be Guenter Geiger's site

there are lot's of other cool pages (search the net...)

What libraries does GEM use?

What libraries does GEM use? (aka: Who do we want to thank?)

All copyrights and license info can be found in GEM.LICENSE.TERMS

Thanks to Sam Leffner for libTiff, the TIFF image loader.

Thanks to Masayuki Matsumoto for fstimage for OpenGL, the SGI image loader.

Thanks to the Independent JPEG Group for libjpeg, the JPEG image loader.

Thanks to Mark Kilgard at al. (and SGI) for glut, the openGL Utility Toolkit

Thanks to Stephane Rehel for GLTT, the OpenGL TrueType render.

Thanks to David Turner, Robert Wilhelm, and Werner Lemberg for Freetype, a TrueType font rendering engine.

Thanks to the MPEG Software Simulation Group, for libmpeg, the MPEG-2 Encoder/Decoder

Thanks to Heroine for quicktime4linux a quickime Decoder and libmpeg3, another MPEG-2 Encoder/Decoder

Thanks to LCS/Telegraphics for Wintab, the Windows tablet library.

Thanks to David McAllister for the Particle System library.

Thanks to John Stone for the Space Orb library, libOrb

Are there any restrictions on GEM?

GEM is under the Gnu Public License.

This basically means that it will always be free software. Check out for more information and read the full license in GnuGPL.LICENSE in the GEM release.

How do I use GEM in a performance?

This is a constant problem, because there is no consistent way to display video on any platform. Also, you usually do not want to send the entire screen, but only the GEM window. It is also useful to be able to edit/control the Pd patch window while the patch is actually running.

On SGIs, the best way is to get a video out option. On the SGI O2, Impact, and Onyx (Mark has used all of these), there is a simple connector or breakout box to do video. If you run the video out program, then you will get a rectangle on your screen which shows what is being sent out the video connector. Make your GEM window a little larger than 640x480 and center it in the rectangle. You can now project this with a standard video projector.

On PCs it is a bit harder. Several modern video-cards have the possibility to output several screens (either 2 (or more) VGA-screens or 1 VGA-screen and 1 TV (Composite or S-HVS) or a combination with DFTs) If you have a Canopus Voodoo2 card it has a video and s-video output on it. As described in question 2.12, you can get a Voodoo to work with GEM. If any one else has a better solution, please let me know. The nVidia Riva TNTs require that you output the full screen, so this is not a very good option. You can use a video scan convertor. Some of them only display a part of the scene, which is exactly what you want.

With modern multi-headed cards it is more simple: Configure your card to display the desktop spread over your multiple screens (e.g.: from left-to-right). On windows and macOS you can do this via the display-properties dialog. On linux you will have to edit your /etc/X11/XF86Config-4 file either by hand or (if your system supports it) via an appropriate editor (yes, nowadays there are some). Now create your gem-window on the second screen: it should have the same dimensions as the 2nd screen (e.g: [dimen 800 600(). to place it at the second screen use the offset (e.g: if your primary sreen (the one you want for patch-editing) has the dimension 1024x768 use [offset 1024 0(, which will create the gem-window 1024 pixels right of the upper-left corner of the total screen (and 0 pixels below it), which is exactly the upper-left corner of the 2nd screen. You most probably want to turn off the borders with [border 0(. Note: some grafix-card have openGL-hardware-acceleration only on the 1st screen (so you should create the gem-window on the 1st screen and move your patches to the 2nd screen)

If you are using an XServer for displaying (under linux) you can also use another computer for rendering. You can specify the place where the gem-window should be created with something like [create <>:0.0(

If you are doing audio with graphics, one solution to prevent clicking is to run 2 computers and have them communicate with [netsend]/[netreceive]. We are working on making Pd/GEM multi-processor friendly, so if you have a multi-processor system, you can run everything on one machine eventually.

How should I report a bug?

Gem doesn't work as it should! How can I help you solve my problem?

First of all, check whether this bug has not already been fixed in the latest version of Gem.

Check the bug-tracker to see, whether the bug is already known.

If you still believe, that you have discovered a new bug, please Submit a new bug-tracker.

Also, feel free to ask questions at one of the various mailing-lists

  • gem-dev for all kinds of bug-reports
  • Pd-list for more general bug-reports

While you are there, you can also search the mailing-list archives of pd-list and/or gem-dev for your problem

Information needed!

when reporting a bug (either via the bug-tracker or the mailinglist), please provide following information:

  • Operating System
    • linux,osx,w32,...
    • which release/distribution?
    • do you have any service-packs installed?
  • Hardware
    • which gfx-card are you using?
    • which driver?
  • Pure data
    • which version of Pd are you using?
    • Pd-extended or Pd-vanilla?
  • Gem
    • which exact version of Gem do you use? (you can get this information from the splash-screen when Gem get's loaded)
      • version number
      • compile date
    • where did you obtain Gem from?
      • Pd-extended
      • binary from the Gem-homepage
      • compiled yourself
      • other (e.g. provided by Debian)
  • other software?
    • can you use other software? which one?
    • if you have problems with openGL, does other openGL-application work?
    • if you have problems with video-input, can other software use the video-in?
    • ...
  • is the bug reproducible?
    • does it happen always or only under certain circumstances?
    • can you provide a minimal test-patch that (reliably) shows the wrong behaviour?
    • can you provide screenshots of what Gem shows does and what you expect?
by IOhannes m zmoelnig last modified 2007-07-18 11:49 AM

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