# Technical Specifications

### **Supported Devices**

iOS only for now, with Android support planned. Earliest supported device is iPhone 12. LiDAR capture is available on Pro models (iPhone 12 Pro and later).

### **Video**

* Filename: {session\_id}\_{timestamp}.mp4
* Container: MP4
* Video codec: H.264 or H.265
* Resolution: 1080p at 30fps
* Audio: None (separate audio files if captured with consent)
* Metadata: Embedded + sidecar JSON

### **Sensor Data (Tabular)**

* Filename: {session\_id}*{sensor}*{timestamp}.csv
* Columns: timestamp\_ns, \[sensor-specific columns]
* Encoding: UTF-8
* Delimiter: Comma
* Header: Included

Example IMU CSV:

```
timestamp_ns,acc_x,acc_y,acc_z,gyro_x,gyro_y,gyro_z
1706054400000000000,0.023,-9.812,0.042,0.001,-0.002,0.001
1706054400010000000,0.025,-9.808,0.039,0.001,-0.001,0.002
```

### **Metadata (JSON)**

Each session includes metadata:

```
{
  "session_id": "abc123def456",
  "device": {
    "model": "iPhone 14 Pro",
    "os_version": "iOS 17.2",
    "sensors": ["camera", "imu", "gps", "barometer"]
  },
  "collection": {
    "start_time": "2026-01-15T10:30:00Z",
    "duration_seconds": 120,
    "campaign_id": "egograsp_q1"
  },
  "anonymization": {
    "location": "coarsened_50m"
  }
}
```

### **Coordinate Systems**

**Device Frame:** IMU data is reported in the device coordinate frame.

* X: Right (device held in portrait, screen facing user)
* Y: Up
* Z: Out of screen toward user

**Camera Frame:** Visual data uses camera conventions.

* X: Right in image
* Y: Down in image
* Z: Forward (into scene)

**World Frame:** Position data (where available) uses WGS84 (latitude, longitude, altitude). All coordinates are coarsened to 50m+ before upload.

### **Approximate Data Rates**

| Data Type           | Rate         |
| ------------------- | ------------ |
| RGB Video (1080p30) | \~10 MB/min  |
| IMU (100Hz)         | \~0.5 MB/min |
