All Projects → VoxxxelAR → ARVoxelKit

VoxxxelAR / ARVoxelKit

Licence: MIT License
Voxel graphics framework using ARKit + SceneKit

Programming Languages

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

Projects that are alternatives of or similar to ARVoxelKit

ARKit-Sample-ObjC
ARKit sample application is written in Objective C with features of Add, Remove, Scale, Move, Snapshot for single and multiple objects with plane/surface detection, reset session and AR support checking.
Stars: ✭ 72 (-2.7%)
Mutual labels:  scenekit, arkit
Unity-ARKit-Plugin
Modified plugin source and Add custom ARKit projects implement on Unity
Stars: ✭ 83 (+12.16%)
Mutual labels:  scenekit, arkit
TheLaughingMan-ARKit
Use ARKit to become the infamous Laughing Man from Ghost in the Shell
Stars: ✭ 26 (-64.86%)
Mutual labels:  scenekit, arkit
ARichMan
Use ARKit to realize your dream of becoming rich.
Stars: ✭ 19 (-74.32%)
Mutual labels:  scenekit, arkit
ARKitSceneKitExample
Simple AR app made with ARKit and SceneKit
Stars: ✭ 53 (-28.38%)
Mutual labels:  scenekit, arkit
aruco-arkit-opencv
This iOS app detects aruco markers in a live view. v4.4
Stars: ✭ 19 (-74.32%)
Mutual labels:  scenekit, arkit
avantindietro
Sample Swift iOS ARKit project which shows how to implement an Undo feature for ARKit/SceneKit apps.
Stars: ✭ 16 (-78.38%)
Mutual labels:  scenekit, arkit
Tom and Jerry
A multiuser AR game based on ARKit 2 and MultipeerConnectivity
Stars: ✭ 24 (-67.57%)
Mutual labels:  scenekit, arkit
ARKit-SceneKIit Course
learning resource (SceneKit)
Stars: ✭ 102 (+37.84%)
Mutual labels:  scenekit, arkit
GVRSCNRenderer
SceneKit Rendering and ARKit 6DOF Tracking for Google Cardboard
Stars: ✭ 19 (-74.32%)
Mutual labels:  scenekit, arkit
ARMultiuser
this demo use arkit 2.0, realize multiplayer play together! The project refers to the official demo!
Stars: ✭ 30 (-59.46%)
Mutual labels:  scenekit, arkit
SCNHighlight
Scale-invariant highlight effect for SCNNodes based on SCNTechnique
Stars: ✭ 20 (-72.97%)
Mutual labels:  scenekit, arkit
SceneKit-PortalMask
Clean class to create a portal in SceneKit for use in ARKit.
Stars: ✭ 60 (-18.92%)
Mutual labels:  scenekit, arkit
ARBlockTower
Submission for WWDC 2018 Scholarship formatted into an iOS app
Stars: ✭ 24 (-67.57%)
Mutual labels:  scenekit, arkit
ARKit-FocusNode
FocusSquare class taken straight from Apple's ARKit examples and packed up for anyone to use with ease.
Stars: ✭ 50 (-32.43%)
Mutual labels:  scenekit, arkit
arkit-graffiti
A demo that shows painting on walls with ARKit+SceneKit
Stars: ✭ 49 (-33.78%)
Mutual labels:  scenekit, arkit
Arkit2.0 Prototype
After Apple’s introduction of ARKit 2, we have been consistently working behind to create shared-AR experiences. Our goal is to improve the utility of mobile using AR experiences.
Stars: ✭ 236 (+218.92%)
Mutual labels:  scenekit, arkit
Arkit Smb Homage
An implementation of a Super Mario Bros-like game in augmented reality with ARKit and SceneKit.
Stars: ✭ 244 (+229.73%)
Mutual labels:  scenekit, arkit
SCNRecorder
The best way to record your AR experience!
Stars: ✭ 136 (+83.78%)
Mutual labels:  scenekit, arkit
ARKit-SceneKit-Paint-Tiltbrush-Demo
Demo paint app with ARKit and SceneKit
Stars: ✭ 33 (-55.41%)
Mutual labels:  scenekit, arkit

ARVoxelKit

Lightweight Framework for Voxel graphic using AR + SceneKit

Build Status

Requirements

ARVoxelKit requires iOS 11 and devices, which support ARKit

Usage

  1. Import libraries as follows:
import ARVoxelKit
import ARKit
import SceneKit
  1. Setup your ARSCNView with VKSceneManager manager in you ViewContoller:
var sceneManager: VKSceneManager?

@IBOutlet open var sceneView: ARSCNView! {
    didSet { sceneManager = VKSceneManager(with: sceneView) }
}

override open func viewDidLoad() {
    super.viewDidLoad()
    sceneManager.delegate = self
}

override open func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    sceneManager?.launchSession()
}

override open func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)
    sceneManager?.pauseSession()
}
  1. Conform your delegate instance to VKSceneManagerDelegate:
public protocol VKSceneManagerDelegate: class {
    var voxelSize: CGFloat { get }
    
    func vkSceneManager(_ manager: VKSceneManager, shouldResetSessionFor state: VKARSessionState) -> Bool
    func vkSceneManager(_ manager: VKSceneManager, didUpdateState state: VKARSessionState)
    func vkSceneManager(_ manager: VKSceneManager, didFocus node: VKDisplayable, face: VKVoxelFace)
    func vkSceneManager(_ manager: VKSceneManager, didDefocus node: VKDisplayable?)
    func vkSceneManager(_ manager: VKSceneManager, countOfVoxelsIn scene: ARSCNView) -> Int
    func vkSceneManager(_ manager: VKSceneManager, voxelFor index: Int) -> VKVoxelNode
}
  1. You can add/remove voxels by calling manager methods:
public func add(new voxel: VKVoxelNode)
public func add(new voxel: VKVoxelNode, to otherVoxel: VKVoxelNode, face: VKVoxelFace)
public func add(new voxel: VKVoxelNode, to tile: VKTileNode)
public func remove(_ voxel: VKVoxelNode)
  1. Edit surfaces, tiles, voxels using paint command:
public enum VKPaintCommand {
    
    case color(content: UIColor)
    case faceColor(content: UIColor, face: VKVoxelFace)
    case colors(contents: [UIColor])
    
    case image(content: UIImage)
    case faceImage(content: UIImage, face: VKVoxelFace)
    case images(contents: [UIImage])
    
    case gradient(contents: [UIColor], start: CGPoint, end: CGPoint)
    case faceGradient(contents: [UIColor], start: CGPoint, end: CGPoint, face: VKVoxelFace)
    
    case transparency(value: CGFloat)
    case faceTransparency(value: CGFloat, face: VKVoxelFace)
}

for example:

voxel.apply([.color(content: VKConstants.defaultFaceColor),
             .transparency(value: 1)], animated: true)
  1. Change default setup by changing VKConstants values

Example

Check our example by running ARVoxelKitExample target

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