Need help with StereoKit?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

maluoi
261 Stars 32 Forks MIT License 1.7K Commits 49 Opened issues

Description

An easy-to-use mixed reality library for building HoloLens and VR applications with C# and OpenXR!

Services available

!
?

Need anything else?

Contributors list

# 154,389
unity3d
C
C++
ar
1673 commits
# 251,651
mixed-r...
openvr
Unity
C
8 commits
# 367,230
C++
C
ar
csharp-...
2 commits
# 344,990
Shell
C
C++
ar
1 commit
# 292,912
Unity
unity3d
C
C++
1 commit
# 701,694
Shell
C++
C
ar
1 commit

StereoKit Logo

StereoKit is an easy-to-use open source mixed reality library for building HoloLens and VR applications with C# and OpenXR! Inspired by libraries like XNA and Processing, StereoKit is meant to be fun to use and easy to develop with, yet still quite capable of creating professional and business ready software.

The getting started guide can be found here!

Interested in news and updates about StereoKit? Maybe just looking for some extra help? - Submit bugs on the Issues tab, and ask questions in the Discussions tab! - Follow koujaku on Twitter for development news. - Drop into the Discord channel for discussion, help and updates. - Check out this blog for occasional substantial updates!

Screenshot

StereoKit Features:

  • Platforms: HoloLens 2, Oculus Quest, Windows Mixed Reality, Oculus Desktop, SteamVR, Monado Linux, and eventually everywhere OpenXR is!
  • Flat screen mode with input emulation for easy development
  • Builds your application to device in seconds, not minutes
  • 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, procedural
  • Texture formats: .jpg, .png, .tga, .bmp, .psd, .gif, .hdr, .pic, equirectangular cubemap, procedural
  • Runtime asset loading
  • Physics
  • Performance-by-default instanced render pipeline
  • Flexible shader/material system with built-in PBR
  • Documentation is generated directly from the source code, including screenshots

Getting started

Follow this guide for a detailed introduction! This repository is the raw source for those who wish to build StereoKit themselves, the Visul Studio templates and the NuGet packages referenced in the guide are how most people should build their 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;

class Program { static void Main(string[] args) { SK.Initialize(new SKSettings{ appName = "Project" });

    Model helmet = Model.FromFile("Assets/DamagedHelmet.gltf");

    while (SK.Step(() => {
        helmet.Draw(Matrix.TS(Vec3.Zero, 0.1f));
    }));

    SK.Shutdown();
}

}

Hello World

Roadmap

Where is StereoKit going next? That depends on you! What do you need? Is StereoKit missing something that it really should have? File an issue and let us know!

In the short term, StereoKit will focus on the Core API, improving performance, and ensuring all basic features are present and work well! Some basic tooling, things like a visual shader editor might get built here. The Core of StereoKit is an Immediate Mode system that does not provide any framework or application state management.

Long term, we'd love to add StereoKit Framework! Framework is a higher-level layer that manages application state, so more complicated functionality can be taken care of. Features such as automatic multi-user capabilities, component systems, WYSIWYG UI design tools, visual scene editors and code-free design environments will become possible.

Dependencies

Just like all software, StereoKit is built on the shoulders of incredible people! Here's a list of the libraries StereoKit uses to get things done.

And some of my own libraries that I maintain separately from this repository.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.