# TrackedObject

<Badge tone="type">class · sealed</Badge> <Badge>immutable</Badge> <Badge>thread-safe</Badge>

```csharp
namespace AR51.Net;

public sealed class TrackedObject
```

One tracked object at one moment, for example a prop: its position and rotation, plus identity and timing.

Positions are in meters, in the AR 51 world: left-handed, X right, Y up, Z forward (the same axes as Unity). Objects are defined in advance, in Mocap Studio. Instances are immutable and safe to share across threads.

:::note[Units]
Positions are in **meters**, in the AR 51 world: **left-handed, X right, Y up, Z forward** (the same axes as Unity). See [Data conventions](/docs/csharp-api/conventions/).
:::

:::tip[How-to]
This page is **reference** (facts only). For a walkthrough with a complete sample, see the [Object detection guide](/docs/csharp-api/objects/).
:::

## Properties

<div className="apiPropTable apiTable">

| Property | Type | Access | Description |
|---|---|---|---|
| `Id` | `string` | `get` | Tracking id of this object, stable while the object stays tracked. |
| `Name` | `string` | `get` | The object's name, as defined in Mocap Studio. It also tells what kind of object it is. |
| `Position` | [`Vector3`](https://learn.microsoft.com/en-us/dotnet/api/system.numerics.vector3) | `get` | The object's position, in meters. |
| `Rotation` | [`Quaternion`](https://learn.microsoft.com/en-us/dotnet/api/system.numerics.quaternion) | `get` | The object's rotation. |
| `CaptureTime` | [`DateTimeOffset`](https://learn.microsoft.com/en-us/dotnet/api/system.datetimeoffset) | `get` | When the cameras captured this object (server clock, UTC). The Unix epoch (1970-01-01) when the server did not send a valid time. |
| `ReceivedTime` | [`DateTimeOffset`](https://learn.microsoft.com/en-us/dotnet/api/system.datetimeoffset) | `get` | When this client received it (local clock). `CaptureTime` uses the server's clock and this uses yours, so their difference is the true delay only when both clocks are synchronized (for example with NTP). |

</div>

## See also

- [Object detection guide](/docs/csharp-api/objects/) — walkthrough with a complete, compiled sample
- [Class index](/docs/sdk-api/csharp-api/classes/) — every AR51.Net type
- [Data conventions, threading and errors](/docs/csharp-api/conventions/)
