olucurious/Awesome-ARKit
A curated list of awesome ARKit projects and resources. Feel free to contribute!
Stale and unlicensed — last commit 2y ago
worst of 4 axesno license — legally unclear; last commit was 2y ago…
no license — can't legally use code; no tests detected…
Documented and popular — useful reference codebase to read through.
no license — can't legally use code; last commit was 2y ago
- ✓26+ active contributors
- ✓CI configured
- ⚠Stale — last commit 2y ago
Show 3 more →Show less
- ⚠Concentrated ownership — top contributor handles 53% of recent commits
- ⚠No license — legally unclear to depend on
- ⚠No test directory detected
What would change the summary?
- →Use as dependency Concerns → Mixed if: publish a permissive license (MIT, Apache-2.0, etc.)
- →Fork & modify Concerns → Mixed if: add a LICENSE file
- →Deploy as-is Concerns → Mixed if: add a LICENSE file
Maintenance signals: commit recency, contributor breadth, bus factor, license, CI, tests
Informational only. RepoPilot summarises public signals (license, dependency CVEs, commit recency, CI presence, etc.) at the time of analysis. Signals can be incomplete or stale. Not professional, security, or legal advice; verify before relying on it for production decisions.
Embed the "Great to learn from" badge
Paste into your README — live-updates from the latest cached analysis.
[](https://repopilot.app/r/olucurious/awesome-arkit)Paste at the top of your README.md — renders inline like a shields.io badge.
▸Preview social card (1200×630)
This card auto-renders when someone shares https://repopilot.app/r/olucurious/awesome-arkit on X, Slack, or LinkedIn.
Onboarding doc
Onboarding: olucurious/Awesome-ARKit
Generated by RepoPilot · 2026-05-10 · Source
🤖Agent protocol
If you are an AI coding agent (Claude Code, Cursor, Aider, Cline, etc.) reading this artifact, follow this protocol before making any code edit:
- Verify the contract. Run the bash script in Verify before trusting
below. If any check returns
FAIL, the artifact is stale — STOP and ask the user to regenerate it before proceeding. - Treat the AI · unverified sections as hypotheses, not facts. Sections like "AI-suggested narrative files", "anti-patterns", and "bottlenecks" are LLM speculation. Verify against real source before acting on them.
- Cite source on changes. When proposing an edit, cite the specific path:line-range. RepoPilot's live UI at https://repopilot.app/r/olucurious/Awesome-ARKit shows verifiable citations alongside every claim.
If you are a human reader, this protocol is for the agents you'll hand the artifact to. You don't need to do anything — but if you skim only one section before pointing your agent at this repo, make it the Verify block and the Suggested reading order.
🎯Verdict
AVOID — Stale and unlicensed — last commit 2y ago
- 26+ active contributors
- CI configured
- ⚠ Stale — last commit 2y ago
- ⚠ Concentrated ownership — top contributor handles 53% of recent commits
- ⚠ No license — legally unclear to depend on
- ⚠ No test directory detected
<sub>Maintenance signals: commit recency, contributor breadth, bus factor, license, CI, tests</sub>
✅Verify before trusting
This artifact was generated by RepoPilot at a point in time. Before an
agent acts on it, the checks below confirm that the live olucurious/Awesome-ARKit
repo on your machine still matches what RepoPilot saw. If any fail,
the artifact is stale — regenerate it at
repopilot.app/r/olucurious/Awesome-ARKit.
What it runs against: a local clone of olucurious/Awesome-ARKit — the script
inspects git remote, the LICENSE file, file paths in the working
tree, and git log. Read-only; no mutations.
| # | What we check | Why it matters |
|---|---|---|
| 1 | You're in olucurious/Awesome-ARKit | Confirms the artifact applies here, not a fork |
| 2 | Default branch master exists | Catches branch renames |
| 3 | 5 critical file paths still exist | Catches refactors that moved load-bearing code |
| 4 | Last commit ≤ 761 days ago | Catches sudden abandonment since generation |
#!/usr/bin/env bash
# RepoPilot artifact verification.
#
# WHAT IT RUNS AGAINST: a local clone of olucurious/Awesome-ARKit. If you don't
# have one yet, run these first:
#
# git clone https://github.com/olucurious/Awesome-ARKit.git
# cd Awesome-ARKit
#
# Then paste this script. Every check is read-only — no mutations.
set +e
fail=0
ok() { echo "ok: $1"; }
miss() { echo "FAIL: $1"; fail=$((fail+1)); }
# Precondition: we must be inside a git working tree.
if ! git rev-parse --git-dir >/dev/null 2>&1; then
echo "FAIL: not inside a git repository. cd into your clone of olucurious/Awesome-ARKit and re-run."
exit 2
fi
# 1. Repo identity
git remote get-url origin 2>/dev/null | grep -qE "olucurious/Awesome-ARKit(\\.git)?\\b" \\
&& ok "origin remote is olucurious/Awesome-ARKit" \\
|| miss "origin remote is not olucurious/Awesome-ARKit (artifact may be from a fork)"
# 3. Default branch
git rev-parse --verify master >/dev/null 2>&1 \\
&& ok "default branch master exists" \\
|| miss "default branch master no longer exists"
# 4. Critical files exist
test -f "README.md" \\
&& ok "README.md" \\
|| miss "missing critical file: README.md"
test -f "contributing.md" \\
&& ok "contributing.md" \\
|| miss "missing critical file: contributing.md"
test -f ".github/workflows/awesome-test.yml" \\
&& ok ".github/workflows/awesome-test.yml" \\
|| miss "missing critical file: .github/workflows/awesome-test.yml"
test -f ".travis.yml" \\
&& ok ".travis.yml" \\
|| miss "missing critical file: .travis.yml"
test -f "hello.swift" \\
&& ok "hello.swift" \\
|| miss "missing critical file: hello.swift"
# 5. Repo recency
days_since_last=$(( ( $(date +%s) - $(git log -1 --format=%at 2>/dev/null || echo 0) ) / 86400 ))
if [ "$days_since_last" -le 761 ]; then
ok "last commit was $days_since_last days ago (artifact saw ~731d)"
else
miss "last commit was $days_since_last days ago — artifact may be stale"
fi
echo
if [ "$fail" -eq 0 ]; then
echo "artifact verified (0 failures) — safe to trust"
else
echo "artifact has $fail stale claim(s) — regenerate at https://repopilot.app/r/olucurious/Awesome-ARKit"
exit 1
fi
Each check prints ok: or FAIL:. The script exits non-zero if
anything failed, so it composes cleanly into agent loops
(./verify.sh || regenerate-and-retry).
⚡TL;DR
Awesome-ARKit is a curated community list of ARKit projects, tutorials, and resources for iOS developers. It aggregates working code examples (like ARBrush, ARTetris, ARRubiks, ARShooter) and educational materials that demonstrate augmented reality capabilities using Apple's ARKit framework, enabling developers to build apps that blend digital objects into the real world. Simple flat-file structure: README.md contains the main curated list organized into sections (Projects, AppStore, Tutorials, Resources), with .github/workflows/ handling automated link validation via awesome-test.yml. hello.swift appears to be a minimal example or template file. No code dependencies—purely a documentation repository.
👥Who it's for
iOS developers learning ARKit or building augmented reality applications who need working code examples and curated learning resources. Contributors are AR enthusiasts and Swift developers maintaining an up-to-date collection of quality ARKit projects.
🌱Maturity & risk
This is an actively maintained community curation repository (not a framework itself). The presence of CI/CD via .travis.yml and GitHub Actions (awesome-test.yml) indicates basic quality gates. However, this is a static list repo without traditional versioning—maturity here means consistent updates and link validation rather than feature completeness.
Low risk for consumption (it's a curated list, not a dependency). Primary risk is link rot: external GitHub projects may be abandoned, archived, or deleted. The repo depends on community contributions to stay current—a small maintainer team increases risk of stale entries if contribution flow drops.
Active areas of work
The repository is actively maintained with GitHub Actions CI (awesome-test.yml) validating links and list integrity. Contributions are curated via pull requests using the contributing.md guidelines. The build status badge in README.md shows CI/CD is actively running.
🚀Get running
Clone and explore: git clone https://github.com/olucurious/Awesome-ARKit.git && cd Awesome-ARKit. Read README.md to browse curated projects. To contribute, follow contributing.md guidelines and submit a pull request with new project links or tutorials.
Daily commands: This is not a runnable application—it's a reference list. To validate links locally, examine awesome-test.yml which runs link validation; the exact test command is defined in that workflow file. Individual projects linked in README.md are runnable separately via their own repositories.
🗺️Map of the codebase
README.md— Entry point documenting the curated list structure, contribution guidelines, and all ARKit project categories that form the codebase's primary value.contributing.md— Essential guide for contributors defining submission standards, formatting rules, and quality expectations for new ARKit project entries..github/workflows/awesome-test.yml— Automated validation pipeline that enforces README structure and link integrity, preventing broken contributions from merging..travis.yml— Legacy CI configuration that complements GitHub Actions, ensuring consistent build validation across multiple platforms.hello.swift— Example ARKit Swift code demonstrating framework usage patterns referenced in tutorials and project documentation.
🧩Components & responsibilities
- README.md (Markdown, GitHub Flavored Markdown (GFM)) — Maintains the primary curated list structure with sections for Projects, AppStore apps, Tutorials, and Resources; serves as the single source of truth for discovery
- Failure mode: Broken links, duplicate entries, or formatting inconsistencies reduce usability and damage credibility; invalid markdown prevents proper GitHub rendering
- contributing.md (Markdown) — Defines submission standards, entry format, quality criteria, and community guidelines to ensure consistent list quality and contributor expectations
- Failure mode: Unclear guidelines lead to inconsistent submissions, increased PR review burden, and reduced quality of contributed entries
- .github/workflows/awesome-test.yml (GitHub Actions, YAML) — Automates validation of README.md structure, markdown syntax, and link availability on every PR, preventing broken or malformed contributions
- Failure mode: Invalid links or broken markdown slip through to main branch if validation is disabled or incomplete, degrading list quality
- hello.swift (Swift, ARKit framework) — Provides a minimal ARKit code example demonstrating framework setup and basic usage patterns for developers
- Failure mode: Outdated or incorrect code example misleads developers attempting to learn ARKit; breaks with iOS API changes
- .travis.yml (Travis CI, YAML) — Legacy CI configuration supporting historical build validation before GitHub Actions migration
- Failure mode: Divergence with GitHub Actions config leads to inconsistent validation; deprecation of Travis CI service breaks pipeline
🔀Data flow
Contributor→GitHub Repository— Contributor submits pull request with updates to README.md or contributing.mdGitHub Repository→.github/workflows/awesome-test.yml— GitHub Actions automatically triggers validation workflow on PR push.github/workflows/awesome-test.yml→README.md— Workflow parses and validates markdown syntax, structure, and link integrityValidation Result→GitHub PR Status— awesome-test.yml reports pass/fail status as check on pull request; contributors see validation results in PR checksMerged README.md→GitHub Repository Homepage— GitHub renders merged README.md as repository homepage for public discoveryUser→Rendered README.md— Users browse curated list and click links to discover ARKit projects, tutorials, and resources
🛠️How to make changes
Add a New ARKit Project to the Curated List
- Edit README.md and locate the appropriate section (Projects, AppStore, Tutorials, or Resources) (
README.md) - Add a bullet point with format: * ProjectName - Brief description of what the project does (
README.md) - Ensure links are valid and descriptions follow the tone/style of existing entries by reviewing contributing.md guidelines (
contributing.md) - Submit a pull request; the awesome-test.yml workflow will automatically validate markdown syntax and link availability (
.github/workflows/awesome-test.yml)
Update or Fix an Existing Project Entry
- Locate the project entry in the appropriate section of README.md (
README.md) - Update the URL, description, or emoji to reflect current project status or fix broken links (
README.md) - Verify changes comply with contributing.md formatting standards before committing (
contributing.md)
Add a New Tutorial or Learning Resource
- Open README.md and navigate to the Tutorials or Resources section (
README.md) - Insert a new bullet point with the resource name, link, and brief description of learning outcomes (
README.md) - Confirm the link is accessible and follows the existing resource format conventions documented in contributing.md (
contributing.md)
🔧Why these technologies
- GitHub Actions (.github/workflows/awesome-test.yml) — Native GitHub integration provides free CI/CD, automatic markdown and link validation, and native PR status checks without external service dependencies
- Travis CI (.travis.yml) — Legacy support for cross-platform build validation and backward compatibility with existing CI infrastructure before GitHub Actions adoption
- Markdown (README.md, contributing.md) — Human-readable format optimized for GitHub rendering, easy version control diffs, and low barrier to entry for non-technical contributors
- Swift (hello.swift) — Native iOS language demonstrating ARKit framework patterns and providing runnable examples for iOS developers
⚖️Trade-offs already made
-
Curated list instead of database or dynamic service
- Why: Prioritizes community transparency, GitHub-native workflows, and requires no backend infrastructure
- Consequence: Manual curation overhead; scaling to thousands of projects requires community moderation; no structured metadata or filtering
-
Markdown-based documentation instead of structured data format (JSON/XML)
- Why: Maximum readability on GitHub, minimal tooling friction, leverages GitHub's native rendering
- Consequence: Harder to parse programmatically; limited support for rich metadata or advanced filtering by contributors
-
Dual CI systems (Travis + GitHub Actions)
- Why: Redundancy and gradual migration from legacy CI to native GitHub workflows
- Consequence: Maintenance burden for multiple configuration files; potential divergence in validation logic
🚫Non-goals (don't propose these)
- Does not host or mirror ARKit projects—purely a discovery and curation index
- Does not provide interactive project search, filtering, or analytics—curated markdown list only
- Does not manage user authentication, project submissions via API, or automated project scraping
- Does not host code execution environment or provide ARKit development infrastructure
- Does not support non-English languages or localized content versions
📊Code metrics
- Avg cyclomatic complexity: ~1.5 — Codebase is a curated markdown list with minimal code; primary complexity is CI/CD validation logic in YAML workflows. No algorithmic or architectural complexity; human-readable documentation dominates.
⚠️Anti-patterns to avoid
- Dual CI Configuration Maintenance (Medium) —
.travis.yml and .github/workflows/awesome-test.yml: Two separate CI configurations (.travis.yml and GitHub Actions workflow) risk diverging validation logic and duplicate maintenance burden; Travis CI is deprecated and should be migrated entirely to GitHub Actions - No Automated Link Freshness Check (Medium) —
.github/workflows/awesome-test.yml: Links are validated only on PR submission; no scheduled job to detect link rot after merge, leading to accumulation of stale/broken links in the main branch over time - Incomplete README Structure (High) —
README.md: README.md ends abruptly with incomplete 'Projects' section (truncated with * marker), suggesting unfinished documentation or parsing issues that may block contribution discovery
🔥Performance hotspots
Manual curation workflow(Process bottleneck) — All new ARKit project submissions require manual review and editing by maintainers; no automated submission portal or template-based entry creation speeds up curation.github/workflows/awesome-test.yml link validation(Performance bottleneck) — Validating all HTTP(S) links in parallel during CI may timeout on large lists or rate-limited endpoints; sequential validation slow on hundreds of URLsGitHub as single source of truth(Scalability bottleneck) — All content lives in README.md and contributing.md; no structured data or metadata layer limits advanced filtering, search, categorization by contributors beyond manual markdown editing
🪤Traps & gotchas
No environment variables or service dependencies—this is a static list. However, awesome-test.yml likely uses a link validation tool (possibly awesome_bot or similar) with configurable timeouts; flaky network tests against external repos can cause false CI failures. Referenced GitHub projects may require specific Xcode versions or iOS deployment targets not documented here—users must check each project's individual requirements.
🏗️Architecture
💡Concepts to learn
- ARKit World Tracking — Core ARKit capability used in projects like ARMultiuser and ARKit2.0-Prototype to maintain persistent 3D coordinate systems; essential for understanding spatial anchoring in AR apps
- Plane Detection & Raycasting — Fundamental feature demonstrated in ARKit-FloorIsLava and measurement tools; enables app-to-environment interaction by detecting horizontal/vertical surfaces
- ARAnchors & Persistent State — Demonstrated in ARKit2.0-Prototype with ARWorldMap persistence; allows apps to save and restore AR scenes across sessions
- Metal & SceneKit Integration — Used in ARBrush for real-time 3D rendering; understanding when to choose SceneKit vs. Metal affects performance of AR drawing and game apps
- Face Tracking with ARKit — Leveraged in Baraba project; distinct from world tracking, enables facial expression detection and face-based interaction patterns
- Multiplayer AR Synchronization — Shown in ARMultiuser; critical pattern for shared AR experiences requiring Bluetooth or network coordination of spatial state across devices
🔗Related repos
raywenderlich/swift-algorithm-club— Similar community-curated list structure for Swift learning resources; demonstrates effective documentation patterns for iOS developmentmatteocrippa/awesome-swift— Parallel awesome-list for Swift frameworks and libraries; same curation model and CI validation approach applied to a broader Swift ecosystempointfreeco/episode-code-samples— Curated Swift code examples paired with educational content; complementary resource for developers wanting structured ARKit learning beyond link listsapple/sample-cloudkit-sync-engine— Official Apple sample code repository; demonstrates production-grade ARKit + networking patterns not always visible in community examples here
🪄PR ideas
To work on one of these in Claude Code or Cursor, paste:
Implement the "<title>" PR idea from CLAUDE.md, working through the checklist as the task list.
Create comprehensive link validation workflow in GitHub Actions
The repo has awesome-test.yml but currently relies on Travis CI. The README contains multiple links that can break over time (GitHub repos, external resources). A dedicated GitHub Actions workflow using tools like markdown-link-check would automatically validate all links in README.md and contributing.md on each PR, preventing dead links from being merged.
- [ ] Create .github/workflows/link-check.yml with markdown-link-check action
- [ ] Configure to check README.md, contributing.md, and all .md files
- [ ] Add exception rules for common false positives (Travis CI badges, etc.)
- [ ] Document the new workflow in contributing.md
Fix incomplete Projects section in README.md
The README.md file shows the 'Baraba' project entry is truncated mid-description ('Make your UIScrollView scroll automatically when...'). This incomplete entry needs to be completed with proper description and link validation. This is a high-visibility issue since the Projects section is the core content of the repository.
- [ ] Complete the Baraba project description with full text from source
- [ ] Verify the GitHub link is still valid
- [ ] Audit other project entries for similar truncation issues
- [ ] Ensure consistent formatting across all project entries in README.md
Add CONTRIBUTING.md template requirements and PR checklist
While contributing.md exists, it should include specific requirements for submitting new projects (e.g., project must be open source, link must be working, description format standards). A PR template (.github/pull_request_template.md) would ensure contributors validate their links and follow formatting guidelines before submission, reducing maintainer review burden.
- [ ] Create .github/pull_request_template.md with categories for new projects vs. bug fixes
- [ ] Add checklist items: 'Link is working', 'Description is 1-2 sentences', 'No duplicate entries'
- [ ] Enhance contributing.md with specific formatting rules (description length, required fields)
- [ ] Add example entry showing proper format for projects
🌿Good first issues
- Add missing tutorial links: The Tutorials section in README.md appears abbreviated compared to Projects—audit popular ARKit WWDC talks and Medium posts to expand this category with 5–10 curated links
- Document setup requirements per project: Create a contribute template that asks submitters to specify minimum Xcode version and iOS deployment target, then audit and add this metadata to high-traffic projects like ARBrush and ARTetris
- Fix or remove dead links: Run awesome-test.yml locally and create a PR removing archived GitHub projects or updating broken resource links in the Tutorials and Resources sections
⭐Top contributors
Click to expand
Top contributors
- @olucurious — 53 commits
- @maxxfrazer — 10 commits
- @literalpie — 4 commits
- @Rland12 — 3 commits
- @mattbierner — 3 commits
📝Recent commits
Click to expand
Recent commits
badeebc— Merge pull request #169 from andrelucassvt/master (olucurious)5de634a— Merge branch 'master' into master (olucurious)651bba6— Merge pull request #168 from 1024kilobyte/patch-1 (olucurious)f9fe6a9— Merge pull request #170 from iwoj/master (olucurious)3a08c27— Adds Graphite 3D. (iwoj)9f652e6— chore: blood cells ar add (andrelucassvt)a8036d9— Update README.md (1024kilobyte)4cecfde— Merge pull request #167 from philipturner/patch-1 (olucurious)b07acac— Update README.md (philipturner)6ccd718— Merge pull request #166 from philipturner/master (olucurious)
🔒Security observations
This is a curated list repository with minimal security concerns. No hardcoded credentials, injection vulnerabilities, or critical infrastructure misconfigurations were detected. The main security considerations are external CDN dependencies and ensuring consistent use of HTTPS for resource references. The repository appears to be a documentation/curation project with low inherent risk. No sensitive data exposure, exposed secrets, or dangerous code patterns were identified in the provided snippets.
- Medium · External CDN dependency for badge —
README.md (line with cdn.rawgit.com). The README.md file references an external CDN resource (cdn.rawgit.com) for the awesome badge SVG. This introduces a dependency on an external service and potential supply chain risk if the CDN is compromised or unavailable. Fix: Consider hosting the badge locally or using a more stable CDN service. Verify the integrity of external resources using Subresource Integrity (SRI) attributes if embedding external content. - Low · Mixed protocol references —
README.md (banner.png and build status badge references). The README references external images and badges from GitHub using raw.githubusercontent.com and api.travis-ci.org. While these are legitimate services, ensure that HTTPS is consistently used for all external resource references. Fix: Ensure all external resource URLs use HTTPS protocol. Verify that image URLs and API endpoints are served over secure connections. - Low · No dependency lock file detected —
Project root (dependency files). No package manager configuration file (package.json, Podfile, Cartfile, etc.) was provided for analysis. Without locked dependencies, there is a risk of transitive dependency vulnerabilities if this project includes code with external dependencies. Fix: If this repository includes Swift code or other dependencies, implement and commit lock files (Package.resolved, Podfile.lock, etc.) to ensure reproducible builds and easier vulnerability tracking.
LLM-derived; treat as a starting point, not a security audit.
👉Where to read next
- Open issues — current backlog
- Recent PRs — what's actively shipping
- Source on GitHub
Generated by RepoPilot. Verdict based on maintenance signals — see the live page for receipts. Re-run on a new commit to refresh.