Code Monkey home page Code Monkey logo

mrdesignlabs_unity_periodictable's Introduction

Mixed Reality Design Labs

This repo is where Microsoft's Windows Mixed Reality Design team publishes sample apps and experiments. Find out details on https://developer.microsoft.com/en-us/windows/mixed-reality/periodic_table_of_the_elements

Periodic Table of the Elements

Periodic Table of the Elements is an open-source sample app from Microsoft's Mixed Reality Design Labs. It demonstrates how to use Mixed Reality Toolkit(MRTK)'s input system and building blocks to create an app experience for HoloLens and Immersive headsets. In this project, you can find the examples of:

  • Use MRTK's MixedRealityCamera and InputManager for HoloLens gesture input and Immersive headset's motion controller input
  • Layout an array of objects in 3D space with various surface types using MRTK's Object Collection.
  • Create objects that respond to the standard inputs using MRTK's Interactable Object.
  • Loading and parsing local JSON file data using Unity's JsonUtility

You can use this project's components to create your own mixed reality app experiences.

Periodic Table of the Elements

Supported Unity version: 2017.2.0P1-MRTP4

The current supported version of Unity is Unity 2017.2.0p1-MRTP4.

Supported device

Technical Details

Open MRDL_PeriodicTable\Scenes\Main.unity to view the main scene. You will see a deactivated prefab called ElementContainer - activate it and navigate to 'Element' in the hierarchy. You will see three components: Element, ElementButton, and PresentToPlayer.

Periodic Table of the Elements

ElementButton extends the abstract Button class - its job is to listen for state change events. It passes these events along to Element, which then handles displaying and animating information about the element. It relies in part on PresentToPlayer, which orients and moves the box toward the player.

Deeper in the prefab you'll find an MoleculeObject with the Atom component attached. This script uses Unity's instanced rendering API to draw hundreds of mesh particles with very few draw calls. This can be a useful alternative to Shuriken particle systems, which aren't always performant enough for Hololens devices without a great deal of careful tweaking.

Periodic Table of the Elements

Box elements use the AcrylicReflective and AcrylicReflectiveTransparent shaders These can be used in other projects for anything that needs a shiny, stylized look without tanking the frame rate.

The ObjectCollectionMode script inherits from one of HUX's most powerful tools, the InteractionReceiver class. With it you can rapidly set up an object to listen for input from HUX buttons. Just use the inspector to drag HUX buttons to the Interactables array, override a base function like OnTapped, and you're ready to go.

Periodic Table of the Elements

If you're rapidly prototyping, using the button's name to differentiate input is a quick way to get things done. You could also create a custom component that information relevant to a button's function.

More from Mixed Reality Design Labs

Sample app - Lunar Module

Lunar Module sample app

https://github.com/Microsoft/MRDesignLabs_Unity_LunarModule

Lunar Module is a open-source sample app from Microsoft's Mixed Reality Design Labs, it is a spiritual sequel to the 1979 Atari classic, Lunar Lander. This sample app will demonstrate how to extend Hololens' base gestures with two hand tracking and xbox controller input, reactive objects to surface mapping and plane finding, and simple menu systems. You can use this project's components to create your own mixed reality app experience.

Contributing

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

mrdesignlabs_unity_periodictable's People

Contributors

cre8ivepark avatar joecoolish avatar paseb avatar railboy avatar

Watchers

 avatar

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.