<!--
{
  "availability" : [
    "Reality Composer Pro: -",
    "iOS: 27.0.0 -",
    "iPadOS: 27.0.0 -",
    "macCatalyst: 27.0.0 -",
    "macOS: 27.0.0 -",
    "tvOS: 27.0.0 -",
    "visionOS: 27.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "ComputeGraph",
  "identifier" : "/documentation/ComputeGraph/ComputeNodeGraph/Stage",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "Compute Graph",
      "ComputeGraph"
    ],
    "preciseIdentifier" : "s:12ComputeGraph0a4NodeB0V5StageV"
  },
  "title" : "ComputeNodeGraph.Stage"
}
-->

# ComputeNodeGraph.Stage

An execution context within a compute node graph that groups related nodes into a processing phase.

```
struct Stage
```

## Overview

Stages define the order and purpose of computation passes. In particle systems, stages
correspond to phases like emission, initialization, simulation, and output.

## Topics

### Initializers

[`init(String)`](/documentation/ComputeGraph/ComputeNodeGraph/Stage/init(_:))

### Instance Properties

[`let name: String`](/documentation/ComputeGraph/ComputeNodeGraph/Stage/name)

The identifier for this stage

### Instance Methods

[`func canAddNode(with: ComputeNodeGraph.NodeDefinition) -> Bool`](/documentation/ComputeGraph/ComputeNodeGraph/Stage/canAddNode(with:))

Whether a node with the given definition can be used in this stage.

### Type Properties

[`static let compute: ComputeNodeGraph.Stage`](/documentation/ComputeGraph/ComputeNodeGraph/Stage/compute)

A general-purpose computation stage.

[`static let emission: ComputeNodeGraph.Stage`](/documentation/ComputeGraph/ComputeNodeGraph/Stage/emission)

Spawns new particles into the system.

[`static let eventSource: ComputeNodeGraph.Stage`](/documentation/ComputeGraph/ComputeNodeGraph/Stage/eventSource)

A stage that receives events from a simulation (e.g. update or terminate), and
initializes new particles for another simulation.

[`static let initialize: ComputeNodeGraph.Stage`](/documentation/ComputeGraph/ComputeNodeGraph/Stage/initialize)

Sets initial values for newly spawned particles.

[`static let output: ComputeNodeGraph.Stage`](/documentation/ComputeGraph/ComputeNodeGraph/Stage/output)

Produces final per-particle results for rendering.

[`static let simulate: ComputeNodeGraph.Stage`](/documentation/ComputeGraph/ComputeNodeGraph/Stage/simulate)

Updates particle state each frame (position, velocity, lifetime, etc.).

[`static let texture: ComputeNodeGraph.Stage`](/documentation/ComputeGraph/ComputeNodeGraph/Stage/texture)

Generates texture data.

## Relationships

### Conforms To

[`Encodable`](/documentation/Swift/Encodable)

[`Sendable`](/documentation/Swift/Sendable)

[`Equatable`](/documentation/Swift/Equatable)

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

[`Decodable`](/documentation/Swift/Decodable)

[`Hashable`](/documentation/Swift/Hashable)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)