StereoKit is an easy-to-use open source mixed reality library for building HoloLens and VR applications with C# and OpenXR! |
StereoKit Features:
- Platforms: HoloLens 2, Oculus Quest, Windows Mixed Reality, Oculus Desktop, SteamVR, Varjo, Monado (Linux), and eventually everywhere OpenXR is!
- Mixed Reality inputs like hands and eyes are trivial to access
- Easy and powerful UI and interactions
- Model formats: .gltf, .glb, .obj, .stl, ASCII .ply
- Texture formats: .jpg, .png, .tga, .bmp, .psd, .gif, .hdr, .pic, .qoi, cubemaps
- Flexible shader/material system with built-in PBR
- Performance-by-default instanced render pipeline
- Skeletal/skinned animation
- Flat screen MR simulator with input emulation for easy development
- Builds your application to device in seconds, not minutes
- Runtime asset loading and cross-platform file picking
- Physics
- Documentation generated directly from the source code, including screenshots
About
StereoKit prioritizes mixed reality application development above all else! This allows us to focus on features such as a first class mixed reality input system, fast performance by default even on mobile devices, quick iteration time on-device, and a runtime asset pipeline that lets users and developers load real assets from the file-system. All of this and more are packaged in a terse API that’s well documented, easy to learn, and easy to write.
StereoKit is ready to use, but still early in its life! Keep track on Twitter for development news and gifs, or check this blog for more substantial updates! Can’t find a feature you need for your project? Request it on the issues page, and we’ll prioritize getting you up and running!
While StereoKit is primarily intended to be consumed from C#, all core functionality is implemented in native code, and a C compatible header file is also available for C/C++ developers!
Getting started
Follow this guide for a detailed introduction! Or check out the additional learning resources, sample projects that show how to build full StereoKit applications.
StereoKit focuses on getting you productive with the least amount of code possible. You can actually do most tasks with a single line of code, including UI! Here’s hello world with StereoKit, this is all you need to get up and running!
using StereoKit;
SK.Initialize(new SKSettings{ appName = "Project" });
Model helmet = Model.FromFile("Assets/DamagedHelmet.gltf");
SK.Run(() => {
helmet.Draw(Matrix.TS(Vec3.Zero, 0.1f));
});
Interested in the source for StereoKit? It’s open and MIT licensed! You don’t need to build from source to use it, but if you want to, it’s there for you to modify or debug with!
Building or Contributing
For those that want to build the test project, or perhaps the whole library from scratch, there’s a guide to building StereoKit’s repository! For those that wish to contribute features or fixes to StereoKit, awesome! Check out the contributor’s guide. In addition, you may want to check with the maintainers on either GitHub Issues or the Discord channel to help make sure contributions meet the project’s standards.
Issue reports
We’d love to hear if you’ve run into an issue! The best way to let us know is to file an issue on the Github repository. For an even faster response, file your reports with an ITest
that can reproduce the issue, so we can quickly fix and prevent regressions! Here’s an example of such a test.
Found an issue with these docs, or have some additional questions? Create an Issue on Github!