GithubHelp home page GithubHelp logo

cjt-jackton / mixed-reality-theater Goto Github PK

View Code? Open in Web Editor NEW
9.0 2.0 1.0 515.54 MB

Virtual stage effects by augmented reality glasses.

License: BSD 2-Clause "Simplified" License

C++ 1.88% C# 90.32% ShaderLab 2.77% Mask 0.05% ASP 4.97%
hololens magic-leap augmented-reality unity

mixed-reality-theater's Introduction

Mixed Reality Theater

thumbnail

This project intended to bring a new dimension of theater performance experience to audiences by using the augmented reality technology. With the virtual stage effects show through AR-glasses, the theater performance can be more immersive for the audiences than ever before. The virtual stage effect control application (server) connects and manipulates all AR-glasses in the theater. It can easily integrated with existed theater stage lighting, audio control panel.

Supported hardware

  • Microsoft HoloLens
  • Magic Leap One

Demo

Check out the demo on YouTube.

Design

Workflow

  1. Coordinate system calibration (subject to changes)

    In order to let multiple devices sharing the same scene, they must be calibrated to the exactly same coordinate system. The AR-glasses has the ability to recognize its surrounding and perceive its spatial location. HoloLens use World Anchor to anchor the virtual coordinate system to real world. Magic Leap use Persistence Coordinate Frames which essentially is the same thing. However, Magic Leap One will not support the sharing of PCF before Lumin SDK 0.21.0 and OS 0.96.0. Therefore in this implementation the coordinate calibration is done by image tracking. A stationary image in real world will act as the origin point of virtual world, and every devices need to scan the image to complete the calibration.

  2. Virtual object/effect placement

    The director of the performance will wear on the AR-glasses, and emplace the virtual object/effect. After finalized the arrangement of virtual stage effects, the director's AR-glasses will send the anchor data of the virtual stage effects to the server. The server will stored the anchor informations, ready for the performance. design

  3. Stage effect control

    The audiences will wear on the AR-glasses, followed the instruction of staff to calibrate the AR-glasses, then take a seat. The director have the remote control over all audiences' AR-glasses that are wireless connected to the server. During the process of performance, the director will decide the correct timing of preset virtual stage effects show up. The server will send the message to all the devices, and the virtual stage effects will cooperate with the actors and real world stage effect seamless, bringing an immersive experience to audiences that never done before. design

Control application (server)

Control application running on the director's machine. It connected to all AR-glasses in the theater and control the virtual stage effects.

Viewing application (client)

Viewing application running on the AR-glasses. It handles the receive of the message from server and create the virtual effect at certain location in real world.

Message

All networking messages sent between server and client start with a 4-bytes header. The first 2-bytes size representing the length of the packet, then the next 2-bytes type representing the type of the message. NetworkReader and NetworkWriter are the deserializer and serializer.

Requirements

  • Microsoft Visual Studio 2017
  • .NET Framework 4.6.1
  • Windows SDK 10.0.17134 or later

Microsoft HoloLens

Magic Leap One

mixed-reality-theater's People

Contributors

cjt-jackton avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

aoe-khkhan

mixed-reality-theater's Issues

Server

Hi, how do you implement the server? Is it a standalone app? Thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.