Skip to content

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

License

Notifications You must be signed in to change notification settings

ltstein/StereoKit

 
 

Repository files navigation

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?

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.

About

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

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Languages

  • C 56.1%
  • C++ 36.2%
  • C# 6.4%
  • CMake 0.4%
  • HLSL 0.3%
  • Python 0.3%
  • Other 0.3%