chess demo
GLUT's "Chess" demo
running with FreeGLUT.


FreeGLUT is a free-software/open-source alternative to the OpenGL Utility Toolkit (GLUT) library. GLUT was originally written by Mark Kilgard to support the sample programs in the second edition OpenGL 'RedBook'. Since then, GLUT has been used in a wide variety of practical applications because it is simple, widely available and highly portable.

GLUT (and hence FreeGLUT) takes care of all the system-specific chores required for creating windows, initializing OpenGL contexts, and handling input events, to allow for trully portable OpenGL programs.

FreeGLUT is released under the X-Consortium license.


The original GLUT library seems to have been abandoned with the most recent version (3.7) dating back to August 1998. Its license does not allow anyone to distribute modified library code. This is really unfortunate, since GLUT is getting old and really needs improvement. Also, GLUT's license is incompatible with some software distributions (e.g., XFree86).


FreeGLUT was originally written by Pawel W. Olszta with contributions from Andreas Umbach and Steve Baker.

John F. Fay, John Tsiombikas, and Diederick C. Niehorster are the current maintainers of the FreeGLUT project.


Pawel started FreeGLUT development on December 1st, 1999. The project is now virtually a 100% replacement for the original GLUT with only a few departures (such as the abandonment of SGI-specific features such as the Dials&Buttons box and Dynamic Video Resolution) and a shrinking set of bugs.

FreeGLUT adds some additional features over the basic GLUT functionality, such as a larger set of predefined objects to use, the ability to run single iterations of the event loop, or exit from it gracefully, mousewheel input callbacks, optional OpenGL core/compatibility profile context creation, multitouch/multi-pointer input, and support for a larger and growing set of platforms, being just some of them.

Help out!

We are looking for developers to help out with further work on the Android and BlackBerry 10 ports. Furthermore, ports to Cocoa on OSX, and maybe even Wayland are planned, along with some enhancements to the API and implementation.

See here for an overview of the major points on our todo list. You can easily help out by forking the unofficial clone of our SVN repository on github. For more information about helping out, see the Help Out page and join the freeglut-developer mailing list.


Below are file links for the FreeGLUT project. README files are included. Have fun!

Testing Releases

Feel free to test by downloading a tarball of current trunk, or grabbing a copy from svn, and give us feedback on how it worked for you. All this will eventually become a FreeGLUT 3.1 release.

There are no presently active testing releases.

Stable Releases

Freeglut 3.0.0 [Released: 7 March 2015]
Freeglut 2.8.1 [Released: 5 April 2013]
Freeglut 2.8.0 [Released: 2 January 2012]
Freeglut 2.6.0 [Released: 27 November 2009]
Freeglut 2.4.0 [Released: 9 June 2005]
Freeglut 2.2.0 [Released: 12 December 2003]
Freeglut 2.0.1 [Released: 23 October 2003]

Prepackaged Releases

The FreeGLUT project does not support packaged versions of FreeGLUT excepting, of course, the tarballs distributed here. However, various members of the community have put time and effort into providing source or binary rollups, and we thank them for their efforts. Here's a list which is likely incomplete:

Martin Payne's Windows binaries (MSVC and MinGW)
Florian Echtler's MPX Patch

If you have problems with these packages, please contact their maintainers - we of the FreeGLUT team probably can't help.

Development Releases

SVN trunk tarball
Anonymous SVN Instructions


Don't be afraid to ask for help. We don't bite. Much.

Send FreeGLUT related questions to the appropriate FreeGLUT mailing list:

Please note that you must subscribe before you can post to our mailing lists. Sorry for the inconvenience.