Skip to content

This project serves as a demonstration aimed at showcasing a variety of features and APIs related to app development for VisionOS

Notifications You must be signed in to change notification settings

ChiaoteNi/visionOS-demonstrations

Repository files navigation

visionOS demonstrations

  • This project is designed as a demonstration with the purpose of showcasing a diverse range of features and APIs related to app development for VisionOS
  • The content is organized into several distinct parts, each focusing on different aspects. The series will be released incrementally after several iOS@Taipei meetup events.
  • As of now, the project has progressed to Part III.

Part I:

  • There's a Notes.md file that includes the introductions regards to developing the app for the visionOS.
  • Other demonstrations are focused on the features and APIs for the Views and common UIs
    • ToolsView.swift:
      • The demo shows a potential way to create a button group with varying z offset.
      • You can extend the usage to create some control bar that is similar to the native keyboard in VisionOS.
    • WindowBasedDemo:
      • The glass background effect and z-offset are only supported from the visionOS instead of iOS.
      • Therefore, I made this demonstration to show a potential way to apply some features with these case via the ViewModifier.

Part II:

  • Focus on features and APIs related to working with 3D models.
    • Model3DAndRealityViewDemo:
      • This demonstration highlights the differences between Model3D and RealityView.
      • There're 2 previews in this demonstration. The other one is a simple demo about the potential usage for the Model3D since we control it in detail.
    • InteractWithEntityDemo:
      • It shows 2 different ways to add the entities to the RealityView:
        • add the entire scene with all entities inside the scene
        • add entities separately, so we can decide which entities we want to add instead all of them in a usda file
      • It also shows the way how we can interact with entities, and how to define which entity is allowed users to interact with
        • In this part, you'll find out that the venus entity is not interactable. It's because I didn't add the collision component to it intentionally to mention what we should do if we want an entity to be touchable for users.
    • AttachmentDemo:
      • To show how to add an attachment to an entity.
      • Thanks to the discussion from the sharing session, we added a gesture to the entity in this demonstration to check the behavior of attachment. Please try moving the entity, and you'll notice that the attachment moves with it.
    • AnimationDemo:
      • To demonstrate how to apply animation to an entity in RealityView.

Part III

  • Introduce features of 3D space drawing.
    • Create3DPlanesDemo:
      • It's a pre-practice demonstration for the ThreeDimensionCanvasDemo.
      • In this demonstration, I show how to create a plane in visionOS, which is used for making strokes in the subsequent ThreeDimensionCanvasDemo.
      Simplest Plate: Triangle Create a shape with triangles
      Screenshot 2023-11-05 at 7 38 14 AM Screenshot 2023-11-05 at 7 38 49 AM
    • ThreeDimensionCanvasDemo:
      • Demonstrations for showing how to draw lines and points in a spatial space, which include:
        • Create an entity without a USDZ file
        • SpatialEventGesture
        • Update mesh for an existing entity
        • Crate strokes in a spatial space
      • Also, I showed how to use multiple windows to create a separate control panel
      Points Strokes
      Screenshot 2023-11-05 at 7 44 03 AM Screenshot 2023-11-05 at 7 41 24 AM

Part IV:

  • Immersive Space
    • Building on the implementation from Part III, extend it to use immersive space.
    • Additionally, improve the implementation of rendering the stroke in the Part IV demonstration.
ImmersiveSpace.mov

About

This project serves as a demonstration aimed at showcasing a variety of features and APIs related to app development for VisionOS

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages