Skip to content

// Augmented reality apps — RealityKit, scene reconstruction, hand tracking, USDZ, visionOS bridge.

iOS ARKit Builder

skill --stat
  • last update

    Jun 2, 2026

  • license

    MITv1.0.0

  • format

    SKILL.md

quickstart.sh
3 steps
  1. Install

    // Downloads SKILL.md into ~/.claude/skills/ios-arkit-builder/

    $ curl -fsSL --create-dirs -o ~/.claude/skills/ios-arkit-builder/SKILL.md https://claudeskil.com/skills/ios-arkit-builder/SKILL.md
  2. Invoke

    // Inside Claude Code, type the skill name as a slash command

    > /ios-arkit-builder help me ship this
  3. Or copy this from the README

    // extracted swift block

    $ // Tap to place a USDZ model on a detected plane
    let config = ARWorldTrackingConfiguration()
    config.planeDetection = [.horizontal, .vertical]
    config.sceneReconstruction = .meshWithClassification
    arView.session.run(config)
    
ios-arkit-builder/
references
SKILL.md
readonly
name:
iOS ARKit Builder
slug:
ios-arkit-builder
version:
v1.0.0
license:
MIT
author:
@chiragthummar16
categories:
tags:
#arkit#realitykit#ar#visionpro#usdz
description:

Augmented reality apps — RealityKit, scene reconstruction, hand tracking, USDZ, visionOS bridge.

README.md

ios-arkit-builder/README.md
6 sections

iOS ARKit Builder

A focused assistant for building augmented reality features on iPhone and iPad with ARKit and RealityKit, and carrying that work forward to Apple Vision Pro. It targets the modern Swift stack — ARKitSession, RealityView, RealityComposer Pro packages, and USDZ — rather than legacy SceneKit-based AR. Aimed at iOS developers who already know Swift/SwiftUI but want correct, current AR plumbing instead of stitching together stale Stack Overflow snippets.

When to use it

  • Standing up a world-tracking session with horizontal/vertical plane detection and tap-to-place content.
  • Wiring LiDAR scene reconstruction so virtual objects collide with and occlude behind real geometry.
  • Adding people occlusion or hand tracking, then mapping gestures to entity behaviors.
  • Importing a USDZ or RealityComposer Pro scene and driving its animations/materials from code.
  • Porting an existing iOS AR app toward visionOS without rewriting the entity model from scratch.

How it works

The skill scaffolds against ARWorldTrackingConfiguration with .planeDetection, .sceneReconstruction = .meshWithClassification, and .frameSemantics = .personSegmentationWithDepth for occlusion. On the RealityKit side it generates ARView (UIKit) or RealityView (SwiftUI) setups, AnchorEntity placement via raycasting (session.raycast), and ModelEntity loading from .usdz / .reality bundles. Collision and physics use generateCollisionShapes and PhysicsBodyComponent. For hand tracking and spatial input it uses the visionOS HandTrackingProvider / WorldTrackingProvider running under ARKitSession, and flags which APIs are iOS-only versus visionOS-only so the port doesn't silently break.

Example

bash
curl -fsSL --create-dirs -o ~/.claude/skills/ios-arkit-builder/SKILL.md https://claudeskil.com/skills/ios-arkit-builder/SKILL.md
swift
// Tap to place a USDZ model on a detected plane
let config = ARWorldTrackingConfiguration()
config.planeDetection = [.horizontal, .vertical]
config.sceneReconstruction = .meshWithClassification
arView.session.run(config)

@objc func handleTap(_ g: UITapGestureRecognizer) {
    let p = g.location(in: arView)
    guard let r = arView.raycast(from: p,
        allowing: .estimatedPlane, alignment: .horizontal).first else { return }
    let anchor = AnchorEntity(world: r.worldTransform)
    let model = try! ModelEntity.loadModel(named: "lamp.usdz")
    model.generateCollisionShapes(recursive: true)
    anchor.addChild(model)
    arView.scene.addAnchor(anchor)
}

Tips & gotchas

  • sceneReconstruction and people occlusion require a LiDAR device; gate them with ARWorldTrackingConfiguration.supportsSceneReconstruction(.mesh) or you'll crash on a non-Pro iPhone.
  • USDZ scale is in meters. A model authored in centimeters lands 100x too big — fix it in RealityComposer Pro or scale the ModelEntity, don't eyeball it.
  • Hand tracking is a visionOS capability, not iOS. The skill keeps that code behind availability checks so the shared codebase still compiles for iPhone.
  • Add NSCameraUsageDescription to Info.plist; ARKit fails silently-ish without it.

FAQ

ARKit or RealityKit — which does this use? Both. ARKit provides tracking/sensing; RealityKit renders and simulates. The skill defaults to RealityKit and treats SceneKit AR as legacy.

Does the visionOS bridge auto-convert my app? No. It reshapes your entity/anchor code toward RealityView and ARKitSession, and marks iOS-only APIs, but spatial UI and input still need manual review.

Minimum versions? iOS 13+ for RealityKit; scene reconstruction needs a LiDAR device and iOS 13.4+. Hand tracking needs visionOS 1.0+.

$ cat reviews/

Reviews

// No reviews yet. Be the first.
Loading review form…

$ ls related/

explore all →