Scene Kit is a framework for 3D graphics, based on hierarchical scene-graphs.
The fundamental classes in Scene Kit are SceneKit.SCNScene, which holds all content, and CoreGraphics.SceneKit.SCNView, a UIKit.UIView that renders an SceneKit.SCNScene.
An SceneKit.SCNScene has a SceneKit.SCNScene.RootNode property of type SceneKit.SCNNode. SceneKit.SCNNode's have SceneKit.SCNNode.ChildNodes and implement System.Collections.Generic.IEnumerable`1<class MonoTouch.SceneKit.SCNNode>. Properties of SceneKit.SCNNode include SceneKit.SCNNode.Camera, of type SceneKit.SCNCamera, SceneKit.SCNNode.Geometry, of type SceneKit.SCNGeometry, and SceneKit.SCNNode.Light, of type SceneKit.SCNLight.
Additionally, every SceneKit.SCNNode has a SceneKit.SCNNode.Position property that defines a location in space relative to the SceneKit.SCNNode's SceneKit.SCNNode.ParentNode and SceneKit.SCNNode.FirstMaterial and SceneKit.SCNNode.Materials that create the SceneKit.SCNNode's appearance.
The following example shows a minimal Scene Kit view:
C# Example
public MySceneView (RectangleF frame) : base(frame)
{
BackgroundColor = UIColor.Blue;
this.Scene = new SCNScene ();
var material = new SCNMaterial ();
material.Diffuse.Contents = UIImage.FromFile("textureX.png");
material.Specular.Contents = UIColor.Gray;
material.LocksAmbientWithDiffuse = true;
Scene.RootNode.Geometry = new SCNBox {
Width = 1,
Height = 1,
Length = 1,
ChamferRadius = 0.2f,
FirstMaterial = material
};
Scene.RootNode.Light = new SCNLight {
LightType = SCNLightType.Ambient,
Color = UIColor.Gray,
};
var camera = new SCNCamera ();
var cameraNode = new SCNNode () {
Camera = camera,
Position = new SCNVector3 (3, 3, 3),
Constraints = new SCNConstraint[] { SCNLookAtConstraint.Create(Scene.RootNode) }
};
Scene.RootNode.AddChildNode (cameraNode);
}

| Type | Reason |
|---|---|
| _SCNShaderModifiers | Documentation for this section has not yet been entered. |
| ISCNActionable | Interface representing the required methods (if any) of the protocol SceneKit.SCNActionable. |
| ISCNAnimatable | Interface representing the required methods (if any) of the protocol SceneKit.SCNAnimatable. |
| ISCNBoundingVolume | Interface representing the required methods (if any) of the protocol SceneKit.SCNBoundingVolume. |
| ISCNNodeRendererDelegate | Interface representing the required methods (if any) of the protocol SceneKit.SCNNodeRendererDelegate. |
| ISCNPhysicsContactDelegate | Interface representing the required methods (if any) of the protocol SceneKit.SCNPhysicsContactDelegate. |
| ISCNProgramDelegate | Interface representing the required methods (if any) of the protocol SceneKit.SCNProgramDelegate. |
| ISCNSceneRenderer | Interface representing the required methods (if any) of the protocol SceneKit.SCNSceneRenderer. |
| ISCNSceneRendererDelegate | Interface representing the required methods (if any) of the protocol SceneKit.SCNSceneRendererDelegate. |
| ISCNShadable | Interface representing the required methods (if any) of the protocol SceneKit.SCNShadable. |
| ISCNTechniqueSupport | Interface representing the required methods (if any) of the protocol SceneKit.SCNTechniqueSupport. |
| SCNAction | Performs actions on a SceneKit.SCNNode, including changes to appearance, geometry, animations, or arbitrary functions. |
| SCNActionable | Allows actions to be applied. |
| SCNActionNodeWithElapsedTimeHandler | Completion handler used with SceneKit.SCNAction.CustomAction. |
| SCNActionTimingMode | Enumerates rate curves for use with SceneKit.SCNAction objects. |
| SCNAnimatable | Allows animations to be applied. |
| SCNAnimationEvent | Performs a function at a specific time during an animation. |
| SCNAnimationEventHandler | Completion handler for use with SceneKit.SCNAnimationEvent.Create. |
| SCNAntialiasingMode | Enumerates values that control antialiasing behavior. |
| SCNBindingHandler | Completion handler used with SceneKit.SCNShadable.HandleBinding. |
| SCNBoundingVolume | Functions that define a volume in 3D space. |
| SCNBox | An SceneKit.SCNGeometry whose faces are all rectangles. |
| SCNCamera | Specifies a camera, with attributes such as field-of-view and depth-of-view. |
| SCNCapsule | An SceneKit.SCNGeometry that is a cylinder with capped ends. |
| SCNChamferMode | Enumerates the ways a SceneKit.SCNShape can be chamfered; on its front, back, or both sides. |
| SCNCone | An SceneKit.SCNGeometry that is a circular frustum. Or, a party hat. |
| SCNConstraint | Automatically adjusts the transformation of a node. |
| SCNCullMode | Enumeration determining which faces of a surface SceneKit.SCNMaterial are rendered. |
| SCNCylinder | An SceneKit.SCNGeometry that is a right circular cylinder. |
| SCNFieldForceEvaluator | Delegate for the SceneKit.SCNPhysicsField.CustomField method. |
| SCNFilterMode | Enumeration of texture filtering modes. |
| SCNFloor | An SceneKit.SCNGeometry that is an infinite plane. |
| SCNGeometry | A 3D shape. |
| SCNGeometryElement | Combines information about vertices and a drawing primitive. Maps to a single drawing command sent to the GPU. |
| SCNGeometryPrimitiveType | Enumeration of 2D geometry primitives. |
| SCNGeometrySource | Provides vertex data that, in conjunction with SCNGeometryElements, define a 3D object. |
| SCNGeometrySourceSemantic | Enumerates vertex mode attributes. |
| SCNHitTest | Constants for use with the options argument in SceneKit.SCNNode.HitTest. |
| SCNHitTestOptions | Configuration options for hit-testing in SCNNode and SCNSceneRenderer |
| SCNHitTestResult | Information about the SCNNode (if any) located at a specific point or along a ray. |
| SCNIKConstraint | An SceneKit.SCNConstraint that applies inverse kinematics. |
| SCNJavaScript | Static class that contains a method to export JavaScript modules. |
| SCNLevelOfDetail | Controls alternate geometries rendered at thresholds in either world-space or screen-space. |
| SCNLight | A light source, used for all SCNLightTypes. |
| SCNLightingModel | Constants for use with the SceneKit.SCHMaterial.LightingModel property, which defines the way lights and materials combine to produce a particular rendered color. |
| SCNLightType | Enumerates the types of SceneKit.SCNLight. |
| SCNLookAtConstraint | An SceneKit.SCNConstraint that orients a node to point towards another node. |
| SCNMaterial | Specifies the lighting and shading characteristics of the surface of an SCNGeometry. |
| SCNMaterialProperty | Configures the various properties (such as color and texture) of a SceneKit.SCNMaterial. |
| SCNMatrix4 | A 4x4 matrix. |
| SCNMorpher | An animated transformation of an SCNGeometry into one or more target SCNGeometry objects. |
| SCNMorpherCalculationMode | Enumeration of valid interpolation formulae for SceneKit.SCNMorpher.CalculationMode. |
| SCNNode | A node in the scene graph. |
| SCNNodePredicate | Delegate for use with SceneKit.SCNNode.EnumerateChildNodes. |
| SCNNodeRendererDelegate | Interface defining delegate object functions for adding custom OpenGL drawing code. |
| SCNNodeRendererDelegate_Extensions | Extension methods to the SceneKit.ISCNNodeRendererDelegate interface to support all the methods from the SceneKit.SCNNodeRendererDelegate protocol. |
| SCNParticleBirthDirection | Enumerates the initial direction of particles emitted by a SceneKit.SCNParticleSystem. |
| SCNParticleBirthLocation | Enumeration of the initial location of particles emitted by a SceneKit.SCNParticleSystem. |
| SCNParticleBlendMode | Enumeration of the ways in which overlapping particles emitted by a SceneKit.SCNParticleSystem will be rendered. |
| SCNParticleEvent | Enumeration of lifecycle events for particles emitted by a SceneKit.SCNParticleSystem. Used with SceneKit.SCNParticleSystem.HandleEvent. |
| SCNParticleEventHandler | Completion handler for use with SceneKit.SCNParticleSystem.HandleEvent. |
| SCNParticleImageSequenceAnimationMode | Enumeration of playing modes for SceneKit.SCNParticleSystem's whose particles are rendered as a sequence of images. |
| SCNParticleInputMode | Enumerates how a particle property is animated (over the lifetime of the particle, as the particle travels over a distance, or based on another property). Used with SceneKit.SCNParticlePropertyController.InputMode. |
| SCNParticleModifierHandler | Delegate used as the handler in SceneKit.SCNParticleSystem.AddModifier. |
| SCNParticleModifierStage | Enumerates moments when the modifier specified in SceneKit.SCNParticleSystem.AddModifier should be applied. |
| SCNParticleOrientationMode | Enumerates the alignment of particles emitted by a SceneKit.SCNParticleSystem. Used with SceneKit.SCNParticleSystem.OrientationMode. |
| SCNParticlePropertyController | Animates a property of the particles emitted by a SCNParticleSystem. |
| SCNParticleSortingMode | Enumeration specifying the order in which particles emitted by a SceneKit.SCNParticleScene are rendered. |
| SCNParticleSystem | Emits small sprites whose behaviors are developer-specified. |
| SCNPhysicsBallSocketJoint | An SCNPhysicsBehavior that allows two SCNPhysicsBody objects to pivot around each other. |
| SCNPhysicsBehavior | Controls the behavior of one or more SCNPhysicsBody objects. |
| SCNPhysicsBody | Adds physics simulation to an SCNNode. |
| SCNPhysicsBodyType | An enumeration specifying whether the SceneKit.SCNPhysicsBody is dynamic, kinematic, or static. Used with SceneKit.SCNPhysicsBody.CreateBody. |
| SCNPhysicsContact | How two SCNPhysicsBody objects are in contact with each other. |
| SCNPhysicsContactDelegate | Delegate object functions responding to touches between SceneKit.SCNPhysicsBody objects.. |
| SCNPhysicsContactDelegate_Extensions | Extension methods to the SceneKit.ISCNPhysicsContactDelegate interface to support all the methods from the SceneKit.SCNPhysicsContactDelegate protocol. |
| SCNPhysicsContactEventArgs | Provides data for the SceneKit.SCNPhysicsContactEventArgs.DidBeginContact, SceneKit.SCNPhysicsContactEventArgs.DidEndContact and SceneKit.SCNPhysicsContactEventArgs.DidUpdateContact events. |
| SCNPhysicsField | Applies forces to all SCNPhysicsBody objects in a given volume. |
| SCNPhysicsFieldScope | Enumerates values specifying whether an SceneKit.SCNPhysicsField affects objects inside or outside its border. |
| SCNPhysicsHingeJoint | An SCNPhysicsBehavior that attaches two SCNPhysicsBody objects along a single axis. |
| SCNPhysicsSearchMode | Enumerates values that control which physics search results are returned. |
| SCNPhysicsShape | A solid volume for a SCNPhysicsBody. Used in collision detection. |
| SCNPhysicsShapeOptions | Valid keys for the options dictionary used with SceneKit.SCNPhysicsShape.Create. |
| SCNPhysicsShapeOptionsKeys | Defines valid keys for use with the options dictionary passed to SceneKit.SCNPhysicsShape.Create. |
| SCNPhysicsShapeOptionsTypes | Geometrical type associated with SceneKit.SCNPhysicsShapes. |
| SCNPhysicsShapeType | Enumeration of categories for SceneKit.SCNPhysicsShapes. |
| SCNPhysicsSliderJoint | An SCNPhysicsBehavior that connects two SCNPhysicsBody objects, allowing them to slide and rotate around their connecting points. |
| SCNPhysicsTest | Valid options for use with SceneKit.SCNPhysicsWorld.ContactTest. |
| SCNPhysicsTestKeys | Contains values that control searching, backface culling, and collision testing. |
| SCNPhysicsTestSearchModeKeys | Enumerates values that control which collision search results are returned. |
| SCNPhysicsVehicle | An SCNPhysicsBehavior that simulates the physics of a wheeled vehicle. |
| SCNPhysicsVehicleWheel | The appearance and physical characteristics of a wheel on a SCNPhysicsVehicle. |
| SCNPhysicsWorld | A physics simulation that models collisions and other physics-related properties in an SCNScene. |
| SCNPlane | An SceneKit.SCNGeometry that is a rectangular single-sided finite plane. |
| SCNProgram | Performs custom rendering using shaders written in OpenGL Shading Language. |
| SCNProgramDelegate | Delegate object for SCNProgram objects. |
| SCNProgramDelegate_Extensions | Extension methods to the SceneKit.ISCNProgramDelegate interface to support all the methods from the SceneKit.SCNProgramDelegate protocol. |
| SCNProgramSemanticOptions | Defines the SceneKit.SCNProgramSemanticOptions.MappingChannel for use with SceneKit.SCNProgram.SetSemantic. |
| SCNPyramid | An SceneKit.SCNGeometry that is a right rectangular pyramid. |
| SCNQuaternion | Represents a quaternion and contains methods that operate on them. |
| SCNRenderer | Renders an SCNScene into an OpenGL context. |
| SCNRenderingArguments | Defines keys for use with SceneKit.SCNNodeRendererDelegate.Render and SceneKit.SCNProgram.SetSemantic. |
| SCNScene | The highest-level description of a 3D scene. |
| SCNSceneLoadingOptions | Options for scene loading. |
| SCNSceneRenderer | Implementation class of the SceneKit.ISCNSceneRenderer interface. |
| SCNSceneRenderer_Extensions | Extension methods to the SceneKit.ISCNSceneRenderer interface to support all the methods from the SceneKit.SCNSceneRenderer protocol. |
| SCNSceneRendererDelegate | Delegate object for the SCNRenderer class, defines methods reflects rendering events. |
| SCNSceneRendererDelegate_Extensions | Extension methods to the SceneKit.ISCNSceneRendererDelegate interface to support all the methods from the SceneKit.SCNSceneRendererDelegate protocol. |
| SCNSceneSource | Reads scene-defining data from a file or NSData object. |
| SCNSceneSourceFilter | Delegate that tests objects in the scene for inclusion. |
| SCNSceneSourceLoadErrors | Enumerates error types that can occur while loading SceneKit.SCNSceneSources. |
| SCNSceneSourceLoading | Options for creating and loading SCNScene objects. |
| SCNSceneSourceProperties | Metadata keys associated with a scene file. Used with SceneKit.SCNSceneSource.GetProperty. |
| SCNSceneSourceStatus | Enumerates the states of an SCNSceneSource. |
| SCNSceneSourceStatusHandler | Callback used to reflect progress during execution of SceneKit.SCNSceneSource.SceneFromOptions. |
| SCNShadable | Implementation of SceneKit.ISCNShadable. |
| SCNShadable_Extensions | Extension methods to the SceneKit.ISCNShadable interface to support all the methods from the SceneKit.SCNShadable protocol. |
| SCNShaderModifiers | A Foundation.DictionaryContainer containing options for shaders. |
| SCNShadowMode | Enumeration controlling when shadows are calculated. |
| SCNShape | An SceneKit.SCNGeometry created from a 2D path, optionally extruded into three dimensions. |
| SCNSkinner | Accesses the scene graph in support of skeletal animation. |
| SCNSphere | An SceneKit.SCNGeometry that is a sphere. |
| SCNTechnique | Provides additional drawing passes, each of which applies a shader. |
| SCNTechniqueSupport | Implementation of SceneKit.ISCNTechniqueSupport that simply holds a reference to the SceneKit.SCNTechnique. |
| SCNText | An SceneKit.SCNGeometry based on a string, optionally extruded into three dimensions. |
| SCNTorus | An SceneKit.SCNGeometry that is a ring-shaped solid. |
| SCNTransaction | Allows a set of modifications to be applied atomically. |
| SCNTransformConstraint | An SceneKit.SCNConstraint that executes a function specifying a change in transformation (position, rotation, and scale) to a node or nodes. |
| SCNTransformConstraintHandler | Delegate used in calls to SceneKit.SCNTransformConstraint.Create. |
| SCNTransparencyMode | Enumerates techniques for calculating transparency. |
| SCNTube | An SceneKit.SCNGeometry that is a cylinder with a hole along its central axis. |
| SCNVector3 | A 3-component vector. |
| SCNVector4 | A 4-component vector. |
| SCNView | A UIKit.UIView that renders SceneKit.SCNScenes. |
| SCNView+SCNViewAppearance | Appearance class for objects of type SceneKit.SCNView. |
| SCNWrapMode | Enumerates texture-wrapping techniques. |