protected override async void Start()
        {
            base.Start();

            // Enable input
            EnableGestureManipulation = false;
            EnableGestureTapped       = false;

            RegisterCortanaCommands(new Dictionary <string, Action>()
            {
                { "Snap", () => { System.Diagnostics.Debug.WriteLine("Snap"); } }
            });

            var soundListener = LeftCamera.Node.CreateComponent <SoundListener>();

            Audio.Listener = soundListener;
            LeftCamera.Node.CreateComponent <UserTracker>();

            Scene.AddComponent(FloatManager.Inst);
            FloatManager.Inst.Init();
            gui = new Gui();
            Scene.CreateChild("Sounds").CreateComponent <SoundManager>();
            Scene.CreateChild("Models").CreateComponent <ModelManager>();
            Scene.CreateChild("Images").CreateComponent <ImageManager>();

            if (Configuration.DEBUG_MODE)
            {
                Scene.CreateComponent <DebugRenderer>();
            }

            runtime.Start();
            runtime.SetCamera(holoCamera);
            runtime.Connect(appName: "HoloLens App");

            // Scene has a lot of pre-configured components, such as Cameras (eyes), Lights, etc.
            DirectionalLight.Brightness = 1f;
            DirectionalLight.Node.SetDirection(new Vector3(-1, 0, 0.5f));

            Engine.PostRenderUpdate += _ => {
                if (Configuration.DEBUG_MODE)
                {
                    Renderer.DrawDebugGeometry(false);
                }
            };
        }
        protected override void Start()
        {
            base.Start();

            Graphics.WindowTitle = "Body-AR Toolkit";
            var cache = ResourceCache;

            Scene  = new Scene();
            octree = Scene.CreateComponent <Octree>();

            cameraNode          = Scene.CreateChild();
            cameraNode.Position = new Vector3(-3, 3, 0);
            cameraNode.Rotation = new Quaternion(Pitch, Yaw, 0);
            camera                  = cameraNode.CreateComponent <Camera>();
            camera.Fov              = HOLOLENS_FOV;
            camera.NearClip         = HOLOLENS_NEAR_PLANE;
            camera.FarClip          = HOLOLENS_FAR_PLANE;
            camera.ProjectionOffset = HOLOLENS_PROJECTION_OFFSET;
            camera.Skew             = HOLOLENS_SKEW;
            //camera.AspectRatio = HOLOLENS_ASPECT_RATIO;
            var soundListener = cameraNode.CreateComponent <SoundListener>();

            Audio.Listener = soundListener;
            cameraNode.CreateComponent <UserTracker>();

            var zone = Scene.CreateChild().CreateComponent <Zone>();

            zone.AmbientColor = new Color(0.5f, 0.5f, 0.5f);

            gui = new Gui();
            Scene.AddComponent(FloatManager.Inst);
            Scene.CreateChild("Sounds").CreateComponent <SoundManager>();
            Scene.CreateChild("Models").CreateComponent <ModelManager>();
            Scene.CreateChild("Images").CreateComponent <ImageManager>();
            FloatManager.Inst.Init();

            if (Configuration.DEBUG_MODE)
            {
                Scene.CreateComponent <DebugRenderer>();
            }

            Renderer.SetViewport(0, new Viewport(Context, Scene, camera, null));

            runtime.Start();
            mockCamera = new MockSceneCamera();
            runtime.SetCamera(mockCamera);
            runtime.Connect(appName: "Local Testapp");

            Input.KeyDown += (e) => {
                switch (e.Key)
                {
                case Key.Esc:
                    InvokeOnMain(() => {
                        //Exit(); // app hangs upon calling this O_o
                    });
                    break;
                }
            };

            Engine.PostRenderUpdate += _ => {
                if (Configuration.DEBUG_MODE)
                {
                    Renderer.DrawDebugGeometry(false);
                }
            };
        }