OpenTK
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.
https://github.com/opentk/LearnOpenTK
Learn how to use OpenTK here:Older OpenTK 3 tutorials here: https://opentk.net/learn/index.html
Project website: https://opentk.net
Official git repository: https://github.com/opentk/opentk
Platform Status Build Status
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.
Instructions
OpenTK is available as a NuGet Package .
As of OpenTK 4.8 "Visual C++ Redistributable 2015" is not longer required to run OpenTK 4 on windows.
For earlier versions of OpenTK 4 you can install any version of
OpenTK.redist.glfw >= 3.3.8.35
to remove the "Visual C++ Redistributable 2015" requirement.
See
https://github.com/opentk/glfw-redist
for more details.
2022-09-24
OpenTK 5.0.0 is still under active development and usage.
Preview releases are running non-trivial applications successfully on .Net 6 across all platforms.
Please drop by the discord for the latest updates!
2020-10-02
OpenTK 4.0.0 is released with full availability.
Key changes:
OpenTK 4.0.0 is entirely MIT licensed.
We're excited to see what you can build with this!
https://www.nuget.org/packages/OpenTK
2020-04-06
Oops! Forgot to update the news! OpenTK 4.0.0 PREVIEW is now available on Nuget.
https://www.nuget.org/packages/OpenTK
2020-04-06
OpenTK 3.2.0 is available.
This adds bindings for the wgl_dx_interop extension and support for joysticks with > 64 buttons.
https://www.nuget.org/packages/OpenTK/3.2.0
2019-08-04
OpenTK 3.1.0 is available.
https://www.nuget.org/packages/OpenTK/3.1.0
https://www.nuget.org/packages/OpenTK.GLControl/3.1.0
2018-10-19
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.
2018-06-07
OpenTK 3.0.1 is available.
https://www.nuget.org/packages/OpenTK/3.0.1
https://www.nuget.org/packages/OpenTK.GLControl/3.0.1
2018-01-05
OpenTK 3.0.0 is available.
https://www.nuget.org/packages/OpenTK/3.0.0
https://www.nuget.org/packages/OpenTK.GLControl/3.0.0
Building from source
To build OpenTK from source you just need to clone the git repo and open
OpenTK.sln
in Visual Studio 2019 or later.
git clone https://github.com/opentk/opentk # Download source code from git
cd opentk # Enter the source directory
# open OpenTK.sln
Alternatively if you want to build using our buildscript you can use build.cmd / build.sh
which require .net 6 to be installed.
git clone https://github.com/opentk/opentk # Download source code from git
cd opentk # Enter the source directory
./build.cmd / ./build.sh # Run the build script for your platform
To specify a specific target run:
./build.cmd -t <Target>
ContributingOpenTK uses and encourages Early Pull Requests. Please don't wait until you're done to open a PR!
Install Git and the .Net Core SDK
Fork OpenTK
Create a branch on your fork.
Add an empty commit to start your work off (and let you open a PR): git commit --allow-empty -m "start of [thing you're working on]"
Open a Pull request with [WIP]
in the title. Do this before you actually start working.
Make your commits in small, incremental steps with clear descriptions.
Tag a maintainer when you're done and ask for a review!
Click here for good first issues.
Click here for everything we need help with.
RequirementsWindows (7/8,10), Linux, Mac OS X, *BSD, SteamOS, Android or iOS
For graphics, OpenGL drivers or a suitable emulator, such as ANGLE
For audio, OpenAL drivers or OpenAL Soft
To develop desktop applications: Visual Studio, Rider, or the command line tools.
To develop Android applications: Visual Studio and Xamarin
To develop iOS applications: Visual Studio, Xamarin and XCode
DocumentationAPI 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.
Need Help?Come chat with us on Discord.
We're happy to help with anything from learning OpenGL to advanced OpenTK questions.
LicenseThe Open Toolkit is distributed under the permissive MIT/X11 license and is absolutely free.
Data updated about every two hours
Sponsor @daveaglick