# realitykit

Скилл для сборки AR-сцен на RealityKit и ARKit: RealityView, якоря, рейкасты, жесты. Пригодится, когда нужен 3D-контент в iOS-приложении.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 3200 установок · ★ 1237
- Автор: dpearson2699
- Лицензия: LicenseRef-Unknown · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/dpearson2699/swift-ios-skills/tree/HEAD/skills/realitykit/SKILL.md
- Обновлён: 2026-07-31
- HTML: https://affpapa.org/nevibecode/skills/realitykit

## Что делает

Скилл описывает работу с RealityKit и ARKit в одном месте: как собрать `RealityView`, загрузить сущности и модели USDZ, привязать объект к плоскости или точке в мире. Отдельный блок — рейкасты. Автор разводит два похожих механизма: `ray(through:in:to:)` даёт луч камеры в координатах RealityKit, а `hitTest(point:in:query:mask:)` бьёт по сущностям с `CollisionComponent`. Для пересечения с реальной поверхностью нужен ARKit-запрос `ARRaycastQuery` и `ARSession.raycast(_:)`, после чего якорь ставится через `AnchorEntity(raycastResult:)`. Если перепутать эти пути, объект приземлится в пустоту — это повод проверить код до тестов на устройстве.

Внутри — разделы по настройке проекта, созданию и загрузке сущностей, якорям, жестам, пониманию сцены, плюс список частых ошибок и чек-лист для ревью. Целевые версии — Swift 6.3 и iOS 26+. Для базового AR ничего дополнительно подключать не нужно, но в Info.plist должен быть `NSCameraUsageDescription`. Перед показом AR-интерфейса скилл советует проверять `ARWorldTrackingConfiguration.isSupported` и держать запасной вариант: `content.camera = .virtual`.

Сущности здесь строятся по ECS: поведение и интерактивность добавляются компонентами — `PhysicsBodyComponent`, `CollisionComponent`, `InputTargetComponent`. Без последнего жест по объекту не сработает.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add dpearson2699/swift-ios-skills --skill realitykit -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/realitykit/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/realitykit/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add dpearson2699/swift-ios-skills --skill realitykit -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/realitykit/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add dpearson2699/swift-ios-skills --skill realitykit -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/realitykit/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install dpearson2699/swift-ios-skills realitykit
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/realitykit/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add dpearson2699/swift-ios-skills --skill realitykit -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/dpearson2699/swift-ios-skills --path skills/realitykit
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/realitykit/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add dpearson2699/swift-ios-skills --skill realitykit -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/dpearson2699/swift-ios-skills/tree/HEAD/skills/realitykit/SKILL.md

## Когда брать
- собрать AR-сцену на RealityView в SwiftUI
- загрузить модель USDZ и поставить её в сцену
- привязать объект к столу или стене через AnchorEntity
- разобраться, когда нужен hitTest, а когда ARKit-рейкаст
- добавить жесты и физику сущностям через компоненты

## Примеры запросов агенту
- Собери экран с RealityView и покажи синюю сферу в 50 см от камеры
- Загрузи модель robot из USDZ и привяжи её к горизонтальной плоскости пола
- Почему мой объект не реагирует на тап — проверь, есть ли у сущности InputTargetComponent

## Похожие
- [mcp](https://affpapa.org/nevibecode/mcp/sceneview-mcp.md) — MCP-сервер · ★ 1348
- [fal-3d](https://affpapa.org/nevibecode/skills/fal-3d.md) — скилл · 2800 установок
- [aframe-webxr](https://affpapa.org/nevibecode/skills/aframe-webxr.md) — скилл · 2300 установок
- [axiom-graphics](https://affpapa.org/nevibecode/skills/axiom-graphics.md) — скилл · 1200 установок
- [axiom-games](https://affpapa.org/nevibecode/skills/axiom-games.md) — скилл · 1100 установок
- [xcode-project-setup](https://affpapa.org/nevibecode/skills/xcode-project-setup.md) — скилл · 130700 установок

Из того же набора: [dpearson2699/swift-ios-skills](https://affpapa.org/nevibecode/by/dpearson2699/swift-ios-skills.md) — 69 карточек

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
