API reference — C# API (AR51.Net)
The public API of the AR51.Net .NET library, described from the caller's side: what you call and what you receive. New to AR51.Net? Start with the overview and the quickstart.
| Package | NuGet AR51.Net |
| Version | 3.0.302 (3.0.3.2R) — numbered the same as the AR 51 Unity SDK |
| Namespace | AR51.Net (the only one) |
| Targets | .NET 8 and .NET 10 |
| Dependencies | Google.Protobuf, Grpc.Net.Client, Microsoft.Extensions.Logging.Abstractions — all managed, no native libraries |
| Entry point | AR51Client.Create → IAR51Client |
Looking for a specific type?
The Class index lists all 52 public types. The table below groups the main ones by area.
Areas
| Area | Main types | Covers |
|---|---|---|
| Connecting | AR51Client, AR51ClientOptions, IAR51Client, AR51Exception | The entry point. Create one IAR51Client with AR51Client.Create, subscribe to what you need, then call StartAsync. |
| Skeletons | ISkeletonClient, SkeletonClient, Skeleton, HandPose | Live skeletons of the tracked people: 25 body joints with confidence, hands from hand-tracking headsets, identity and timing. |
| Object detection | IObjectDetectionClient, ObjectDetectionClient, TrackedObject | Live tracked objects (for example props) with position and rotation. Works exactly like the skeleton client. |
| Servers | IServerClient | The AR 51 server machines: status, launching and quitting the server program, starting and stopping tracking. |
| Cameras | ICameraClient, CameraInfo, CameraSettings | Camera list with calibration values, live JPEG preview, image settings and auto-tune. |
| Calibration | ICalibrationClient, CaptureBounds | Camera calibration and the tracked area (capture bounds). |
| Recording | IRecordingClient | Recording tracking data and camera video on the servers. |
| Devices | IDeviceClient | The apps and devices connected to the system: headsets, apps, phones and Mocap Studio. |
Conventions at a glance
- Units and axes: meters; left-handed X right, Y up, Z forward (the same axes as Unity). Rotations are
System.Numerics.Quaternion. - Time:
CaptureTimeis the server's clock in UTC;ReceivedTimeis your local clock. - Threading: every member is safe to call from any thread.
SkeletonReceivedandObjectReceivedrun on the stream's background thread — keep them short. All other events are raised one at a time, in order, on one background thread per client. - Errors: failed calls throw
AR51Exceptionwith anAR51ErrorCode. Cancellation throwsOperationCanceledException; use after dispose throwsObjectDisposedException.
Details: Data conventions, threading and errors.
Scope
This reference documents the public contract only. Internal implementation and wire-level types are not published.
Was this page helpful?