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.
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. For more information about helping out, see the Help Out page and join the freeglut-developer mailing list.
The freeglut source code repository is now hosted on github. So you can also send us pull requests or report bugs through the github issues system if you prefer. However lengthy discussion on potential design issues for large contributions are best suited to the mailing list.
Below are file links for the freeglut project. README files are included. Have fun!
Stable releases are available on our releases page on github, where you can find more information about each release. All releases are also mirrored on the old downloads page on sourceforge.
The freeglut project does not distribute pre-compiled or otherwise system-specific packages for freeglut. We only release and support freeglut in source code form as listed above. However, most free software package distributions include some version of freeglut, which might provide a more convenient way to obtain and use freeglut. Here's a necessarily woefully incomplete list of such packaging efforts for your system:
If you have problems with these packages, please contact their maintainers, we probably can't help.
Also if you can't find a suitable package for your system, don't panic; building freeglut from source is very easy, just follow the instructions in README.cmake in the freeglut source.
You can always download the absolute latest available freeglut source code from our github repository. Freeglut is a mature project, and the github HEAD is usually quite stable.
To grab a copy of the repository using git, use the command: git clone https://github.com/freeglut/freeglut.
Alternatively you can download a snapshot of the latest revision.
Don't be afraid to ask for help.
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.