mcpField
S
spatial-swiftui-developer

spatial-swiftui-developer

github.com/tomkrikorianDevelopment66140 installsUpdated 19w ago
Repository

About spatial-swiftui-developer

A skill for developers building spatial SwiftUI experiences, covering scene and rendering choices, RealityKit integration, and interaction patterns. It directs architecture and build issues to related skills and keeps guidance focused on the relevant references.

Key features

  1. 01Rendering path selection
  2. 02Model3D and RealityView guidance
  3. 03RealityKit mutation patterns
  4. 04Spatial interaction and layout guidance
  5. 05Scene lifecycle and windowing guidance

Use cases

  1. 01Displaying a 3D asset with Model3D
  2. 02Building custom RealityKit entity graphs
  3. 03Adding spatial gestures and controls
  4. 04Managing windows and immersive scenes

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/tomkrikorian/visionosagents --skill spatial-swiftui-developer

After installing, type/spatial-swiftui-developerin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

agents/
openai.yaml
references/
buttons-and-controls.md
interaction.md
model3d.md
realityview.md
spatial-layout.md
swiftui-scene-lifecycle.md
swiftui-spatial-overview.md
windowing-immersion.md

Details

From the project README

Spatial SwiftUI Developer

Quick Start

  1. If the task is really about surface choice, scene ownership, or file structure, switch to spatial-app-architecture first.
  2. If the task is about Chart3D, SurfacePlot, 3D chart marks, or Chart3DPose, switch to $swiftui-chart3d-developer.
  3. Pick the rendering track: Model3D for simple asset display, RealityView for custom entity graphs and attachments.
  4. Load only the matching reference files.
  5. Keep loading async and keep RealityKit mutations inside its intended entry points.
  6. Route build, launch, simulator, and test problems to build-run-debug.

Load References When

ReferenceWhen to Use
swiftui-spatial-overview.mdWhen you need the general feature map, examples, and routing guidance for this skill.
model3d.mdWhen using Model3D for async model loading, assets, animation, or manipulation.
realityview.mdWhen setting up RealityView, attachments, or RealityKit integration patterns.
interaction.mdWhen implementing gestures or manipulation patterns for spatial input.
buttons-and-controls.mdWhen implementing visible SwiftUI buttons, links styled as buttons, toolbars, forms, or control surfaces.
swiftui-scene-lifecycle.mdWhen checking official Window, WindowGroup, ImmersiveSpace, open/dismiss, restoration, and launch contracts.
windowing-immersion.mdWhen managing windows, volumetric surfaces, or immersive space transitions.
spatial-layout.mdWhen using SwiftUI spatial layout APIs, sizing, or debug tools.

Workflow

  1. Confirm the architecture and scene ownership are already settled.
  2. Choose the rendering surface: Model3D, RealityView, window, volume, or immersive scene.
  3. Load only the matching reference files.
  4. Implement the smallest viable scene and keep mutations in the right layer.
  5. Summarize the chosen SwiftUI-to-RealityKit integration path.

Guardrails

  • Every visible button gets an explicit .buttonBorderShape(...) (.capsule for labeled actions, .circle for icon-only, .roundedRectangle(radius:) matching the background for card-like buttons - on visionOS this is also what shapes the button's hover highlight). Non-button hover surfaces pair .hoverEffect() with a matching .contentShape(.hoverEffect, ...). Load buttons-and-controls.md before writing any control code - this applies even when buttons are incidental to a larger task.
  • Keep RealityKit loads async; do not block the main actor with asset or entity loading.
  • Mutate RealityKit content in RealityView make or update closures or in a system, not in SwiftUI body code.
  • Use Model3D only when you need simple display and layout, not a custom ECS graph.
  • Treat ImmersiveSpace as a separate scene with its own lifecycle and environment actions.
  • Use defaultSize as an initial hint only; the system can clamp or restore geometry.
  • Use $swiftui-chart3d-developer for Chart3D and spatial data visualization.
  • Switch to build-run-debug when the question is about launch, build, simulator, codesign, or debugging workflow.
  • Use spatial-app-architecture when the question is about scene boundaries, ownership, or feature decomposition rather than API usage.
  • visionOS 27 SwiftUI adds no new scene, volume, or immersion APIs; the guidance here is current for visionOS 27. New in 27: gesture inputKinds: filtering (see interaction.md) plus cross-platform toolbar and navigation refinements that also apply on visionOS.

Output Expectations

Provide:

  • the chosen rendering and scene path
  • which references were used
  • the API surface involved (Model3D, RealityView, windowing, interaction, or layout)
  • the main implementation constraint or pitfall
  • routing back to architecture, Chart3D, or build/debug if needed

Comments

Markdown supported