All Projects → ittybittyapps → ARRecorder

ittybittyapps / ARRecorder

Licence: BSD-3-Clause license
Example of using ARKit's private SPI to record and replay session sensor data

Programming Languages

swift
15916 projects
objective c
16641 projects - #2 most used programming language

Projects that are alternatives of or similar to ARRecorder

cARd
Flip your card with ARKit
Stars: ✭ 22 (-71.43%)
Mutual labels:  augmented-reality, arkit
ARKit-Persistence-Demo
ARKit 2.0 Persistence Demo
Stars: ✭ 15 (-80.52%)
Mutual labels:  augmented-reality, arkit
ARKit-FocusNode
FocusSquare class taken straight from Apple's ARKit examples and packed up for anyone to use with ease.
Stars: ✭ 50 (-35.06%)
Mutual labels:  augmented-reality, arkit
uARKit
No description or website provided.
Stars: ✭ 15 (-80.52%)
Mutual labels:  augmented-reality, arkit
Unity-ARKit-Plugin
Modified plugin source and Add custom ARKit projects implement on Unity
Stars: ✭ 83 (+7.79%)
Mutual labels:  augmented-reality, arkit
PlacenoteSDK-Unity
Placenote SDK and sample app for Unity
Stars: ✭ 78 (+1.3%)
Mutual labels:  augmented-reality, arkit
obj2usdz
🦖 obj2usdz, convert .OBJ files to .USDZ on iOS
Stars: ✭ 56 (-27.27%)
Mutual labels:  augmented-reality, arkit
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 (+61.04%)
Mutual labels:  augmented-reality, arkit
RealityKit-CardFlip
An example app using Apple's new RealityKit framework
Stars: ✭ 86 (+11.69%)
Mutual labels:  augmented-reality, arkit
SketchAR
SketchUp model into ARKit. Use SketchUp home remodel and Apple's ARKit (beta) for augmented reality. Goal: import a model (in this case, a remodel) to overlay onto existing real world that you can walk around and 'experience' and compare.
Stars: ✭ 41 (-46.75%)
Mutual labels:  augmented-reality, arkit
Arkit Web
An experimental iOS app for rapidly prototyping ARKit experiences with WebGL.
Stars: ✭ 153 (+98.7%)
Mutual labels:  augmented-reality, arkit
iOS-ARKit
Basic Concepts and Projects using ARKit on iOS.
Stars: ✭ 18 (-76.62%)
Mutual labels:  augmented-reality, arkit
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 (+2419.48%)
Mutual labels:  augmented-reality, arkit
Pulp-Fiction-ARKit
An experiment using Volume to reconstruct Pulp Fiction's dance scene in Augmented Reality
Stars: ✭ 46 (-40.26%)
Mutual labels:  augmented-reality, arkit
React Native Arkit
React Native binding for iOS ARKit
Stars: ✭ 1,664 (+2061.04%)
Mutual labels:  augmented-reality, arkit
SceneKit-PortalMask
Clean class to create a portal in SceneKit for use in ARKit.
Stars: ✭ 60 (-22.08%)
Mutual labels:  augmented-reality, arkit
Arplayer
Playback videos using ARKit and AVFoundation.
Stars: ✭ 117 (+51.95%)
Mutual labels:  augmented-reality, arkit
Arkit Floorislava
Basic ARKit example that detects planes and makes them lava.
Stars: ✭ 120 (+55.84%)
Mutual labels:  augmented-reality, arkit
unity-arkit-charts-demo
iOS 11 ARKit Charts Demo
Stars: ✭ 13 (-83.12%)
Mutual labels:  augmented-reality, arkit
TheLaughingMan-ARKit
Use ARKit to become the infamous Laughing Man from Ghost in the Shell
Stars: ✭ 26 (-66.23%)
Mutual labels:  augmented-reality, arkit

⚠️ This project is not actively maintained and due to use of private SPI may not work with newer releases of iOS. ⚠️


AR Recorder icon AR Recorder

This project demonstrates how ARKit's private SPI can be used to record and replay AR sessions, thus enabling a convenient development workflow and test automation.

Disclaimer: Functionality exposed and used in this project is private SPI. It's not guaranteed to be reliable or stay available in any form in future versions of ARKit. It definitely cannot be used in production versions of apps distributed on the App Store.

How to build

Clone the repository and open ARRecorder.xcodeproj in Xcode 10 or newer. Configure automatic codesigning by opening project settings, ARRecorder target, General, and configuring the Team setting in the Signing section.

How to use

The app starts a normal AR session once launched. Tap Record to start recording the session to a local file. Then tap Finish to complete the recording and continue a normal session. To replay a previously recorded session, tap Replay, then select the file. To stop the replay at any time, tap .

During both normal, recording and replay sessions, tap anywhere to place a virtual cube in the scene at the estimated physical location that corresponds to your touch. Note that this won't be recorded into the replay file: you can interact with the session differently during recording and replay.

To delete a recorded file, tap Replay and swipe left on a file row, then tap Delete. You can also access all session recordings using the Files app by selecting On My iPhone/iPad location, where ARRecorder's documents container will show up. The app is also configured to allow File Sharing via iTunes.

SPI declaration

Relevant SPI classes and methods are annotated across a few headers like ARRecordingTechnique.h and ARReplaySensorProtocol.h (please see ARKit Private API group in Xcode project for the full list). Their signature and presumed function have been observed as of ARKit 3.0.

Note that depending on the iOS version, either ARReplaySensor or ARReplaySensorPublic class is used to load replays. See ARConfiguration.makeReplayConfiguration(replayURL:) method in MainViewController.swift for an example of how that can be done.

Supported devices

All iOS 11.3+ devices with A9 chip or newer are supported. This includes:

  • iPhone SE
  • iPhone 6S, 6S Plus or newer
  • iPad (2017, 5th generation) or newer

The project can be modified to support a wider range of hardware by replacing session's world tracking configuration with an orientation tracking configuration.

Licensing

This work is licensed under a BSD 3-Clause License.

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].