From axiom
Routes to specialized skills for Metal migration, shader conversion, RealityKit AR, USD handling, and display performance on Apple devices.
How this skill is triggered — by the user, by Claude, or both
Slash command
/axiom:axiom-graphicsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**You MUST use this skill for ANY GPU rendering, graphics programming, 3D content display, or display performance work.**
You MUST use this skill for ANY GPU rendering, graphics programming, 3D content display, or display performance work.
Use this router when:
Strategy decisions → See skills/metal-migration.md
API reference & conversion → See skills/metal-migration-ref.md
Diagnostics → See skills/metal-migration-diag.md
Frame rate & render loops → See skills/display-performance.md
For 3D content in non-game SwiftUI apps, AR experiences, and spatial computing, use the RealityKit skills. For game-specific RealityKit patterns, use the axiom-games router instead.
Architecture, ECS, and best practices → See skills/realitykit.md
API reference → See skills/realitykit-ref.md
Troubleshooting → See skills/realitykit-diag.md
HDR drawing and color metadata → See skills/hdr-color-ref.md
CGContextCGContentToneMappingInfo vs CGToneMapping)OS27)CGColor / CGColorSpace (Codable in OS27)OS27USD file work in Swift → See skills/usdkit.md
| 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. skills/realitykit.md covers SwiftUI integration. |
| "I don't need ECS for one 3D model" | Model3D shows one model with zero ECS. RealityView scales to complex scenes. skills/realitykit.md shows both paths. |
| "I'll parse the USD file myself / bundle OpenUSD" | USDKit is system-provided USD on the 27 releases. skills/usdkit.md covers stages, editing, and compressed export. |
| "I'll write my own pathfinding over the scene graph" | RealityKit 27 ships navigation meshes with costs and off-mesh connections. skills/realitykit-ref.md Part 10. |
| "The frame drop only happens after an hour of play, can't trace that" | The 27 releases record Metal metrics continuously — collect after the fact with metalperftrace. skills/display-performance.md Part 12. |
"I'll use CGContentToneMappingInfo — it's the modern Swift enum" | It cannot express Headroom Adaptive Gain Curve; only the C-imported CGToneMapping can. Newer spelling, narrower capability. skills/hdr-color-ref.md Part 1. |
metal-migration:
metal-migration-ref:
metal-migration-diag:
display-performance:
realitykit (non-game 3D):
realitykit-ref (API):
ClothBodyComponent), ComputeGraph frameworkusdkit (USD authoring, 27 releases):
User: "Should I use MetalANGLE or rewrite in native Metal?"
→ See skills/metal-migration.md
User: "I'm porting projectM from OpenGL ES to iOS"
→ See skills/metal-migration.md
User: "How do I convert this GLSL shader to Metal?"
→ See skills/metal-migration-ref.md
User: "Setting up MTKView for the first time"
→ See skills/metal-migration-ref.md
User: "My ported app shows a black screen"
→ See skills/metal-migration-diag.md
User: "Performance is worse after porting to Metal"
→ See skills/metal-migration-diag.md
User: "My app is stuck at 60fps on iPhone Pro"
→ See skills/display-performance.md
User: "How do I configure CADisplayLink for 120Hz?"
→ See skills/display-performance.md
User: "ProMotion not working in my Metal app"
→ See skills/display-performance.md
User: "How do I show a 3D model in my SwiftUI app?"
→ See skills/realitykit.md
User: "I need to display a USDZ model"
→ See skills/realitykit.md
User: "How do I set up RealityView?"
→ See skills/realitykit-ref.md
User: "My 3D model isn't showing in RealityView"
→ See skills/realitykit-diag.md
User: "How do I use RealityRenderer with Metal?"
→ See skills/realitykit-ref.md
User: "I need AR in my app"
→ See skills/realitykit.md
User: "How do I read and edit a USD file in Swift?"
→ See skills/usdkit.md
User: "How do I shrink my USDZ assets for delivery?"
→ See skills/usdkit.md
User: "How do I add pathfinding to my RealityKit scene?"
→ See skills/realitykit-ref.md (Part 10)
User: "My game's frame rate drops after an hour of play"
→ See skills/display-performance.md (Part 12)
User: "How do I run a neural network inside my Metal shader?"
→ See skills/metal-migration-ref.md (Part 6)
User: "My HDR photo looks washed out when I draw it into a CGContext"
→ See skills/hdr-color-ref.md
User: "How do I check whether an image's ICC profile carries a gain curve?"
→ See skills/hdr-color-ref.md
npx claudepluginhub charleswiltgen/axiom --plugin axiomBuilds iOS AR and 3D experiences using RealityKit and ARKit. Covers RealityView, entity management, USDZ loading, anchoring, raycasting, gestures, and scene understanding.
Covers iOS development with Swift/SwiftUI/UIKit: architecture, debugging, networking, data persistence, performance, and App Store submission. Use for any native Apple platform task.
Translates graphics code to Metal 4 with cross-API mappings from Metal 3, D3D12, or Vulkan, and covers Apple GPU TBDR architecture.