├── .DS_Store ├── Img ├── .gitignore ├── 3dObjectsInvisionOS.gif ├── AppleHelloLetteringAnimation.gif ├── Model3DandRotation.gif ├── livestream2.gif ├── phaseAnimator.gif ├── visionDrawFinal.gif ├── visionOSFireworks.gif └── visionSpaces.gif ├── OpenvisionOS.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ ├── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── xcuserdata │ │ └── amosgyamfi.xcuserdatad │ │ └── UserInterfaceState.xcuserstate └── xcuserdata │ └── amosgyamfi.xcuserdatad │ └── xcschemes │ └── xcschememanagement.plist ├── OpenvisionOS ├── AirPodsMax │ ├── AirPodsMaxAnimation.swift │ ├── Airpods_Max.usdz │ ├── Airpods_Max_Pink.usdz │ └── kulaklıksketchfab.usdz ├── Assets.xcassets │ ├── AppIcon.solidimagestack │ │ ├── Back.solidimagestacklayer │ │ │ ├── Content.imageset │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ ├── Contents.json │ │ ├── Front.solidimagestacklayer │ │ │ ├── Content.imageset │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ └── Middle.solidimagestacklayer │ │ │ ├── Content.imageset │ │ │ └── Contents.json │ │ │ └── Contents.json │ └── Contents.json ├── NewYearFireworks │ ├── NewYearFireworksTwentyFour.swift │ └── newYear.usdz ├── OpenvisionOSApp.swift ├── Own3DModel │ ├── BgSparcle.usdz │ ├── Flower-Port.usdz │ ├── FlowerPotView.swift │ └── pointSparkle.usdz └── Preview Content │ └── Preview Assets.xcassets │ └── Contents.json ├── OpenvisionOSTests └── OpenvisionOSTests.swift ├── Packages ├── .DS_Store └── RealityKitContent │ ├── .swiftpm │ └── xcode │ │ └── xcuserdata │ │ └── amosgyamfi.xcuserdatad │ │ └── xcschemes │ │ └── xcschememanagement.plist │ ├── Package.realitycomposerpro │ ├── ProjectData │ │ └── main.json │ └── WorkspaceData │ │ ├── SceneMetadataList.json │ │ ├── Settings.rcprojectdata │ │ └── amosgyamfi.rcuserdata │ ├── Package.swift │ ├── README.md │ └── Sources │ └── RealityKitContent │ ├── RealityKitContent.rkassets │ ├── ParticleEmitterPresetTextures │ │ ├── flaresheet.exr │ │ └── twinkle.exr │ ├── Scene.usda │ └── _PlainMaterial.usda │ └── RealityKitContent.swift └── README.md /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amosgyamfi/OpenvisionOS/547b687f42c638599742e97be6d999f0571b360a/.DS_Store -------------------------------------------------------------------------------- /Img/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Img/3dObjectsInvisionOS.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amosgyamfi/OpenvisionOS/547b687f42c638599742e97be6d999f0571b360a/Img/3dObjectsInvisionOS.gif -------------------------------------------------------------------------------- /Img/AppleHelloLetteringAnimation.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amosgyamfi/OpenvisionOS/547b687f42c638599742e97be6d999f0571b360a/Img/AppleHelloLetteringAnimation.gif -------------------------------------------------------------------------------- /Img/Model3DandRotation.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amosgyamfi/OpenvisionOS/547b687f42c638599742e97be6d999f0571b360a/Img/Model3DandRotation.gif -------------------------------------------------------------------------------- /Img/livestream2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amosgyamfi/OpenvisionOS/547b687f42c638599742e97be6d999f0571b360a/Img/livestream2.gif -------------------------------------------------------------------------------- /Img/phaseAnimator.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amosgyamfi/OpenvisionOS/547b687f42c638599742e97be6d999f0571b360a/Img/phaseAnimator.gif -------------------------------------------------------------------------------- /Img/visionDrawFinal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amosgyamfi/OpenvisionOS/547b687f42c638599742e97be6d999f0571b360a/Img/visionDrawFinal.gif -------------------------------------------------------------------------------- /Img/visionOSFireworks.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amosgyamfi/OpenvisionOS/547b687f42c638599742e97be6d999f0571b360a/Img/visionOSFireworks.gif -------------------------------------------------------------------------------- /Img/visionSpaces.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amosgyamfi/OpenvisionOS/547b687f42c638599742e97be6d999f0571b360a/Img/visionSpaces.gif -------------------------------------------------------------------------------- /OpenvisionOS.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 56; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 845B542D2B49112600084428 /* NewYearFireworksTwentyFour.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84BD2A282B429191004E72EC /* NewYearFireworksTwentyFour.swift */; }; 11 | 845B542F2B49117200084428 /* FlowerPotView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 846683632B482421005E2879 /* FlowerPotView.swift */; }; 12 | 8464901C2B0067D500418B05 /* RealityKitContent in Frameworks */ = {isa = PBXBuildFile; productRef = 8464901B2B0067D500418B05 /* RealityKitContent */; }; 13 | 8464901E2B0067D500418B05 /* OpenvisionOSApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8464901D2B0067D500418B05 /* OpenvisionOSApp.swift */; }; 14 | 846490202B0067D500418B05 /* AirPodsMaxAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8464901F2B0067D500418B05 /* AirPodsMaxAnimation.swift */; }; 15 | 846490222B0067D900418B05 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 846490212B0067D900418B05 /* Assets.xcassets */; }; 16 | 846490252B0067D900418B05 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 846490242B0067D900418B05 /* Preview Assets.xcassets */; }; 17 | 8464902F2B0067D900418B05 /* OpenvisionOSTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8464902E2B0067D900418B05 /* OpenvisionOSTests.swift */; }; 18 | 846490392B00680800418B05 /* Airpods_Max.usdz in Resources */ = {isa = PBXBuildFile; fileRef = 846490382B00680800418B05 /* Airpods_Max.usdz */; }; 19 | 8464903B2B006E3D00418B05 /* kulaklıksketchfab.usdz in Resources */ = {isa = PBXBuildFile; fileRef = 8464903A2B006E3D00418B05 /* kulaklıksketchfab.usdz */; }; 20 | 8464903D2B006E4900418B05 /* Airpods_Max_Pink.usdz in Resources */ = {isa = PBXBuildFile; fileRef = 8464903C2B006E4900418B05 /* Airpods_Max_Pink.usdz */; }; 21 | 846683642B482421005E2879 /* FlowerPotView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 846683632B482421005E2879 /* FlowerPotView.swift */; }; 22 | 8466836C2B4833A1005E2879 /* Flower-Port.usdz in Resources */ = {isa = PBXBuildFile; fileRef = 8466836B2B4833A1005E2879 /* Flower-Port.usdz */; }; 23 | 8466836D2B4833A1005E2879 /* Flower-Port.usdz in Resources */ = {isa = PBXBuildFile; fileRef = 8466836B2B4833A1005E2879 /* Flower-Port.usdz */; }; 24 | 8466836F2B4833BA005E2879 /* BgSparcle.usdz in Resources */ = {isa = PBXBuildFile; fileRef = 8466836E2B4833BA005E2879 /* BgSparcle.usdz */; }; 25 | 846683702B4833BA005E2879 /* BgSparcle.usdz in Resources */ = {isa = PBXBuildFile; fileRef = 8466836E2B4833BA005E2879 /* BgSparcle.usdz */; }; 26 | 846683722B4833C4005E2879 /* pointSparkle.usdz in Resources */ = {isa = PBXBuildFile; fileRef = 846683712B4833C4005E2879 /* pointSparkle.usdz */; }; 27 | 846683732B4833C4005E2879 /* pointSparkle.usdz in Resources */ = {isa = PBXBuildFile; fileRef = 846683712B4833C4005E2879 /* pointSparkle.usdz */; }; 28 | 84BD2A292B429191004E72EC /* NewYearFireworksTwentyFour.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84BD2A282B429191004E72EC /* NewYearFireworksTwentyFour.swift */; }; 29 | 84BD2A2B2B4291F9004E72EC /* newYear.usdz in Resources */ = {isa = PBXBuildFile; fileRef = 84BD2A2A2B4291F9004E72EC /* newYear.usdz */; }; 30 | 84BD2A2C2B4291F9004E72EC /* newYear.usdz in Resources */ = {isa = PBXBuildFile; fileRef = 84BD2A2A2B4291F9004E72EC /* newYear.usdz */; }; 31 | /* End PBXBuildFile section */ 32 | 33 | /* Begin PBXContainerItemProxy section */ 34 | 8464902B2B0067D900418B05 /* PBXContainerItemProxy */ = { 35 | isa = PBXContainerItemProxy; 36 | containerPortal = 8464900E2B0067D500418B05 /* Project object */; 37 | proxyType = 1; 38 | remoteGlobalIDString = 846490152B0067D500418B05; 39 | remoteInfo = OpenvisionOS; 40 | }; 41 | /* End PBXContainerItemProxy section */ 42 | 43 | /* Begin PBXFileReference section */ 44 | 846490162B0067D500418B05 /* OpenvisionOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = OpenvisionOS.app; sourceTree = BUILT_PRODUCTS_DIR; }; 45 | 8464901A2B0067D500418B05 /* RealityKitContent */ = {isa = PBXFileReference; lastKnownFileType = wrapper; path = RealityKitContent; sourceTree = ""; }; 46 | 8464901D2B0067D500418B05 /* OpenvisionOSApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenvisionOSApp.swift; sourceTree = ""; }; 47 | 8464901F2B0067D500418B05 /* AirPodsMaxAnimation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AirPodsMaxAnimation.swift; sourceTree = ""; }; 48 | 846490212B0067D900418B05 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 49 | 846490242B0067D900418B05 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; 50 | 8464902A2B0067D900418B05 /* OpenvisionOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = OpenvisionOSTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 51 | 8464902E2B0067D900418B05 /* OpenvisionOSTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenvisionOSTests.swift; sourceTree = ""; }; 52 | 846490382B00680800418B05 /* Airpods_Max.usdz */ = {isa = PBXFileReference; lastKnownFileType = file.usdz; path = Airpods_Max.usdz; sourceTree = ""; }; 53 | 8464903A2B006E3D00418B05 /* kulaklıksketchfab.usdz */ = {isa = PBXFileReference; lastKnownFileType = file.usdz; path = "kulaklıksketchfab.usdz"; sourceTree = ""; }; 54 | 8464903C2B006E4900418B05 /* Airpods_Max_Pink.usdz */ = {isa = PBXFileReference; lastKnownFileType = file.usdz; path = Airpods_Max_Pink.usdz; sourceTree = ""; }; 55 | 846683632B482421005E2879 /* FlowerPotView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FlowerPotView.swift; sourceTree = ""; }; 56 | 8466836B2B4833A1005E2879 /* Flower-Port.usdz */ = {isa = PBXFileReference; lastKnownFileType = file.usdz; path = "Flower-Port.usdz"; sourceTree = ""; }; 57 | 8466836E2B4833BA005E2879 /* BgSparcle.usdz */ = {isa = PBXFileReference; lastKnownFileType = file.usdz; path = BgSparcle.usdz; sourceTree = ""; }; 58 | 846683712B4833C4005E2879 /* pointSparkle.usdz */ = {isa = PBXFileReference; lastKnownFileType = file.usdz; path = pointSparkle.usdz; sourceTree = ""; }; 59 | 84BD2A282B429191004E72EC /* NewYearFireworksTwentyFour.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewYearFireworksTwentyFour.swift; sourceTree = ""; }; 60 | 84BD2A2A2B4291F9004E72EC /* newYear.usdz */ = {isa = PBXFileReference; lastKnownFileType = file.usdz; path = newYear.usdz; sourceTree = ""; }; 61 | /* End PBXFileReference section */ 62 | 63 | /* Begin PBXFrameworksBuildPhase section */ 64 | 846490132B0067D500418B05 /* Frameworks */ = { 65 | isa = PBXFrameworksBuildPhase; 66 | buildActionMask = 2147483647; 67 | files = ( 68 | 8464901C2B0067D500418B05 /* RealityKitContent in Frameworks */, 69 | ); 70 | runOnlyForDeploymentPostprocessing = 0; 71 | }; 72 | 846490272B0067D900418B05 /* Frameworks */ = { 73 | isa = PBXFrameworksBuildPhase; 74 | buildActionMask = 2147483647; 75 | files = ( 76 | ); 77 | runOnlyForDeploymentPostprocessing = 0; 78 | }; 79 | /* End PBXFrameworksBuildPhase section */ 80 | 81 | /* Begin PBXGroup section */ 82 | 845B542B2B4910D200084428 /* AirPodsMax */ = { 83 | isa = PBXGroup; 84 | children = ( 85 | 846490382B00680800418B05 /* Airpods_Max.usdz */, 86 | 8464903C2B006E4900418B05 /* Airpods_Max_Pink.usdz */, 87 | 8464903A2B006E3D00418B05 /* kulaklıksketchfab.usdz */, 88 | 8464901F2B0067D500418B05 /* AirPodsMaxAnimation.swift */, 89 | ); 90 | path = AirPodsMax; 91 | sourceTree = ""; 92 | }; 93 | 845B542C2B4910FC00084428 /* NewYearFireworks */ = { 94 | isa = PBXGroup; 95 | children = ( 96 | 84BD2A2A2B4291F9004E72EC /* newYear.usdz */, 97 | 84BD2A282B429191004E72EC /* NewYearFireworksTwentyFour.swift */, 98 | ); 99 | path = NewYearFireworks; 100 | sourceTree = ""; 101 | }; 102 | 845B542E2B49113400084428 /* Own3DModel */ = { 103 | isa = PBXGroup; 104 | children = ( 105 | 8466836B2B4833A1005E2879 /* Flower-Port.usdz */, 106 | 8466836E2B4833BA005E2879 /* BgSparcle.usdz */, 107 | 846683712B4833C4005E2879 /* pointSparkle.usdz */, 108 | 846683632B482421005E2879 /* FlowerPotView.swift */, 109 | ); 110 | path = Own3DModel; 111 | sourceTree = ""; 112 | }; 113 | 8464900D2B0067D500418B05 = { 114 | isa = PBXGroup; 115 | children = ( 116 | 846490182B0067D500418B05 /* OpenvisionOS */, 117 | 846490192B0067D500418B05 /* Packages */, 118 | 8464902D2B0067D900418B05 /* OpenvisionOSTests */, 119 | 846490172B0067D500418B05 /* Products */, 120 | ); 121 | sourceTree = ""; 122 | }; 123 | 846490172B0067D500418B05 /* Products */ = { 124 | isa = PBXGroup; 125 | children = ( 126 | 846490162B0067D500418B05 /* OpenvisionOS.app */, 127 | 8464902A2B0067D900418B05 /* OpenvisionOSTests.xctest */, 128 | ); 129 | name = Products; 130 | sourceTree = ""; 131 | }; 132 | 846490182B0067D500418B05 /* OpenvisionOS */ = { 133 | isa = PBXGroup; 134 | children = ( 135 | 8464901D2B0067D500418B05 /* OpenvisionOSApp.swift */, 136 | 845B542B2B4910D200084428 /* AirPodsMax */, 137 | 845B542C2B4910FC00084428 /* NewYearFireworks */, 138 | 845B542E2B49113400084428 /* Own3DModel */, 139 | 846490212B0067D900418B05 /* Assets.xcassets */, 140 | 846490232B0067D900418B05 /* Preview Content */, 141 | ); 142 | path = OpenvisionOS; 143 | sourceTree = ""; 144 | }; 145 | 846490192B0067D500418B05 /* Packages */ = { 146 | isa = PBXGroup; 147 | children = ( 148 | 8464901A2B0067D500418B05 /* RealityKitContent */, 149 | ); 150 | path = Packages; 151 | sourceTree = ""; 152 | }; 153 | 846490232B0067D900418B05 /* Preview Content */ = { 154 | isa = PBXGroup; 155 | children = ( 156 | 846490242B0067D900418B05 /* Preview Assets.xcassets */, 157 | ); 158 | path = "Preview Content"; 159 | sourceTree = ""; 160 | }; 161 | 8464902D2B0067D900418B05 /* OpenvisionOSTests */ = { 162 | isa = PBXGroup; 163 | children = ( 164 | 8464902E2B0067D900418B05 /* OpenvisionOSTests.swift */, 165 | ); 166 | path = OpenvisionOSTests; 167 | sourceTree = ""; 168 | }; 169 | /* End PBXGroup section */ 170 | 171 | /* Begin PBXNativeTarget section */ 172 | 846490152B0067D500418B05 /* OpenvisionOS */ = { 173 | isa = PBXNativeTarget; 174 | buildConfigurationList = 846490322B0067D900418B05 /* Build configuration list for PBXNativeTarget "OpenvisionOS" */; 175 | buildPhases = ( 176 | 846490122B0067D500418B05 /* Sources */, 177 | 846490132B0067D500418B05 /* Frameworks */, 178 | 846490142B0067D500418B05 /* Resources */, 179 | ); 180 | buildRules = ( 181 | ); 182 | dependencies = ( 183 | ); 184 | name = OpenvisionOS; 185 | packageProductDependencies = ( 186 | 8464901B2B0067D500418B05 /* RealityKitContent */, 187 | ); 188 | productName = OpenvisionOS; 189 | productReference = 846490162B0067D500418B05 /* OpenvisionOS.app */; 190 | productType = "com.apple.product-type.application"; 191 | }; 192 | 846490292B0067D900418B05 /* OpenvisionOSTests */ = { 193 | isa = PBXNativeTarget; 194 | buildConfigurationList = 846490352B0067D900418B05 /* Build configuration list for PBXNativeTarget "OpenvisionOSTests" */; 195 | buildPhases = ( 196 | 846490262B0067D900418B05 /* Sources */, 197 | 846490272B0067D900418B05 /* Frameworks */, 198 | 846490282B0067D900418B05 /* Resources */, 199 | ); 200 | buildRules = ( 201 | ); 202 | dependencies = ( 203 | 8464902C2B0067D900418B05 /* PBXTargetDependency */, 204 | ); 205 | name = OpenvisionOSTests; 206 | productName = OpenvisionOSTests; 207 | productReference = 8464902A2B0067D900418B05 /* OpenvisionOSTests.xctest */; 208 | productType = "com.apple.product-type.bundle.unit-test"; 209 | }; 210 | /* End PBXNativeTarget section */ 211 | 212 | /* Begin PBXProject section */ 213 | 8464900E2B0067D500418B05 /* Project object */ = { 214 | isa = PBXProject; 215 | attributes = { 216 | BuildIndependentTargetsInParallel = 1; 217 | LastSwiftUpdateCheck = 1500; 218 | LastUpgradeCheck = 1500; 219 | TargetAttributes = { 220 | 846490152B0067D500418B05 = { 221 | CreatedOnToolsVersion = 15.0; 222 | }; 223 | 846490292B0067D900418B05 = { 224 | CreatedOnToolsVersion = 15.0; 225 | TestTargetID = 846490152B0067D500418B05; 226 | }; 227 | }; 228 | }; 229 | buildConfigurationList = 846490112B0067D500418B05 /* Build configuration list for PBXProject "OpenvisionOS" */; 230 | compatibilityVersion = "Xcode 14.0"; 231 | developmentRegion = en; 232 | hasScannedForEncodings = 0; 233 | knownRegions = ( 234 | en, 235 | Base, 236 | ); 237 | mainGroup = 8464900D2B0067D500418B05; 238 | productRefGroup = 846490172B0067D500418B05 /* Products */; 239 | projectDirPath = ""; 240 | projectRoot = ""; 241 | targets = ( 242 | 846490152B0067D500418B05 /* OpenvisionOS */, 243 | 846490292B0067D900418B05 /* OpenvisionOSTests */, 244 | ); 245 | }; 246 | /* End PBXProject section */ 247 | 248 | /* Begin PBXResourcesBuildPhase section */ 249 | 846490142B0067D500418B05 /* Resources */ = { 250 | isa = PBXResourcesBuildPhase; 251 | buildActionMask = 2147483647; 252 | files = ( 253 | 846490392B00680800418B05 /* Airpods_Max.usdz in Resources */, 254 | 8464903B2B006E3D00418B05 /* kulaklıksketchfab.usdz in Resources */, 255 | 8466836C2B4833A1005E2879 /* Flower-Port.usdz in Resources */, 256 | 846490252B0067D900418B05 /* Preview Assets.xcassets in Resources */, 257 | 846490222B0067D900418B05 /* Assets.xcassets in Resources */, 258 | 8466836F2B4833BA005E2879 /* BgSparcle.usdz in Resources */, 259 | 8464903D2B006E4900418B05 /* Airpods_Max_Pink.usdz in Resources */, 260 | 846683722B4833C4005E2879 /* pointSparkle.usdz in Resources */, 261 | 84BD2A2B2B4291F9004E72EC /* newYear.usdz in Resources */, 262 | ); 263 | runOnlyForDeploymentPostprocessing = 0; 264 | }; 265 | 846490282B0067D900418B05 /* Resources */ = { 266 | isa = PBXResourcesBuildPhase; 267 | buildActionMask = 2147483647; 268 | files = ( 269 | 846683702B4833BA005E2879 /* BgSparcle.usdz in Resources */, 270 | 846683732B4833C4005E2879 /* pointSparkle.usdz in Resources */, 271 | 84BD2A2C2B4291F9004E72EC /* newYear.usdz in Resources */, 272 | 8466836D2B4833A1005E2879 /* Flower-Port.usdz in Resources */, 273 | ); 274 | runOnlyForDeploymentPostprocessing = 0; 275 | }; 276 | /* End PBXResourcesBuildPhase section */ 277 | 278 | /* Begin PBXSourcesBuildPhase section */ 279 | 846490122B0067D500418B05 /* Sources */ = { 280 | isa = PBXSourcesBuildPhase; 281 | buildActionMask = 2147483647; 282 | files = ( 283 | 846490202B0067D500418B05 /* AirPodsMaxAnimation.swift in Sources */, 284 | 84BD2A292B429191004E72EC /* NewYearFireworksTwentyFour.swift in Sources */, 285 | 8464901E2B0067D500418B05 /* OpenvisionOSApp.swift in Sources */, 286 | 846683642B482421005E2879 /* FlowerPotView.swift in Sources */, 287 | ); 288 | runOnlyForDeploymentPostprocessing = 0; 289 | }; 290 | 846490262B0067D900418B05 /* Sources */ = { 291 | isa = PBXSourcesBuildPhase; 292 | buildActionMask = 2147483647; 293 | files = ( 294 | 845B542D2B49112600084428 /* NewYearFireworksTwentyFour.swift in Sources */, 295 | 8464902F2B0067D900418B05 /* OpenvisionOSTests.swift in Sources */, 296 | 845B542F2B49117200084428 /* FlowerPotView.swift in Sources */, 297 | ); 298 | runOnlyForDeploymentPostprocessing = 0; 299 | }; 300 | /* End PBXSourcesBuildPhase section */ 301 | 302 | /* Begin PBXTargetDependency section */ 303 | 8464902C2B0067D900418B05 /* PBXTargetDependency */ = { 304 | isa = PBXTargetDependency; 305 | target = 846490152B0067D500418B05 /* OpenvisionOS */; 306 | targetProxy = 8464902B2B0067D900418B05 /* PBXContainerItemProxy */; 307 | }; 308 | /* End PBXTargetDependency section */ 309 | 310 | /* Begin XCBuildConfiguration section */ 311 | 846490302B0067D900418B05 /* Debug */ = { 312 | isa = XCBuildConfiguration; 313 | buildSettings = { 314 | ALWAYS_SEARCH_USER_PATHS = NO; 315 | ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; 316 | CLANG_ANALYZER_NONNULL = YES; 317 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 318 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; 319 | CLANG_ENABLE_MODULES = YES; 320 | CLANG_ENABLE_OBJC_ARC = YES; 321 | CLANG_ENABLE_OBJC_WEAK = YES; 322 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 323 | CLANG_WARN_BOOL_CONVERSION = YES; 324 | CLANG_WARN_COMMA = YES; 325 | CLANG_WARN_CONSTANT_CONVERSION = YES; 326 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 327 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 328 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 329 | CLANG_WARN_EMPTY_BODY = YES; 330 | CLANG_WARN_ENUM_CONVERSION = YES; 331 | CLANG_WARN_INFINITE_RECURSION = YES; 332 | CLANG_WARN_INT_CONVERSION = YES; 333 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 334 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 335 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 336 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 337 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 338 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 339 | CLANG_WARN_STRICT_PROTOTYPES = YES; 340 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 341 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 342 | CLANG_WARN_UNREACHABLE_CODE = YES; 343 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 344 | COPY_PHASE_STRIP = NO; 345 | DEBUG_INFORMATION_FORMAT = dwarf; 346 | ENABLE_STRICT_OBJC_MSGSEND = YES; 347 | ENABLE_TESTABILITY = YES; 348 | ENABLE_USER_SCRIPT_SANDBOXING = YES; 349 | GCC_C_LANGUAGE_STANDARD = gnu17; 350 | GCC_DYNAMIC_NO_PIC = NO; 351 | GCC_NO_COMMON_BLOCKS = YES; 352 | GCC_OPTIMIZATION_LEVEL = 0; 353 | GCC_PREPROCESSOR_DEFINITIONS = ( 354 | "DEBUG=1", 355 | "$(inherited)", 356 | ); 357 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 358 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 359 | GCC_WARN_UNDECLARED_SELECTOR = YES; 360 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 361 | GCC_WARN_UNUSED_FUNCTION = YES; 362 | GCC_WARN_UNUSED_VARIABLE = YES; 363 | LOCALIZATION_PREFERS_STRING_CATALOGS = YES; 364 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; 365 | MTL_FAST_MATH = YES; 366 | ONLY_ACTIVE_ARCH = YES; 367 | SDKROOT = xros; 368 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; 369 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 370 | XROS_DEPLOYMENT_TARGET = 1.0; 371 | }; 372 | name = Debug; 373 | }; 374 | 846490312B0067D900418B05 /* Release */ = { 375 | isa = XCBuildConfiguration; 376 | buildSettings = { 377 | ALWAYS_SEARCH_USER_PATHS = NO; 378 | ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; 379 | CLANG_ANALYZER_NONNULL = YES; 380 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 381 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; 382 | CLANG_ENABLE_MODULES = YES; 383 | CLANG_ENABLE_OBJC_ARC = YES; 384 | CLANG_ENABLE_OBJC_WEAK = YES; 385 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 386 | CLANG_WARN_BOOL_CONVERSION = YES; 387 | CLANG_WARN_COMMA = YES; 388 | CLANG_WARN_CONSTANT_CONVERSION = YES; 389 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 390 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 391 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 392 | CLANG_WARN_EMPTY_BODY = YES; 393 | CLANG_WARN_ENUM_CONVERSION = YES; 394 | CLANG_WARN_INFINITE_RECURSION = YES; 395 | CLANG_WARN_INT_CONVERSION = YES; 396 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 397 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 398 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 399 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 400 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 401 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 402 | CLANG_WARN_STRICT_PROTOTYPES = YES; 403 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 404 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 405 | CLANG_WARN_UNREACHABLE_CODE = YES; 406 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 407 | COPY_PHASE_STRIP = NO; 408 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 409 | ENABLE_NS_ASSERTIONS = NO; 410 | ENABLE_STRICT_OBJC_MSGSEND = YES; 411 | ENABLE_USER_SCRIPT_SANDBOXING = YES; 412 | GCC_C_LANGUAGE_STANDARD = gnu17; 413 | GCC_NO_COMMON_BLOCKS = YES; 414 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 415 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 416 | GCC_WARN_UNDECLARED_SELECTOR = YES; 417 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 418 | GCC_WARN_UNUSED_FUNCTION = YES; 419 | GCC_WARN_UNUSED_VARIABLE = YES; 420 | LOCALIZATION_PREFERS_STRING_CATALOGS = YES; 421 | MTL_ENABLE_DEBUG_INFO = NO; 422 | MTL_FAST_MATH = YES; 423 | SDKROOT = xros; 424 | SWIFT_COMPILATION_MODE = wholemodule; 425 | VALIDATE_PRODUCT = YES; 426 | XROS_DEPLOYMENT_TARGET = 1.0; 427 | }; 428 | name = Release; 429 | }; 430 | 846490332B0067D900418B05 /* Debug */ = { 431 | isa = XCBuildConfiguration; 432 | buildSettings = { 433 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 434 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; 435 | CODE_SIGN_STYLE = Automatic; 436 | CURRENT_PROJECT_VERSION = 1; 437 | DEVELOPMENT_ASSET_PATHS = "\"OpenvisionOS/Preview Content\""; 438 | ENABLE_PREVIEWS = YES; 439 | GENERATE_INFOPLIST_FILE = YES; 440 | INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; 441 | LD_RUNPATH_SEARCH_PATHS = ( 442 | "$(inherited)", 443 | "@executable_path/Frameworks", 444 | ); 445 | MARKETING_VERSION = 1.0; 446 | PRODUCT_BUNDLE_IDENTIFIER = com.amosgyamfi.OpenvisionOS; 447 | PRODUCT_NAME = "$(TARGET_NAME)"; 448 | SUPPORTED_PLATFORMS = "xros xrsimulator"; 449 | SWIFT_EMIT_LOC_STRINGS = YES; 450 | SWIFT_VERSION = 5.0; 451 | TARGETED_DEVICE_FAMILY = "1,2,7"; 452 | }; 453 | name = Debug; 454 | }; 455 | 846490342B0067D900418B05 /* Release */ = { 456 | isa = XCBuildConfiguration; 457 | buildSettings = { 458 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 459 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; 460 | CODE_SIGN_STYLE = Automatic; 461 | CURRENT_PROJECT_VERSION = 1; 462 | DEVELOPMENT_ASSET_PATHS = "\"OpenvisionOS/Preview Content\""; 463 | ENABLE_PREVIEWS = YES; 464 | GENERATE_INFOPLIST_FILE = YES; 465 | INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; 466 | LD_RUNPATH_SEARCH_PATHS = ( 467 | "$(inherited)", 468 | "@executable_path/Frameworks", 469 | ); 470 | MARKETING_VERSION = 1.0; 471 | PRODUCT_BUNDLE_IDENTIFIER = com.amosgyamfi.OpenvisionOS; 472 | PRODUCT_NAME = "$(TARGET_NAME)"; 473 | SUPPORTED_PLATFORMS = "xros xrsimulator"; 474 | SWIFT_EMIT_LOC_STRINGS = YES; 475 | SWIFT_VERSION = 5.0; 476 | TARGETED_DEVICE_FAMILY = "1,2,7"; 477 | }; 478 | name = Release; 479 | }; 480 | 846490362B0067D900418B05 /* Debug */ = { 481 | isa = XCBuildConfiguration; 482 | buildSettings = { 483 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; 484 | BUNDLE_LOADER = "$(TEST_HOST)"; 485 | CODE_SIGN_STYLE = Automatic; 486 | CURRENT_PROJECT_VERSION = 1; 487 | GENERATE_INFOPLIST_FILE = YES; 488 | MARKETING_VERSION = 1.0; 489 | PRODUCT_BUNDLE_IDENTIFIER = com.amosgyamfi.OpenvisionOSTests; 490 | PRODUCT_NAME = "$(TARGET_NAME)"; 491 | SUPPORTED_PLATFORMS = "xros xrsimulator"; 492 | SWIFT_EMIT_LOC_STRINGS = NO; 493 | SWIFT_VERSION = 5.0; 494 | TARGETED_DEVICE_FAMILY = "1,2,7"; 495 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/OpenvisionOS.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/OpenvisionOS"; 496 | XROS_DEPLOYMENT_TARGET = 1.0; 497 | }; 498 | name = Debug; 499 | }; 500 | 846490372B0067D900418B05 /* Release */ = { 501 | isa = XCBuildConfiguration; 502 | buildSettings = { 503 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; 504 | BUNDLE_LOADER = "$(TEST_HOST)"; 505 | CODE_SIGN_STYLE = Automatic; 506 | CURRENT_PROJECT_VERSION = 1; 507 | GENERATE_INFOPLIST_FILE = YES; 508 | MARKETING_VERSION = 1.0; 509 | PRODUCT_BUNDLE_IDENTIFIER = com.amosgyamfi.OpenvisionOSTests; 510 | PRODUCT_NAME = "$(TARGET_NAME)"; 511 | SUPPORTED_PLATFORMS = "xros xrsimulator"; 512 | SWIFT_EMIT_LOC_STRINGS = NO; 513 | SWIFT_VERSION = 5.0; 514 | TARGETED_DEVICE_FAMILY = "1,2,7"; 515 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/OpenvisionOS.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/OpenvisionOS"; 516 | XROS_DEPLOYMENT_TARGET = 1.0; 517 | }; 518 | name = Release; 519 | }; 520 | /* End XCBuildConfiguration section */ 521 | 522 | /* Begin XCConfigurationList section */ 523 | 846490112B0067D500418B05 /* Build configuration list for PBXProject "OpenvisionOS" */ = { 524 | isa = XCConfigurationList; 525 | buildConfigurations = ( 526 | 846490302B0067D900418B05 /* Debug */, 527 | 846490312B0067D900418B05 /* Release */, 528 | ); 529 | defaultConfigurationIsVisible = 0; 530 | defaultConfigurationName = Release; 531 | }; 532 | 846490322B0067D900418B05 /* Build configuration list for PBXNativeTarget "OpenvisionOS" */ = { 533 | isa = XCConfigurationList; 534 | buildConfigurations = ( 535 | 846490332B0067D900418B05 /* Debug */, 536 | 846490342B0067D900418B05 /* Release */, 537 | ); 538 | defaultConfigurationIsVisible = 0; 539 | defaultConfigurationName = Release; 540 | }; 541 | 846490352B0067D900418B05 /* Build configuration list for PBXNativeTarget "OpenvisionOSTests" */ = { 542 | isa = XCConfigurationList; 543 | buildConfigurations = ( 544 | 846490362B0067D900418B05 /* Debug */, 545 | 846490372B0067D900418B05 /* Release */, 546 | ); 547 | defaultConfigurationIsVisible = 0; 548 | defaultConfigurationName = Release; 549 | }; 550 | /* End XCConfigurationList section */ 551 | 552 | /* Begin XCSwiftPackageProductDependency section */ 553 | 8464901B2B0067D500418B05 /* RealityKitContent */ = { 554 | isa = XCSwiftPackageProductDependency; 555 | productName = RealityKitContent; 556 | }; 557 | /* End XCSwiftPackageProductDependency section */ 558 | }; 559 | rootObject = 8464900E2B0067D500418B05 /* Project object */; 560 | } 561 | -------------------------------------------------------------------------------- /OpenvisionOS.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /OpenvisionOS.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /OpenvisionOS.xcodeproj/project.xcworkspace/xcuserdata/amosgyamfi.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amosgyamfi/OpenvisionOS/547b687f42c638599742e97be6d999f0571b360a/OpenvisionOS.xcodeproj/project.xcworkspace/xcuserdata/amosgyamfi.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /OpenvisionOS.xcodeproj/xcuserdata/amosgyamfi.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | OpenvisionOS.xcscheme_^#shared#^_ 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /OpenvisionOS/AirPodsMax/AirPodsMaxAnimation.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AirPodsMaxAnimation.swift 3 | // OpenvisionOS 4 | // 5 | // Created by Amos Gyamfi on 12.11.2023. 6 | // 7 | 8 | import SwiftUI 9 | import RealityKit 10 | import RealityKitContent 11 | 12 | struct AirPodsMaxAnimation: View { 13 | var body: some View { 14 | NavigationStack { 15 | VStack { 16 | Model3D(named: "Airpods_Max_Pink") { model in 17 | model 18 | .resizable() 19 | .aspectRatio(contentMode: .fit) 20 | .scaleEffect(0.5) 21 | .phaseAnimator([false, true]) { AirPodsMax, threeDYRotate in 22 | AirPodsMax 23 | .rotation3DEffect(.degrees(threeDYRotate ? 0 : -360 * 5), axis: (x: 0, y: 1, z: 0)) 24 | } animation: { threeDYRotate in 25 | .linear(duration: 5).repeatForever(autoreverses: false) 26 | } 27 | } placeholder: { 28 | ProgressView() 29 | } 30 | } 31 | .navigationTitle("Amos' AirPods Max") 32 | .toolbar { 33 | ToolbarItem(placement: .bottomOrnament) { 34 | HStack { 35 | Image(systemName: "battery.75percent") 36 | .symbolRenderingMode(.hierarchical) 37 | Text("75 %") 38 | } 39 | } 40 | } 41 | } 42 | } 43 | } 44 | 45 | #Preview(windowStyle: .automatic) { 46 | AirPodsMaxAnimation() 47 | } 48 | -------------------------------------------------------------------------------- /OpenvisionOS/AirPodsMax/Airpods_Max.usdz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amosgyamfi/OpenvisionOS/547b687f42c638599742e97be6d999f0571b360a/OpenvisionOS/AirPodsMax/Airpods_Max.usdz -------------------------------------------------------------------------------- /OpenvisionOS/AirPodsMax/Airpods_Max_Pink.usdz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amosgyamfi/OpenvisionOS/547b687f42c638599742e97be6d999f0571b360a/OpenvisionOS/AirPodsMax/Airpods_Max_Pink.usdz -------------------------------------------------------------------------------- /OpenvisionOS/AirPodsMax/kulaklıksketchfab.usdz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amosgyamfi/OpenvisionOS/547b687f42c638599742e97be6d999f0571b360a/OpenvisionOS/AirPodsMax/kulaklıksketchfab.usdz -------------------------------------------------------------------------------- /OpenvisionOS/Assets.xcassets/AppIcon.solidimagestack/Back.solidimagestacklayer/Content.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "reality", 5 | "scale" : "2x" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /OpenvisionOS/Assets.xcassets/AppIcon.solidimagestack/Back.solidimagestacklayer/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /OpenvisionOS/Assets.xcassets/AppIcon.solidimagestack/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | }, 6 | "layers" : [ 7 | { 8 | "filename" : "Front.solidimagestacklayer" 9 | }, 10 | { 11 | "filename" : "Middle.solidimagestacklayer" 12 | }, 13 | { 14 | "filename" : "Back.solidimagestacklayer" 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /OpenvisionOS/Assets.xcassets/AppIcon.solidimagestack/Front.solidimagestacklayer/Content.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "reality", 5 | "scale" : "2x" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /OpenvisionOS/Assets.xcassets/AppIcon.solidimagestack/Front.solidimagestacklayer/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /OpenvisionOS/Assets.xcassets/AppIcon.solidimagestack/Middle.solidimagestacklayer/Content.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "reality", 5 | "scale" : "2x" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /OpenvisionOS/Assets.xcassets/AppIcon.solidimagestack/Middle.solidimagestacklayer/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /OpenvisionOS/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /OpenvisionOS/NewYearFireworks/NewYearFireworksTwentyFour.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NewYearFireworksTwentyFour.swift 3 | // OpenvisionOS 4 | // 5 | // Created by Amos Gyamfi on 01.11.2024. 6 | // 7 | 8 | import SwiftUI 9 | import RealityKit 10 | import RealityKitContent 11 | 12 | struct NewYearFireworksTwentyFour: View { 13 | var body: some View { 14 | NavigationStack { 15 | VStack { 16 | Model3D(named: "newYear") { model in 17 | model 18 | .resizable() 19 | .aspectRatio(contentMode: .fit) 20 | .scaleEffect(0.6) 21 | .padding() 22 | } placeholder: { 23 | ProgressView() 24 | } 25 | } 26 | } 27 | } 28 | } 29 | 30 | #Preview(windowStyle: .automatic) { 31 | NewYearFireworksTwentyFour() 32 | } 33 | -------------------------------------------------------------------------------- /OpenvisionOS/NewYearFireworks/newYear.usdz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amosgyamfi/OpenvisionOS/547b687f42c638599742e97be6d999f0571b360a/OpenvisionOS/NewYearFireworks/newYear.usdz -------------------------------------------------------------------------------- /OpenvisionOS/OpenvisionOSApp.swift: -------------------------------------------------------------------------------- 1 | // 2 | // OpenvisionOSApp.swift 3 | // OpenvisionOS 4 | // 5 | // Created by Amos Gyamfi on 12.11.2023. 6 | // 7 | 8 | import SwiftUI 9 | 10 | @main 11 | struct OpenvisionOSApp: App { 12 | var body: some Scene { 13 | WindowGroup { 14 | FlowerPotView() 15 | } 16 | .windowStyle(.plain) 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /OpenvisionOS/Own3DModel/BgSparcle.usdz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amosgyamfi/OpenvisionOS/547b687f42c638599742e97be6d999f0571b360a/OpenvisionOS/Own3DModel/BgSparcle.usdz -------------------------------------------------------------------------------- /OpenvisionOS/Own3DModel/Flower-Port.usdz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amosgyamfi/OpenvisionOS/547b687f42c638599742e97be6d999f0571b360a/OpenvisionOS/Own3DModel/Flower-Port.usdz -------------------------------------------------------------------------------- /OpenvisionOS/Own3DModel/FlowerPotView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // FlowerPotView.swift 3 | // OpenvisionOS 4 | // 5 | // Created by Amos Gyamfi on 5.1.2024. 6 | // 7 | 8 | import SwiftUI 9 | import RealityKit 10 | import RealityKitContent 11 | 12 | struct FlowerPotView: View { 13 | 14 | var body: some View { 15 | ZStack { 16 | VStack { 17 | Model3D(named: "pointSparkle") { model in 18 | model 19 | .resizable() 20 | .aspectRatio(contentMode: .fit) 21 | .scaleEffect(0.2) 22 | .offset(x: -66, y: 200) 23 | } placeholder: { 24 | ProgressView() 25 | } 26 | 27 | Model3D(named: "Flower-Port") { model in 28 | model 29 | .resizable() 30 | .aspectRatio(contentMode: .fit) 31 | } placeholder: { 32 | ProgressView() 33 | } 34 | } 35 | 36 | Model3D(named: "BgSparcle") { model in 37 | model 38 | .resizable() 39 | .scaledToFit() 40 | 41 | } placeholder: { 42 | ProgressView() 43 | } 44 | } 45 | .padding() 46 | } 47 | } 48 | 49 | #Preview { 50 | FlowerPotView() 51 | } 52 | -------------------------------------------------------------------------------- /OpenvisionOS/Own3DModel/pointSparkle.usdz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amosgyamfi/OpenvisionOS/547b687f42c638599742e97be6d999f0571b360a/OpenvisionOS/Own3DModel/pointSparkle.usdz -------------------------------------------------------------------------------- /OpenvisionOS/Preview Content/Preview Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /OpenvisionOSTests/OpenvisionOSTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // OpenvisionOSTests.swift 3 | // OpenvisionOSTests 4 | // 5 | // Created by Amos Gyamfi on 12.11.2023. 6 | // 7 | 8 | import XCTest 9 | @testable import OpenvisionOS 10 | 11 | class OpenvisionOSTests: XCTestCase { 12 | 13 | override func setUpWithError() throws { 14 | // Put setup code here. This method is called before the invocation of each test method in the class. 15 | } 16 | 17 | override func tearDownWithError() throws { 18 | // Put teardown code here. This method is called after the invocation of each test method in the class. 19 | } 20 | 21 | func testExample() throws { 22 | // This is an example of a functional test case. 23 | // Use XCTAssert and related functions to verify your tests produce the correct results. 24 | // Any test you write for XCTest can be annotated as throws and async. 25 | // Mark your test throws to produce an unexpected failure when your test encounters an uncaught error. 26 | // Mark your test async to allow awaiting for asynchronous code to complete. Check the results with assertions afterwards. 27 | } 28 | 29 | func testPerformanceExample() throws { 30 | // This is an example of a performance test case. 31 | self.measure { 32 | // Put the code you want to measure the time of here. 33 | } 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /Packages/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amosgyamfi/OpenvisionOS/547b687f42c638599742e97be6d999f0571b360a/Packages/.DS_Store -------------------------------------------------------------------------------- /Packages/RealityKitContent/.swiftpm/xcode/xcuserdata/amosgyamfi.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | RealityKitContent.xcscheme_^#shared#^_ 8 | 9 | orderHint 10 | 1 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Packages/RealityKitContent/Package.realitycomposerpro/ProjectData/main.json: -------------------------------------------------------------------------------- 1 | { 2 | "pathsToIds" : { 3 | "\/RealityKitContent\/Sources\/RealityKitContent\/RealityKitContent.rkassets\/GridMaterial.usda" : "440DE5B4-E4E4-459B-AABF-9ACE96319272", 4 | "\/RealityKitContent\/Sources\/RealityKitContent\/RealityKitContent.rkassets\/procedural_sphere_grid.usda" : "34C460AE-CA1B-4348-BD05-621ACBDFFE97", 5 | "\/RealityKitContent\/Sources\/RealityKitContent\/RealityKitContent.rkassets\/Scene.usda" : "0A9B4653-B11E-4D6A-850E-C6FCB621626C", 6 | "\/RealityKitContent\/Sources\/RealityKitContent\/RealityKitContent.rkassets\/Untitled Scene.usda" : "03E02005-EFA6-48D6-8A76-05B2822A74E9", 7 | "RealityKitContent\/Sources\/RealityKitContent\/RealityKitContent.rkassets\/_GridMaterial.usda" : "01A389CE-549D-43D4-8082-422095AD9977", 8 | "RealityKitContent\/Sources\/RealityKitContent\/RealityKitContent.rkassets\/_PlainMaterial.usda" : "71393687-2933-4D8A-AC10-8E59942BADC1", 9 | "RealityKitContent\/Sources\/RealityKitContent\/RealityKitContent.rkassets\/GridMaterial.usda" : "FBD8436F-6B8B-4B82-99B5-995D538B4704", 10 | "RealityKitContent\/Sources\/RealityKitContent\/RealityKitContent.rkassets\/procedural_sphere_grid.usda" : "1CBF3893-ABFD-408C-8B91-045BFD257808", 11 | "RealityKitContent\/Sources\/RealityKitContent\/RealityKitContent.rkassets\/Scene.usda" : "26DBAE76-5DD8-47B6-A085-1B4ADA111097", 12 | "RealityKitContent\/Sources\/RealityKitContent\/RealityKitContent.rkassets\/Untitled Scene.usda" : "7EF42796-68EE-4330-954D-0853FBBEB57C" 13 | } 14 | } -------------------------------------------------------------------------------- /Packages/RealityKitContent/Package.realitycomposerpro/WorkspaceData/SceneMetadataList.json: -------------------------------------------------------------------------------- 1 | { 2 | "0A9B4653-B11E-4D6A-850E-C6FCB621626C" : { 3 | "objectMetadataList" : [ 4 | [ 5 | "0A9B4653-B11E-4D6A-850E-C6FCB621626C", 6 | "Root" 7 | ], 8 | { 9 | "isExpanded" : true, 10 | "isLocked" : false 11 | }, 12 | [ 13 | "0A9B4653-B11E-4D6A-850E-C6FCB621626C", 14 | "Root", 15 | "Sphere" 16 | ], 17 | { 18 | "isExpanded" : true, 19 | "isLocked" : false 20 | }, 21 | [ 22 | "0A9B4653-B11E-4D6A-850E-C6FCB621626C", 23 | "Root", 24 | "GridMaterial" 25 | ], 26 | { 27 | "isExpanded" : true, 28 | "isLocked" : false 29 | } 30 | ] 31 | }, 32 | "01A389CE-549D-43D4-8082-422095AD9977" : { 33 | "objectMetadataList" : [ 34 | [ 35 | "01A389CE-549D-43D4-8082-422095AD9977", 36 | "Root", 37 | "GridMaterial" 38 | ], 39 | { 40 | "isExpanded" : true, 41 | "isLocked" : false 42 | }, 43 | [ 44 | "01A389CE-549D-43D4-8082-422095AD9977", 45 | "Root" 46 | ], 47 | { 48 | "isExpanded" : true, 49 | "isLocked" : false 50 | } 51 | ] 52 | }, 53 | "1CBF3893-ABFD-408C-8B91-045BFD257808" : { 54 | "objectMetadataList" : [ 55 | 56 | ] 57 | }, 58 | "03E02005-EFA6-48D6-8A76-05B2822A74E9" : { 59 | "objectMetadataList" : [ 60 | 61 | ] 62 | }, 63 | "7EF42796-68EE-4330-954D-0853FBBEB57C" : { 64 | "objectMetadataList" : [ 65 | 66 | ] 67 | }, 68 | "26DBAE76-5DD8-47B6-A085-1B4ADA111097" : { 69 | "objectMetadataList" : [ 70 | [ 71 | "26DBAE76-5DD8-47B6-A085-1B4ADA111097", 72 | "Root" 73 | ], 74 | { 75 | "isExpanded" : true, 76 | "isLocked" : false 77 | } 78 | ] 79 | }, 80 | "34C460AE-CA1B-4348-BD05-621ACBDFFE97" : { 81 | "objectMetadataList" : [ 82 | 83 | ] 84 | }, 85 | "440DE5B4-E4E4-459B-AABF-9ACE96319272" : { 86 | "objectMetadataList" : [ 87 | [ 88 | "440DE5B4-E4E4-459B-AABF-9ACE96319272", 89 | "Root" 90 | ], 91 | { 92 | "isExpanded" : true, 93 | "isLocked" : false 94 | } 95 | ] 96 | }, 97 | "71393687-2933-4D8A-AC10-8E59942BADC1" : { 98 | "objectMetadataList" : [ 99 | [ 100 | "71393687-2933-4D8A-AC10-8E59942BADC1", 101 | "Root" 102 | ], 103 | { 104 | "isExpanded" : true, 105 | "isLocked" : false 106 | } 107 | ] 108 | }, 109 | "FBD8436F-6B8B-4B82-99B5-995D538B4704" : { 110 | "objectMetadataList" : [ 111 | [ 112 | "FBD8436F-6B8B-4B82-99B5-995D538B4704", 113 | "Root" 114 | ], 115 | { 116 | "isExpanded" : true, 117 | "isLocked" : false 118 | } 119 | ] 120 | } 121 | } -------------------------------------------------------------------------------- /Packages/RealityKitContent/Package.realitycomposerpro/WorkspaceData/Settings.rcprojectdata: -------------------------------------------------------------------------------- 1 | { 2 | "cameraPresets" : { 3 | 4 | }, 5 | "secondaryToolbarData" : { 6 | "isGridVisible" : true, 7 | "sceneReverbPreset" : -1 8 | }, 9 | "unitDefaults" : { 10 | "°" : "°", 11 | "kg" : "g", 12 | "m" : "cm", 13 | "m\/s" : "m\/s", 14 | "m\/s²" : "m\/s²", 15 | "s" : "s" 16 | } 17 | } -------------------------------------------------------------------------------- /Packages/RealityKitContent/Package.realitycomposerpro/WorkspaceData/amosgyamfi.rcuserdata: -------------------------------------------------------------------------------- 1 | { 2 | "advancedEditorSelectedIdentifier" : "ProjectBrowser", 3 | "openSceneRelativePaths" : [ 4 | "Scene.usda" 5 | ], 6 | "recentIdentifiers" : { 7 | 8 | }, 9 | "sceneCameraHistory" : { 10 | "26DBAE76-5DD8-47B6-A085-1B4ADA111097" : [ 11 | { 12 | "date" : 725954100.433521, 13 | "title" : "Untitled", 14 | "transform" : [ 15 | 1, 16 | 0, 17 | -0, 18 | 0, 19 | -0, 20 | 0.8660254, 21 | -0.5, 22 | 0, 23 | 0, 24 | 0.5, 25 | 0.8660254, 26 | 0, 27 | 0, 28 | 0.17979166, 29 | 0.3116083, 30 | 1 31 | ] 32 | } 33 | ] 34 | } 35 | } -------------------------------------------------------------------------------- /Packages/RealityKitContent/Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version:5.9 2 | // The swift-tools-version declares the minimum version of Swift required to build this package. 3 | 4 | import PackageDescription 5 | 6 | let package = Package( 7 | name: "RealityKitContent", 8 | products: [ 9 | // Products define the executables and libraries a package produces, and make them visible to other packages. 10 | .library( 11 | name: "RealityKitContent", 12 | targets: ["RealityKitContent"]), 13 | ], 14 | dependencies: [ 15 | // Dependencies declare other packages that this package depends on. 16 | // .package(url: /* package url */, from: "1.0.0"), 17 | ], 18 | targets: [ 19 | // Targets are the basic building blocks of a package. A target can define a module or a test suite. 20 | // Targets can depend on other targets in this package, and on products in packages this package depends on. 21 | .target( 22 | name: "RealityKitContent", 23 | dependencies: []), 24 | ] 25 | ) -------------------------------------------------------------------------------- /Packages/RealityKitContent/README.md: -------------------------------------------------------------------------------- 1 | # RealityKitContent 2 | 3 | A description of this package. -------------------------------------------------------------------------------- /Packages/RealityKitContent/Sources/RealityKitContent/RealityKitContent.rkassets/ParticleEmitterPresetTextures/flaresheet.exr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amosgyamfi/OpenvisionOS/547b687f42c638599742e97be6d999f0571b360a/Packages/RealityKitContent/Sources/RealityKitContent/RealityKitContent.rkassets/ParticleEmitterPresetTextures/flaresheet.exr -------------------------------------------------------------------------------- /Packages/RealityKitContent/Sources/RealityKitContent/RealityKitContent.rkassets/ParticleEmitterPresetTextures/twinkle.exr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amosgyamfi/OpenvisionOS/547b687f42c638599742e97be6d999f0571b360a/Packages/RealityKitContent/Sources/RealityKitContent/RealityKitContent.rkassets/ParticleEmitterPresetTextures/twinkle.exr -------------------------------------------------------------------------------- /Packages/RealityKitContent/Sources/RealityKitContent/RealityKitContent.rkassets/Scene.usda: -------------------------------------------------------------------------------- 1 | #usda 1.0 2 | ( 3 | defaultPrim = "Root" 4 | metersPerUnit = 1 5 | upAxis = "Y" 6 | ) 7 | 8 | def Xform "Root" 9 | { 10 | reorder nameChildren = ["Sphere", "_GridMaterial", "_PlainMaterial"] 11 | rel material:binding = None ( 12 | bindMaterialAs = "weakerThanDescendants" 13 | ) 14 | 15 | def Sphere "Sphere" ( 16 | active = true 17 | prepend apiSchemas = ["MaterialBindingAPI"] 18 | ) 19 | { 20 | rel material:binding = ( 21 | bindMaterialAs = "weakerThanDescendants" 22 | ) 23 | double radius = 0.05 24 | quatf xformOp:orient = (1, 0, 0, 0) 25 | float3 xformOp:scale = (1, 1, 1) 26 | float3 xformOp:translate = (0, 0, 0.0004) 27 | uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"] 28 | 29 | def RealityKitComponent "Collider" 30 | { 31 | uint group = 1 32 | uniform token info:id = "RealityKit.Collider" 33 | uint mask = 4294967295 34 | token type = "Default" 35 | 36 | def RealityKitStruct "Shape" 37 | { 38 | float3 extent = (0.1, 0.1, 0.1) 39 | float height = 0.1 40 | float radius = 0.05 41 | token shapeType = "Sphere" 42 | } 43 | } 44 | 45 | def RealityKitComponent "InputTarget" 46 | { 47 | uniform token info:id = "RealityKit.InputTarget" 48 | } 49 | 50 | def RealityKitComponent "VFXEmitter" 51 | { 52 | uniform token info:id = "RealityKit.VFXEmitter" 53 | 54 | def RealityKitStruct "currentState" 55 | { 56 | token birthDirection = "Normal" 57 | token birthLocation = "Surface" 58 | float3 emissionDirection = (0, 0, 0) 59 | double emissionDuration = 1 60 | double emissionDurationVariation = 0 61 | token emitterShape = "Sphere" 62 | double idleDuration = 0 63 | double idleDurationVariation = 0 64 | bool isLocal = 0 65 | bool isSpawningEnabled = 1 66 | bool loops = 1 67 | float particleSpeed = 0.06 68 | float particleSpeedVariation = 0.04 69 | float3 shapeSize = (0.05, 0.05, 0.05) 70 | bool spawnInheritParentColor = 1 71 | token spawnOccasion = "OnUpdate" 72 | float spawnSpreadFactor = 0 73 | float spawnSpreadFactorVariation = 0 74 | float spawnVelocityFactor = 1 75 | double warmupDuration = 1.5 76 | 77 | def RealityKitStruct "mainEmitter" 78 | { 79 | float3 acceleration = (0, 0, 0) 80 | token animationRepeatMode = "Looping" 81 | token billboardMode = "Billboard" 82 | float birthRate = 40 83 | float birthRateVariation = 0 84 | token blendMode = "Additive" 85 | float colorEvolutionPower = 1 86 | int64 columnCount = 4 87 | float dampingFactor = 0.25 88 | float4 endColorA = (1, 0.051991113, 1, 1) 89 | float4 endColorB = (0, 0.98059916, 1, 1) 90 | float frameRate = 30 91 | float frameRateVariation = 0 92 | int64 initialFrame = 0 93 | int64 initialFrameVariation = 2 94 | bool isAnimated = 1 95 | bool isLightingEnabled = 0 96 | float noiseAnimationSpeed = 1 97 | float noiseScale = 1 98 | float noiseStrength = 0.1 99 | token opacityOverLife = "GradualFadeInOut" 100 | float particleAngle = 0 101 | float particleAngleVariation = 0.5 102 | float particleAngularVelocity = 0.25 103 | float particleAngularVelocityVariation = 0.5 104 | asset particleImage = @ParticleEmitterPresetTextures/twinkle.exr@ 105 | double particleLifeSpan = 1 106 | double particleLifeSpanVariation = 0.2 107 | float particleMass = 1 108 | float particleMassVariation = 0.2 109 | float particleSize = 0.05 110 | float particleSizeVariation = 0.004 111 | float3 radialGravityCenter = (1, 1, 0) 112 | float radialGravityStrength = 0 113 | int64 rowCount = 4 114 | float sizeMultiplierAtEndOfLifespan = 0.35 115 | float sizeMultiplierAtEndOfLifespanPower = 3 116 | token sortOrder = "IncreasingDepth" 117 | float spreadingAngle = 0 118 | float4 startColorA = (1, 0.051991113, 1, 1) 119 | float4 startColorB = (0.9986965, 0.9674097, 0, 1) 120 | float stretchFactor = 0 121 | bool useEndColor = 1 122 | bool useEndColorRange = 1 123 | bool useStartColorRange = 1 124 | float3 vortexDirection = (0, 1, 0) 125 | float vortexStrength = 0 126 | } 127 | 128 | def RealityKitStruct "spawnedEmitter" 129 | { 130 | float3 acceleration = (0, -0.04, 0) 131 | token animationRepeatMode = "AutoReverse" 132 | token billboardMode = "Billboard" 133 | float birthRate = 25 134 | float birthRateVariation = 0 135 | token blendMode = "Additive" 136 | float colorEvolutionPower = 0 137 | int64 columnCount = 4 138 | float dampingFactor = 3 139 | float4 endColorA = (0, 0.98059916, 1, 1) 140 | float4 endColorB = (1, 0.051991113, 1, 1) 141 | float frameRate = 24 142 | float frameRateVariation = 0 143 | int64 initialFrame = 2 144 | int64 initialFrameVariation = 4 145 | bool isAnimated = 1 146 | bool isLightingEnabled = 0 147 | float noiseAnimationSpeed = 0.25 148 | float noiseScale = 1 149 | float noiseStrength = 0.1 150 | token opacityOverLife = "GradualFadeInOut" 151 | float particleAngle = 0.745 152 | float particleAngleVariation = 0.25 153 | float particleAngularVelocity = 0.25 154 | float particleAngularVelocityVariation = 0 155 | asset particleImage = @ParticleEmitterPresetTextures/twinkle.exr@ 156 | double particleLifeSpan = 0.75 157 | double particleLifeSpanVariation = 0.25 158 | float particleMass = 1 159 | float particleMassVariation = 2 160 | float particleSize = 0.02 161 | float particleSizeVariation = 0.004 162 | float3 radialGravityCenter = (0, 0, 0) 163 | float radialGravityStrength = 0 164 | int64 rowCount = 4 165 | float sizeMultiplierAtEndOfLifespan = 0 166 | float sizeMultiplierAtEndOfLifespanPower = 1 167 | token sortOrder = "IncreasingID" 168 | float spreadingAngle = 0 169 | float4 startColorA = (1, 0.051991113, 1, 0.04) 170 | float4 startColorB = (0, 0.98059916, 1, 0.04) 171 | float stretchFactor = 0 172 | bool useEndColor = 0 173 | bool useEndColorRange = 1 174 | bool useStartColorRange = 1 175 | float3 vortexDirection = (0, 1, 0) 176 | float vortexStrength = 0 177 | } 178 | } 179 | } 180 | } 181 | 182 | def "_PlainMaterial" ( 183 | active = true 184 | prepend references = @_PlainMaterial.usda@ 185 | ) 186 | { 187 | float3 xformOp:scale = (1, 1, 1) 188 | uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"] 189 | } 190 | } 191 | 192 | -------------------------------------------------------------------------------- /Packages/RealityKitContent/Sources/RealityKitContent/RealityKitContent.rkassets/_PlainMaterial.usda: -------------------------------------------------------------------------------- 1 | #usda 1.0 2 | ( 3 | defaultPrim = "Root" 4 | metersPerUnit = 1 5 | upAxis = "Y" 6 | ) 7 | 8 | def Xform "Root" 9 | { 10 | def Material "PlainMaterial" 11 | { 12 | token outputs:mtlx:surface 13 | token outputs:realitykit:vertex 14 | prepend token outputs:surface.connect = 15 | float2 ui:nodegraph:realitykit:subgraphOutputs:pos = (358.25, 99.5) 16 | float2 ui:nodegraph:realitykit:subgraphOutputs:size = (181.5, 99) 17 | 18 | def Shader "MaterialXPreviewSurface" 19 | { 20 | uniform token info:id = "ND_UsdPreviewSurface_surfaceshader" 21 | token outputs:out 22 | float2 ui:nodegraph:node:pos = (103.75, 99.5) 23 | float2 ui:nodegraph:node:size = (207.5, 199) 24 | } 25 | 26 | def Shader "UsdPreviewSurface" 27 | { 28 | uniform token info:id = "UsdPreviewSurface" 29 | color3f inputs:diffuseColor = (0.89737034, 0.89737034, 0.89737034) ( 30 | colorSpace = "Input - Texture - sRGB - sRGB" 31 | ) 32 | float inputs:metallic = 0.15 33 | float inputs:roughness = 0.5 34 | token outputs:surface 35 | } 36 | } 37 | } 38 | 39 | -------------------------------------------------------------------------------- /Packages/RealityKitContent/Sources/RealityKitContent/RealityKitContent.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | /// Bundle for the RealityKitContent project 4 | public let realityKitContentBundle = Bundle.module 5 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Open visionOS: Animations and UI Designs 2 | ## 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 3 | 4 | ### Hello lettering animation 5 | ![Hello lettering animation](Img/AppleHelloLetteringAnimation.gif) 6 | --- 7 | 8 | ### Vision Pro 3D rotation 9 | ![Vision Pro 3D rotation](Img/3dObjectsInvisionOS.gif) 10 | --- 11 | 12 | ### Freeform drawing with PencilKit 13 | ![PencilKit drawing](Img/visionDrawFinal.gif) 14 | --- 15 | 16 | ### 3D rotation animation: Using Model3D, .rotation3DEffect, and .phaseAnimator 17 | ![3D rotation animation](https://github.com/amosgyamfi/OpenvisionOS/blob/main/Img/Model3DandRotation.gif) 18 | --- 19 | 20 | ### Fireworks created with Reality Composer Pro 21 | ![Fireworks ](Img/visionOSFireworks.gif) 22 | --- 23 | 24 | ### visionSpaces/Audio Room 25 | ![visionSpaces/Audio Room](Img/visionSpaces.gif) 26 | --- 27 | 28 | ### SwiftUI and visionOS Livetreaming animation 29 | ![SwiftUI and visionOS Livetreaming animation](Img/livestream2.gif) 30 | --- 31 | 32 | ### Animate bubbles with Phase Animator 33 | ![Phase Animator](Img/phaseAnimator.gif) 34 | --- 35 | 36 | 37 | --------------------------------------------------------------------------------