iOS Games Router
You MUST use this skill for ANY game development, SpriteKit, SceneKit, RealityKit, or interactive simulation work.
When to Use
Use this router when:
- Building a new SpriteKit game or prototype (2D)
- Building a 3D game with SceneKit or RealityKit
- Implementing physics (collisions, contacts, forces, joints)
- Setting up game architecture (scenes, layers, cameras, ECS)
- Debugging SpriteKit, SceneKit, or RealityKit issues
- Optimizing game performance (draw calls, node counts, entity counts, batching)
- Managing game loop, delta time, or pause handling
- Implementing touch/input handling in a game context
- Integrating SpriteKit or RealityKit with SwiftUI
- Working with particle effects, texture atlases, or 3D models
- Looking up SpriteKit, SceneKit, or RealityKit API details
- Migrating from SceneKit to RealityKit
- Building AR games with RealityKit
Routing Logic
SpriteKit (2D)
Architecture, patterns, and best practices → $axiom-spritekit
- Scene graph model, coordinate systems, anchor points
- Physics engine: bitmask discipline, contact detection, body types
- Actions system: sequencing, grouping, named actions, timing
- Input handling: touches, coordinate conversion
- Performance: draw calls, batching, object pooling, SKShapeNode trap
- Game loop: frame cycle, delta time, pause handling
- Scene transitions and data passing
- SwiftUI integration (SpriteView, UIViewRepresentable)
- Metal integration (SKRenderer)
- Anti-patterns and code review checklist
- Pressure scenarios with push-back templates
API reference and lookup → $axiom-spritekit-ref
- All 16 node types with properties and performance notes
- SKPhysicsBody creation methods and properties
- Complete SKAction catalog (movement, rotation, scaling, fading, composition, physics)
- Texture and atlas management
- SKConstraint types and SKRange
- SKView configuration and scale modes
- SKEmitterNode properties and presets
- SKRenderer setup and SKShader syntax
Troubleshooting and diagnostics → $axiom-spritekit-diag
- Physics contacts not firing (6-branch decision tree)
- Objects tunneling through walls (5-branch)
- Poor frame rate (4 top branches, 12 leaves)
- Touches not registering (6-branch)
- Memory spikes and crashes (5-branch)
- Coordinate confusion (5-branch)
- Scene transition crashes (5-branch)
Automated scanning → Launch spritekit-auditor agent or /axiom:audit spritekit (physics bitmasks, draw call waste, node accumulation, action memory leaks, coordinate confusion, touch handling, missing object pooling, missing debug overlays)
SceneKit (3D — Deprecated)
SceneKit is soft-deprecated as of iOS 26. Use for maintenance of existing code only. New 3D projects should use RealityKit.
Maintenance and migration planning → $axiom-scenekit
- Scene graph architecture, coordinate system, transforms
- Rendering: SCNView, SceneView (deprecated), SCNViewRepresentable
- Geometry, PBR materials, shader modifiers
- Lighting, animation (SCNAction, SCNTransaction, CAAnimation bridge)
- Physics: bodies, collision categories, contact delegate
- Asset pipeline: Model I/O, USD/DAE/SCN formats
- ARKit integration (legacy ARSCNView)
- Migration decision tree (when to migrate vs maintain)
- Anti-patterns and pressure scenarios
API reference and migration mapping → $axiom-scenekit-ref
- Complete SceneKit → RealityKit concept mapping table
- Scene graph API: SCNScene, SCNNode, SCNGeometry
- Materials: lighting models, PBR properties, shader modifiers
- Lighting: all light types with properties
- Camera: SCNCamera properties
- Physics: body types, shapes, joints
- Animation: SCNAction catalog, timing functions
- Constraints: all constraint types
RealityKit (3D — Modern)
For non-game 3D content display (product viewers, AR try-on, spatial computing), the ios-graphics router also routes to these RealityKit skills.
Architecture, ECS, and best practices → $axiom-realitykit
- Entity-Component-System mental model and paradigm shift
- Entity hierarchy, transforms, world-space queries
- Built-in and custom components, component lifecycle
- System protocol, update ordering, event handling
- SwiftUI integration: RealityView, Model3D, attachments
- AR on iOS: AnchorEntity types, SpatialTrackingSession
- Interaction: ManipulationComponent, gestures, hit testing
- Materials: SimpleMaterial, PBR, Unlit, Occlusion, ShaderGraph, Custom
- Physics: collision shapes, groups/filters, events, forces
- Animation: transform, USD playback, playback control
- Audio: spatial, ambient, channel
- Performance: instancing, component churn, shape optimization
- Multiplayer: synchronization, ownership
- Anti-patterns and code review checklist
- Pressure scenarios
API reference and lookup → $axiom-realitykit-ref
- Entity API: properties, hierarchy, subclasses
- Complete component catalog with all properties
- MeshResource generators
- ShapeResource types and performance
- System protocol and EntityQuery
- Scene events catalog
- RealityView API: initializers, content, gestures
- Model3D API
- Material system: all types with full property listings
- Animation timing functions and playback control
- Audio components and playback
- RealityRenderer (Metal integration)
Troubleshooting and diagnostics → $axiom-realitykit-diag
- Entity not visible (8-branch decision tree)
- Anchor not tracking (6-branch)
- Gesture not responding (6-branch)
- Performance problems (7-branch)
- Material looks wrong (6-branch)
- Physics not working (6-branch)
- Multiplayer sync issues (5-branch)
Decision Tree
- Building/designing a 2D SpriteKit game? → axiom-spritekit
- How to use a specific SpriteKit API? → axiom-spritekit-ref
- SpriteKit broken or performing badly? → axiom-spritekit-diag
- Maintaining existing SceneKit code? → axiom-scenekit
- SceneKit API reference or migration mapping? → axiom-scenekit-ref
- Building new 3D game or experience? → axiom-realitykit
- How to use a specific RealityKit API? → axiom-realitykit-ref
- RealityKit entity not visible, gestures broken, performance? → axiom-realitykit-diag
- Migrating SceneKit to RealityKit? → axiom-scenekit (migration tree) + axiom-scenekit-ref (mapping table)
- Building AR game? → axiom-realitykit
- Physics contacts not working (SpriteKit)? → axiom-spritekit-diag (Symptom 1)
- Frame rate dropping (SpriteKit)? → axiom-spritekit-diag (Symptom 3)
- Coordinate/position confusion (SpriteKit)? → axiom-spritekit-diag (Symptom 6)
- Need the complete action list? → axiom-spritekit-ref (Part 3)
- Physics body setup reference? → axiom-spritekit-ref (Part 2)
- Entity not visible (RealityKit)? → axiom-realitykit-diag (Symptom 1)
- Gesture not responding (RealityKit)? → axiom-realitykit-diag (Symptom 3)
- Want automated SpriteKit code scan? → spritekit-auditor (Agent)
Anti-Rationalization
| Thought |
Reality |
| "SpriteKit is simple, I don't need a skill" |
Physics bitmasks default to 0xFFFFFFFF and cause phantom collisions. The bitmask checklist catches this in 2 min. |
| "I'll just use SKShapeNode, it's quick" |
Each SKShapeNode is a separate draw call. 50 of them = 50 draw calls. axiom-spritekit has the pre-render-to-texture pattern. |
| "I can figure out the coordinate system" |
SpriteKit uses bottom-left origin (opposite of UIKit). Anchor points add another layer. axiom-spritekit-diag Symptom 6 resolves in 5 min. |
| "Physics is straightforward" |
Three different bitmask properties, modification rules inside callbacks, and tunneling edge cases. axiom-spritekit Section 3 covers all gotchas. |
| "The performance is fine on my device" |
Performance varies dramatically across devices. axiom-spritekit Section 6 has the debug overlay checklist. |
| "SceneKit is fine for our new project" |
SceneKit is soft-deprecated iOS 26. No new features, only security patches. axiom-scenekit has the migration decision tree. |
| "I'll learn RealityKit later" |
Every line of SceneKit is migration debt. axiom-scenekit-ref has the concept mapping table so the transition is concrete, not abstract. |
| "ECS is overkill for a simple 3D app" |
You're already using ECS — Entity + ModelComponent. axiom-realitykit shows how to scale from simple to complex. |
| "I don't need collision shapes for taps" |
RealityKit gestures require CollisionComponent. axiom-realitykit-diag diagnoses this in 2 min vs 30 min guessing. |
| "I'll just use a Timer for game updates" |
Timer-based updates miss frames and aren't synchronized with rendering. axiom-realitykit has the System pattern. |
Critical Patterns
axiom-spritekit:
- PhysicsCategory struct with explicit bitmasks (default
0xFFFFFFFF causes phantom collisions)
- Camera node pattern for viewport + HUD separation
- SKShapeNode pre-render-to-texture conversion
[weak self] in all SKAction.run closures
- Delta time with spiral-of-death clamping
axiom-spritekit-ref:
- Complete node type table (16 types with batching behavior)
- Physics body creation methods (circle cheapest, texture most expensive)
- Full action catalog with composition patterns
- SKView debug overlays and scale mode matrix
axiom-spritekit-diag:
- 5-step bitmask checklist (2 min vs 30-120 min guessing)
- Debug overlays as mandatory first diagnostic step
- Tunneling prevention flowchart
- Memory growth diagnosis via
showsNodeCount trending
axiom-scenekit:
- Migration decision tree (new project → RealityKit, existing → maintain or migrate)
- USDZ asset conversion before migration (
xcrun scntool)
- SceneView deprecation and SCNViewRepresentable replacement
- Pressure scenarios for "just use SceneKit" rationalization
axiom-scenekit-ref:
- Complete SceneKit → RealityKit concept mapping table
- All material lighting models and properties
- Full constraint catalog
axiom-realitykit:
- ECS mental shift table (scene graph thinking → ECS thinking)
- Custom component registration (
registerComponent())
- Read-modify-write pattern for component updates
- CollisionComponent required for all interaction
- System-based updates instead of timers
axiom-realitykit-ref:
- Complete component catalog with all properties
- MeshResource generators and ShapeResource types
- Scene events catalog
- Material system with all PBR properties
axiom-realitykit-diag:
- Entity visibility checklist (8 branches, 2-5 min vs 30-60 min)
- Gesture debugging (CollisionComponent first check)
- Performance diagnosis (entity count, resource sharing, component churn)
- Physics constraint: entities must share an anchor
Example Invocations
User: "I'm building a SpriteKit game"
→ Invoke: $axiom-spritekit
User: "My physics contacts aren't firing"
→ Invoke: $axiom-spritekit-diag
User: "How do I create a physics body from a texture?"
→ Invoke: $axiom-spritekit-ref
User: "Frame rate is dropping in my game"
→ Invoke: $axiom-spritekit-diag
User: "How do I set up SpriteKit with SwiftUI?"
→ Invoke: $axiom-spritekit
User: "What action types are available?"
→ Invoke: $axiom-spritekit-ref
User: "Objects pass through walls"
→ Invoke: $axiom-spritekit-diag
User: "I need to build a 3D game"
→ Invoke: $axiom-realitykit
User: "How do I add a 3D model to my SwiftUI app?"
→ Invoke: $axiom-realitykit
User: "My RealityKit entity isn't showing up"
→ Invoke: $axiom-realitykit-diag
User: "How do I set up physics in RealityKit?"
→ Invoke: $axiom-realitykit-ref
User: "I'm migrating from SceneKit to RealityKit"
→ Invoke: $axiom-scenekit + $axiom-scenekit-ref
User: "What's the RealityKit equivalent of SCNNode?"
→ Invoke: $axiom-scenekit-ref
User: "Should I use SceneKit for my new 3D project?"
→ Invoke: $axiom-scenekit
User: "Tap gestures don't work on my RealityKit entity"
→ Invoke: $axiom-realitykit-diag
User: "How do I set up ECS in RealityKit?"
→ Invoke: $axiom-realitykit
User: "My AR content isn't tracking"
→ Invoke: $axiom-realitykit-diag
User: "What materials are available in RealityKit?"
→ Invoke: $axiom-realitykit-ref
User: "How do I animate entities in RealityKit?"
→ Invoke: $axiom-realitykit-ref
User: "Memory keeps growing during gameplay"
→ Invoke: $axiom-spritekit-diag
User: "What particle emitter settings should I use for fire?"
→ Invoke: $axiom-spritekit-ref
User: "Can you scan my SpriteKit code for common issues?"
→ Invoke: spritekit-auditor agent
1---2name: axiom-ios-games3description: Use when building ANY 2D or 3D game, game prototype, or interactive simulation with SpriteKit, SceneKit, or RealityKit. Covers scene graphs, ECS architecture, physics, actions, game loops, rendering, SwiftUI integration, SceneKit migration.4license: MIT5---67# iOS Games Router89**You MUST use this skill for ANY game development, SpriteKit, SceneKit, RealityKit, or interactive simulation work.**1011## When to Use1213Use this router when:14- Building a new SpriteKit game or prototype (2D)15- Building a 3D game with SceneKit or RealityKit16- Implementing physics (collisions, contacts, forces, joints)17- Setting up game architecture (scenes, layers, cameras, ECS)18- Debugging SpriteKit, SceneKit, or RealityKit issues19- Optimizing game performance (draw calls, node counts, entity counts, batching)20- Managing game loop, delta time, or pause handling21- Implementing touch/input handling in a game context22- Integrating SpriteKit or RealityKit with SwiftUI23- Working with particle effects, texture atlases, or 3D models24- Looking up SpriteKit, SceneKit, or RealityKit API details25- Migrating from SceneKit to RealityKit26- Building AR games with RealityKit2728## Routing Logic2930### SpriteKit (2D)3132**Architecture, patterns, and best practices** → `$axiom-spritekit`33- Scene graph model, coordinate systems, anchor points34- Physics engine: bitmask discipline, contact detection, body types35- Actions system: sequencing, grouping, named actions, timing36- Input handling: touches, coordinate conversion37- Performance: draw calls, batching, object pooling, SKShapeNode trap38- Game loop: frame cycle, delta time, pause handling39- Scene transitions and data passing40- SwiftUI integration (SpriteView, UIViewRepresentable)41- Metal integration (SKRenderer)42- Anti-patterns and code review checklist43- Pressure scenarios with push-back templates4445**API reference and lookup** → `$axiom-spritekit-ref`46- All 16 node types with properties and performance notes47- SKPhysicsBody creation methods and properties48- Complete SKAction catalog (movement, rotation, scaling, fading, composition, physics)49- Texture and atlas management50- SKConstraint types and SKRange51- SKView configuration and scale modes52- SKEmitterNode properties and presets53- SKRenderer setup and SKShader syntax5455**Troubleshooting and diagnostics** → `$axiom-spritekit-diag`56- Physics contacts not firing (6-branch decision tree)57- Objects tunneling through walls (5-branch)58- Poor frame rate (4 top branches, 12 leaves)59- Touches not registering (6-branch)60- Memory spikes and crashes (5-branch)61- Coordinate confusion (5-branch)62- Scene transition crashes (5-branch)6364**Automated scanning** → Launch `spritekit-auditor` agent or `/axiom:audit spritekit` (physics bitmasks, draw call waste, node accumulation, action memory leaks, coordinate confusion, touch handling, missing object pooling, missing debug overlays)6566### SceneKit (3D — Deprecated)6768**SceneKit is soft-deprecated as of iOS 26.** Use for maintenance of existing code only. New 3D projects should use RealityKit.6970**Maintenance and migration planning** → `$axiom-scenekit`71- Scene graph architecture, coordinate system, transforms72- Rendering: SCNView, SceneView (deprecated), SCNViewRepresentable73- Geometry, PBR materials, shader modifiers74- Lighting, animation (SCNAction, SCNTransaction, CAAnimation bridge)75- Physics: bodies, collision categories, contact delegate76- Asset pipeline: Model I/O, USD/DAE/SCN formats77- ARKit integration (legacy ARSCNView)78- Migration decision tree (when to migrate vs maintain)79- Anti-patterns and pressure scenarios8081**API reference and migration mapping** → `$axiom-scenekit-ref`82- Complete SceneKit → RealityKit concept mapping table83- Scene graph API: SCNScene, SCNNode, SCNGeometry84- Materials: lighting models, PBR properties, shader modifiers85- Lighting: all light types with properties86- Camera: SCNCamera properties87- Physics: body types, shapes, joints88- Animation: SCNAction catalog, timing functions89- Constraints: all constraint types9091### RealityKit (3D — Modern)9293**For non-game 3D content display (product viewers, AR try-on, spatial computing), the ios-graphics router also routes to these RealityKit skills.**9495**Architecture, ECS, and best practices** → `$axiom-realitykit`96- Entity-Component-System mental model and paradigm shift97- Entity hierarchy, transforms, world-space queries98- Built-in and custom components, component lifecycle99- System protocol, update ordering, event handling100- SwiftUI integration: RealityView, Model3D, attachments101- AR on iOS: AnchorEntity types, SpatialTrackingSession102- Interaction: ManipulationComponent, gestures, hit testing103- Materials: SimpleMaterial, PBR, Unlit, Occlusion, ShaderGraph, Custom104- Physics: collision shapes, groups/filters, events, forces105- Animation: transform, USD playback, playback control106- Audio: spatial, ambient, channel107- Performance: instancing, component churn, shape optimization108- Multiplayer: synchronization, ownership109- Anti-patterns and code review checklist110- Pressure scenarios111112**API reference and lookup** → `$axiom-realitykit-ref`113- Entity API: properties, hierarchy, subclasses114- Complete component catalog with all properties115- MeshResource generators116- ShapeResource types and performance117- System protocol and EntityQuery118- Scene events catalog119- RealityView API: initializers, content, gestures120- Model3D API121- Material system: all types with full property listings122- Animation timing functions and playback control123- Audio components and playback124- RealityRenderer (Metal integration)125126**Troubleshooting and diagnostics** → `$axiom-realitykit-diag`127- Entity not visible (8-branch decision tree)128- Anchor not tracking (6-branch)129- Gesture not responding (6-branch)130- Performance problems (7-branch)131- Material looks wrong (6-branch)132- Physics not working (6-branch)133- Multiplayer sync issues (5-branch)134135## Decision Tree1361371. Building/designing a 2D SpriteKit game? → axiom-spritekit1382. How to use a specific SpriteKit API? → axiom-spritekit-ref1393. SpriteKit broken or performing badly? → axiom-spritekit-diag1404. Maintaining existing SceneKit code? → axiom-scenekit1415. SceneKit API reference or migration mapping? → axiom-scenekit-ref1426. Building new 3D game or experience? → axiom-realitykit1437. How to use a specific RealityKit API? → axiom-realitykit-ref1448. RealityKit entity not visible, gestures broken, performance? → axiom-realitykit-diag1459. Migrating SceneKit to RealityKit? → axiom-scenekit (migration tree) + axiom-scenekit-ref (mapping table)14610. Building AR game? → axiom-realitykit14711. Physics contacts not working (SpriteKit)? → axiom-spritekit-diag (Symptom 1)14812. Frame rate dropping (SpriteKit)? → axiom-spritekit-diag (Symptom 3)14913. Coordinate/position confusion (SpriteKit)? → axiom-spritekit-diag (Symptom 6)15014. Need the complete action list? → axiom-spritekit-ref (Part 3)15115. Physics body setup reference? → axiom-spritekit-ref (Part 2)15216. Entity not visible (RealityKit)? → axiom-realitykit-diag (Symptom 1)15317. Gesture not responding (RealityKit)? → axiom-realitykit-diag (Symptom 3)15418. Want automated SpriteKit code scan? → spritekit-auditor (Agent)155156## Anti-Rationalization157158| Thought | Reality |159|---------|---------|160| "SpriteKit is simple, I don't need a skill" | Physics bitmasks default to 0xFFFFFFFF and cause phantom collisions. The bitmask checklist catches this in 2 min. |161| "I'll just use SKShapeNode, it's quick" | Each SKShapeNode is a separate draw call. 50 of them = 50 draw calls. axiom-spritekit has the pre-render-to-texture pattern. |162| "I can figure out the coordinate system" | SpriteKit uses bottom-left origin (opposite of UIKit). Anchor points add another layer. axiom-spritekit-diag Symptom 6 resolves in 5 min. |163| "Physics is straightforward" | Three different bitmask properties, modification rules inside callbacks, and tunneling edge cases. axiom-spritekit Section 3 covers all gotchas. |164| "The performance is fine on my device" | Performance varies dramatically across devices. axiom-spritekit Section 6 has the debug overlay checklist. |165| "SceneKit is fine for our new project" | SceneKit is soft-deprecated iOS 26. No new features, only security patches. axiom-scenekit has the migration decision tree. |166| "I'll learn RealityKit later" | Every line of SceneKit is migration debt. axiom-scenekit-ref has the concept mapping table so the transition is concrete, not abstract. |167| "ECS is overkill for a simple 3D app" | You're already using ECS — Entity + ModelComponent. axiom-realitykit shows how to scale from simple to complex. |168| "I don't need collision shapes for taps" | RealityKit gestures require CollisionComponent. axiom-realitykit-diag diagnoses this in 2 min vs 30 min guessing. |169| "I'll just use a Timer for game updates" | Timer-based updates miss frames and aren't synchronized with rendering. axiom-realitykit has the System pattern. |170171## Critical Patterns172173**axiom-spritekit**:174- PhysicsCategory struct with explicit bitmasks (default `0xFFFFFFFF` causes phantom collisions)175- Camera node pattern for viewport + HUD separation176- SKShapeNode pre-render-to-texture conversion177- `[weak self]` in all `SKAction.run` closures178- Delta time with spiral-of-death clamping179180**axiom-spritekit-ref**:181- Complete node type table (16 types with batching behavior)182- Physics body creation methods (circle cheapest, texture most expensive)183- Full action catalog with composition patterns184- SKView debug overlays and scale mode matrix185186**axiom-spritekit-diag**:187- 5-step bitmask checklist (2 min vs 30-120 min guessing)188- Debug overlays as mandatory first diagnostic step189- Tunneling prevention flowchart190- Memory growth diagnosis via `showsNodeCount` trending191192**axiom-scenekit**:193- Migration decision tree (new project → RealityKit, existing → maintain or migrate)194- USDZ asset conversion before migration (`xcrun scntool`)195- SceneView deprecation and SCNViewRepresentable replacement196- Pressure scenarios for "just use SceneKit" rationalization197198**axiom-scenekit-ref**:199- Complete SceneKit → RealityKit concept mapping table200- All material lighting models and properties201- Full constraint catalog202203**axiom-realitykit**:204- ECS mental shift table (scene graph thinking → ECS thinking)205- Custom component registration (`registerComponent()`)206- Read-modify-write pattern for component updates207- CollisionComponent required for all interaction208- System-based updates instead of timers209210**axiom-realitykit-ref**:211- Complete component catalog with all properties212- MeshResource generators and ShapeResource types213- Scene events catalog214- Material system with all PBR properties215216**axiom-realitykit-diag**:217- Entity visibility checklist (8 branches, 2-5 min vs 30-60 min)218- Gesture debugging (CollisionComponent first check)219- Performance diagnosis (entity count, resource sharing, component churn)220- Physics constraint: entities must share an anchor221222## Example Invocations223224User: "I'm building a SpriteKit game"225→ Invoke: `$axiom-spritekit`226227User: "My physics contacts aren't firing"228→ Invoke: `$axiom-spritekit-diag`229230User: "How do I create a physics body from a texture?"231→ Invoke: `$axiom-spritekit-ref`232233User: "Frame rate is dropping in my game"234→ Invoke: `$axiom-spritekit-diag`235236User: "How do I set up SpriteKit with SwiftUI?"237→ Invoke: `$axiom-spritekit`238239User: "What action types are available?"240→ Invoke: `$axiom-spritekit-ref`241242User: "Objects pass through walls"243→ Invoke: `$axiom-spritekit-diag`244245User: "I need to build a 3D game"246→ Invoke: `$axiom-realitykit`247248User: "How do I add a 3D model to my SwiftUI app?"249→ Invoke: `$axiom-realitykit`250251User: "My RealityKit entity isn't showing up"252→ Invoke: `$axiom-realitykit-diag`253254User: "How do I set up physics in RealityKit?"255→ Invoke: `$axiom-realitykit-ref`256257User: "I'm migrating from SceneKit to RealityKit"258→ Invoke: `$axiom-scenekit` + `$axiom-scenekit-ref`259260User: "What's the RealityKit equivalent of SCNNode?"261→ Invoke: `$axiom-scenekit-ref`262263User: "Should I use SceneKit for my new 3D project?"264→ Invoke: `$axiom-scenekit`265266User: "Tap gestures don't work on my RealityKit entity"267→ Invoke: `$axiom-realitykit-diag`268269User: "How do I set up ECS in RealityKit?"270→ Invoke: `$axiom-realitykit`271272User: "My AR content isn't tracking"273→ Invoke: `$axiom-realitykit-diag`274275User: "What materials are available in RealityKit?"276→ Invoke: `$axiom-realitykit-ref`277278User: "How do I animate entities in RealityKit?"279→ Invoke: `$axiom-realitykit-ref`280281User: "Memory keeps growing during gameplay"282→ Invoke: `$axiom-spritekit-diag`283284User: "What particle emitter settings should I use for fire?"285→ Invoke: `$axiom-spritekit-ref`286287User: "Can you scan my SpriteKit code for common issues?"288→ Invoke: `spritekit-auditor` agent