The Open Toolkit library is a fast, low-level C# wrapper for OpenGL, OpenAL & OpenCL. It also includes windowing, mouse, keyboard and joystick input and a robust and fast math library, giving you everything you need to write your own renderer or game engine. OpenTK can be used standalone or inside a GUI on Windows, Linux, Mac.
OpenTK is a large project. There are many components to work on, and we'd welcome almost any contribution. The community is friendly, welcoming and always ready to help you get your PRs merged!
We have a very active discord server, if you need help, want to help, or are just curious, come join us!
The Open Toolkit library is a fast, low-level C# binding for OpenGL, OpenGL ES, OpenAL, and OpenCL. It runs on all major platforms and powers hundreds of apps, games and scientific research.
Use OpenTK to add cross-platform 3d graphics, audio, compute and haptics to your C# application. Integrate it into your existing user interface or use it standalone without any external dependencies.
OpenTK comes with simple and easy to follow tutorials for learning modern OpenGL. These are written by the community and represent all of the best practices to get you started.
Sample projects that accompany the tutorial can be found here: https://github.com/opentk/LearnOpenTK
Project website: https://opentk.net
Official git repository: https://github.com/opentk/opentk
OpenTK is available for Windows, Linux, Mac OS X, *BSD and SteamOS. It can be used standalone or integrated into a GUI (Windows.Forms, WPF, GTK+, Qt, VTK, ...)
An old, unsupported version of OpenTK 1.0 may be included in the Xamarin Android and iOS distribution. The Xamarin fork is not supported or maintained by this project.
Adding support for mobile again is a future goal of the OpenTK project, but is somewhat frustrated by Apple's deprecation of OpenGL. Contributions to re-add support for these platforms are welcomed.
OpenTK is available as a NuGet Package.
OpenTK 4.0.0 is released with full availability.
Key changes: * Full support for .Net Core 3.1 * Brand new GLFW-based windowing system * Brand new GLFW-based input system * Removed all platform-specific backends (and fixed every xplat bug!) * Math library performance improvements and fixes * All new OpenAL bindings * All new OpenCL Bindings * Total restructure of all packages into a modular system with a number of packages. The OpenTK Nuget package is now a metapackage that will automatically download all of these for you.
OpenTK 4.0.0 is entirely MIT licensed.
We're excited to see what you can build with this!
Oops! Forgot to update the news! OpenTK 4.0.0 PREVIEW is now available on Nuget.
OpenTK 3.2.0 is available.
This adds bindings for the wgldxinterop extension and support for joysticks with > 64 buttons.
OpenTK 3.1.0 is available.
Work is well underway on OpenTK 4.0, which targets .netstandard 2.0.
We would welcome any contributions!
Click here to view the tracking issue.
OpenTK 3.0.1 is available.
OpenTK 3.0.0 is available.
git clone https://github.com/opentk/opentk # Download source code from git cd opentk # Enter the source directory ./build.cmd / ./build.sh # Run the bootstrap/build script for your platform
OpenTK uses and encourages Early Pull Requests. Please don't wait until you're done to open a PR!
git commit --allow-empty -m "start of [thing you're working on]"
[WIP]in the title. Do this before you actually start working.
API Documentation is available on the official website or inline from favourite IDE.
You can also browse the full API on the official website
Additional information can be found in the OpenTK Manual.
Technical documentation about the implementation of OpenTK can be found in the Technical Wiki.
Come chat with us on Discord.
We're happy to help with anything from learning OpenGL to advanced OpenTK questions.
The Open Toolkit is distributed under the permissive MIT/X11 license and is absolutely free.