Popularity
2.3
Growing
Activity
0.0
Stable
81
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.
CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
Promo
coderabbit.ai

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