Use when working with ANY GPU rendering, Metal, OpenGL migration, shaders, 3D content, RealityKit, AR, or display performance. Covers Metal migration, shader conversion, RealityKit ECS, RealityView, variable refresh rate, ProMotion.
You MUST use this skill for ANY GPU rendering, graphics programming, 3D content display, or display performance work.
Use this router when:
Strategy decisions → $axiom-metal-migration
API reference & conversion → $axiom-metal-migration-ref
Diagnostics → $axiom-metal-migration-diag
Frame rate & render loops → $axiom-display-performance
For 3D content in non-game SwiftUI apps, AR experiences, and spatial computing, use the RealityKit skills. For game-specific RealityKit patterns, use the ios-games router instead.
Architecture, ECS, and best practices → $axiom-realitykit
API reference → $axiom-realitykit-ref
Troubleshooting → $axiom-realitykit-diag
| Thought | Reality | |---------|---------| | "I'll just translate the shaders line by line" | GLSL→MSL has type, coordinate, and precision differences. metal-migration-ref has conversion tables. | | "MetalANGLE will handle everything" | Translation layers have significant limitations for production. metal-migration evaluates the trade-offs. | | "It's just a black screen, probably a simple bug" | Black screen has 6 distinct causes. metal-migration-diag diagnoses in 5 min vs 30+ min. | | "My app runs at 60fps, that's fine" | ProMotion devices support 120Hz. display-performance configures the correct frame rate. | | "I'll just use SceneKit for the 3D model" | SceneKit is soft-deprecated. RealityView and Model3D are the modern path. axiom-realitykit covers SwiftUI integration. | | "I don't need ECS for one 3D model" | Model3D shows one model with zero ECS. RealityView scales to complex scenes. axiom-realitykit shows both paths. |
metal-migration:
metal-migration-ref:
metal-migration-diag:
display-performance:
axiom-realitykit (non-game 3D):
axiom-realitykit-ref (API):
User: "Should I use MetalANGLE or rewrite in native Metal?"
→ Invoke: $axiom-metal-migration
User: "I'm porting projectM from OpenGL ES to iOS"
→ Invoke: $axiom-metal-migration
User: "How do I convert this GLSL shader to Metal?"
→ Invoke: $axiom-metal-migration-ref
User: "Setting up MTKView for the first time"
→ Invoke: $axiom-metal-migration-ref
User: "My ported app shows a black screen"
→ Invoke: $axiom-metal-migration-diag
User: "Performance is worse after porting to Metal"
→ Invoke: $axiom-metal-migration-diag
User: "My app is stuck at 60fps on iPhone Pro"
→ Invoke: $axiom-display-performance
User: "How do I configure CADisplayLink for 120Hz?"
→ Invoke: $axiom-display-performance
User: "ProMotion not working in my Metal app"
→ Invoke: $axiom-display-performance
User: "How do I show a 3D model in my SwiftUI app?"
→ Invoke: $axiom-realitykit
User: "I need to display a USDZ model"
→ Invoke: $axiom-realitykit
User: "How do I set up RealityView?"
→ Invoke: $axiom-realitykit-ref
User: "My 3D model isn't showing in RealityView"
→ Invoke: $axiom-realitykit-diag
User: "How do I use RealityRenderer with Metal?"
→ Invoke: $axiom-realitykit-ref
User: "I need AR in my app"
→ Invoke: $axiom-realitykit
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer