<!--
{
  "availability" : [
    "iOS: -",
    "iPadOS: -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "GroupActivities",
  "identifier" : "/documentation/GroupActivities/SystemCoordinator/ParticipantState",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "Group Activities",
      "GroupActivities"
    ],
    "preciseIdentifier" : "s:15GroupActivities17SystemCoordinatorC16ParticipantStateV"
  },
  "title" : "SystemCoordinator.ParticipantState"
}
-->

# SystemCoordinator.ParticipantState

A structure that tells you whether a participant supports
a shared simulation space for the current activity.

```
struct ParticipantState
```

## Overview

A [`SystemCoordinator.ParticipantState`](/documentation/GroupActivities/SystemCoordinator/ParticipantState) structure reports the current
person’s ability to display a spatial Persona when
joined to a group activity. A person can display a
spatial Persona only if the device supports it, and only if
they configured that spatial Persona in advance.

When someone’s spatial Persona is active, SharePlay
positions the person in the scene relative to the shared content. When
that happens, share any extra activity-related details that
preserve the shared context of the scene. For example, when
one person scrolls the content in a shared window, communicate
the new scroll position as an activity update. When your app
receives those extra updates, apply them only if the current
spatial Persona is also active.

Observe the participant’s spatial state from the [`localParticipantState`](/documentation/GroupActivities/SystemCoordinator/localParticipantState)
property of your session’s [`SystemCoordinator`](/documentation/GroupActivities/SystemCoordinator) object. Spatial
state information can change, so update your app’s presentation
to reflect the person’s current support for the activity.

## Topics

### Getting the participant details

[`let isSpatial: Bool`](/documentation/GroupActivities/SystemCoordinator/ParticipantState/isSpatial)

A Boolean value that indicates whether the person supports being
in a shared simulation space for an activity.

### Structures

[`struct Seat`](/documentation/GroupActivities/SystemCoordinator/ParticipantState/Seat-swift.struct)

A seat assigned to a single participant in a spatial template.

### Instance Properties

[`let pose: Pose3D?`](/documentation/GroupActivities/SystemCoordinator/ParticipantState/pose)

The position and rotation of the participant – at the time the system
coordinator state last changed.

[`let role: (any SpatialTemplateRole)?`](/documentation/GroupActivities/SystemCoordinator/ParticipantState/role)

The role assigned to this participant, if any.

[`let seat: SystemCoordinator.ParticipantState.Seat?`](/documentation/GroupActivities/SystemCoordinator/ParticipantState/seat-swift.property)

The seat assigned to this participant.

## Relationships

### Conforms To

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

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

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

---

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)