skills/visionos/spatial-design/SKILL.md
Designing for visionOS — spatial layout and ergonomics (60pt eye targets, field-of-view placement, dynamic scale), eyes-and-hands input with hover rules, motion and visual comfort (the 0.2 Hz rule, vection, depth-cue agreement), immersion strategy, spatial sound, and the video-format decision guide. Use when designing or reviewing any visionOS app, window, volume, or immersive experience.
npx skillsauth add rshankras/claude-code-apple-skills spatial-designInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
The design rules that make a visionOS app comfortable instead of exhausting — distilled from
Apple's spatial-design sessions (WWDC23–26). Widget-specific rules live in visionos/widgets;
custom immersive-environment production and budgets live in immersive-environments.md.
Don't window a 2D app. Identify the one thing only possible on visionOS — the "key moment" — and build around it. Immersion has three approaches, and full immersion is not mandatory: full environments · integration with real surroundings (scene sensing) · meaningful audio.
.back depth alignment — switch to .front when
content should read toward the viewer; rotation3DLayout (not rotation3DEffect) when
rotation must affect layout; SpatialContainer/spatialOverlay for shared 3D space;
scaledToFit3D() for models.Adapt to the real room (portal up to 4m across in big rooms; set-distance + dimmed passthrough in tiny ones) · open small and welcoming, onboard that content reacts to people · use head position for eye contact (proximity signals interactivity; averted attention signals not) · consistent interaction rules — inconsistency shatters immersion · pace emotion with low-relief breaks (nonstop interaction physically exhausts) · gentle in-world boundaries over hard failures · accessibility is spatial too: VoiceOver, Dwell, captions, audio descriptions, Dynamic Type.
| You want | Use | |---|---| | Flat storytelling | 2D/3D/spatial video, windowed or docked (3D needs expanded) | | "Being there," forward-facing | Stereo 180° (half-equirectangular) | | Look-anywhere | 360° (equirectangular 2:1, typically mono) | | Action-cam POV | Wide-FOV APMP (120–180°, parametric lens projection) | | Premium cinematic immersion | Apple Immersive Video (8160×7200/eye @ 90fps, up to 210°×180°) |
Comfort rule: immersive playback puts the head where the camera was — high-motion scenes auto-reduce immersion (QuickLook/AVKit/RealityKit); encode stereo as MV-HEVC, never side-by-side. APMP formats never play inline.
Prefer scene restoration (windows come back where placed); disable only for transient/welcome
windows (restorationBehavior(.disabled), defaultLaunchBehavior(.suppressed)). Adapt
volumes to walls/tables via surface snapping info (authorization required). Handle Digital
Crown recentering (onWorldRecenter). Progressive immersion with an aspect ratio is a comfort
lever for vertical/high-motion content.
Spatial design review:
Area | Finding | Comfort/ergonomic rule violated | Fix
ordered: comfort violations (motion/depth/head-lock) first — they end sessions; then input
targets; then layout polish. Route environment production to immersive-environments.md,
widgets to visionos/widgets.
visionos/widgets, design/design-principles, design/animation-patternsdevelopment
US web checkout via the StoreKit External Purchase Link entitlement — currently 0% Apple commission (litigation ongoing), how to ship it safely, and how to architect for a commission flip so a future ruling is a config change, not a rewrite. Use when adding external purchase links, weighing web checkout vs IAP, or planning US-storefront pricing strategy.
tools
Revenue beyond the single-app price tag — own-app bundles, Family Sharing as a conversion lever, cross-developer bundles & suites, and institutional licensing via Group Purchases / Apple School & Business Manager. Use when a developer has multiple apps, a subscription worth sharing, complementary indie partners, or school/clinic/business buyers.
testing
Run a structured accessibility audit on an iOS/macOS app — automated XCUITest audits, Accessibility Inspector, manual VoiceOver/Dynamic Type passes, and App Store Accessibility Nutrition Label evaluation. Use before release, when preparing Nutrition Label declarations, or for EU Accessibility Act compliance.
tools
Stage-by-stage audit of an app's App Store growth machinery against a 54-item P0–P9 playbook — every item scored from an App Store Connect MCP call, a codebase check, or an explicit question to the user, then routed to the skill or command that fixes it. Read-only on App Store Connect. Use for a growth audit or scorecard, a pre-launch growth plan, a quarterly re-audit, or "which growth levers am I missing."