[
  {
    "path": "Img/.gitignore",
    "content": "\n"
  },
  {
    "path": "OpenvisionOS/AirPodsMax/AirPodsMaxAnimation.swift",
    "content": "//\n//  AirPodsMaxAnimation.swift\n//  OpenvisionOS\n//\n//  Created by Amos Gyamfi on 12.11.2023.\n//\n\nimport SwiftUI\nimport RealityKit\nimport RealityKitContent\n\nstruct AirPodsMaxAnimation: View {\n    var body: some View {\n        NavigationStack {\n            VStack {\n                Model3D(named: \"Airpods_Max_Pink\") { model in\n                     model\n                         .resizable()\n                         .aspectRatio(contentMode: .fit)\n                         .scaleEffect(0.5)\n                         .phaseAnimator([false, true]) { AirPodsMax, threeDYRotate in\n                             AirPodsMax\n                                 .rotation3DEffect(.degrees(threeDYRotate ? 0 : -360 * 5), axis: (x: 0, y: 1, z: 0))\n                         } animation: { threeDYRotate in\n                                 .linear(duration: 5).repeatForever(autoreverses: false)\n                         }\n                 } placeholder: {\n                     ProgressView()\n                 }\n            }\n            .navigationTitle(\"Amos' AirPods Max\")\n            .toolbar {\n                ToolbarItem(placement: .bottomOrnament) {\n                    HStack {\n                        Image(systemName: \"battery.75percent\")\n                            .symbolRenderingMode(.hierarchical)\n                        Text(\"75 %\")\n                    }\n                }\n            }\n        }\n    }\n}\n\n#Preview(windowStyle: .automatic) {\n    AirPodsMaxAnimation()\n}\n"
  },
  {
    "path": "OpenvisionOS/Assets.xcassets/AppIcon.solidimagestack/Back.solidimagestacklayer/Content.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"reality\",\n      \"scale\" : \"2x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenvisionOS/Assets.xcassets/AppIcon.solidimagestack/Back.solidimagestacklayer/Contents.json",
    "content": "{\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenvisionOS/Assets.xcassets/AppIcon.solidimagestack/Contents.json",
    "content": "{\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  },\n  \"layers\" : [\n    {\n      \"filename\" : \"Front.solidimagestacklayer\"\n    },\n    {\n      \"filename\" : \"Middle.solidimagestacklayer\"\n    },\n    {\n      \"filename\" : \"Back.solidimagestacklayer\"\n    }\n  ]\n}\n"
  },
  {
    "path": "OpenvisionOS/Assets.xcassets/AppIcon.solidimagestack/Front.solidimagestacklayer/Content.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"reality\",\n      \"scale\" : \"2x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenvisionOS/Assets.xcassets/AppIcon.solidimagestack/Front.solidimagestacklayer/Contents.json",
    "content": "{\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenvisionOS/Assets.xcassets/AppIcon.solidimagestack/Middle.solidimagestacklayer/Content.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"reality\",\n      \"scale\" : \"2x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenvisionOS/Assets.xcassets/AppIcon.solidimagestack/Middle.solidimagestacklayer/Contents.json",
    "content": "{\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenvisionOS/Assets.xcassets/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "OpenvisionOS/NewYearFireworks/NewYearFireworksTwentyFour.swift",
    "content": "//\n//  NewYearFireworksTwentyFour.swift\n//  OpenvisionOS\n//\n//  Created by Amos Gyamfi on 01.11.2024.\n//\n\nimport SwiftUI\nimport RealityKit\nimport RealityKitContent\n\nstruct NewYearFireworksTwentyFour: View {\n    var body: some View {\n        NavigationStack {\n            VStack {\n                Model3D(named: \"newYear\") { model in\n                     model\n                         .resizable()\n                         .aspectRatio(contentMode: .fit)\n                         .scaleEffect(0.6)\n                         .padding()\n                 } placeholder: {\n                     ProgressView()\n                 }\n            }\n        }\n    }\n}\n\n#Preview(windowStyle: .automatic) {\n    NewYearFireworksTwentyFour()\n}\n"
  },
  {
    "path": "OpenvisionOS/OpenvisionOSApp.swift",
    "content": "//\n//  OpenvisionOSApp.swift\n//  OpenvisionOS\n//\n//  Created by Amos Gyamfi on 12.11.2023.\n//\n\nimport SwiftUI\n\n@main\nstruct OpenvisionOSApp: App {\n    var body: some Scene {\n        WindowGroup {\n            FlowerPotView()\n        }\n        .windowStyle(.plain)\n    }\n}\n"
  },
  {
    "path": "OpenvisionOS/Own3DModel/FlowerPotView.swift",
    "content": "//\n//  FlowerPotView.swift\n//  OpenvisionOS\n//\n//  Created by Amos Gyamfi on 5.1.2024.\n//\n\nimport SwiftUI\nimport RealityKit\nimport RealityKitContent\n\nstruct FlowerPotView: View {\n    \n    var body: some View {\n        ZStack {\n            VStack {\n                Model3D(named: \"pointSparkle\") { model in\n                    model\n                        .resizable()\n                        .aspectRatio(contentMode: .fit)\n                        .scaleEffect(0.2)\n                        .offset(x: -66, y: 200)\n                } placeholder: {\n                    ProgressView()\n                }\n                \n                Model3D(named: \"Flower-Port\") { model in\n                    model\n                        .resizable()\n                        .aspectRatio(contentMode: .fit)\n                } placeholder: {\n                    ProgressView()\n                }\n            }\n            \n            Model3D(named: \"BgSparcle\") { model in\n                model\n                    .resizable()\n                    .scaledToFit()\n                \n            } placeholder: {\n                ProgressView()\n            }\n        }\n        .padding()\n    }\n}\n\n#Preview {\n    FlowerPotView()\n}\n"
  },
  {
    "path": "OpenvisionOS/Preview Content/Preview Assets.xcassets/Contents.json",
    "content": "{\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "OpenvisionOS.xcodeproj/project.pbxproj",
    "content": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 56;\n\tobjects = {\n\n/* Begin PBXBuildFile section */\n\t\t845B542D2B49112600084428 /* NewYearFireworksTwentyFour.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84BD2A282B429191004E72EC /* NewYearFireworksTwentyFour.swift */; };\n\t\t845B542F2B49117200084428 /* FlowerPotView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 846683632B482421005E2879 /* FlowerPotView.swift */; };\n\t\t8464901C2B0067D500418B05 /* RealityKitContent in Frameworks */ = {isa = PBXBuildFile; productRef = 8464901B2B0067D500418B05 /* RealityKitContent */; };\n\t\t8464901E2B0067D500418B05 /* OpenvisionOSApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8464901D2B0067D500418B05 /* OpenvisionOSApp.swift */; };\n\t\t846490202B0067D500418B05 /* AirPodsMaxAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8464901F2B0067D500418B05 /* AirPodsMaxAnimation.swift */; };\n\t\t846490222B0067D900418B05 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 846490212B0067D900418B05 /* Assets.xcassets */; };\n\t\t846490252B0067D900418B05 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 846490242B0067D900418B05 /* Preview Assets.xcassets */; };\n\t\t8464902F2B0067D900418B05 /* OpenvisionOSTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8464902E2B0067D900418B05 /* OpenvisionOSTests.swift */; };\n\t\t846490392B00680800418B05 /* Airpods_Max.usdz in Resources */ = {isa = PBXBuildFile; fileRef = 846490382B00680800418B05 /* Airpods_Max.usdz */; };\n\t\t8464903B2B006E3D00418B05 /* kulaklıksketchfab.usdz in Resources */ = {isa = PBXBuildFile; fileRef = 8464903A2B006E3D00418B05 /* kulaklıksketchfab.usdz */; };\n\t\t8464903D2B006E4900418B05 /* Airpods_Max_Pink.usdz in Resources */ = {isa = PBXBuildFile; fileRef = 8464903C2B006E4900418B05 /* Airpods_Max_Pink.usdz */; };\n\t\t846683642B482421005E2879 /* FlowerPotView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 846683632B482421005E2879 /* FlowerPotView.swift */; };\n\t\t8466836C2B4833A1005E2879 /* Flower-Port.usdz in Resources */ = {isa = PBXBuildFile; fileRef = 8466836B2B4833A1005E2879 /* Flower-Port.usdz */; };\n\t\t8466836D2B4833A1005E2879 /* Flower-Port.usdz in Resources */ = {isa = PBXBuildFile; fileRef = 8466836B2B4833A1005E2879 /* Flower-Port.usdz */; };\n\t\t8466836F2B4833BA005E2879 /* BgSparcle.usdz in Resources */ = {isa = PBXBuildFile; fileRef = 8466836E2B4833BA005E2879 /* BgSparcle.usdz */; };\n\t\t846683702B4833BA005E2879 /* BgSparcle.usdz in Resources */ = {isa = PBXBuildFile; fileRef = 8466836E2B4833BA005E2879 /* BgSparcle.usdz */; };\n\t\t846683722B4833C4005E2879 /* pointSparkle.usdz in Resources */ = {isa = PBXBuildFile; fileRef = 846683712B4833C4005E2879 /* pointSparkle.usdz */; };\n\t\t846683732B4833C4005E2879 /* pointSparkle.usdz in Resources */ = {isa = PBXBuildFile; fileRef = 846683712B4833C4005E2879 /* pointSparkle.usdz */; };\n\t\t84BD2A292B429191004E72EC /* NewYearFireworksTwentyFour.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84BD2A282B429191004E72EC /* NewYearFireworksTwentyFour.swift */; };\n\t\t84BD2A2B2B4291F9004E72EC /* newYear.usdz in Resources */ = {isa = PBXBuildFile; fileRef = 84BD2A2A2B4291F9004E72EC /* newYear.usdz */; };\n\t\t84BD2A2C2B4291F9004E72EC /* newYear.usdz in Resources */ = {isa = PBXBuildFile; fileRef = 84BD2A2A2B4291F9004E72EC /* newYear.usdz */; };\n/* End PBXBuildFile section */\n\n/* Begin PBXContainerItemProxy section */\n\t\t8464902B2B0067D900418B05 /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = 8464900E2B0067D500418B05 /* Project object */;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = 846490152B0067D500418B05;\n\t\t\tremoteInfo = OpenvisionOS;\n\t\t};\n/* End PBXContainerItemProxy section */\n\n/* Begin PBXFileReference section */\n\t\t846490162B0067D500418B05 /* OpenvisionOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = OpenvisionOS.app; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t8464901A2B0067D500418B05 /* RealityKitContent */ = {isa = PBXFileReference; lastKnownFileType = wrapper; path = RealityKitContent; sourceTree = \"<group>\"; };\n\t\t8464901D2B0067D500418B05 /* OpenvisionOSApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenvisionOSApp.swift; sourceTree = \"<group>\"; };\n\t\t8464901F2B0067D500418B05 /* AirPodsMaxAnimation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AirPodsMaxAnimation.swift; sourceTree = \"<group>\"; };\n\t\t846490212B0067D900418B05 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = \"<group>\"; };\n\t\t846490242B0067D900418B05 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = \"Preview Assets.xcassets\"; sourceTree = \"<group>\"; };\n\t\t8464902A2B0067D900418B05 /* OpenvisionOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = OpenvisionOSTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t8464902E2B0067D900418B05 /* OpenvisionOSTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenvisionOSTests.swift; sourceTree = \"<group>\"; };\n\t\t846490382B00680800418B05 /* Airpods_Max.usdz */ = {isa = PBXFileReference; lastKnownFileType = file.usdz; path = Airpods_Max.usdz; sourceTree = \"<group>\"; };\n\t\t8464903A2B006E3D00418B05 /* kulaklıksketchfab.usdz */ = {isa = PBXFileReference; lastKnownFileType = file.usdz; path = \"kulaklıksketchfab.usdz\"; sourceTree = \"<group>\"; };\n\t\t8464903C2B006E4900418B05 /* Airpods_Max_Pink.usdz */ = {isa = PBXFileReference; lastKnownFileType = file.usdz; path = Airpods_Max_Pink.usdz; sourceTree = \"<group>\"; };\n\t\t846683632B482421005E2879 /* FlowerPotView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FlowerPotView.swift; sourceTree = \"<group>\"; };\n\t\t8466836B2B4833A1005E2879 /* Flower-Port.usdz */ = {isa = PBXFileReference; lastKnownFileType = file.usdz; path = \"Flower-Port.usdz\"; sourceTree = \"<group>\"; };\n\t\t8466836E2B4833BA005E2879 /* BgSparcle.usdz */ = {isa = PBXFileReference; lastKnownFileType = file.usdz; path = BgSparcle.usdz; sourceTree = \"<group>\"; };\n\t\t846683712B4833C4005E2879 /* pointSparkle.usdz */ = {isa = PBXFileReference; lastKnownFileType = file.usdz; path = pointSparkle.usdz; sourceTree = \"<group>\"; };\n\t\t84BD2A282B429191004E72EC /* NewYearFireworksTwentyFour.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewYearFireworksTwentyFour.swift; sourceTree = \"<group>\"; };\n\t\t84BD2A2A2B4291F9004E72EC /* newYear.usdz */ = {isa = PBXFileReference; lastKnownFileType = file.usdz; path = newYear.usdz; sourceTree = \"<group>\"; };\n/* End PBXFileReference section */\n\n/* Begin PBXFrameworksBuildPhase section */\n\t\t846490132B0067D500418B05 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t8464901C2B0067D500418B05 /* RealityKitContent in Frameworks */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t846490272B0067D900418B05 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXFrameworksBuildPhase section */\n\n/* Begin PBXGroup section */\n\t\t845B542B2B4910D200084428 /* AirPodsMax */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t846490382B00680800418B05 /* Airpods_Max.usdz */,\n\t\t\t\t8464903C2B006E4900418B05 /* Airpods_Max_Pink.usdz */,\n\t\t\t\t8464903A2B006E3D00418B05 /* kulaklıksketchfab.usdz */,\n\t\t\t\t8464901F2B0067D500418B05 /* AirPodsMaxAnimation.swift */,\n\t\t\t);\n\t\t\tpath = AirPodsMax;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t845B542C2B4910FC00084428 /* NewYearFireworks */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t84BD2A2A2B4291F9004E72EC /* newYear.usdz */,\n\t\t\t\t84BD2A282B429191004E72EC /* NewYearFireworksTwentyFour.swift */,\n\t\t\t);\n\t\t\tpath = NewYearFireworks;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t845B542E2B49113400084428 /* Own3DModel */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t8466836B2B4833A1005E2879 /* Flower-Port.usdz */,\n\t\t\t\t8466836E2B4833BA005E2879 /* BgSparcle.usdz */,\n\t\t\t\t846683712B4833C4005E2879 /* pointSparkle.usdz */,\n\t\t\t\t846683632B482421005E2879 /* FlowerPotView.swift */,\n\t\t\t);\n\t\t\tpath = Own3DModel;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t8464900D2B0067D500418B05 = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t846490182B0067D500418B05 /* OpenvisionOS */,\n\t\t\t\t846490192B0067D500418B05 /* Packages */,\n\t\t\t\t8464902D2B0067D900418B05 /* OpenvisionOSTests */,\n\t\t\t\t846490172B0067D500418B05 /* Products */,\n\t\t\t);\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t846490172B0067D500418B05 /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t846490162B0067D500418B05 /* OpenvisionOS.app */,\n\t\t\t\t8464902A2B0067D900418B05 /* OpenvisionOSTests.xctest */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t846490182B0067D500418B05 /* OpenvisionOS */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t8464901D2B0067D500418B05 /* OpenvisionOSApp.swift */,\n\t\t\t\t845B542B2B4910D200084428 /* AirPodsMax */,\n\t\t\t\t845B542C2B4910FC00084428 /* NewYearFireworks */,\n\t\t\t\t845B542E2B49113400084428 /* Own3DModel */,\n\t\t\t\t846490212B0067D900418B05 /* Assets.xcassets */,\n\t\t\t\t846490232B0067D900418B05 /* Preview Content */,\n\t\t\t);\n\t\t\tpath = OpenvisionOS;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t846490192B0067D500418B05 /* Packages */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t8464901A2B0067D500418B05 /* RealityKitContent */,\n\t\t\t);\n\t\t\tpath = Packages;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t846490232B0067D900418B05 /* Preview Content */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t846490242B0067D900418B05 /* Preview Assets.xcassets */,\n\t\t\t);\n\t\t\tpath = \"Preview Content\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t8464902D2B0067D900418B05 /* OpenvisionOSTests */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t8464902E2B0067D900418B05 /* OpenvisionOSTests.swift */,\n\t\t\t);\n\t\t\tpath = OpenvisionOSTests;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXGroup section */\n\n/* Begin PBXNativeTarget section */\n\t\t846490152B0067D500418B05 /* OpenvisionOS */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 846490322B0067D900418B05 /* Build configuration list for PBXNativeTarget \"OpenvisionOS\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t846490122B0067D500418B05 /* Sources */,\n\t\t\t\t846490132B0067D500418B05 /* Frameworks */,\n\t\t\t\t846490142B0067D500418B05 /* Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = OpenvisionOS;\n\t\t\tpackageProductDependencies = (\n\t\t\t\t8464901B2B0067D500418B05 /* RealityKitContent */,\n\t\t\t);\n\t\t\tproductName = OpenvisionOS;\n\t\t\tproductReference = 846490162B0067D500418B05 /* OpenvisionOS.app */;\n\t\t\tproductType = \"com.apple.product-type.application\";\n\t\t};\n\t\t846490292B0067D900418B05 /* OpenvisionOSTests */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 846490352B0067D900418B05 /* Build configuration list for PBXNativeTarget \"OpenvisionOSTests\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t846490262B0067D900418B05 /* Sources */,\n\t\t\t\t846490272B0067D900418B05 /* Frameworks */,\n\t\t\t\t846490282B0067D900418B05 /* Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t\t8464902C2B0067D900418B05 /* PBXTargetDependency */,\n\t\t\t);\n\t\t\tname = OpenvisionOSTests;\n\t\t\tproductName = OpenvisionOSTests;\n\t\t\tproductReference = 8464902A2B0067D900418B05 /* OpenvisionOSTests.xctest */;\n\t\t\tproductType = \"com.apple.product-type.bundle.unit-test\";\n\t\t};\n/* End PBXNativeTarget section */\n\n/* Begin PBXProject section */\n\t\t8464900E2B0067D500418B05 /* Project object */ = {\n\t\t\tisa = PBXProject;\n\t\t\tattributes = {\n\t\t\t\tBuildIndependentTargetsInParallel = 1;\n\t\t\t\tLastSwiftUpdateCheck = 1500;\n\t\t\t\tLastUpgradeCheck = 1500;\n\t\t\t\tTargetAttributes = {\n\t\t\t\t\t846490152B0067D500418B05 = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 15.0;\n\t\t\t\t\t};\n\t\t\t\t\t846490292B0067D900418B05 = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 15.0;\n\t\t\t\t\t\tTestTargetID = 846490152B0067D500418B05;\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t};\n\t\t\tbuildConfigurationList = 846490112B0067D500418B05 /* Build configuration list for PBXProject \"OpenvisionOS\" */;\n\t\t\tcompatibilityVersion = \"Xcode 14.0\";\n\t\t\tdevelopmentRegion = en;\n\t\t\thasScannedForEncodings = 0;\n\t\t\tknownRegions = (\n\t\t\t\ten,\n\t\t\t\tBase,\n\t\t\t);\n\t\t\tmainGroup = 8464900D2B0067D500418B05;\n\t\t\tproductRefGroup = 846490172B0067D500418B05 /* Products */;\n\t\t\tprojectDirPath = \"\";\n\t\t\tprojectRoot = \"\";\n\t\t\ttargets = (\n\t\t\t\t846490152B0067D500418B05 /* OpenvisionOS */,\n\t\t\t\t846490292B0067D900418B05 /* OpenvisionOSTests */,\n\t\t\t);\n\t\t};\n/* End PBXProject section */\n\n/* Begin PBXResourcesBuildPhase section */\n\t\t846490142B0067D500418B05 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t846490392B00680800418B05 /* Airpods_Max.usdz in Resources */,\n\t\t\t\t8464903B2B006E3D00418B05 /* kulaklıksketchfab.usdz in Resources */,\n\t\t\t\t8466836C2B4833A1005E2879 /* Flower-Port.usdz in Resources */,\n\t\t\t\t846490252B0067D900418B05 /* Preview Assets.xcassets in Resources */,\n\t\t\t\t846490222B0067D900418B05 /* Assets.xcassets in Resources */,\n\t\t\t\t8466836F2B4833BA005E2879 /* BgSparcle.usdz in Resources */,\n\t\t\t\t8464903D2B006E4900418B05 /* Airpods_Max_Pink.usdz in Resources */,\n\t\t\t\t846683722B4833C4005E2879 /* pointSparkle.usdz in Resources */,\n\t\t\t\t84BD2A2B2B4291F9004E72EC /* newYear.usdz in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t846490282B0067D900418B05 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t846683702B4833BA005E2879 /* BgSparcle.usdz in Resources */,\n\t\t\t\t846683732B4833C4005E2879 /* pointSparkle.usdz in Resources */,\n\t\t\t\t84BD2A2C2B4291F9004E72EC /* newYear.usdz in Resources */,\n\t\t\t\t8466836D2B4833A1005E2879 /* Flower-Port.usdz in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXResourcesBuildPhase section */\n\n/* Begin PBXSourcesBuildPhase section */\n\t\t846490122B0067D500418B05 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t846490202B0067D500418B05 /* AirPodsMaxAnimation.swift in Sources */,\n\t\t\t\t84BD2A292B429191004E72EC /* NewYearFireworksTwentyFour.swift in Sources */,\n\t\t\t\t8464901E2B0067D500418B05 /* OpenvisionOSApp.swift in Sources */,\n\t\t\t\t846683642B482421005E2879 /* FlowerPotView.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t846490262B0067D900418B05 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t845B542D2B49112600084428 /* NewYearFireworksTwentyFour.swift in Sources */,\n\t\t\t\t8464902F2B0067D900418B05 /* OpenvisionOSTests.swift in Sources */,\n\t\t\t\t845B542F2B49117200084428 /* FlowerPotView.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXSourcesBuildPhase section */\n\n/* Begin PBXTargetDependency section */\n\t\t8464902C2B0067D900418B05 /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\ttarget = 846490152B0067D500418B05 /* OpenvisionOS */;\n\t\t\ttargetProxy = 8464902B2B0067D900418B05 /* PBXContainerItemProxy */;\n\t\t};\n/* End PBXTargetDependency section */\n\n/* Begin XCBuildConfiguration section */\n\t\t846490302B0067D900418B05 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++20\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_WEAK = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_COMMA = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_STRICT_PROTOTYPES = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = dwarf;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tENABLE_TESTABILITY = YES;\n\t\t\t\tENABLE_USER_SCRIPT_SANDBOXING = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu17;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tGCC_PREPROCESSOR_DEFINITIONS = (\n\t\t\t\t\t\"DEBUG=1\",\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t);\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tLOCALIZATION_PREFERS_STRING_CATALOGS = YES;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;\n\t\t\t\tMTL_FAST_MATH = YES;\n\t\t\t\tONLY_ACTIVE_ARCH = YES;\n\t\t\t\tSDKROOT = xros;\n\t\t\t\tSWIFT_ACTIVE_COMPILATION_CONDITIONS = \"DEBUG $(inherited)\";\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Onone\";\n\t\t\t\tXROS_DEPLOYMENT_TARGET = 1.0;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t846490312B0067D900418B05 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++20\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_WEAK = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_COMMA = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_STRICT_PROTOTYPES = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\n\t\t\t\tENABLE_NS_ASSERTIONS = NO;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tENABLE_USER_SCRIPT_SANDBOXING = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu17;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tLOCALIZATION_PREFERS_STRING_CATALOGS = YES;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\n\t\t\t\tMTL_FAST_MATH = YES;\n\t\t\t\tSDKROOT = xros;\n\t\t\t\tSWIFT_COMPILATION_MODE = wholemodule;\n\t\t\t\tVALIDATE_PRODUCT = YES;\n\t\t\t\tXROS_DEPLOYMENT_TARGET = 1.0;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\t846490332B0067D900418B05 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tCURRENT_PROJECT_VERSION = 1;\n\t\t\t\tDEVELOPMENT_ASSET_PATHS = \"\\\"OpenvisionOS/Preview Content\\\"\";\n\t\t\t\tENABLE_PREVIEWS = YES;\n\t\t\t\tGENERATE_INFOPLIST_FILE = YES;\n\t\t\t\tINFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/Frameworks\",\n\t\t\t\t);\n\t\t\t\tMARKETING_VERSION = 1.0;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.amosgyamfi.OpenvisionOS;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSUPPORTED_PLATFORMS = \"xros xrsimulator\";\n\t\t\t\tSWIFT_EMIT_LOC_STRINGS = YES;\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2,7\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t846490342B0067D900418B05 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tCURRENT_PROJECT_VERSION = 1;\n\t\t\t\tDEVELOPMENT_ASSET_PATHS = \"\\\"OpenvisionOS/Preview Content\\\"\";\n\t\t\t\tENABLE_PREVIEWS = YES;\n\t\t\t\tGENERATE_INFOPLIST_FILE = YES;\n\t\t\t\tINFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/Frameworks\",\n\t\t\t\t);\n\t\t\t\tMARKETING_VERSION = 1.0;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.amosgyamfi.OpenvisionOS;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSUPPORTED_PLATFORMS = \"xros xrsimulator\";\n\t\t\t\tSWIFT_EMIT_LOC_STRINGS = YES;\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2,7\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\t846490362B0067D900418B05 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;\n\t\t\t\tBUNDLE_LOADER = \"$(TEST_HOST)\";\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tCURRENT_PROJECT_VERSION = 1;\n\t\t\t\tGENERATE_INFOPLIST_FILE = YES;\n\t\t\t\tMARKETING_VERSION = 1.0;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.amosgyamfi.OpenvisionOSTests;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSUPPORTED_PLATFORMS = \"xros xrsimulator\";\n\t\t\t\tSWIFT_EMIT_LOC_STRINGS = NO;\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2,7\";\n\t\t\t\tTEST_HOST = \"$(BUILT_PRODUCTS_DIR)/OpenvisionOS.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/OpenvisionOS\";\n\t\t\t\tXROS_DEPLOYMENT_TARGET = 1.0;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t846490372B0067D900418B05 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;\n\t\t\t\tBUNDLE_LOADER = \"$(TEST_HOST)\";\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tCURRENT_PROJECT_VERSION = 1;\n\t\t\t\tGENERATE_INFOPLIST_FILE = YES;\n\t\t\t\tMARKETING_VERSION = 1.0;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.amosgyamfi.OpenvisionOSTests;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSUPPORTED_PLATFORMS = \"xros xrsimulator\";\n\t\t\t\tSWIFT_EMIT_LOC_STRINGS = NO;\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2,7\";\n\t\t\t\tTEST_HOST = \"$(BUILT_PRODUCTS_DIR)/OpenvisionOS.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/OpenvisionOS\";\n\t\t\t\tXROS_DEPLOYMENT_TARGET = 1.0;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n/* End XCBuildConfiguration section */\n\n/* Begin XCConfigurationList section */\n\t\t846490112B0067D500418B05 /* Build configuration list for PBXProject \"OpenvisionOS\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t846490302B0067D900418B05 /* Debug */,\n\t\t\t\t846490312B0067D900418B05 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t846490322B0067D900418B05 /* Build configuration list for PBXNativeTarget \"OpenvisionOS\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t846490332B0067D900418B05 /* Debug */,\n\t\t\t\t846490342B0067D900418B05 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t846490352B0067D900418B05 /* Build configuration list for PBXNativeTarget \"OpenvisionOSTests\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t846490362B0067D900418B05 /* Debug */,\n\t\t\t\t846490372B0067D900418B05 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n/* End XCConfigurationList section */\n\n/* Begin XCSwiftPackageProductDependency section */\n\t\t8464901B2B0067D500418B05 /* RealityKitContent */ = {\n\t\t\tisa = XCSwiftPackageProductDependency;\n\t\t\tproductName = RealityKitContent;\n\t\t};\n/* End XCSwiftPackageProductDependency section */\n\t};\n\trootObject = 8464900E2B0067D500418B05 /* Project object */;\n}\n"
  },
  {
    "path": "OpenvisionOS.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"self:\">\n   </FileRef>\n</Workspace>\n"
  },
  {
    "path": "OpenvisionOS.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>IDEDidComputeMac32BitWarning</key>\n\t<true/>\n</dict>\n</plist>\n"
  },
  {
    "path": "OpenvisionOS.xcodeproj/xcuserdata/amosgyamfi.xcuserdatad/xcschemes/xcschememanagement.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>SchemeUserState</key>\n\t<dict>\n\t\t<key>OpenvisionOS.xcscheme_^#shared#^_</key>\n\t\t<dict>\n\t\t\t<key>orderHint</key>\n\t\t\t<integer>0</integer>\n\t\t</dict>\n\t</dict>\n</dict>\n</plist>\n"
  },
  {
    "path": "OpenvisionOSTests/OpenvisionOSTests.swift",
    "content": "//\n//  OpenvisionOSTests.swift\n//  OpenvisionOSTests\n//\n//  Created by Amos Gyamfi on 12.11.2023.\n//\n\nimport XCTest\n@testable import OpenvisionOS\n\nclass OpenvisionOSTests: XCTestCase {\n\n    override func setUpWithError() throws {\n        // Put setup code here. This method is called before the invocation of each test method in the class.\n    }\n\n    override func tearDownWithError() throws {\n        // Put teardown code here. This method is called after the invocation of each test method in the class.\n    }\n\n    func testExample() throws {\n        // This is an example of a functional test case.\n        // Use XCTAssert and related functions to verify your tests produce the correct results.\n        // Any test you write for XCTest can be annotated as throws and async.\n        // Mark your test throws to produce an unexpected failure when your test encounters an uncaught error.\n        // Mark your test async to allow awaiting for asynchronous code to complete. Check the results with assertions afterwards.\n    }\n\n    func testPerformanceExample() throws {\n        // This is an example of a performance test case.\n        self.measure {\n            // Put the code you want to measure the time of here.\n        }\n    }\n\n}\n"
  },
  {
    "path": "Packages/RealityKitContent/.swiftpm/xcode/xcuserdata/amosgyamfi.xcuserdatad/xcschemes/xcschememanagement.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>SchemeUserState</key>\n\t<dict>\n\t\t<key>RealityKitContent.xcscheme_^#shared#^_</key>\n\t\t<dict>\n\t\t\t<key>orderHint</key>\n\t\t\t<integer>1</integer>\n\t\t</dict>\n\t</dict>\n</dict>\n</plist>\n"
  },
  {
    "path": "Packages/RealityKitContent/Package.realitycomposerpro/ProjectData/main.json",
    "content": "{\n  \"pathsToIds\" : {\n    \"\\/RealityKitContent\\/Sources\\/RealityKitContent\\/RealityKitContent.rkassets\\/GridMaterial.usda\" : \"440DE5B4-E4E4-459B-AABF-9ACE96319272\",\n    \"\\/RealityKitContent\\/Sources\\/RealityKitContent\\/RealityKitContent.rkassets\\/procedural_sphere_grid.usda\" : \"34C460AE-CA1B-4348-BD05-621ACBDFFE97\",\n    \"\\/RealityKitContent\\/Sources\\/RealityKitContent\\/RealityKitContent.rkassets\\/Scene.usda\" : \"0A9B4653-B11E-4D6A-850E-C6FCB621626C\",\n    \"\\/RealityKitContent\\/Sources\\/RealityKitContent\\/RealityKitContent.rkassets\\/Untitled Scene.usda\" : \"03E02005-EFA6-48D6-8A76-05B2822A74E9\",\n    \"RealityKitContent\\/Sources\\/RealityKitContent\\/RealityKitContent.rkassets\\/_GridMaterial.usda\" : \"01A389CE-549D-43D4-8082-422095AD9977\",\n    \"RealityKitContent\\/Sources\\/RealityKitContent\\/RealityKitContent.rkassets\\/_PlainMaterial.usda\" : \"71393687-2933-4D8A-AC10-8E59942BADC1\",\n    \"RealityKitContent\\/Sources\\/RealityKitContent\\/RealityKitContent.rkassets\\/GridMaterial.usda\" : \"FBD8436F-6B8B-4B82-99B5-995D538B4704\",\n    \"RealityKitContent\\/Sources\\/RealityKitContent\\/RealityKitContent.rkassets\\/procedural_sphere_grid.usda\" : \"1CBF3893-ABFD-408C-8B91-045BFD257808\",\n    \"RealityKitContent\\/Sources\\/RealityKitContent\\/RealityKitContent.rkassets\\/Scene.usda\" : \"26DBAE76-5DD8-47B6-A085-1B4ADA111097\",\n    \"RealityKitContent\\/Sources\\/RealityKitContent\\/RealityKitContent.rkassets\\/Untitled Scene.usda\" : \"7EF42796-68EE-4330-954D-0853FBBEB57C\"\n  }\n}"
  },
  {
    "path": "Packages/RealityKitContent/Package.realitycomposerpro/WorkspaceData/SceneMetadataList.json",
    "content": "{\n  \"0A9B4653-B11E-4D6A-850E-C6FCB621626C\" : {\n    \"objectMetadataList\" : [\n      [\n        \"0A9B4653-B11E-4D6A-850E-C6FCB621626C\",\n        \"Root\"\n      ],\n      {\n        \"isExpanded\" : true,\n        \"isLocked\" : false\n      },\n      [\n        \"0A9B4653-B11E-4D6A-850E-C6FCB621626C\",\n        \"Root\",\n        \"Sphere\"\n      ],\n      {\n        \"isExpanded\" : true,\n        \"isLocked\" : false\n      },\n      [\n        \"0A9B4653-B11E-4D6A-850E-C6FCB621626C\",\n        \"Root\",\n        \"GridMaterial\"\n      ],\n      {\n        \"isExpanded\" : true,\n        \"isLocked\" : false\n      }\n    ]\n  },\n  \"01A389CE-549D-43D4-8082-422095AD9977\" : {\n    \"objectMetadataList\" : [\n      [\n        \"01A389CE-549D-43D4-8082-422095AD9977\",\n        \"Root\",\n        \"GridMaterial\"\n      ],\n      {\n        \"isExpanded\" : true,\n        \"isLocked\" : false\n      },\n      [\n        \"01A389CE-549D-43D4-8082-422095AD9977\",\n        \"Root\"\n      ],\n      {\n        \"isExpanded\" : true,\n        \"isLocked\" : false\n      }\n    ]\n  },\n  \"1CBF3893-ABFD-408C-8B91-045BFD257808\" : {\n    \"objectMetadataList\" : [\n\n    ]\n  },\n  \"03E02005-EFA6-48D6-8A76-05B2822A74E9\" : {\n    \"objectMetadataList\" : [\n\n    ]\n  },\n  \"7EF42796-68EE-4330-954D-0853FBBEB57C\" : {\n    \"objectMetadataList\" : [\n\n    ]\n  },\n  \"26DBAE76-5DD8-47B6-A085-1B4ADA111097\" : {\n    \"objectMetadataList\" : [\n      [\n        \"26DBAE76-5DD8-47B6-A085-1B4ADA111097\",\n        \"Root\"\n      ],\n      {\n        \"isExpanded\" : true,\n        \"isLocked\" : false\n      }\n    ]\n  },\n  \"34C460AE-CA1B-4348-BD05-621ACBDFFE97\" : {\n    \"objectMetadataList\" : [\n\n    ]\n  },\n  \"440DE5B4-E4E4-459B-AABF-9ACE96319272\" : {\n    \"objectMetadataList\" : [\n      [\n        \"440DE5B4-E4E4-459B-AABF-9ACE96319272\",\n        \"Root\"\n      ],\n      {\n        \"isExpanded\" : true,\n        \"isLocked\" : false\n      }\n    ]\n  },\n  \"71393687-2933-4D8A-AC10-8E59942BADC1\" : {\n    \"objectMetadataList\" : [\n      [\n        \"71393687-2933-4D8A-AC10-8E59942BADC1\",\n        \"Root\"\n      ],\n      {\n        \"isExpanded\" : true,\n        \"isLocked\" : false\n      }\n    ]\n  },\n  \"FBD8436F-6B8B-4B82-99B5-995D538B4704\" : {\n    \"objectMetadataList\" : [\n      [\n        \"FBD8436F-6B8B-4B82-99B5-995D538B4704\",\n        \"Root\"\n      ],\n      {\n        \"isExpanded\" : true,\n        \"isLocked\" : false\n      }\n    ]\n  }\n}"
  },
  {
    "path": "Packages/RealityKitContent/Package.realitycomposerpro/WorkspaceData/Settings.rcprojectdata",
    "content": "{\n  \"cameraPresets\" : {\n\n  },\n  \"secondaryToolbarData\" : {\n    \"isGridVisible\" : true,\n    \"sceneReverbPreset\" : -1\n  },\n  \"unitDefaults\" : {\n    \"°\" : \"°\",\n    \"kg\" : \"g\",\n    \"m\" : \"cm\",\n    \"m\\/s\" : \"m\\/s\",\n    \"m\\/s²\" : \"m\\/s²\",\n    \"s\" : \"s\"\n  }\n}"
  },
  {
    "path": "Packages/RealityKitContent/Package.realitycomposerpro/WorkspaceData/amosgyamfi.rcuserdata",
    "content": "{\n  \"advancedEditorSelectedIdentifier\" : \"ProjectBrowser\",\n  \"openSceneRelativePaths\" : [\n    \"Scene.usda\"\n  ],\n  \"recentIdentifiers\" : {\n\n  },\n  \"sceneCameraHistory\" : {\n    \"26DBAE76-5DD8-47B6-A085-1B4ADA111097\" : [\n      {\n        \"date\" : 725954100.433521,\n        \"title\" : \"Untitled\",\n        \"transform\" : [\n          1,\n          0,\n          -0,\n          0,\n          -0,\n          0.8660254,\n          -0.5,\n          0,\n          0,\n          0.5,\n          0.8660254,\n          0,\n          0,\n          0.17979166,\n          0.3116083,\n          1\n        ]\n      }\n    ]\n  }\n}"
  },
  {
    "path": "Packages/RealityKitContent/Package.swift",
    "content": "// swift-tools-version:5.9\n// The swift-tools-version declares the minimum version of Swift required to build this package.\n\nimport PackageDescription\n\nlet package = Package(\n    name: \"RealityKitContent\",\n    products: [\n        // Products define the executables and libraries a package produces, and make them visible to other packages.\n        .library(\n            name: \"RealityKitContent\",\n            targets: [\"RealityKitContent\"]),\n    ],\n    dependencies: [\n        // Dependencies declare other packages that this package depends on.\n        // .package(url: /* package url */, from: \"1.0.0\"),\n    ],\n    targets: [\n        // Targets are the basic building blocks of a package. A target can define a module or a test suite.\n        // Targets can depend on other targets in this package, and on products in packages this package depends on.\n        .target(\n            name: \"RealityKitContent\",\n            dependencies: []),\n    ]\n)"
  },
  {
    "path": "Packages/RealityKitContent/README.md",
    "content": "# RealityKitContent\n\nA description of this package."
  },
  {
    "path": "Packages/RealityKitContent/Sources/RealityKitContent/RealityKitContent.rkassets/Scene.usda",
    "content": "#usda 1.0\n(\n    defaultPrim = \"Root\"\n    metersPerUnit = 1\n    upAxis = \"Y\"\n)\n\ndef Xform \"Root\"\n{\n    reorder nameChildren = [\"Sphere\", \"_GridMaterial\", \"_PlainMaterial\"]\n    rel material:binding = None (\n        bindMaterialAs = \"weakerThanDescendants\"\n    )\n\n    def Sphere \"Sphere\" (\n        active = true\n        prepend apiSchemas = [\"MaterialBindingAPI\"]\n    )\n    {\n        rel material:binding = </Root/_PlainMaterial/PlainMaterial> (\n            bindMaterialAs = \"weakerThanDescendants\"\n        )\n        double radius = 0.05\n        quatf xformOp:orient = (1, 0, 0, 0)\n        float3 xformOp:scale = (1, 1, 1)\n        float3 xformOp:translate = (0, 0, 0.0004)\n        uniform token[] xformOpOrder = [\"xformOp:translate\", \"xformOp:orient\", \"xformOp:scale\"]\n\n        def RealityKitComponent \"Collider\"\n        {\n            uint group = 1\n            uniform token info:id = \"RealityKit.Collider\"\n            uint mask = 4294967295\n            token type = \"Default\"\n\n            def RealityKitStruct \"Shape\"\n            {\n                float3 extent = (0.1, 0.1, 0.1)\n                float height = 0.1\n                float radius = 0.05\n                token shapeType = \"Sphere\"\n            }\n        }\n\n        def RealityKitComponent \"InputTarget\"\n        {\n            uniform token info:id = \"RealityKit.InputTarget\"\n        }\n\n        def RealityKitComponent \"VFXEmitter\"\n        {\n            uniform token info:id = \"RealityKit.VFXEmitter\"\n\n            def RealityKitStruct \"currentState\"\n            {\n                token birthDirection = \"Normal\"\n                token birthLocation = \"Surface\"\n                float3 emissionDirection = (0, 0, 0)\n                double emissionDuration = 1\n                double emissionDurationVariation = 0\n                token emitterShape = \"Sphere\"\n                double idleDuration = 0\n                double idleDurationVariation = 0\n                bool isLocal = 0\n                bool isSpawningEnabled = 1\n                bool loops = 1\n                float particleSpeed = 0.06\n                float particleSpeedVariation = 0.04\n                float3 shapeSize = (0.05, 0.05, 0.05)\n                bool spawnInheritParentColor = 1\n                token spawnOccasion = \"OnUpdate\"\n                float spawnSpreadFactor = 0\n                float spawnSpreadFactorVariation = 0\n                float spawnVelocityFactor = 1\n                double warmupDuration = 1.5\n\n                def RealityKitStruct \"mainEmitter\"\n                {\n                    float3 acceleration = (0, 0, 0)\n                    token animationRepeatMode = \"Looping\"\n                    token billboardMode = \"Billboard\"\n                    float birthRate = 40\n                    float birthRateVariation = 0\n                    token blendMode = \"Additive\"\n                    float colorEvolutionPower = 1\n                    int64 columnCount = 4\n                    float dampingFactor = 0.25\n                    float4 endColorA = (1, 0.051991113, 1, 1)\n                    float4 endColorB = (0, 0.98059916, 1, 1)\n                    float frameRate = 30\n                    float frameRateVariation = 0\n                    int64 initialFrame = 0\n                    int64 initialFrameVariation = 2\n                    bool isAnimated = 1\n                    bool isLightingEnabled = 0\n                    float noiseAnimationSpeed = 1\n                    float noiseScale = 1\n                    float noiseStrength = 0.1\n                    token opacityOverLife = \"GradualFadeInOut\"\n                    float particleAngle = 0\n                    float particleAngleVariation = 0.5\n                    float particleAngularVelocity = 0.25\n                    float particleAngularVelocityVariation = 0.5\n                    asset particleImage = @ParticleEmitterPresetTextures/twinkle.exr@\n                    double particleLifeSpan = 1\n                    double particleLifeSpanVariation = 0.2\n                    float particleMass = 1\n                    float particleMassVariation = 0.2\n                    float particleSize = 0.05\n                    float particleSizeVariation = 0.004\n                    float3 radialGravityCenter = (1, 1, 0)\n                    float radialGravityStrength = 0\n                    int64 rowCount = 4\n                    float sizeMultiplierAtEndOfLifespan = 0.35\n                    float sizeMultiplierAtEndOfLifespanPower = 3\n                    token sortOrder = \"IncreasingDepth\"\n                    float spreadingAngle = 0\n                    float4 startColorA = (1, 0.051991113, 1, 1)\n                    float4 startColorB = (0.9986965, 0.9674097, 0, 1)\n                    float stretchFactor = 0\n                    bool useEndColor = 1\n                    bool useEndColorRange = 1\n                    bool useStartColorRange = 1\n                    float3 vortexDirection = (0, 1, 0)\n                    float vortexStrength = 0\n                }\n\n                def RealityKitStruct \"spawnedEmitter\"\n                {\n                    float3 acceleration = (0, -0.04, 0)\n                    token animationRepeatMode = \"AutoReverse\"\n                    token billboardMode = \"Billboard\"\n                    float birthRate = 25\n                    float birthRateVariation = 0\n                    token blendMode = \"Additive\"\n                    float colorEvolutionPower = 0\n                    int64 columnCount = 4\n                    float dampingFactor = 3\n                    float4 endColorA = (0, 0.98059916, 1, 1)\n                    float4 endColorB = (1, 0.051991113, 1, 1)\n                    float frameRate = 24\n                    float frameRateVariation = 0\n                    int64 initialFrame = 2\n                    int64 initialFrameVariation = 4\n                    bool isAnimated = 1\n                    bool isLightingEnabled = 0\n                    float noiseAnimationSpeed = 0.25\n                    float noiseScale = 1\n                    float noiseStrength = 0.1\n                    token opacityOverLife = \"GradualFadeInOut\"\n                    float particleAngle = 0.745\n                    float particleAngleVariation = 0.25\n                    float particleAngularVelocity = 0.25\n                    float particleAngularVelocityVariation = 0\n                    asset particleImage = @ParticleEmitterPresetTextures/twinkle.exr@\n                    double particleLifeSpan = 0.75\n                    double particleLifeSpanVariation = 0.25\n                    float particleMass = 1\n                    float particleMassVariation = 2\n                    float particleSize = 0.02\n                    float particleSizeVariation = 0.004\n                    float3 radialGravityCenter = (0, 0, 0)\n                    float radialGravityStrength = 0\n                    int64 rowCount = 4\n                    float sizeMultiplierAtEndOfLifespan = 0\n                    float sizeMultiplierAtEndOfLifespanPower = 1\n                    token sortOrder = \"IncreasingID\"\n                    float spreadingAngle = 0\n                    float4 startColorA = (1, 0.051991113, 1, 0.04)\n                    float4 startColorB = (0, 0.98059916, 1, 0.04)\n                    float stretchFactor = 0\n                    bool useEndColor = 0\n                    bool useEndColorRange = 1\n                    bool useStartColorRange = 1\n                    float3 vortexDirection = (0, 1, 0)\n                    float vortexStrength = 0\n                }\n            }\n        }\n    }\n\n    def \"_PlainMaterial\" (\n        active = true\n        prepend references = @_PlainMaterial.usda@\n    )\n    {\n        float3 xformOp:scale = (1, 1, 1)\n        uniform token[] xformOpOrder = [\"xformOp:translate\", \"xformOp:orient\", \"xformOp:scale\"]\n    }\n}\n\n"
  },
  {
    "path": "Packages/RealityKitContent/Sources/RealityKitContent/RealityKitContent.rkassets/_PlainMaterial.usda",
    "content": "#usda 1.0\n(\n    defaultPrim = \"Root\"\n    metersPerUnit = 1\n    upAxis = \"Y\"\n)\n\ndef Xform \"Root\"\n{\n    def Material \"PlainMaterial\"\n    {\n        token outputs:mtlx:surface\n        token outputs:realitykit:vertex\n        prepend token outputs:surface.connect = </Root/PlainMaterial/UsdPreviewSurface.outputs:surface>\n        float2 ui:nodegraph:realitykit:subgraphOutputs:pos = (358.25, 99.5)\n        float2 ui:nodegraph:realitykit:subgraphOutputs:size = (181.5, 99)\n\n        def Shader \"MaterialXPreviewSurface\"\n        {\n            uniform token info:id = \"ND_UsdPreviewSurface_surfaceshader\"\n            token outputs:out\n            float2 ui:nodegraph:node:pos = (103.75, 99.5)\n            float2 ui:nodegraph:node:size = (207.5, 199)\n        }\n\n        def Shader \"UsdPreviewSurface\"\n        {\n            uniform token info:id = \"UsdPreviewSurface\"\n            color3f inputs:diffuseColor = (0.89737034, 0.89737034, 0.89737034) (\n                colorSpace = \"Input - Texture - sRGB - sRGB\"\n            )\n            float inputs:metallic = 0.15\n            float inputs:roughness = 0.5\n            token outputs:surface\n        }\n    }\n}\n\n"
  },
  {
    "path": "Packages/RealityKitContent/Sources/RealityKitContent/RealityKitContent.swift",
    "content": "import Foundation\n\n/// Bundle for the RealityKitContent project\npublic let realityKitContentBundle = Bundle.module\n"
  },
  {
    "path": "README.md",
    "content": "# Open visionOS: Animations and UI Designs\n## visionOS animations and UI designs built with SwiftUI. Check out the [Xcode project](https://github.com/amosgyamfi/OpenvisionOS/tree/main/OpenvisionOS) for specific SwiftUI animations and designs\n\n### Hello lettering animation\n![Hello lettering animation](Img/AppleHelloLetteringAnimation.gif)\n---\n\n### Vision Pro 3D rotation \n![Vision Pro 3D rotation](Img/3dObjectsInvisionOS.gif)\n---\n\n### Freeform drawing with PencilKit \n![PencilKit  drawing](Img/visionDrawFinal.gif)\n---\n\n### 3D rotation animation: Using Model3D, .rotation3DEffect, and .phaseAnimator\n![3D rotation animation](https://github.com/amosgyamfi/OpenvisionOS/blob/main/Img/Model3DandRotation.gif)\n---\n\n### Fireworks created with Reality Composer Pro\n![Fireworks ](Img/visionOSFireworks.gif)\n---\n\n### visionSpaces/Audio Room \n![visionSpaces/Audio Room](Img/visionSpaces.gif)\n---\n\n### SwiftUI and visionOS Livetreaming animation \n![SwiftUI and visionOS Livetreaming animation](Img/livestream2.gif)\n---\n\n### Animate bubbles with Phase Animator\n![Phase Animator](Img/phaseAnimator.gif)\n---\n\n\n"
  }
]