The open source OpenXR runtime
1{
2 "$schema": "http://json-schema.org/draft-07/schema",
3 "title": "Monado configuration file schema v0",
4 "type": "object",
5 "properties": {
6 "$schema": {
7 "type": "string",
8 "title": "JSON Schema directive",
9 "default": "https://monado.pages.freedesktop.org/monado/config_v0.schema.json"
10 },
11 "active": {
12 "type": "string",
13 "title": "Name of the active config object",
14 "description": "Must match a key in the top-level object. Only config data in that object will be used.",
15 "$comment": "have omitted 'none' because it primarily exists for environment overrides: just leave out this key in the json for 'none'",
16 "enum": [
17 "tracking",
18 "remote"
19 ]
20 },
21 "tracking": {
22 "$ref": "#/definitions/tracking"
23 },
24 "remote": {
25 "$ref": "#/definitions/remote"
26 }
27 },
28 "definitions": {
29 "remote": {
30 "title": "Remote device configuration",
31 "required": [
32 "version"
33 ],
34 "properties": {
35 "port": {
36 "type": "integer"
37 },
38 "version": {
39 "type": "integer",
40 "title": "Remote config file schema version",
41 "enum": [
42 0
43 ]
44 }
45 }
46 },
47 "tracking": {
48 "title": "Tracking configuration",
49 "required": [
50 "version"
51 ],
52 "properties": {
53 "version": {
54 "type": "integer",
55 "title": "Tracking config file schema version",
56 "enum": [
57 0
58 ]
59 },
60 "tracking_overrides": {
61 "$ref": "#/definitions/tracking_overrides"
62 },
63 "camera_name": {
64 "type": "string"
65 },
66 "camera_mode": {
67 "type": "integer"
68 },
69 "camera_type": {
70 "type": "string",
71 "enum": [
72 "regular_mono",
73 "regular_sbs",
74 "ps4",
75 "leap_motion"
76 ]
77 },
78 "calibration_path": {
79 "type": "string"
80 }
81 }
82 },
83 "tracking_overrides": {
84 "title": "Tracking overrides",
85 "type": "array",
86 "items": {
87 "$ref": "#/definitions/tracking_override"
88 }
89 },
90 "tracking_override": {
91 "type": "object",
92 "title": "Tracking override object",
93 "required": [
94 "target_device_serial",
95 "tracker_device_serial",
96 "type"
97 ],
98 "properties": {
99 "target_device_serial": {
100 "title": "Target Device Serial",
101 "$ref": "#/definitions/device_serial"
102 },
103 "tracker_device_serial": {
104 "title": "Tracker Device Serial",
105 "$ref": "#/definitions/device_serial"
106 },
107 "type": {
108 "type": "string",
109 "enum": [
110 "direct",
111 "attached"
112 ]
113 },
114 "offset": {
115 "type": "object",
116 "title": "Tracking offset",
117 "default": {
118 "orientation": {
119 "x": 0,
120 "y": 0,
121 "z": 0,
122 "w": 1
123 },
124 "position": {
125 "x": 0,
126 "y": 0,
127 "z": 0
128 }
129 },
130 "required": [
131 "orientation",
132 "position"
133 ],
134 "properties": {
135 "orientation": {
136 "$ref": "#/definitions/quaternion"
137 },
138 "position": {
139 "title": "Position offset",
140 "$ref": "#/definitions/vector3"
141 }
142 }
143 },
144 "xrt_input_name": {
145 "type": "string",
146 "enum": [
147 "XRT_INPUT_HYDRA_POSE",
148 "XRT_INPUT_TOUCH_AIM_POSE",
149 "XRT_INPUT_SIMPLE_AIM_POSE",
150 "XRT_INPUT_GENERIC_HEAD_DETECT",
151 "XRT_INPUT_SIMPLE_GRIP_POSE",
152 "XRT_INPUT_INDEX_GRIP_POSE",
153 "XRT_INPUT_VIVE_GRIP_POSE",
154 "XRT_INPUT_PSMV_AIM_POSE",
155 "XRT_INPUT_WMR_AIM_POSE",
156 "XRT_INPUT_WMR_GRIP_POSE",
157 "XRT_INPUT_PSMV_BODY_CENTER_POSE",
158 "XRT_INPUT_HAND_AIM_POSE",
159 "XRT_INPUT_INDEX_AIM_POSE",
160 "XRT_INPUT_DAYDREAM_POSE",
161 "XRT_INPUT_GENERIC_HEAD_POSE",
162 "XRT_INPUT_PSMV_BALL_CENTER_POSE",
163 "XRT_INPUT_GO_GRIP_POSE",
164 "XRT_INPUT_TOUCH_GRIP_POSE",
165 "XRT_INPUT_HAND_GRIP_POSE",
166 "XRT_INPUT_HT_UNOBSTRUCTED_RIGHT",
167 "XRT_INPUT_HT_UNOBSTRUCTED_LEFT",
168 "XRT_INPUT_HT_CONFORMING_LEFT",
169 "XRT_INPUT_HT_CONFORMING_RIGHT",
170 "XRT_INPUT_GENERIC_TRACKER_POSE",
171 "XRT_INPUT_PSMV_GRIP_POSE",
172 "XRT_INPUT_GO_AIM_POSE",
173 "XRT_INPUT_VIVE_AIM_POSE"
174 ],
175 "default": "XRT_INPUT_GENERIC_TRACKER_POSE"
176 }
177 }
178 },
179 "device_serial": {
180 "type": "string",
181 "title": "Device serial",
182 "description": "The unique string assigned to a particular instance of a device by the driver."
183 },
184 "quaternion": {
185 "type": "object",
186 "title": "Quaternion",
187 "description": "Should be normalized (length == 1) to represent rotation",
188 "properties": {
189 "x": {
190 "type": "number"
191 },
192 "y": {
193 "type": "number"
194 },
195 "z": {
196 "type": "number"
197 },
198 "w": {
199 "type": "number"
200 }
201 },
202 "required": [
203 "x",
204 "y",
205 "z",
206 "w"
207 ]
208 },
209 "vector3": {
210 "type": "object",
211 "title": "Vector3",
212 "properties": {
213 "x": {
214 "type": "number"
215 },
216 "y": {
217 "type": "number"
218 },
219 "z": {
220 "type": "number"
221 }
222 },
223 "required": [
224 "x",
225 "y",
226 "z"
227 ]
228 }
229 }
230}