diff --git a/.gitignore b/.gitignore
index aafa76831471f4c8ba5f50eca36e00e85601a902..1f1c64bbdc2ad0958df54c7101c4c0f7f26aa58f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
-Thumbs.db
\ No newline at end of file
+Thumbs.db
+.DS_Store
diff --git a/GoogleCardboard/aux.cpp b/GoogleCardboard/aux.cpp
index ed68904807fbda36482bc9b497f8595cae35839a..b850ae34c75e3035044afd8991e44afd39978942 100644
--- a/GoogleCardboard/aux.cpp
+++ b/GoogleCardboard/aux.cpp
@@ -1,7 +1,59 @@
+/*
+ # Copyright 2016-2018 The NOMAD Developers Group
+ #
+ # Licensed under the Apache License, Version 2.0 (the "License");
+ # you may not use this file except in compliance with the License.
+ # You may obtain a copy of the License at
+ #
+ #     http://www.apache.org/licenses/LICENSE-2.0
+ #
+ # Unless required by applicable law or agreed to in writing, software
+ # distributed under the License is distributed on an "AS IS" BASIS,
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ # See the License for the specific language governing permissions and
+ # limitations under the License.
+ */
 
-
+#include <math.h>
 #include "aux.h"
 
+gvr::Mat4f TranslationMatrix (float x, float y, float z)
+{
+    gvr::Mat4f mvs;
+    mvs.m[0][0]=1;mvs.m[0][1]=0;mvs.m[0][2]=0; mvs.m[0][3]=x;
+    mvs.m[1][0]=0;mvs.m[1][1]=1;mvs.m[1][2]=0;mvs.m[1][3]=y;
+    mvs.m[2][0]=0;mvs.m[2][1]=0;mvs.m[2][2]=1; mvs.m[2][3]=z;
+    mvs.m[3][0]=0;mvs.m[3][1]=0;mvs.m[3][2]=0; mvs.m[3][3]=1;
+    return mvs;
+}
+
+gvr::Mat4f TranslationMatrix (float v[3])
+{
+    return TranslationMatrix (v[0], v[1], v[2]);
+}
+
+gvr::Mat4f ScalingMatrix (float x, float y, float z)
+{
+    gvr::Mat4f mvs;
+    
+    mvs.m[0][0]=x;mvs.m[0][1]=0;mvs.m[0][2]=0; mvs.m[0][3]=0;
+    mvs.m[1][0]=0;mvs.m[1][1]=y;mvs.m[1][2]=0;mvs.m[1][3]=0;
+    mvs.m[2][0]=0;mvs.m[2][1]=0;mvs.m[2][2]=z; mvs.m[2][3]=0;
+    mvs.m[3][0]=0;mvs.m[3][1]=0;mvs.m[3][2]=0; mvs.m[3][3]=1;
+    return mvs;
+}
+
+gvr::Mat4f ScalingMatrix (float v[3])
+{
+    return ScalingMatrix(v[0], v[1], v[2]);
+}
+
+gvr::Mat4f ScalingMatrix (float s)
+{
+    return ScalingMatrix(s,s,s);
+}
+
+
 float getCofactor(float m0, float m1, float m2,
                   float m3, float m4, float m5,
                   float m6, float m7, float m8)
@@ -13,7 +65,7 @@ float getCofactor(float m0, float m1, float m2,
 
 //adapted from
 //openvr-0.9.19\samples\shared\matrices.cpp
-static gvr::Mat4f invert (const gvr::Mat4f& m)
+gvr::Mat4f invert (const gvr::Mat4f& m)
 {
     gvr::Mat4f r;
     // get cofactors of minor matrices
diff --git a/GoogleCardboard/aux.h b/GoogleCardboard/aux.h
index 9f432f6c32fac4820eb5c695fec5b954d768cc39..ef85291ca8187179324cc005a0d1732b36c60437 100644
--- a/GoogleCardboard/aux.h
+++ b/GoogleCardboard/aux.h
@@ -1,6 +1,32 @@
+/*
+ # Copyright 2016-2018 The NOMAD Developers Group
+ #
+ # Licensed under the Apache License, Version 2.0 (the "License");
+ # you may not use this file except in compliance with the License.
+ # You may obtain a copy of the License at
+ #
+ #     http://www.apache.org/licenses/LICENSE-2.0
+ #
+ # Unless required by applicable law or agreed to in writing, software
+ # distributed under the License is distributed on an "AS IS" BASIS,
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ # See the License for the specific language governing permissions and
+ # limitations under the License.
+ */
+
+#include "vr/gvr/capi/include/gvr.h"
+
+const float EPSILON = 0.00001f;
+
+gvr::Mat4f TranslationMatrix (float x, float y, float z);
+gvr::Mat4f TranslationMatrix (float v[3]);
+gvr::Mat4f ScalingMatrix (float x, float y, float z);
+gvr::Mat4f ScalingMatrix (float v[3]);
+gvr::Mat4f ScalingMatrix (float s);
+
 float getCofactor(float m0, float m1, float m2,
                   float m3, float m4, float m5,
                   float m6, float m7, float m8);
 
-static gvr::Mat4f invert (const gvr::Mat4f& m);
+gvr::Mat4f invert (const gvr::Mat4f& m);
 
diff --git a/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Contents.json b/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..4926cdbf01aac9a727c022118d1c14043980228c
--- /dev/null
+++ b/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Contents.json
@@ -0,0 +1,110 @@
+{
+  "images" : [
+    {
+      "size" : "20x20",
+      "idiom" : "iphone",
+      "filename" : "Icon-20@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "20x20",
+      "idiom" : "iphone",
+      "filename" : "Icon-20@3x.png",
+      "scale" : "3x"
+    },
+    {
+      "size" : "29x29",
+      "idiom" : "iphone",
+      "filename" : "Icon-29@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "29x29",
+      "idiom" : "iphone",
+      "filename" : "Icon-29@3x.png",
+      "scale" : "3x"
+    },
+    {
+      "size" : "40x40",
+      "idiom" : "iphone",
+      "filename" : "Icon-40@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "40x40",
+      "idiom" : "iphone",
+      "filename" : "Icon-40@3x.png",
+      "scale" : "3x"
+    },
+    {
+      "size" : "60x60",
+      "idiom" : "iphone",
+      "filename" : "Icon-40@3x-1.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "60x60",
+      "idiom" : "iphone",
+      "filename" : "Icon-60@3x.png",
+      "scale" : "3x"
+    },
+    {
+      "size" : "20x20",
+      "idiom" : "ipad",
+      "filename" : "Icon-20.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "20x20",
+      "idiom" : "ipad",
+      "filename" : "Icon-20@2x-1.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "29x29",
+      "idiom" : "ipad",
+      "filename" : "Icon-29.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "29x29",
+      "idiom" : "ipad",
+      "filename" : "Icon-29@2x-1.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "40x40",
+      "idiom" : "ipad",
+      "filename" : "Icon-20@2x-2.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "40x40",
+      "idiom" : "ipad",
+      "filename" : "Icon-40@2x-1.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "76x76",
+      "idiom" : "ipad",
+      "filename" : "Icon-76.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "76x76",
+      "idiom" : "ipad",
+      "filename" : "Icon-76@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "83.5x83.5",
+      "idiom" : "ipad",
+      "filename" : "Icon-83_5@2x.png",
+      "scale" : "2x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}
\ No newline at end of file
diff --git a/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-20.png b/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-20.png
new file mode 100644
index 0000000000000000000000000000000000000000..8a6cea76d9a68907ebe959bc8c588dd936172b72
Binary files /dev/null and b/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-20.png differ
diff --git a/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-20@2x-1.png b/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-20@2x-1.png
new file mode 100644
index 0000000000000000000000000000000000000000..b10dff0ec49cb030ec840f657f7a98f64fe2eb7a
Binary files /dev/null and b/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-20@2x-1.png differ
diff --git a/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-20@2x-2.png b/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-20@2x-2.png
new file mode 100644
index 0000000000000000000000000000000000000000..b10dff0ec49cb030ec840f657f7a98f64fe2eb7a
Binary files /dev/null and b/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-20@2x-2.png differ
diff --git a/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-20@2x.png b/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-20@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..b10dff0ec49cb030ec840f657f7a98f64fe2eb7a
Binary files /dev/null and b/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-20@2x.png differ
diff --git a/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-20@3x.png b/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-20@3x.png
new file mode 100644
index 0000000000000000000000000000000000000000..1b1997d562df90502fa9da9ed7e393dd72bc9e3d
Binary files /dev/null and b/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-20@3x.png differ
diff --git a/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-29.png b/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-29.png
new file mode 100644
index 0000000000000000000000000000000000000000..9acbcd68777b38d33412fef3f71d90161d889f2f
Binary files /dev/null and b/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-29.png differ
diff --git a/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-29@2x-1.png b/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-29@2x-1.png
new file mode 100644
index 0000000000000000000000000000000000000000..2913cf4e52d478e2f7ed0646e38e4707494a8312
Binary files /dev/null and b/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-29@2x-1.png differ
diff --git a/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-29@2x.png b/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-29@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..2913cf4e52d478e2f7ed0646e38e4707494a8312
Binary files /dev/null and b/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-29@2x.png differ
diff --git a/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-29@3x.png b/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-29@3x.png
new file mode 100644
index 0000000000000000000000000000000000000000..782c357664070f9c8093e80345b168cfaa09b5c2
Binary files /dev/null and b/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-29@3x.png differ
diff --git a/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-40@2x-1.png b/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-40@2x-1.png
new file mode 100644
index 0000000000000000000000000000000000000000..74e1f5dada8e8e37f22ae1d5dca695c23a673d08
Binary files /dev/null and b/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-40@2x-1.png differ
diff --git a/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-40@2x.png b/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-40@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..74e1f5dada8e8e37f22ae1d5dca695c23a673d08
Binary files /dev/null and b/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-40@2x.png differ
diff --git a/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-40@3x-1.png b/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-40@3x-1.png
new file mode 100644
index 0000000000000000000000000000000000000000..7f660e398a9fa72c90e264be67073cb6e5304ef8
Binary files /dev/null and b/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-40@3x-1.png differ
diff --git a/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-40@3x.png b/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-40@3x.png
new file mode 100644
index 0000000000000000000000000000000000000000..7f660e398a9fa72c90e264be67073cb6e5304ef8
Binary files /dev/null and b/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-40@3x.png differ
diff --git a/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-60@3x.png b/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-60@3x.png
new file mode 100644
index 0000000000000000000000000000000000000000..8d276d0b21a28bf2f8b05f0a612f881808660d50
Binary files /dev/null and b/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-60@3x.png differ
diff --git a/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-76.png b/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-76.png
new file mode 100644
index 0000000000000000000000000000000000000000..0994382c75b550aff83f3bd1411b27b0acc3e097
Binary files /dev/null and b/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-76.png differ
diff --git a/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-76@2x.png b/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-76@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..c55d61df68cc212bbc7610906835214ab4de9639
Binary files /dev/null and b/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-76@2x.png differ
diff --git a/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-83_5@2x.png b/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-83_5@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..f3a225d99316122f60c05c53d78c428c08449bf7
Binary files /dev/null and b/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/AppIcon.appiconset/Icon-83_5@2x.png differ
diff --git a/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/Contents.json b/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..da4a164c918651cdd1e11dca5cc62c333f097601
--- /dev/null
+++ b/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/Contents.json
@@ -0,0 +1,6 @@
+{
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}
\ No newline at end of file
diff --git a/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/LaunchImage.launchimage/Contents.json b/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/LaunchImage.launchimage/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..3814ad8f45acafae8180365fc8ce9b1436909f5b
--- /dev/null
+++ b/GoogleCardboardIOS/NOMADVRIOS/Images.xcassets/LaunchImage.launchimage/Contents.json
@@ -0,0 +1,49 @@
+{
+  "images" : [
+    {
+      "orientation" : "portrait",
+      "idiom" : "ipad",
+      "extent" : "full-screen",
+      "minimum-system-version" : "7.0",
+      "scale" : "1x"
+    },
+    {
+      "orientation" : "landscape",
+      "idiom" : "ipad",
+      "extent" : "full-screen",
+      "minimum-system-version" : "7.0",
+      "scale" : "1x"
+    },
+    {
+      "orientation" : "portrait",
+      "idiom" : "ipad",
+      "extent" : "full-screen",
+      "minimum-system-version" : "7.0",
+      "scale" : "2x"
+    },
+    {
+      "orientation" : "landscape",
+      "idiom" : "ipad",
+      "extent" : "full-screen",
+      "minimum-system-version" : "7.0",
+      "scale" : "2x"
+    },
+    {
+      "orientation" : "portrait",
+      "idiom" : "iphone",
+      "minimum-system-version" : "7.0",
+      "scale" : "2x"
+    },
+    {
+      "orientation" : "portrait",
+      "idiom" : "iphone",
+      "minimum-system-version" : "7.0",
+      "subtype" : "retina4",
+      "scale" : "2x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}
\ No newline at end of file
diff --git a/GoogleCardboardIOS/NOMADVRIOS/NOMADVR-Info.plist b/GoogleCardboardIOS/NOMADVRIOS/NOMADVR-Info.plist
new file mode 100644
index 0000000000000000000000000000000000000000..2d165fb1bafa834f7ff3a1af7dc92bbeaba24d8a
--- /dev/null
+++ b/GoogleCardboardIOS/NOMADVRIOS/NOMADVR-Info.plist
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDisplayName</key>
+	<string>NOMAD VR</string>
+	<key>CFBundleExecutable</key>
+	<string>${EXECUTABLE_NAME}</string>
+	<key>CFBundleIcons</key>
+	<dict/>
+	<key>CFBundleIcons~ipad</key>
+	<dict/>
+	<key>CFBundleIdentifier</key>
+	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleName</key>
+	<string>${PRODUCT_NAME}</string>
+	<key>CFBundlePackageType</key>
+	<string>APPL</string>
+	<key>CFBundleShortVersionString</key>
+	<string>2.1</string>
+	<key>CFBundleVersion</key>
+	<string>2.1</string>
+	<key>LSRequiresIPhoneOS</key>
+	<true/>
+	<key>NSCameraUsageDescription</key>
+	<string>Used to scan QR codes</string>
+	<key>NSMainNibFile</key>
+	<string>launch</string>
+	<key>UIFileSharingEnabled</key>
+	<true/>
+	<key>UILaunchStoryboardName</key>
+	<string>launch</string>
+	<key>UIRequiredDeviceCapabilities</key>
+	<array>
+		<string>magnetometer</string>
+	</array>
+	<key>UIRequiresFullScreen</key>
+	<true/>
+	<key>UIStatusBarHidden</key>
+	<true/>
+	<key>UISupportedInterfaceOrientations</key>
+	<array>
+		<string>UIInterfaceOrientationPortrait</string>
+		<string>UIInterfaceOrientationLandscapeLeft</string>
+		<string>UIInterfaceOrientationLandscapeRight</string>
+		<string>UIInterfaceOrientationPortraitUpsideDown</string>
+	</array>
+	<key>UISupportedInterfaceOrientations~ipad</key>
+	<array>
+		<string>UIInterfaceOrientationPortrait</string>
+		<string>UIInterfaceOrientationPortraitUpsideDown</string>
+		<string>UIInterfaceOrientationLandscapeLeft</string>
+		<string>UIInterfaceOrientationLandscapeRight</string>
+	</array>
+</dict>
+</plist>
diff --git a/GoogleCardboardIOS/NOMADVRSDK.xcodeproj/project.pbxproj b/GoogleCardboardIOS/NOMADVRIOS/NOMADVR.xcodeproj/project.pbxproj
similarity index 89%
rename from GoogleCardboardIOS/NOMADVRSDK.xcodeproj/project.pbxproj
rename to GoogleCardboardIOS/NOMADVRIOS/NOMADVR.xcodeproj/project.pbxproj
index 71f38f8be3a86ef1d3307a0ac6564584c0f76b60..70a4dec72f65401dd96427ddbe0dff8345778549 100644
--- a/GoogleCardboardIOS/NOMADVRSDK.xcodeproj/project.pbxproj
+++ b/GoogleCardboardIOS/NOMADVRIOS/NOMADVR.xcodeproj/project.pbxproj
@@ -7,13 +7,16 @@
 	objects = {
 
 /* Begin PBXBuildFile section */
-		1278CED81CEBF98600D93A88 /* NOMADVRSDK-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 1278CED71CEBF98600D93A88 /* NOMADVRSDK-Info.plist */; };
+		1278CED81CEBF98600D93A88 /* NOMADVR-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 1278CED71CEBF98600D93A88 /* NOMADVR-Info.plist */; };
 		12BEE9C01C8F5426002F8361 /* TreasureHuntAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 12BEE9B91C8F5426002F8361 /* TreasureHuntAppDelegate.m */; };
 		12BEE9C31C8F5426002F8361 /* TreasureHuntViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 12BEE9BF1C8F5426002F8361 /* TreasureHuntViewController.mm */; };
 		12BEE9C81C8F546B002F8361 /* launch.xib in Resources */ = {isa = PBXBuildFile; fileRef = 12BEE9C61C8F546B002F8361 /* launch.xib */; };
 		12BEE9CB1C8F54B8002F8361 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 12BEE9CA1C8F54B8002F8361 /* main.m */; };
 		12C3DC8F1CEBBA9E00D39B85 /* treasure_hunt_renderer.mm in Sources */ = {isa = PBXBuildFile; fileRef = 12C3DC8C1CEBBA9E00D39B85 /* treasure_hunt_renderer.mm */; };
+		4D73CEB4207BCA7200C55317 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 4D73CEB3207BCA7200C55317 /* Images.xcassets */; };
 		4D85FBEE2075203B008FD96D /* aux.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4D85FBEC2075203B008FD96D /* aux.cpp */; };
+		4D96EFB22077ACD000BD2694 /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D96EFB12077ACD000BD2694 /* GameController.framework */; };
+		4D96EFB42077BE3B00BD2694 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D96EFB32077BE3B00BD2694 /* AudioToolbox.framework */; };
 		4DEE7BCE20629B0F00A0956C /* NOMADVRLib in Resources */ = {isa = PBXBuildFile; fileRef = 4DEE7BCD20629B0F00A0956C /* NOMADVRLib */; };
 		4DEE7BD22062A82000A0956C /* atoms.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4DEE7BD12062A82000A0956C /* atoms.cpp */; };
 		4DEE7BD52062A83800A0956C /* atomsGL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4DEE7BD32062A83800A0956C /* atomsGL.cpp */; };
@@ -34,8 +37,8 @@
 /* End PBXBuildFile section */
 
 /* Begin PBXFileReference section */
-		1278CED71CEBF98600D93A88 /* NOMADVRSDK-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "NOMADVRSDK-Info.plist"; sourceTree = SOURCE_ROOT; };
-		12BEE99E1C8F53AB002F8361 /* NOMADVRSDK.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = NOMADVRSDK.app; sourceTree = BUILT_PRODUCTS_DIR; };
+		1278CED71CEBF98600D93A88 /* NOMADVR-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "NOMADVR-Info.plist"; sourceTree = SOURCE_ROOT; };
+		12BEE99E1C8F53AB002F8361 /* NOMADVR.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = NOMADVR.app; sourceTree = BUILT_PRODUCTS_DIR; };
 		12BEE9B81C8F5426002F8361 /* TreasureHuntAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TreasureHuntAppDelegate.h; sourceTree = SOURCE_ROOT; };
 		12BEE9B91C8F5426002F8361 /* TreasureHuntAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TreasureHuntAppDelegate.m; sourceTree = SOURCE_ROOT; };
 		12BEE9BE1C8F5426002F8361 /* TreasureHuntViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TreasureHuntViewController.h; sourceTree = SOURCE_ROOT; };
@@ -45,8 +48,11 @@
 		12C3DC8C1CEBBA9E00D39B85 /* treasure_hunt_renderer.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = treasure_hunt_renderer.mm; sourceTree = SOURCE_ROOT; };
 		12C3DC8D1CEBBA9E00D39B85 /* treasure_hunt_renderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = treasure_hunt_renderer.h; sourceTree = SOURCE_ROOT; };
 		3A4028450E1F4537A4DE358F /* libPods-TreasureHuntNDK.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-TreasureHuntNDK.a"; sourceTree = BUILT_PRODUCTS_DIR; };
+		4D73CEB3207BCA7200C55317 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
 		4D85FBEC2075203B008FD96D /* aux.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = aux.cpp; sourceTree = "<group>"; };
 		4D85FBED2075203B008FD96D /* aux.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aux.h; sourceTree = "<group>"; };
+		4D96EFB12077ACD000BD2694 /* GameController.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GameController.framework; path = System/Library/Frameworks/GameController.framework; sourceTree = SDKROOT; };
+		4D96EFB32077BE3B00BD2694 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
 		4DEE7BCD20629B0F00A0956C /* NOMADVRLib */ = {isa = PBXFileReference; lastKnownFileType = folder; name = NOMADVRLib; path = "/Users/lrz/gvr-ios-sdk/Samples/TreasureHuntNDK/NOMADVRLib"; sourceTree = "<absolute>"; };
 		4DEE7BD12062A82000A0956C /* atoms.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = atoms.cpp; path = NOMADVRLib/atoms.cpp; sourceTree = "<group>"; };
 		4DEE7BD32062A83800A0956C /* atomsGL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = atomsGL.cpp; path = NOMADVRLib/atomsGL.cpp; sourceTree = "<group>"; };
@@ -75,6 +81,8 @@
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				4D96EFB42077BE3B00BD2694 /* AudioToolbox.framework in Frameworks */,
+				4D96EFB22077ACD000BD2694 /* GameController.framework in Frameworks */,
 				C99E7A8E024DA5FE8D83A5BB /* libPods-TreasureHuntNDK.a in Frameworks */,
 				F27EE917D4C0E740BE5E6345 /* Pods_NOMADVRSDK.framework in Frameworks */,
 			);
@@ -86,6 +94,8 @@
 		119687AEB1F830DBF8B32F90 /* Frameworks */ = {
 			isa = PBXGroup;
 			children = (
+				4D96EFB32077BE3B00BD2694 /* AudioToolbox.framework */,
+				4D96EFB12077ACD000BD2694 /* GameController.framework */,
 				3A4028450E1F4537A4DE358F /* libPods-TreasureHuntNDK.a */,
 				CAC7C8C2287795314AD5579A /* Pods_NOMADVRSDK.framework */,
 			);
@@ -95,6 +105,7 @@
 		12BEE9951C8F53AB002F8361 = {
 			isa = PBXGroup;
 			children = (
+				4D73CEB3207BCA7200C55317 /* Images.xcassets */,
 				12BEE9A01C8F53AB002F8361 /* TreasureHunt */,
 				12BEE99F1C8F53AB002F8361 /* Products */,
 				4DEE7BDE2062ADCB00A0956C /* happyhttp */,
@@ -109,7 +120,7 @@
 		12BEE99F1C8F53AB002F8361 /* Products */ = {
 			isa = PBXGroup;
 			children = (
-				12BEE99E1C8F53AB002F8361 /* NOMADVRSDK.app */,
+				12BEE99E1C8F53AB002F8361 /* NOMADVR.app */,
 			);
 			name = Products;
 			sourceTree = "<group>";
@@ -123,7 +134,7 @@
 				12BEE9BF1C8F5426002F8361 /* TreasureHuntViewController.mm */,
 				12C3DC8C1CEBBA9E00D39B85 /* treasure_hunt_renderer.mm */,
 				12C3DC8D1CEBBA9E00D39B85 /* treasure_hunt_renderer.h */,
-				1278CED71CEBF98600D93A88 /* NOMADVRSDK-Info.plist */,
+				1278CED71CEBF98600D93A88 /* NOMADVR-Info.plist */,
 				12BEE9C61C8F546B002F8361 /* launch.xib */,
 				12BEE9A11C8F53AB002F8361 /* Supporting Files */,
 			);
@@ -197,9 +208,9 @@
 /* End PBXGroup section */
 
 /* Begin PBXNativeTarget section */
-		12BEE99D1C8F53AB002F8361 /* NOMADVRSDK */ = {
+		12BEE99D1C8F53AB002F8361 /* NOMADVR */ = {
 			isa = PBXNativeTarget;
-			buildConfigurationList = 12BEE9B51C8F53AB002F8361 /* Build configuration list for PBXNativeTarget "NOMADVRSDK" */;
+			buildConfigurationList = 12BEE9B51C8F53AB002F8361 /* Build configuration list for PBXNativeTarget "NOMADVR" */;
 			buildPhases = (
 				ACFE6513C5D698691E7598BC /* [CP] Check Pods Manifest.lock */,
 				12BEE99A1C8F53AB002F8361 /* Sources */,
@@ -212,9 +223,9 @@
 			);
 			dependencies = (
 			);
-			name = NOMADVRSDK;
+			name = NOMADVR;
 			productName = TreasureHunt;
-			productReference = 12BEE99E1C8F53AB002F8361 /* NOMADVRSDK.app */;
+			productReference = 12BEE99E1C8F53AB002F8361 /* NOMADVR.app */;
 			productType = "com.apple.product-type.application";
 		};
 /* End PBXNativeTarget section */
@@ -232,7 +243,7 @@
 					};
 				};
 			};
-			buildConfigurationList = 12BEE9991C8F53AB002F8361 /* Build configuration list for PBXProject "NOMADVRSDK" */;
+			buildConfigurationList = 12BEE9991C8F53AB002F8361 /* Build configuration list for PBXProject "NOMADVR" */;
 			compatibilityVersion = "Xcode 3.2";
 			developmentRegion = English;
 			hasScannedForEncodings = 0;
@@ -245,7 +256,7 @@
 			projectDirPath = "";
 			projectRoot = "";
 			targets = (
-				12BEE99D1C8F53AB002F8361 /* NOMADVRSDK */,
+				12BEE99D1C8F53AB002F8361 /* NOMADVR */,
 			);
 		};
 /* End PBXProject section */
@@ -256,8 +267,9 @@
 			buildActionMask = 2147483647;
 			files = (
 				4DEE7BCE20629B0F00A0956C /* NOMADVRLib in Resources */,
+				4D73CEB4207BCA7200C55317 /* Images.xcassets in Resources */,
 				12BEE9C81C8F546B002F8361 /* launch.xib in Resources */,
-				1278CED81CEBF98600D93A88 /* NOMADVRSDK-Info.plist in Resources */,
+				1278CED81CEBF98600D93A88 /* NOMADVR-Info.plist in Resources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -450,6 +462,8 @@
 			isa = XCBuildConfiguration;
 			baseConfigurationReference = 9FD381D5B2D35CE778ED88B3 /* Pods-NOMADVRSDK.debug.xcconfig */;
 			buildSettings = {
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+				ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
 				DEVELOPMENT_TEAM = 6DYZG82AAG;
 				ENABLE_BITCODE = NO;
 				GCC_PREPROCESSOR_DEFINITIONS = (
@@ -466,11 +480,12 @@
 					"\"${PODS_ROOT}/Headers/Public/GoogleToolboxForMac\"",
 					"\"${PODS_ROOT}/..\"",
 				);
-				INFOPLIST_FILE = "NOMADVRSDK-Info.plist";
+				INFOPLIST_FILE = "NOMADVR-Info.plist";
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
-				PRODUCT_BUNDLE_IDENTIFIER = com.test.TreasureHunt;
-				PRODUCT_NAME = NOMADVRSDK;
+				PRODUCT_BUNDLE_IDENTIFIER = com.lrz.NOMADVRIOS;
+				PRODUCT_NAME = NOMADVR;
 				SWIFT_VERSION = 4.0;
+				TARGETED_DEVICE_FAMILY = "1,2";
 			};
 			name = Debug;
 		};
@@ -478,6 +493,8 @@
 			isa = XCBuildConfiguration;
 			baseConfigurationReference = EB0170AE84675B1C851C3FA4 /* Pods-NOMADVRSDK.release.xcconfig */;
 			buildSettings = {
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+				ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
 				DEVELOPMENT_TEAM = 6DYZG82AAG;
 				ENABLE_BITCODE = NO;
 				GCC_PREPROCESSOR_DEFINITIONS = (
@@ -494,18 +511,19 @@
 					"\"${PODS_ROOT}/Headers/Public/GoogleToolboxForMac\"",
 					"\"${PODS_ROOT}/..\"",
 				);
-				INFOPLIST_FILE = "NOMADVRSDK-Info.plist";
+				INFOPLIST_FILE = "NOMADVR-Info.plist";
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
-				PRODUCT_BUNDLE_IDENTIFIER = com.test.TreasureHunt;
-				PRODUCT_NAME = NOMADVRSDK;
+				PRODUCT_BUNDLE_IDENTIFIER = com.lrz.NOMADVRIOS;
+				PRODUCT_NAME = NOMADVR;
 				SWIFT_VERSION = 4.0;
+				TARGETED_DEVICE_FAMILY = "1,2";
 			};
 			name = Release;
 		};
 /* End XCBuildConfiguration section */
 
 /* Begin XCConfigurationList section */
-		12BEE9991C8F53AB002F8361 /* Build configuration list for PBXProject "NOMADVRSDK" */ = {
+		12BEE9991C8F53AB002F8361 /* Build configuration list for PBXProject "NOMADVR" */ = {
 			isa = XCConfigurationList;
 			buildConfigurations = (
 				12BEE9B31C8F53AB002F8361 /* Debug */,
@@ -514,7 +532,7 @@
 			defaultConfigurationIsVisible = 0;
 			defaultConfigurationName = Release;
 		};
-		12BEE9B51C8F53AB002F8361 /* Build configuration list for PBXNativeTarget "NOMADVRSDK" */ = {
+		12BEE9B51C8F53AB002F8361 /* Build configuration list for PBXNativeTarget "NOMADVR" */ = {
 			isa = XCConfigurationList;
 			buildConfigurations = (
 				12BEE9B61C8F53AB002F8361 /* Debug */,
diff --git a/GoogleCardboardIOS/NOMADVRSDK.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/GoogleCardboardIOS/NOMADVRIOS/NOMADVR.xcodeproj/project.xcworkspace/contents.xcworkspacedata
similarity index 100%
rename from GoogleCardboardIOS/NOMADVRSDK.xcodeproj/project.xcworkspace/contents.xcworkspacedata
rename to GoogleCardboardIOS/NOMADVRIOS/NOMADVR.xcodeproj/project.xcworkspace/contents.xcworkspacedata
diff --git a/GoogleCardboardIOS/NOMADVRSDK.xcodeproj/project.xcworkspace/xcuserdata/lrz.xcuserdatad/UserInterfaceState.xcuserstate b/GoogleCardboardIOS/NOMADVRIOS/NOMADVR.xcodeproj/project.xcworkspace/xcuserdata/lrz.xcuserdatad/UserInterfaceState.xcuserstate
similarity index 100%
rename from GoogleCardboardIOS/NOMADVRSDK.xcodeproj/project.xcworkspace/xcuserdata/lrz.xcuserdatad/UserInterfaceState.xcuserstate
rename to GoogleCardboardIOS/NOMADVRIOS/NOMADVR.xcodeproj/project.xcworkspace/xcuserdata/lrz.xcuserdatad/UserInterfaceState.xcuserstate
diff --git a/GoogleCardboardIOS/NOMADVRSDK.xcodeproj/xcuserdata/lrz.xcuserdatad/xcschemes/xcschememanagement.plist b/GoogleCardboardIOS/NOMADVRIOS/NOMADVR.xcodeproj/xcuserdata/lrz.xcuserdatad/xcschemes/xcschememanagement.plist
similarity index 74%
rename from GoogleCardboardIOS/NOMADVRSDK.xcodeproj/xcuserdata/lrz.xcuserdatad/xcschemes/xcschememanagement.plist
rename to GoogleCardboardIOS/NOMADVRIOS/NOMADVR.xcodeproj/xcuserdata/lrz.xcuserdatad/xcschemes/xcschememanagement.plist
index a8bc326856a582bd27187ac49ae478d6b870647a..7e1b6d87ed9364aa849796ec8954312d0ddd1905 100644
--- a/GoogleCardboardIOS/NOMADVRSDK.xcodeproj/xcuserdata/lrz.xcuserdatad/xcschemes/xcschememanagement.plist
+++ b/GoogleCardboardIOS/NOMADVRIOS/NOMADVR.xcodeproj/xcuserdata/lrz.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -3,13 +3,7 @@
 <plist version="1.0">
 <dict>
 	<key>SchemeUserState</key>
-	<dict>
-		<key>TreasureHuntNDK.xcscheme</key>
-		<dict>
-			<key>orderHint</key>
-			<integer>0</integer>
-		</dict>
-	</dict>
+	<dict/>
 	<key>SuppressBuildableAutocreation</key>
 	<dict>
 		<key>12BEE99D1C8F53AB002F8361</key>
diff --git a/GoogleCardboardIOS/NOMADVRSDK-Info.plist b/GoogleCardboardIOS/NOMADVRIOS/NOMADVRSDK-Info.plist
similarity index 100%
rename from GoogleCardboardIOS/NOMADVRSDK-Info.plist
rename to GoogleCardboardIOS/NOMADVRIOS/NOMADVRSDK-Info.plist
diff --git a/GoogleCardboardIOS/NOMADVRIOS/NOMADVRSDK.xcworkspace/contents.xcworkspacedata b/GoogleCardboardIOS/NOMADVRIOS/NOMADVRSDK.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 0000000000000000000000000000000000000000..defd9413bc8a89e5a96ed4b04a46de045a9f1668
--- /dev/null
+++ b/GoogleCardboardIOS/NOMADVRIOS/NOMADVRSDK.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+   version = "1.0">
+   <FileRef
+      location = "group:NOMADVRSDK.xcodeproj">
+   </FileRef>
+   <FileRef
+      location = "group:Pods/Pods.xcodeproj">
+   </FileRef>
+</Workspace>
diff --git a/GoogleCardboardIOS/Podfile b/GoogleCardboardIOS/NOMADVRIOS/Podfile
similarity index 93%
rename from GoogleCardboardIOS/Podfile
rename to GoogleCardboardIOS/NOMADVRIOS/Podfile
index bc5ff22518d5c74c5a907bd00a9db821b6ebc231..103c8a222b91435a1cac4f9138f49f0111ef6ff6 100644
--- a/GoogleCardboardIOS/Podfile
+++ b/GoogleCardboardIOS/NOMADVRIOS/Podfile
@@ -1,4 +1,4 @@
-target 'NOMADVRSDK' do
+target 'NOMADVR' do
   pod 'GVRSDK'
   pod 'GVRAudioSDK'
   source 'https://github.com/CocoaPods/Specs.git'
diff --git a/GoogleCardboardIOS/Podfile.lock b/GoogleCardboardIOS/NOMADVRIOS/Podfile.lock
similarity index 100%
rename from GoogleCardboardIOS/Podfile.lock
rename to GoogleCardboardIOS/NOMADVRIOS/Podfile.lock
diff --git a/GoogleCardboardIOS/TreasureHuntAppDelegate.h b/GoogleCardboardIOS/NOMADVRIOS/TreasureHuntAppDelegate.h
similarity index 100%
rename from GoogleCardboardIOS/TreasureHuntAppDelegate.h
rename to GoogleCardboardIOS/NOMADVRIOS/TreasureHuntAppDelegate.h
diff --git a/GoogleCardboardIOS/TreasureHuntAppDelegate.m b/GoogleCardboardIOS/NOMADVRIOS/TreasureHuntAppDelegate.m
similarity index 100%
rename from GoogleCardboardIOS/TreasureHuntAppDelegate.m
rename to GoogleCardboardIOS/NOMADVRIOS/TreasureHuntAppDelegate.m
diff --git a/GoogleCardboardIOS/TreasureHuntNDK.xcworkspace/contents.xcworkspacedata b/GoogleCardboardIOS/NOMADVRIOS/TreasureHuntNDK.xcworkspace/contents.xcworkspacedata
similarity index 89%
rename from GoogleCardboardIOS/TreasureHuntNDK.xcworkspace/contents.xcworkspacedata
rename to GoogleCardboardIOS/NOMADVRIOS/TreasureHuntNDK.xcworkspace/contents.xcworkspacedata
index 312fdf360981510f30cf17b89f800630ec31f620..f43ced7ac121b2fff495eafa8b8a91c5ad7813e7 100644
--- a/GoogleCardboardIOS/TreasureHuntNDK.xcworkspace/contents.xcworkspacedata
+++ b/GoogleCardboardIOS/NOMADVRIOS/TreasureHuntNDK.xcworkspace/contents.xcworkspacedata
@@ -2,7 +2,7 @@
 <Workspace
    version = "1.0">
    <FileRef
-      location = "group:/Users/lrz/gvr-ios-sdk/Samples/TreasureHuntNDK/NOMADVRSDK.xcodeproj">
+      location = "group:/Users/lrz/gvr-ios-sdk/Samples/TreasureHuntNDK/NOMADVR.xcodeproj">
    </FileRef>
    <FileRef
       location = "group:Pods/Pods.xcodeproj">
diff --git a/GoogleCardboardIOS/NOMADVRIOS/TreasureHuntNDK.xcworkspace/xcuserdata/lrz.xcuserdatad/UserInterfaceState.xcuserstate b/GoogleCardboardIOS/NOMADVRIOS/TreasureHuntNDK.xcworkspace/xcuserdata/lrz.xcuserdatad/UserInterfaceState.xcuserstate
new file mode 100644
index 0000000000000000000000000000000000000000..22da9e4e75686e9a46f06c7e668a94751b2f397a
Binary files /dev/null and b/GoogleCardboardIOS/NOMADVRIOS/TreasureHuntNDK.xcworkspace/xcuserdata/lrz.xcuserdatad/UserInterfaceState.xcuserstate differ
diff --git a/GoogleCardboardIOS/NOMADVRIOS/TreasureHuntNDK.xcworkspace/xcuserdata/lrz.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/GoogleCardboardIOS/NOMADVRIOS/TreasureHuntNDK.xcworkspace/xcuserdata/lrz.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
new file mode 100644
index 0000000000000000000000000000000000000000..7c5d70baeac8aa93c5bbf802067d212fd5b7562d
--- /dev/null
+++ b/GoogleCardboardIOS/NOMADVRIOS/TreasureHuntNDK.xcworkspace/xcuserdata/lrz.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
@@ -0,0 +1,679 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Bucket
+   type = "0"
+   version = "2.0">
+   <Breakpoints>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "main.m"
+            timestampString = "544465671.0221111"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "21"
+            endingLineNumber = "21"
+            landmarkName = "main()"
+            landmarkType = "9">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "treasure_hunt_renderer.mm"
+            timestampString = "544971992.496356"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "290"
+            endingLineNumber = "290"
+            landmarkName = "TreasureHuntRenderer::InitializeGl()"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "NOMADVRLib/atomsGL.cpp"
+            timestampString = "544465961.497296"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "58"
+            endingLineNumber = "58"
+            landmarkName = "atomTexture(GLuint t)"
+            landmarkType = "9">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "NOMADVRLib/atomsGL.cpp"
+            timestampString = "544526936.709954"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "60"
+            endingLineNumber = "60"
+            landmarkName = "atomTexture(GLuint t)"
+            landmarkType = "9">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "NOMADVRLib/atomsGL.cpp"
+            timestampString = "544526938.2828521"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "67"
+            endingLineNumber = "67"
+            landmarkName = "atomTexture(GLuint t)"
+            landmarkType = "9">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "NOMADVRLib/atomsGL.cpp"
+            timestampString = "544527787.9424599"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "72"
+            endingLineNumber = "72"
+            landmarkName = "atomTexture(GLuint t)"
+            landmarkType = "9">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "NOMADVRLib/atomsGL.cpp"
+            timestampString = "544527787.9424599"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "77"
+            endingLineNumber = "77"
+            landmarkName = "atomTexture(GLuint t)"
+            landmarkType = "9">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "NOMADVRLib/atomsGL.cpp"
+            timestampString = "544527787.9424599"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "70"
+            endingLineNumber = "70"
+            landmarkName = "atomTexture(GLuint t)"
+            landmarkType = "9">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "treasure_hunt_renderer.mm"
+            timestampString = "544971992.496356"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "402"
+            endingLineNumber = "402"
+            landmarkName = "TreasureHuntRenderer::DrawFrame()"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "treasure_hunt_renderer.mm"
+            timestampString = "544971992.496356"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "388"
+            endingLineNumber = "388"
+            landmarkName = "TreasureHuntRenderer::DrawFrame()"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "treasure_hunt_renderer.mm"
+            timestampString = "544971992.496356"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "340"
+            endingLineNumber = "340"
+            landmarkName = "TreasureHuntRenderer::DrawFrame()"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "treasure_hunt_renderer.mm"
+            timestampString = "544971992.496356"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "409"
+            endingLineNumber = "409"
+            landmarkName = "TreasureHuntRenderer::DrawFrame()"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "treasure_hunt_renderer.mm"
+            timestampString = "544714274.129266"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "170"
+            endingLineNumber = "170"
+            landmarkName = "TreasureHuntRenderer::setConfigFile (NSString * filename)"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "TreasureHuntViewController.mm"
+            timestampString = "544969286.036918"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "100"
+            endingLineNumber = "100"
+            landmarkName = "-viewDidLoad"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "TreasureHuntViewController.mm"
+            timestampString = "544969286.036918"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "95"
+            endingLineNumber = "95"
+            landmarkName = "-viewDidLoad"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "treasure_hunt_renderer.mm"
+            timestampString = "544971992.496356"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "825"
+            endingLineNumber = "825"
+            landmarkName = "TreasureHuntRenderer::DrawEye(gvr::Eye eye, const gvr::Mat4f&amp; view_matrix, const gvr::BufferViewport&amp; params)"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "Pods/FileBrowser/FileBrowser/FileListTableView.swift"
+            timestampString = "544702257.854578"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "47"
+            endingLineNumber = "47"
+            landmarkName = "tableView(_:didSelectRowAt:)"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "Pods/FileBrowser/FileBrowser/FileListTableView.swift"
+            timestampString = "544702271.902478"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "53"
+            endingLineNumber = "53"
+            landmarkName = "tableView(_:didSelectRowAt:)"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "Pods/FileBrowser/FileBrowser/FileBrowser.swift"
+            timestampString = "544702443.0318691"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "21"
+            endingLineNumber = "21"
+            landmarkName = "FileBrowser"
+            landmarkType = "3">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "Pods/FileBrowser/FileBrowser/FileBrowser.swift"
+            timestampString = "544702444.872684"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "28"
+            endingLineNumber = "28"
+            landmarkName = "FileBrowser"
+            landmarkType = "3">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "Pods/FileBrowser/FileBrowser/FileBrowser.swift"
+            timestampString = "544702479.457353"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "53"
+            endingLineNumber = "53"
+            landmarkName = "init(initialPath:allowEditing:showCancelButton:)"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "Pods/FileBrowser/FileBrowser/FileListViewController.swift"
+            timestampString = "544702538.083482"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "33"
+            endingLineNumber = "33"
+            landmarkName = "searchController"
+            landmarkType = "24">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "Pods/FileBrowser/FileBrowser/FileListViewController.swift"
+            timestampString = "544702554.211094"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "88"
+            endingLineNumber = "88"
+            landmarkName = "viewDidLoad()"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "Pods/FileBrowser/FileBrowser/FileListViewController.swift"
+            timestampString = "544702565.8924479"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "102"
+            endingLineNumber = "102"
+            landmarkName = "dismiss(button:)"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "Pods/FileBrowser/FileBrowser/FileListViewController.swift"
+            timestampString = "544702574.251502"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "109"
+            endingLineNumber = "109"
+            landmarkName = "indexFiles()"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "Pods/FileBrowser/FileBrowser/FileListViewController.swift"
+            timestampString = "544702584.828371"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "130"
+            endingLineNumber = "130"
+            landmarkName = "filterContentForSearchText(_:)"
+            landmarkType = "7">
+            <Locations>
+               <Location
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "FileBrowser.FileListViewController.filterContentForSearchText (Swift.String) -&gt; ()"
+                  moduleName = "FileBrowser"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/lrz/gvr-ios-sdk/Samples/TreasureHuntNDK/Pods/FileBrowser/FileBrowser/FileListViewController.swift"
+                  timestampString = "544984366.300388"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "130"
+                  endingLineNumber = "130"
+                  offsetFromSymbolStart = "44">
+               </Location>
+               <Location
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "FileBrowser.FileListViewController.(filterContentForSearchText (Swift.String) -&gt; ()).(closure #1)"
+                  moduleName = "FileBrowser"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/lrz/gvr-ios-sdk/Samples/TreasureHuntNDK/Pods/FileBrowser/FileBrowser/FileListViewController.swift"
+                  timestampString = "544984366.303768"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "131"
+                  endingLineNumber = "131"
+                  offsetFromSymbolStart = "28">
+               </Location>
+            </Locations>
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "Pods/FileBrowser/FileBrowser/FileListViewController.swift"
+            timestampString = "544702586.2835079"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "119"
+            endingLineNumber = "119"
+            landmarkName = "fileForIndexPath(_:)"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "Pods/FileBrowser/FileBrowser/FileBrowser.swift"
+            timestampString = "544705286.445981"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "35"
+            endingLineNumber = "35"
+            landmarkName = "FileBrowser"
+            landmarkType = "3">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "treasure_hunt_renderer.mm"
+            timestampString = "544971992.496356"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "508"
+            endingLineNumber = "508"
+            landmarkName = "TreasureHuntRenderer::RenderAtomTrajectoriesUnitCell()"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "treasure_hunt_renderer.mm"
+            timestampString = "544714274.129266"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "171"
+            endingLineNumber = "171"
+            landmarkName = "TreasureHuntRenderer::setConfigFile (NSString * filename)"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "TreasureHuntViewController.mm"
+            timestampString = "544969286.036918"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "103"
+            endingLineNumber = "103"
+            landmarkName = "-viewDidLoad"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "TreasureHuntViewController.mm"
+            timestampString = "544969286.036918"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "113"
+            endingLineNumber = "113"
+            landmarkName = "-viewDidLoad"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "treasure_hunt_renderer.mm"
+            timestampString = "544971992.496356"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "249"
+            endingLineNumber = "249"
+            landmarkName = "TreasureHuntRenderer::TreasureHuntRenderer( gvr_context* gvr_context)"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "treasure_hunt_renderer.mm"
+            timestampString = "544971992.496356"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "422"
+            endingLineNumber = "422"
+            landmarkName = "TreasureHuntRenderer::OnTriggerEvent()"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "treasure_hunt_renderer.mm"
+            timestampString = "544971992.496356"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "421"
+            endingLineNumber = "421"
+            landmarkName = "TreasureHuntRenderer::OnTriggerEvent()"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "TreasureHuntViewController.mm"
+            timestampString = "544972475.785823"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "154"
+            endingLineNumber = "154"
+            landmarkName = "-handleCommand:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "TreasureHuntViewController.mm"
+            timestampString = "544969286.036918"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "117"
+            endingLineNumber = "117"
+            landmarkName = "-viewDidLoad"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "treasure_hunt_renderer.mm"
+            timestampString = "544971992.496356"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "417"
+            endingLineNumber = "417"
+            landmarkName = "TreasureHuntRenderer::DrawFrame()"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "treasure_hunt_renderer.mm"
+            timestampString = "544971772.766929"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "180"
+            endingLineNumber = "180"
+            landmarkName = "TreasureHuntRenderer::keypress (int k)"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "TreasureHuntViewController.mm"
+            timestampString = "544972475.785823"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "154"
+            endingLineNumber = "154"
+            landmarkName = "-handleCommand:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+   </Breakpoints>
+</Bucket>
diff --git a/GoogleCardboardIOS/NOMADVRSDK.xcodeproj/xcuserdata/lrz.xcuserdatad/xcschemes/TreasureHuntNDK.xcscheme b/GoogleCardboardIOS/NOMADVRIOS/TreasureHuntNDK.xcworkspace/xcuserdata/lrz.xcuserdatad/xcschemes/TreasureHuntNDK.xcscheme
similarity index 77%
rename from GoogleCardboardIOS/NOMADVRSDK.xcodeproj/xcuserdata/lrz.xcuserdatad/xcschemes/TreasureHuntNDK.xcscheme
rename to GoogleCardboardIOS/NOMADVRIOS/TreasureHuntNDK.xcworkspace/xcuserdata/lrz.xcuserdatad/xcschemes/TreasureHuntNDK.xcscheme
index 1854d68e058122de68bbc6c90cfb7a1f896f87ba..bb363cb1803a20f47b1be5c1aaae103f40af89f8 100644
--- a/GoogleCardboardIOS/NOMADVRSDK.xcodeproj/xcuserdata/lrz.xcuserdatad/xcschemes/TreasureHuntNDK.xcscheme
+++ b/GoogleCardboardIOS/NOMADVRIOS/TreasureHuntNDK.xcworkspace/xcuserdata/lrz.xcuserdatad/xcschemes/TreasureHuntNDK.xcscheme
@@ -15,9 +15,9 @@
             <BuildableReference
                BuildableIdentifier = "primary"
                BlueprintIdentifier = "12BEE99D1C8F53AB002F8361"
-               BuildableName = "NOMADVRSDK.app"
-               BlueprintName = "NOMADVRSDK"
-               ReferencedContainer = "container:NOMADVRSDK.xcodeproj">
+               BuildableName = "NOMADVR.app"
+               BlueprintName = "NOMADVR"
+               ReferencedContainer = "container:NOMADVR.xcodeproj">
             </BuildableReference>
          </BuildActionEntry>
       </BuildActionEntries>
@@ -56,9 +56,9 @@
          <BuildableReference
             BuildableIdentifier = "primary"
             BlueprintIdentifier = "12BEE99D1C8F53AB002F8361"
-            BuildableName = "NOMADVRSDK.app"
-            BlueprintName = "NOMADVRSDK"
-            ReferencedContainer = "container:NOMADVRSDK.xcodeproj">
+            BuildableName = "NOMADVR.app"
+            BlueprintName = "NOMADVR"
+            ReferencedContainer = "container:NOMADVR.xcodeproj">
          </BuildableReference>
       </BuildableProductRunnable>
       <AdditionalOptions>
@@ -70,16 +70,6 @@
       savedToolIdentifier = ""
       useCustomWorkingDirectory = "NO"
       debugDocumentVersioning = "YES">
-      <BuildableProductRunnable
-         runnableDebuggingMode = "0">
-         <BuildableReference
-            BuildableIdentifier = "primary"
-            BlueprintIdentifier = "12BEE99D1C8F53AB002F8361"
-            BuildableName = "NOMADVRSDK.app"
-            BlueprintName = "NOMADVRSDK"
-            ReferencedContainer = "container:NOMADVRSDK.xcodeproj">
-         </BuildableReference>
-      </BuildableProductRunnable>
    </ProfileAction>
    <AnalyzeAction
       buildConfiguration = "Debug">
diff --git a/GoogleCardboardIOS/NOMADVRIOS/TreasureHuntNDK.xcworkspace/xcuserdata/lrz.xcuserdatad/xcschemes/xcschememanagement.plist b/GoogleCardboardIOS/NOMADVRIOS/TreasureHuntNDK.xcworkspace/xcuserdata/lrz.xcuserdatad/xcschemes/xcschememanagement.plist
new file mode 100644
index 0000000000000000000000000000000000000000..5dfe359e8035d87c763778aeecd8d61bfd811e2f
--- /dev/null
+++ b/GoogleCardboardIOS/NOMADVRIOS/TreasureHuntNDK.xcworkspace/xcuserdata/lrz.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>SchemeUserState</key>
+	<dict>
+		<key>TreasureHuntNDK.xcscheme</key>
+		<dict>
+			<key>orderHint</key>
+			<integer>0</integer>
+		</dict>
+	</dict>
+</dict>
+</plist>
diff --git a/GoogleCardboardIOS/TreasureHuntViewController.h b/GoogleCardboardIOS/NOMADVRIOS/TreasureHuntViewController.h
similarity index 100%
rename from GoogleCardboardIOS/TreasureHuntViewController.h
rename to GoogleCardboardIOS/NOMADVRIOS/TreasureHuntViewController.h
diff --git a/GoogleCardboardIOS/TreasureHuntViewController.mm b/GoogleCardboardIOS/NOMADVRIOS/TreasureHuntViewController.mm
similarity index 52%
rename from GoogleCardboardIOS/TreasureHuntViewController.mm
rename to GoogleCardboardIOS/NOMADVRIOS/TreasureHuntViewController.mm
index 94f2a6877380d34654489ad153d4a26695bd9be9..1f490db50416f8da52d56536417c14211d864c7f 100644
--- a/GoogleCardboardIOS/TreasureHuntViewController.mm
+++ b/GoogleCardboardIOS/NOMADVRIOS/TreasureHuntViewController.mm
@@ -1,3 +1,4 @@
+/*# Copyright 2016-2018 The NOMAD Developers Group*/
 /*
  * Copyright 2016 Google Inc. All Rights Reserved.
  *
@@ -19,18 +20,45 @@
 #import "GVROverlayView.h"
 #import "treasure_hunt_renderer.h"
 
+#include "FileBrowser/FileBrowser.h"
+#include "FileBrowser-Swift.h"
+
 @interface TreasureHuntViewController ()<GLKViewControllerDelegate, GVROverlayViewDelegate> {
   gvr_context *_gvrContext;
   std::unique_ptr<TreasureHuntRenderer> _renderer;
+  NSMutableArray *mycommands;
+
 }
 @end
 
+NSString * filename;
+
+
 @implementation TreasureHuntViewController
 
+
+//https://stackoverflow.com/questions/3717141/how-to-detect-keyboard-events-on-hardware-keyboard-on-iphone-ios
+- (BOOL)canBecomeFirstResponder
+{
+    return YES;
+}
+
+- (NSArray *)keyCommands
+{
+    return mycommands;
+}
+
 - (void)dealloc {
   gvr_destroy(&_gvrContext);
 }
 
+
+- (UIViewController *)presentingViewControllerForSettingsDialog {
+    return self;
+}
+
+
+
 - (void)viewDidLoad {
   [super viewDidLoad];
 
@@ -47,6 +75,7 @@
       [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTapGLView:)];
   [self.view addGestureRecognizer:tapGesture];
 
+    
   // Create an OpenGL ES context and assign it to the view loaded from storyboard
   GLKView *glkView = (GLKView *)self.view;
   glkView.context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES3];
@@ -62,10 +91,68 @@
 
   // Create GVR context.
   _gvrContext = gvr_create();
+    
+    FileBrowser *fb=[[FileBrowser alloc] initWithInitialPath: nullptr allowEditing:NO  showCancelButton:NO];
+    
+    void (^ _Nullable didSelectFileCallback)(FBFile * _Nonnull) = ^(FBFile * _Nonnull file)
+    {
+        filename=[[file filePath] path];
+        NSFileManager *filemgr = [NSFileManager defaultManager];
+   //http://www.techotopia.com/index.php/Working_with_Directories_on_iPhone_OS#The_Application_Documents_Directory        
+        if ([filemgr changeCurrentDirectoryPath: [filename stringByDeletingLastPathComponent]] == NO)
+            NSLog(@"Cannot change current directory");
+
+        _renderer->setConfigFile (filename);
+        _renderer->InitializeGl();
+    };
+    
+    
+    //https://gist.github.com/ferbass/0ddea86e6b2eb5915fabdbfe9f151a5e
+    fb.didSelectFile=didSelectFileCallback;
+    //[self.navigationController pushViewController:fb animated:YES];
+    [self presentViewController:fb animated:YES completion:nil];
+    _renderer.reset(new TreasureHuntRenderer(_gvrContext));
+    
+    //keys
+    NSMutableArray *commands = [[NSMutableArray alloc] init];
+    /* Up */
+    [commands addObject:[UIKeyCommand keyCommandWithInput:UIKeyInputUpArrow modifierFlags:kNilOptions action:@selector(handleCommand:)]];
+    /* Down */
+    [commands addObject:[UIKeyCommand keyCommandWithInput:UIKeyInputDownArrow modifierFlags:kNilOptions action:@selector(handleCommand:)]];
+    /* Left */
+    [commands addObject:[UIKeyCommand keyCommandWithInput:UIKeyInputLeftArrow modifierFlags:kNilOptions action:@selector(handleCommand:)]];
+    /* Right */
+    [commands addObject:[UIKeyCommand keyCommandWithInput:UIKeyInputRightArrow modifierFlags:kNilOptions action:@selector(handleCommand:)]];
+    
+    //VRPark, ABCD=uhyj, arrows: up down left right = wxad
+    
+    UIKeyModifierFlags f[]={
+        //UIKeyModifierAlphaShift,
+        //UIKeyModifierShift,
+        //UIKeyModifierControl,
+        //UIKeyModifierAlternate,
+        //UIKeyModifierCommand,
+        //UIKeyModifierControl | UIKeyModifierAlternate,
+        //UIKeyModifierControl | UIKeyModifierCommand,
+        //UIKeyModifierAlternate | UIKeyModifierCommand,
+        //UIKeyModifierControl | UIKeyModifierAlternate | UIKeyModifierCommand,
+        kNilOptions
+    };
+    NSString *characters = @"uhyjwxad";
+    for (NSInteger i = 0; i < characters.length; i++) {
+        for (int j=0;j<1;j++) {
+        NSString *input = [characters substringWithRange:NSMakeRange(i, 1)];
+            [commands addObject:[UIKeyCommand keyCommandWithInput:input modifierFlags:f[j] action:@selector(handleCommand:)]];
+        }
+    }
+    mycommands = commands.copy;
+//    [self.addKeyCommand:mycommands];
+  }
 
-  // Initialize TreasureHuntRenderer.
-  _renderer.reset(new TreasureHuntRenderer(_gvrContext));
-  _renderer->InitializeGl();
+- (void)handleCommand:(UIKeyCommand *)command
+{
+    _renderer->keypress (command.input.UTF8String[0]);
+    
 }
 
 - (UIInterfaceOrientationMask)supportedInterfaceOrientations {
@@ -104,9 +191,6 @@
   NSLog(@"User pressed back button");
 }
 
-- (UIViewController *)presentingViewControllerForSettingsDialog {
-  return self;
-}
 
 - (void)didPresentSettingsDialog:(BOOL)presented {
   // The overlay view is presenting the settings dialog. Pause our rendering while presented.
diff --git a/GoogleCardboardIOS/launch.xib b/GoogleCardboardIOS/NOMADVRIOS/launch.xib
similarity index 100%
rename from GoogleCardboardIOS/launch.xib
rename to GoogleCardboardIOS/NOMADVRIOS/launch.xib
diff --git a/GoogleCardboardIOS/main.m b/GoogleCardboardIOS/NOMADVRIOS/main.m
similarity index 100%
rename from GoogleCardboardIOS/main.m
rename to GoogleCardboardIOS/NOMADVRIOS/main.m
diff --git a/GoogleCardboardIOS/treasure_hunt_renderer.h b/GoogleCardboardIOS/NOMADVRIOS/treasure_hunt_renderer.h
similarity index 93%
rename from GoogleCardboardIOS/treasure_hunt_renderer.h
rename to GoogleCardboardIOS/NOMADVRIOS/treasure_hunt_renderer.h
index 466c976a8a56cc320dad1e5d22d526caaeb4949c..0ed09c2c2ed8b2fc6b8a212df7674ec4aaf0e0d6 100644
--- a/GoogleCardboardIOS/treasure_hunt_renderer.h
+++ b/GoogleCardboardIOS/NOMADVRIOS/treasure_hunt_renderer.h
@@ -20,6 +20,9 @@
 #import <OpenGLES/ES3/gl.h>
 #import <OpenGLES/ES3/glext.h>
 
+//https://www.raywenderlich.com/66532/ios-7-game-controller-tutorial
+#include "GameController/GameController.h"
+
 #include <memory>
 #include <string>
 #include <thread>  // NOLINT
@@ -45,6 +48,10 @@ class TreasureHuntRenderer {
    */
   ~TreasureHuntRenderer();
 
+    
+    void setConfigFile (NSString * filename);
+
+    
   /**
    * Initialize any GL-related objects. This should be called on the rendering
    * thread with a valid GL context.
@@ -71,7 +78,11 @@ class TreasureHuntRenderer {
    */
   void OnResume();
 
+    void keypress (int k);
+
  private:
+  NSArray<GCController *> *controllers=nullptr;
+    
   int CreateTexture(int width, int height, int textureFormat, int textureType);
 
   /**
@@ -106,7 +117,7 @@ class TreasureHuntRenderer {
   gvr::BufferViewport scratch_viewport_;
 
   gvr::Mat4f head_view_;
-  gvr::Mat4f model_cube_;
+  //gvr::Mat4f model_cube_;
   gvr::Mat4f camera_;
   gvr::Mat4f view_;
   gvr::Mat4f modelview_projection_cube_;
@@ -148,8 +159,10 @@ class TreasureHuntRenderer {
     void RenderAtomTrajectories(const gvr::Mat4f eyeViewProjection);
     void RenderIsos(const gvr::Mat4f eyeViewProjection, int curDataPos);
     float UserTranslation[3]={10,0,0};
-    
+    NSString * configfilename=nullptr;
     int error=0;
+    bool openGLIsInitialized=false;
+
 };
 
 #endif  // TREASUREHUNT_APP_SRC_MAIN_JNI_TREASUREHUNTRENDERER_H_  // NOLINT
diff --git a/GoogleCardboardIOS/treasure_hunt_renderer.mm b/GoogleCardboardIOS/NOMADVRIOS/treasure_hunt_renderer.mm
similarity index 95%
rename from GoogleCardboardIOS/treasure_hunt_renderer.mm
rename to GoogleCardboardIOS/NOMADVRIOS/treasure_hunt_renderer.mm
index 83904a7a8e4342dfeebbe0a61d6715bcb112f27e..67c7b1ce509f8390ae5a81c568f2bd9e48a41925 100644
--- a/GoogleCardboardIOS/treasure_hunt_renderer.mm
+++ b/GoogleCardboardIOS/NOMADVRIOS/treasure_hunt_renderer.mm
@@ -14,6 +14,7 @@
  * limitations under the License.
  */
 
+#include "AudioToolbox/AudioToolbox.h"
 #include "treasure_hunt_renderer.h"
 
 #include <assert.h>
@@ -153,7 +154,7 @@ static gvr::Recti CalculatePixelSpaceRect(const gvr::Sizei& texture_size,
       static_cast<int>(rect.bottom), static_cast<int>(rect.top)};
   return result;
 }
-
+    
 static void CheckGLError(const char* label) {
   int gl_error = glGetError();
   if (gl_error != GL_NO_ERROR) {
@@ -164,22 +165,55 @@ static void CheckGLError(const char* label) {
 
 }  // namespace
 
+void TreasureHuntRenderer::setConfigFile (NSString * filename)
+{
+    configfilename=filename;
+    loadConfigFile();
+}
+
+void TreasureHuntRenderer::keypress (int k)
+{
+    switch (k) { //A B C D -> Y A X B
+        //case 'u':
+
+        case 'h':
+            animateMovement=!animateMovement;
+            break;
+        case 'y':
+            animateTimesteps=!animateTimesteps;
+            break;
+        //case 'j':
+            //up down left right
+        case 'w':
+            currentSet++;
+            if (currentSet>TIMESTEPS-1)
+                currentSet=0;
+            break;
+        case 'x':
+            currentSet--;
+            if (currentSet<0)
+                currentSet=TIMESTEPS-1;
+            break;
+        case 'a':
+            currentIso++;
+            if (currentIso>ISOS)
+                currentIso=0;
+            break;
+        case 'd':
+            currentIso--;
+            if (currentIso<0)
+                currentIso=ISOS;
+            break;
+    }
+}
+
 void TreasureHuntRenderer::loadConfigFile(void)
 {
-   //http://www.techotopia.com/index.php/Working_with_Directories_on_iPhone_OS#The_Application_Documents_Directory
-    NSArray *dirPaths;
-    NSString *docsDir;
-    
-    dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
-                                                   NSUserDomainMask, YES);
-    
-    docsDir = [dirPaths objectAtIndex:0];
-    NSFileManager *filemgr = [NSFileManager defaultManager];
+    if (configfilename==nullptr)
+        return;
 
-    if ([filemgr changeCurrentDirectoryPath: docsDir] == NO)
-        NSLog(@"Cannot change current directory");
     
-    if ((error=::loadConfigFile("cytosine.ncfg"))<0) {
+    if ((error=::loadConfigFile(configfilename.UTF8String))<0) {
         if (-100<error) {
             eprintf(loadConfigFileErrors[-error]);
             eprintf("Config file reading error");
@@ -211,13 +245,16 @@ TreasureHuntRenderer::TreasureHuntRenderer(
     : gvr_api_(gvr::GvrApi::WrapNonOwned(gvr_context)),
       scratch_viewport_(gvr_api_->CreateBufferViewport())
 {
-    loadConfigFile();
+    
+    controllers=[GCController controllers];
+    //won't have config file until later
+//    loadConfigFile();
 }
 
 TreasureHuntRenderer::~TreasureHuntRenderer() {}
 
 void TreasureHuntRenderer::InitializeGl() {
-  gvr_api_->InitializeGl();
+    gvr_api_->InitializeGl();
 
     glGenTextures(2, textures);
     glGenTextures(2+ZLAYERS, textDepthPeeling);
@@ -288,9 +325,13 @@ void TreasureHuntRenderer::InitializeGl() {
 
   viewport_list_.reset(new gvr::BufferViewportList(gvr_api_->CreateEmptyBufferViewportList()));
 
+    openGLIsInitialized=true;
 }
 
 void TreasureHuntRenderer::DrawFrame() {
+    if (!openGLIsInitialized)
+        return;
+
   viewport_list_->SetToRecommendedBufferViewports();
     
     if (animateTimesteps) {
@@ -332,8 +373,8 @@ void TreasureHuntRenderer::DrawFrame() {
     }
     
     glEnable(GL_DEPTH_TEST);
-    glEnable(GL_CULL_FACE);
-    glCullFace(GL_FRONT);
+    glDisable(GL_CULL_FACE);
+    //glCullFace(GL_FRONT);
     glDisable(GL_SCISSOR_TEST);
     glDisable(GL_BLEND);
     
@@ -375,6 +416,7 @@ void TreasureHuntRenderer::DrawFrame() {
 
 void TreasureHuntRenderer::OnTriggerEvent() {
     animateMovement=!animateMovement;
+    AudioServicesPlayAlertSound(kSystemSoundID_Vibrate);
 }
 
 void TreasureHuntRenderer::OnPause() {
@@ -520,6 +562,8 @@ void TreasureHuntRenderer::RenderAtoms(const float *m) //m[16]
         LOGW("FIXME, No Tess code for atoms yet!");
         return;
     } else { //no tess
+        if (AtomVAO==nullptr) //not yet loaded
+            return;
         glBindVertexArray(AtomVAO[0]);
         glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, AtomIndices[0]);
         if ((e = glGetError()) != GL_NO_ERROR)
@@ -774,6 +818,7 @@ void TreasureHuntRenderer::DrawEye(gvr::Eye eye, const gvr::Mat4f& view_matrix,
             pixel_rect.right - pixel_rect.left,
             pixel_rect.top - pixel_rect.bottom);
 
+  CheckGLError("Before glClear");  
   glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
   CheckGLError("ColorParam");
 
diff --git a/GoogleCardboardIOS/TreasureHuntNDK.xcworkspace/xcuserdata/lrz.xcuserdatad/UserInterfaceState.xcuserstate b/GoogleCardboardIOS/TreasureHuntNDK.xcworkspace/xcuserdata/lrz.xcuserdatad/UserInterfaceState.xcuserstate
deleted file mode 100644
index 411be43fbe88ef337ca44c97eff976e1fa59a7ef..0000000000000000000000000000000000000000
Binary files a/GoogleCardboardIOS/TreasureHuntNDK.xcworkspace/xcuserdata/lrz.xcuserdatad/UserInterfaceState.xcuserstate and /dev/null differ
diff --git a/GoogleCardboardIOS/TreasureHuntNDK.xcworkspace/xcuserdata/lrz.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/GoogleCardboardIOS/TreasureHuntNDK.xcworkspace/xcuserdata/lrz.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
deleted file mode 100644
index daf0f59e25114fa42b3f957a04120dcbeb802506..0000000000000000000000000000000000000000
--- a/GoogleCardboardIOS/TreasureHuntNDK.xcworkspace/xcuserdata/lrz.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
+++ /dev/null
@@ -1,311 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Bucket
-   type = "0"
-   version = "2.0">
-   <Breakpoints>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "treasure_hunt_renderer.mm"
-            timestampString = "544628855.2832021"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "220"
-            endingLineNumber = "220"
-            landmarkName = "TreasureHuntRenderer::TreasureHuntRenderer( gvr_context* gvr_context)"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "main.m"
-            timestampString = "544465671.0221111"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "21"
-            endingLineNumber = "21"
-            landmarkName = "main()"
-            landmarkType = "9">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "treasure_hunt_renderer.mm"
-            timestampString = "544628855.2832021"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "253"
-            endingLineNumber = "253"
-            landmarkName = "TreasureHuntRenderer::InitializeGl()"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "NOMADVRLib/atomsGL.cpp"
-            timestampString = "544465961.497296"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "58"
-            endingLineNumber = "58"
-            landmarkName = "atomTexture(GLuint t)"
-            landmarkType = "9">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "NOMADVRLib/atomsGL.cpp"
-            timestampString = "544526936.709954"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "60"
-            endingLineNumber = "60"
-            landmarkName = "atomTexture(GLuint t)"
-            landmarkType = "9">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "NOMADVRLib/atomsGL.cpp"
-            timestampString = "544526938.2828521"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "67"
-            endingLineNumber = "67"
-            landmarkName = "atomTexture(GLuint t)"
-            landmarkType = "9">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "NOMADVRLib/atomsGL.cpp"
-            timestampString = "544527787.9424599"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "72"
-            endingLineNumber = "72"
-            landmarkName = "atomTexture(GLuint t)"
-            landmarkType = "9">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "NOMADVRLib/atomsGL.cpp"
-            timestampString = "544527787.9424599"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "77"
-            endingLineNumber = "77"
-            landmarkName = "atomTexture(GLuint t)"
-            landmarkType = "9">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "NOMADVRLib/atomsGL.cpp"
-            timestampString = "544527787.9424599"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "70"
-            endingLineNumber = "70"
-            landmarkName = "atomTexture(GLuint t)"
-            landmarkType = "9">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "treasure_hunt_renderer.mm"
-            timestampString = "544628855.2832021"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "358"
-            endingLineNumber = "358"
-            landmarkName = "TreasureHuntRenderer::DrawFrame()"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "treasure_hunt_renderer.mm"
-            timestampString = "544628855.2832021"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "344"
-            endingLineNumber = "344"
-            landmarkName = "TreasureHuntRenderer::DrawFrame()"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "treasure_hunt_renderer.mm"
-            timestampString = "544628855.2832021"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "214"
-            endingLineNumber = "214"
-            landmarkName = "TreasureHuntRenderer::loadConfigFile(void)"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "treasure_hunt_renderer.mm"
-            timestampString = "544628855.2832021"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "296"
-            endingLineNumber = "296"
-            landmarkName = "TreasureHuntRenderer::InitializeGl()"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "treasure_hunt_renderer.mm"
-            timestampString = "544628855.2832021"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "176"
-            endingLineNumber = "176"
-            landmarkName = "TreasureHuntRenderer::loadConfigFile(void)"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "treasure_hunt_renderer.mm"
-            timestampString = "544628855.2832021"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "179"
-            endingLineNumber = "179"
-            landmarkName = "TreasureHuntRenderer::loadConfigFile(void)"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "treasure_hunt_renderer.mm"
-            timestampString = "544628855.2832021"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "180"
-            endingLineNumber = "180"
-            landmarkName = "TreasureHuntRenderer::loadConfigFile(void)"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "treasure_hunt_renderer.mm"
-            timestampString = "544628855.2832021"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "176"
-            endingLineNumber = "176"
-            landmarkName = "TreasureHuntRenderer::loadConfigFile(void)"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "treasure_hunt_renderer.mm"
-            timestampString = "544628855.2832021"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "170"
-            endingLineNumber = "170"
-            landmarkName = "TreasureHuntRenderer::loadConfigFile(void)"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            shouldBeEnabled = "No"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "treasure_hunt_renderer.mm"
-            timestampString = "544628855.2832021"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "365"
-            endingLineNumber = "365"
-            landmarkName = "TreasureHuntRenderer::DrawFrame()"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-   </Breakpoints>
-</Bucket>
diff --git a/GoogleCardboardIOS/readme.md b/GoogleCardboardIOS/readme.md
new file mode 100644
index 0000000000000000000000000000000000000000..bd1f7ca1fd40749283e681c2bff72624b2c02c47
--- /dev/null
+++ b/GoogleCardboardIOS/readme.md
@@ -0,0 +1,19 @@
+This directory contains the demo for Google Cardboard using Google Cardboard SDK
+for IOS.
+
+Follow https://developers.google.com/vr/develop/ios/get-started to install
+the SDK.
+
+Copy NOMADVRIOS in gvr-ios-sdk/Samples
+Enter gvr-ios-sdk/Samples/NOMADVRIOS and run 
+	pod update
+
+If you get this error
+	[!] Failed to connect to GitHub to update the CocoaPods/Specs specs repo - Please check if you are offline, or that GitHub is down
+follow this:
+	https://stackoverflow.com/questions/38993527/cocoapods-failed-to-connect-to-github-to-update-the-cocoapods-specs-specs-repo
+
+Open Xcode and select NOMADVR.xcworkspace
+Setup Developer Account / Profiles / Code signing
+Compile and run
+
diff --git a/NOMADVRLib/atomsGL.cpp b/NOMADVRLib/atomsGL.cpp
index 9d14ee5c7d6feeb3809424176e47bfe5497c8ff9..bb71a330b47d799d1b79e910f41498e9db69a7f2 100644
--- a/NOMADVRLib/atomsGL.cpp
+++ b/NOMADVRLib/atomsGL.cpp
@@ -56,17 +56,23 @@ GLenum atomTexture(GLuint t)
 		a[(i+atomsInPeriodicTable)*4+3]=extraAtomData[i][3]*atomScaling;
 	}
 	glBindTexture(GL_TEXTURE_2D, t); //atom texture
+    if ((e = glGetError()) != GL_NO_ERROR) {
+        eprintf( "opengl error %d, atomTexture bind\n", e);
+    }
 	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
 	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
 	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
 	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
-#ifdef __APPLE__
-    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, finalatoms, 1, 0, GL_RGBA, GL_FLOAT, a);
-#else
-    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA32F, finalatoms, 1, 0, GL_RGBA, GL_FLOAT, a);
-#endif
+    if ((e = glGetError()) != GL_NO_ERROR) {
+        eprintf( "opengl error %d, atomTexture parameter\n", e);
+    }
 
+    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA32F, finalatoms, 1, 0, GL_RGBA, GL_FLOAT, a);
+    if ((e = glGetError()) != GL_NO_ERROR) {
+        eprintf( "opengl error %d, atomTexture glTexImage2D\n", e);
+    }
 	glBindTexture( GL_TEXTURE_2D, 0 );
+    
 	if ((e = glGetError()) != GL_NO_ERROR) {
 		eprintf( "opengl error %d, atomTexture\n", e);
 	}
diff --git a/README.md b/README.md
index f01302306c369a82f381746d73eb0abcf3eee444..e924d74c0d5f87a272df2f6fe6f495322adab615 100644
--- a/README.md
+++ b/README.md
@@ -9,7 +9,8 @@ Context:
 
 Requirements:
 	-Supported virtual reality hardware: HTC Vive or Oculus Rift, GearVR,
-		Google Cardboard for Android, or the LRZ CAVE environment.
+		Google Cardboard for Android or IOS, or the LRZ CAVE 
+		environment.
 
 Usage Instructions:
 	See https://www.nomad-coe.eu/the-project/graphics/VR-prototype
@@ -18,6 +19,9 @@ Subdirectories:
 	OpenVR: Demos for HTC Vive.
 	OculusMobile: Demos for GearVR.
 	GoogleCardboardAndroid: Demos for Google Cardboard (android)
+	GoogleCardboardIOS: Demo for Google Cardboard (IOS)
+	GoogleCardboard: Common files between Google Cardboard for Android
+		and for IOS
 	CAVE: Demos for LRZ CAVE-like environment (linux)
 
 	NOMADGearVRChooser: Android app to select the dataset for GearVR, which