axiom-codex/skills/axiom-graphics/SKILL.md
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.
npx skillsauth add charleswiltgen/axiom axiom-graphicsInstall 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.
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
| 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?"
→ 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
development
Use when building ANY watchOS app — app structure, independent apps, Watch Connectivity, Smart Stack widgets, complications, controls, RelevanceKit, background tasks, ClockKit migration.
development
Use when working with HealthKit, WorkoutKit, health data, workouts, or fitness features on iOS or watchOS. Covers permissions, queries, background delivery, custom workouts, multidevice coordination.
development
Use when building, fixing, or improving ANY SwiftUI UI — views, navigation, layout, animations, performance, architecture, gestures, debugging, iOS 26 features.
content-media
Use when working with camera, photos, audio, haptics, ShazamKit, or Now Playing. Covers AVCaptureSession, PHPicker, PhotosPicker, AVFoundation, Core Haptics, audio recognition, MediaPlayer, CarPlay, MusicKit.