OPENAI-PLUGIN
OpenAI's unit of distribution is the **plugin**: a folder with a manifest at `.codex-plugin/plugin.json`, optional skills, an…
**Do not improvise.** Every pattern below has a matching SwiftUI demo file in `samples/ios-demo/SceneViewDemo/Views/Demos/`. Read that file before writing code — the demo is the authoritative recipe.
How it fires
How this agent gets triggered: by you, by Claude, or both.
Context preview
The summary Claude sees to decide when to auto-load this agent.
**Do not improvise.** Every pattern below has a matching SwiftUI demo file in `samples/ios-demo/SceneViewDemo/Views/Demos/`. Read that file before writing code — the demo is the authoritative recipe.
**Do not improvise.** Every pattern below has a matching SwiftUI demo file in `samples/ios-demo/SceneViewDemo/Views/Demos/`. Read that file before writing code — the demo is the authoritative recipe.
[`ModelViewerDemo.swift`](https://github.com/sceneview/sceneview/blob/main/samples/ios-demo/SceneViewDemo/Views/Demos/ModelViewerDemo.swift) — `ModelNode.load(...)` in `.task { }`, stored in `@State`, added to the `SceneView` root.
[`AllShapesDemo.swift`](https://github.com/sceneview/sceneview/blob/main/samples/ios-demo/SceneViewDemo/Views/Demos/AllShapesDemo.swift) — `GeometryNode.cube / .sphere / .cylinder / .plane / .cone / .torus / .capsule`.
[`CameraControlsDemo.swift`](https://github.com/sceneview/sceneview/blob/main/samples/ios-demo/SceneViewDemo/Views/Demos/CameraControlsDemo.swift) — `.cameraControls(.orbit)` modifier; native Apple modes (`.none`, `.tilt`, `.dolly`) available on iOS 18+ via `realityViewCameraControls(_:)`, unavailable on visionOS.
[`AnimationDemo.swift`](https://github.com/sceneview/sceneview/blob/main/samples/ios-demo/SceneViewDemo/Views/Demos/AnimationDemo.swift) — `.autoRotate(speed:)` modifier.
[`LightTypesDemo.swift`](https://github.com/sceneview/sceneview/blob/main/samples/ios-demo/SceneViewDemo/Views/Demos/LightTypesDemo.swift) — `LightNode.directional / .point / .spot`.
[`LightTypesDemo.swift`](https://github.com/sceneview/sceneview/blob/main/samples/ios-demo/SceneViewDemo/Views/Demos/LightTypesDemo.swift) (Studio rig) — key, fill and rim `LightNode`s with live angle, intensity and colour.
[`MaterialsDemo.swift`](https://github.com/sceneview/sceneview/blob/main/samples/ios-demo/SceneViewDemo/Views/Demos/MaterialsDemo.swift) — `material: .pbr(color:metallic:roughness:)` / `.textured(...)` on geometry.
[`AnimationDemo.swift`](https://github.com/sceneview/sceneview/blob/main/samples/ios-demo/SceneViewDemo/Views/Demos/AnimationDemo.swift) — `model.playAllAnimations()` / `playAnimation(at:)`.
[`MultiModelDemo.swift`](https://github.com/sceneview/sceneview/blob/main/samples/ios-demo/SceneViewDemo/Views/Demos/MultiModelDemo.swift) — several `ModelNode`s in one `SceneView`.
[`TextDemo.swift`](https://github.com/sceneview/sceneview/blob/main/samples/ios-demo/SceneViewDemo/Views/Demos/TextDemo.swift) — `TextNode(text:fontSize:color:depth:)`.
[`BillboardDemo.swift`](https://github.com/sceneview/sceneview/blob/main/samples/ios-demo/SceneViewDemo/Views/Demos/BillboardDemo.swift) — `BillboardNode` always faces the camera.
[`LinesPathsDemo.swift`](https://github.com/sceneview/sceneview/blob/main/samples/ios-demo/SceneViewDemo/Views/Demos/LinesPathsDemo.swift) — `LineNode` / `PathNode` from `SIMD3<Float>` points.
[`CustomMeshDemo.swift`](https://github.com/sceneview/sceneview/blob/main/samples/ios-demo/SceneViewDemo/Views/Demos/CustomMeshDemo.swift) — composing built-in geometry into a custom shape.
[`ArDepthColliderScene.swift`](https://github.com/sceneview/sceneview/blob/main/samples/ios-demo/SceneViewDemo/Views/Demos/Scenes/ArDepthColliderScene.swift) — `PhysicsNode.dynamic / .static / .kinematic`. [`RollingBallsDemo.swift`](https://github.com/sceneview/sceneview/blob/main/samples/ios-demo/SceneViewDemo/Views/Demos/RollingBallsDemo.swift) and [`DoublePendulumDemo.swift`](https://github.com/sceneview/sceneview/blob/main/samples/ios-demo/SceneViewDemo/Views/Demos/DoublePendulumDemo.swift) — a fixed-step simulation that moves plain entities every frame, for a result that is identical on Android.
[`LightTypesDemo.swift`](https://github.com/sceneview/sceneview/blob/main/samples/ios-demo/SceneViewDemo/Views/Demos/LightTypesDemo.swift) (Sun rig) — `DynamicSkyNode`: the hour drives the sun's colour and angle.
[`ImagePlaneDemo.swift`](https://github.com/sceneview/sceneview/blob/main/samples/ios-demo/SceneViewDemo/Views/Demos/ImagePlaneDemo.swift) — `ImageNode.load("img.png")`.
[`ARPlacementDemo.swift`](https://github.com/sceneview/sceneview/blob/main/samples/ios-demo/SceneViewDemo/Views/Demos/ARPlacementDemo.swift) — `ARSceneView(planeDetection:onTapOnPlane:)` + `AnchorNode.world(position:)`.
[`ARInstantPlacementDemo.swift`](https://github.com/sceneview/sceneview/blob/main/samples/ios-demo/SceneViewDemo/Views/Demos/ARInstantPlacementDemo.swift) — estimated-plane raycasts for immediate placement.
[`ARLightingDemo.swift`](https://github.com/sceneview/sceneview/blob/main/samples/ios-demo/SceneViewDemo/Views/Demos/ARLightingDemo.swift) — `.mainLight(_:)` / `.fillLight(_:)` on `ARSceneView`.
[`DemoScreenRecording.swift`](https://github.com/sceneview/sceneview/blob/main/samples/ios-demo/SceneViewDemo/Views/Components/DemoScreenRecording.swift) (the Record action of every demo's sheet) — `ARRecorder` via ReplayKit. `startRecording()` / `stopRecording()`, `ARRecorder.saveToPhotoLibrary(_:)`. No deterministic playback on iOS.
[`RerunLiveCaptureView.swift`](https://github.com/sceneview/sceneview/blob/main/samples/ios-demo/SceneViewDemo/Views/Demos/Rerun/RerunLiveCaptureView.swift) — record AR frame data via `ARSceneView.onFrame`, replay it in 3D and export it to `.rrd` ([`RerunShowcaseDemo.swift`](https://github.com/sceneview/sceneview/blob/main/samples/ios-demo/SceneViewDemo/Views/Demos/Rerun/RerunShowcaseDemo.swift)).
[`CollisionHitTestDemo.swift`](https://github.com/sceneview/sceneview/blob/main/samples/ios-demo/SceneViewDemo/Views/Demos/CollisionHitTestDemo.
The AI-first 3D & AR SDK for Jetpack Compose, SwiftUI and the web. Declarative 3D and AR for app developers who want a model on screen, or in the room, without a game engine: Filament + ARCore on Android, RealityKit + ARKit on Apple, Filament.js + WebXR in
OpenAI's unit of distribution is the **plugin**: a folder with a manifest at `.codex-plugin/plugin.json`, optional skills, an…
This directory ships the SceneView SDK as **agent skills** for AI coding assistants. Each skill is a self-contained `SKILL.md`…
This page covers the rewrites AI agents most often need when bringing existing Apple-platform 3D code onto SceneViewSwift. The…