the Fiddler's picture

The Open Toolkit library

Project Images
The Open Toolkit logo

Project statement
The Open Toolkit is a free C# library that allows.Net/Mono programs to use OpenGL, OpenAL and OpenCL. It is intuitive, fast, cross-platform and usable by all .Net/Mono languages.

Features
The main features of OpenTK:

  • Type-safe bindings for OpenGL 3.2, OpenGL|ES 2.0, OpenCL 1.0 and OpenAL 1.1, with automatic extension loading, inline documentation and error checking.
  • Flexible GUI options: Windows.Forms, GTK#, WPF or high-performance GameWindow.
  • Integrated math toolkit (vectors, matrices, quaternions), directly usable by the bindings.
  • Mouse, keyboard and joystick input.
  • Support for multiple monitors.
  • CLS-compliance. OpenTK is usable by all .Net/Mono languages, including C#, VB.Net, C++/CLI, IronPython and Boo.
  • Runs on Windows, Linux, Mac OS X and other Unices without recompilation!

Read the frequently asked questions and the documentation for more information.

Requirements
To run OpenTK programs you will need:

  • The Mono Framework (version 2.0 or higher) or the .Net Framework (version 2.0 or higher). These come preinstalled in most modern operating systems.
  • (For graphics) A video card with OpenGL drivers.
  • (For audio) A sound card with OpenAL or OpenAL Soft drivers.
  • (For compute) A compliant OpenCL implementation, like Ati Stream or Nvidia OpenCL.
  • Windows 98/ME/2000/XP/Vista/7, Linux/X11, Mac OS X or any other Unix/X11 system (experimental).

To develop an OpenTK program, you will need an IDE like MonoDevelop (all platforms) or Visual Studio (Windows-only). OpenTK is written in C# but can be used with any .Net language, so pick the language of your choice (C#, VB.Net, C++/CLI, IronPython, ...)

Help wanted

OpenTK is a large project that runs on a huge number of different configurations. It is impossible to test every single configuration beforehand, but we will fix any issues we are aware of - so if you encounter a bug, please report it!

Additionally, if you have an idea for a feature that would be great to have in OpenTK; have some code you wish to share; or are willing to write a tutorial about some specific technology, please make a post at the forums or send a message to "the Fiddler".


Releases

Official releasesDateSizeLinksStatus
1.0-beta-32010-Mar-09472 bytesRecommended for 1.xThis is currently the recommended release for 1.x.