{"id":13415264,"url":"https://github.com/opentk/opentk","last_synced_at":"2025-05-13T17:04:11.480Z","repository":{"id":11779578,"uuid":"14318990","full_name":"opentk/opentk","owner":"opentk","description":"The Open Toolkit library is a fast, low-level C# wrapper for OpenGL, OpenAL \u0026 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.","archived":false,"fork":false,"pushed_at":"2025-03-30T18:07:52.000Z","size":160033,"stargazers_count":3370,"open_issues_count":59,"forks_count":642,"subscribers_count":148,"default_branch":"master","last_synced_at":"2025-05-06T16:14:34.323Z","etag":null,"topics":["c-sharp","game-development","game-engine","graphics","graphics-library","math-library","openal","opencl","opengl","opengl-es","scientific-visualization"],"latest_commit_sha":null,"homepage":"https://opentk.net","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/opentk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2013-11-12T01:34:24.000Z","updated_at":"2025-05-06T12:43:51.000Z","dependencies_parsed_at":"2023-10-16T10:47:11.113Z","dependency_job_id":"ef6ba72c-3f9c-4233-9d3e-b00fa702fa8c","html_url":"https://github.com/opentk/opentk","commit_stats":{"total_commits":8411,"total_committers":149,"mean_commits":56.4496644295302,"dds":0.4549994055403638,"last_synced_commit":"28561931bab55f6ce6977709f5e53700700058a3"},"previous_names":[],"tags_count":90,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opentk%2Fopentk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opentk%2Fopentk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opentk%2Fopentk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opentk%2Fopentk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/opentk","download_url":"https://codeload.github.com/opentk/opentk/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253990455,"owners_count":21995773,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c-sharp","game-development","game-engine","graphics","graphics-library","math-library","openal","opencl","opengl","opengl-es","scientific-visualization"],"created_at":"2024-07-30T21:00:46.206Z","updated_at":"2025-05-13T17:04:11.415Z","avatar_url":"https://github.com/opentk.png","language":"C#","funding_links":[],"categories":["Graphics","图形","Uncategorized","C# #","Libraries"],"sub_categories":["Uncategorized","C#"],"readme":"OpenTK\n======\n\nOpenTK 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!\n\nWe have a very active discord server, if you need help, want to help, or are just curious, come join us!\n\n[![Discord](https://discordapp.com/api/guilds/337627185248468993/widget.png)](https://discord.gg/6HqD48s)\n\nThe 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.\n\nUse 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.\n\nOpenTK 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.\n\n#### Learn how to use OpenTK here: https://opentk.net/learn/index.html\n\nA separate github repo with code is available here: https://github.com/opentk/LearnOpenTK\nThe code is similar to the tutorial but not an exact replica.\n\nProject website: https://opentk.net\n\nOfficial git repository: https://github.com/opentk/opentk\n\nBuild Status\n========\n\n| Platform       | Status         |\n| -------------- | -------------- |\n| Windows        | [![Build status](https://ci.appveyor.com/api/projects/status/c9b9754wa0v1p9rb?svg=true)](https://ci.appveyor.com/project/varon/opentk) |\n| Mono/Linux     | [![Build status](https://travis-ci.org/opentk/opentk.svg?branch=master)](https://travis-ci.org/opentk/opentk) |\n\n\nFeatures\n========\n\n- Create cutting-edge graphics with OpenGL 4.6 and OpenGL ES 3.2\n- Spice up your GUI with 3d acceleration\n- Improve your code flow with strong types and inline documentation\n- Windowing systems to help get you started\n- Input, and other game essentials.\n- Performant, highly optimized and reliable linear algebra library\n- Write once run everywhere\n\nOpenTK 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, ...)\n\nAn old, unsupported version of OpenTK 1.0 may be included in the [Xamarin](https://docs.microsoft.com/en-us/xamarin/graphics-games/game-development/) Android and iOS distribution. The Xamarin fork is not supported or maintained by this project.\n\nAdding 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.\n\nInstructions\n============\n\nOpenTK is available as a [NuGet Package](http://www.nuget.org/packages/OpenTK/).\n\nAs of OpenTK 4.8 \"Visual C++ Redistributable 2015\" is not longer required to run OpenTK 4 on windows.\nFor earlier versions of OpenTK 4 you can install any version of `OpenTK.redist.glfw \u003e= 3.3.8.35` to remove the \"Visual C++ Redistributable 2015\" requirement.\nSee https://github.com/opentk/glfw-redist for more details.\n\nNews\n===\n\n### 2022-09-24\n\nOpenTK 5.0.0 is still under active development and usage.\n\nPreview releases are running non-trivial applications successfully on .Net 6 across all platforms.\n\nPlease drop by the discord for the latest updates!\n\n### 2020-10-02\n\nOpenTK 4.0.0 is released with full availability.\n\nKey changes:\n * Full support for .Net Core 3.1\n * Brand new GLFW-based windowing system\n * Brand new GLFW-based input system\n * Removed all platform-specific backends (and fixed every xplat bug!)\n * Math library performance improvements and fixes\n * All new OpenAL bindings\n * All new OpenCL Bindings\n * 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.\n\nOpenTK 4.0.0 is entirely MIT licensed.\n\n\nWe're excited to see what you can build with this!\n\nhttps://www.nuget.org/packages/OpenTK\n\n\n### 2020-04-06\n\nOops! Forgot to update the news! OpenTK 4.0.0 PREVIEW is now available on Nuget.\n\nhttps://www.nuget.org/packages/OpenTK\n\n\n### 2020-04-06\n\nOpenTK 3.2.0 is available. \n\nThis adds bindings for the wgl_dx_interop extension and support for joysticks with \u003e 64 buttons.\n\nhttps://www.nuget.org/packages/OpenTK/3.2.0\n\n\n### 2019-08-04\n\nOpenTK 3.1.0 is available.\n\nhttps://www.nuget.org/packages/OpenTK/3.1.0\n\nhttps://www.nuget.org/packages/OpenTK.GLControl/3.1.0\n\n\n\n### 2018-10-19\n\nWork is well underway on OpenTK 4.0, which targets .netstandard 2.0.\n\nWe would welcome any contributions!\n\n[Click here](https://github.com/opentk/opentk/issues/823) to view the tracking issue.\n\n### 2018-06-07\n\nOpenTK 3.0.1 is available.\n\nhttps://www.nuget.org/packages/OpenTK/3.0.1\n\nhttps://www.nuget.org/packages/OpenTK.GLControl/3.0.1\n\n### 2018-01-05\n\nOpenTK 3.0.0 is available.\n\nhttps://www.nuget.org/packages/OpenTK/3.0.0\n\nhttps://www.nuget.org/packages/OpenTK.GLControl/3.0.0\n\n\nBuilding from source\n============\n\nTo build OpenTK from source you just need to clone the git repo and open `OpenTK.sln` in Visual Studio 2019 or later.\n\n```\ngit clone https://github.com/opentk/opentk   # Download source code from git\ncd opentk                                    # Enter the source directory\n# open OpenTK.sln\n```\n\nAlternatively if you want to build using our buildscript you can use `build.cmd / build.sh` which require .net 6 to be installed. \n\n```\ngit clone https://github.com/opentk/opentk   # Download source code from git\ncd opentk                                    # Enter the source directory\n./build.cmd / ./build.sh                     # Run the build script for your platform\n```\n\nTo specify a specific target run:\n```\n./build.cmd -t \u003cTarget\u003e\n```\n\nContributing\n============\n\nOpenTK uses and encourages [Early Pull Requests](https://medium.com/practical-blend/pull-request-first-f6bb667a9b6). Please don't wait until you're done to open a PR!\n\n1. Install [Git](https://git-scm.com/downloads) and the [.Net Core SDK](https://www.microsoft.com/net/download)\n1. [Fork OpenTK](https://github.com/opentk/opentk/fork)\n1. Create a branch on your fork.\n1. 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]\"`\n1. Open a Pull request with `[WIP]` in the title. Do this **before** you actually start working.\n1. Make your commits in small, incremental steps with clear descriptions.\n1. Tag a maintainer when you're done and ask for a review!\n\n[Click here for good first issues.](https://github.com/opentk/opentk/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)\n\n[Click here for everything we need help with.](https://github.com/opentk/opentk/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22)\n\n\nRequirements\n============\n\n- Windows (7/8,10), Linux, Mac OS X, *BSD, SteamOS, Android or iOS\n- For graphics, OpenGL drivers or a suitable emulator, such as [ANGLE](https://github.com/opentk/opentk/tree/develop/Dependencies/Readme.txt)\n- For audio, OpenAL drivers or OpenAL Soft\n- To develop desktop applications: Visual Studio, Rider, or the command line tools.\n- To develop Android applications: Visual Studio and Xamarin\n- To develop iOS applications: Visual Studio, Xamarin and XCode\n\nDocumentation\n=============\n\nAPI Documentation is available on the [official website](https://opentk.net) or inline from favourite IDE.\n\nYou can also browse the full API on the official website\n\nAdditional information can be found in the [OpenTK Manual](http://web.archive.org/web/20150325224427/http://www.opentk.com/doc).\n\nTechnical documentation about the implementation of OpenTK can be found in the [Technical Wiki](https://github.com/opentk/opentk/wiki).\n\n\nNeed Help?\n==========\n\nCome chat with us on [Discord](https://discord.gg/6HqD48s).\n\nWe're happy to help with anything from learning OpenGL to advanced OpenTK questions.\n\n\nLicense\n=======\n\nThe Open Toolkit is distributed under the permissive MIT/X11 license and is absolutely free.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopentk%2Fopentk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopentk%2Fopentk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopentk%2Fopentk/lists"}