Popularity
2.1
Stable
Activity
0.0
Stable
79
5
9
Programming language: Swift
License: MIT License
Tags:
Augmented Reality
ARVoxelKit alternatives and similar libraries
Based on the "Augmented Reality" category.
Alternatively, view ARVoxelKit alternatives based on common mentions on social networks and blogs.
-
ARKit-CoreLocation
Combines the high accuracy of AR with the scale of GPS data. -
ARVideoKit
Capture & record ARKit videos ๐น, photos ๐, Live Photos ๐, and GIFs ๐.
Appwrite - The Open Source Firebase alternative introduces iOS support
Appwrite is an open source backend server that helps you build native iOS applications much faster with realtime APIs for authentication, databases, files storage, cloud functions and much more!
Promo
appwrite.io
Do you think we are missing an alternative of ARVoxelKit or a related project?
README
ARVoxelKit
Lightweight Framework for Voxel graphic using AR + SceneKit
[](preview.gif)
Requirements
ARVoxelKit requires iOS 11 and devices, which support ARKit
Usage
- Import libraries as follows:
import ARVoxelKit
import ARKit
import SceneKit
- 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()
}
- 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
}
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)
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)
Change default setup by changing VKConstants values
Example
Check our example by running ARVoxelKitExample target