All Projects → maxxfrazer → Realityui

maxxfrazer / Realityui

Licence: mit
A Swift Package for creating familiar UI Elements and animations in a RealityKit rendered Augmented Reality or Virtual Reality scene.

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Realityui

Hover Ui Kit
Create beautiful user interfaces for immersive VR/AR experiences.
Stars: ✭ 662 (+140.73%)
Mutual labels:  ux, augmented-reality, user-interface, virtual-reality, user-experience
Stereokit
An easy-to-use mixed reality library for building HoloLens and VR applications with C# and OpenXR!
Stars: ✭ 195 (-29.09%)
Mutual labels:  mixed-reality, augmented-reality, virtual-reality, ar
Nextlevel
NextLevel was initally a weekend project that has now grown into a open community of camera platform enthusists. The software provides foundational components for managing media recording, camera interface customization, gestural interaction customization, and image streaming on iOS. The same capabilities can also be found in apps such as Snapchat, Instagram, and Vine.
Stars: ✭ 1,940 (+605.45%)
Mutual labels:  mixed-reality, augmented-reality, arkit, ar
Scenekit Scnline
Draw a tube or thick line in SceneKit
Stars: ✭ 49 (-82.18%)
Mutual labels:  swift-package-manager, swiftpm, augmented-reality, arkit
Mapssdk Unity
This repository contains samples, documentation, and supporting scripts for Maps SDK, a Microsoft Garage project.
Stars: ✭ 307 (+11.64%)
Mutual labels:  3d-graphics, mixed-reality, virtual-reality
Arkit Web
An experimental iOS app for rapidly prototyping ARKit experiences with WebGL.
Stars: ✭ 153 (-44.36%)
Mutual labels:  mixed-reality, augmented-reality, arkit
stardust-SDK
Stardust SDK and sample app for Unity
Stars: ✭ 23 (-91.64%)
Mutual labels:  augmented-reality, ar, arkit
Vircadia
Vircadia open source metaverse platform, based on the former High Fidelity Virtual Reality Platform.
Stars: ✭ 110 (-60%)
Mutual labels:  3d, virtual-reality, ar
Illixr
ILLIXR: Illinois Extended Reality Testbed
Stars: ✭ 33 (-88%)
Mutual labels:  mixed-reality, augmented-reality, ar
Geomapping With Unity Mapbox
Geomap is the virtualization of data that maps a Country. Mapbox Unity SDK gives data(Global map layers of Streets, Buildings, Elev, and Satellite) generating custom 3D worlds for Mobile VR/AR apps.
Stars: ✭ 118 (-57.09%)
Mutual labels:  3d-graphics, augmented-reality, virtual-reality
Three.js
JavaScript 3D Library.
Stars: ✭ 78,237 (+28349.82%)
Mutual labels:  3d, augmented-reality, virtual-reality
awesome-3d
Awesome list of 3D resources. AR/MR/VR is the future, and 3D model is the basics of all of them.
Stars: ✭ 42 (-84.73%)
Mutual labels:  ar, virtual-reality, mixed-reality
lvr
👓 Augmented Reality for everyone - Out of the world experiences
Stars: ✭ 92 (-66.55%)
Mutual labels:  augmented-reality, ar, virtual-reality
GVRSCNRenderer
SceneKit Rendering and ARKit 6DOF Tracking for Google Cardboard
Stars: ✭ 19 (-93.09%)
Mutual labels:  augmented-reality, virtual-reality, arkit
MixedRealityResources
Mixed Reality related resources
Stars: ✭ 190 (-30.91%)
Mutual labels:  augmented-reality, virtual-reality, mixed-reality
Apertusvr
Virtual Reality Software Library
Stars: ✭ 112 (-59.27%)
Mutual labels:  mixed-reality, augmented-reality, virtual-reality
Arkit Unity3d
Access ARKit features like world-tracking, live video rendering, plane estimation and updates, hit-testing API, ambient light estimation, and raw point cloud data.
Stars: ✭ 124 (-54.91%)
Mutual labels:  3d-graphics, augmented-reality, arkit
spark-ar-creators
List of 9500 (and counting) Spark AR Creators. Open an issue or contact me if you want to be added.❤️
Stars: ✭ 122 (-55.64%)
Mutual labels:  augmented-reality, ar, virtual-reality
Realitymixer
Mixed Reality app for iOS
Stars: ✭ 520 (+89.09%)
Mutual labels:  mixed-reality, arkit, virtual-reality
Arpaint
Draw with bare fingers in the air using ARKit
Stars: ✭ 672 (+144.36%)
Mutual labels:  mixed-reality, augmented-reality, arkit

RealityUI

RealityUI is a collection of User Interface classes for RealityKit. The classes included in RealityUI aim to offer familiar User Interface guidelines, but in a 3D setting for Augmented and Virtual Reality through RealityKit.

The User Interface controls in this repository so far are made to be familiar to what people are used to with 2D interfaces, however the plan is to expand the tools on offer to new and unique controls, which are more appropriate for an Augmented Reality and Virtual Reality context.

RealityUI Elements in a RealityKit VR space

Requirements

  • iOS 13 or macOS 10.15
  • Swift 5.2
  • Xcode 11

Content

Installation

Swift Package Manager

Add the URL of this repository to your Xcode 11+ Project under Project > Swift Packages.

https://github.com/maxxfrazer/RealityUI.git

Usage

Add import RealityUI to the top of your swift file to start.

Registering RealityUI Components

All components used in RealityUI must be registered before they are used, simply call RealityUI.registerComponents() anywhere in your app before any classes starting with RUI are initialised to avoid issues with that. For more information on what is meant by registering components see Apple's documentation here.

Activating Gestures

If you plan on using RUISwitch or RUIStepper, then you should at least enable .tap RUISlider uses .pan, but I would just recommend using .all to avoid issues, as these will inevitably move around ad RealityUI develops, and will not interfere with the rest of your RealityKit scene.

RealityUI.enableGestures(.all, on: arView)


Control Entities

By default all RealityUI Entities are quite large. This is used to standardize the sizes so that you always know what to expect. For example, all UI thumbs are spheres with a diameter of 1 meter, which is 1 unit in RealityKit, ± any padding adjustments. All RealityUI Entities face [0, 0, -1] by default. To have them point at the user camera, or .zero, you can use the .look(at:,from:,relativeTo:) method like so: .look(at: .zero, from: [0, 0, 1]). Or if you want it to turn around straight away if you've positioned it at [0, 0, -1], set the orientation to simd_quatf(angle: .pi, axis: [0, 1, 0]). Using the .look() method works here by setting the at: value to the direction the button should be used from.

RUISwitch

RUISwitch is a 3D toggle switch with an on and off state. Default bounding box is 2x1x1m

RUISwitches with and without light responsiveness

More details

RUIStepper

RUIStepper is used to increment or decrement a value. Default bounding box is 2x1x0.25m

RUIStepper with light responsiveness

More details

RUISlider

An interactive track to represent an interpolated value. Default bounding box is 10x1x1m including thumb.

RUISlider with light responsiveness

More details

RUIButton

RUIButton is used to initiate a specified action. The action here will only trigger if the gesture begins on a button, and also ends on the same button. This is similar to the touchUpInside UIControl Event. Default button bounding box before depressing the button into the base is [1, 1, 0.3]

RUIButton with light responsiveness

More details


Gestures

All of the RealityUI Control Entities use custom gestures that aren't standard in RealityKit, but some of them have been isolated so anyone can use them to manipulate their own RealityKit scene.

Turn

Unlock the ability to rotate a RealityKit entity with just one finger.

Turning key

More details

Tap

Create an object in your RealityKit scene with an action, and it will automatically be picked up whenever the user taps on it!

No Gif for this one, but check out RealityUI Gestures wiki to see how to add HasClick to an entity in your application.


Animations

There aren't many animations added by default to RealityKit, especially none that you can set to repeat. See the wiki page on how to use these animations.

Spin

Spin an Entity around an axis easily using ruiSpin.

Spinning Star More details

Shake

Shake an entity to attract attention, or signal something was incorrect.

Shaking Phone Icon More details


Text

It's already possible to place text in RealityKit, but I felt it needed a little upgrade.

With RUIText you can easily create an Entity with the specified text placed with its bounding box centre at the middle of your entity.

Hello Text Hello Text More details


More

More information on everything provided in this Swift Package in the GitHub Wiki, and also the documentation.

Also see the Example Project for iOS in this repository.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].