Synthesis AI: Asset Download API

Overview

First, some key terminology: a job has many tasks (aka scenes) associated with it. Each task has many assets, which include both text and binary metadata, like an EXR, metadata.jsonl, and info.json, and optionally several extracted, standalone binary images from the EXR channels like rgb, segments, depth, normals, and mask images. These are further described in our output documentation.

A job is typically submitted by using a command line client application provided by Synthesis AI (or directly using our API), and a Job ID is returned. This job ID is referenced when the callback is returned, notifying you that the job and all of its tasks have completed.

Also, all requests to our system require an APIKEY in the "Authorization" header. To get an API key, which is tied to a single Synthesis AI user account, head over to our web application. A user account can be added to one or more orgs in the Synthesis AI system. For example, you could create two different users for development/testing and production, or a single user for both.

We also provide a face_api_dataset library in Python for parsing our output files.


Step 1: Receive Callback:

The callback to your web application will contain the job ID, like this:

{
    "job_id": "4c01a27c-0a1f-42b4-b4af-c435d8c7879f"
}

After this, it’s on the consumer of the API to retrieve the manifest.

NOTE: it is possible that the manifest data below will *also* be included in the callback. However, you can always call the manifest endpoint for the job.

Automated callback is a beta feature. Please contact us for more information.


Step 2: Fetch Manifest for Job

GET https://app.synthesis.ai/api/v1/org/{ORGNAME}/job/{JOBID}/manifest

Headers:
Authorization: {APIKEY}

{
  "metadata.jsonl": "https://app.synthesis.ai/api/v1/org/sai/job/dd2c7725-8d5c-40c7-aa1d-234a99bfd361/metadata",
  "asset_types": [
      "exr",
      "rgb.png",
      "depth.tif",
      "alpha.tif",
      "mask.png",
      "normals.tif",
      "info.json",
      "segments.png"
  ],
  "task_count": 40,
  "tasks_completed": 40,
  "tasks_cancelled": 0,
  "job_name":"my_job",
  "job_status": "complete",
  "max_render_count": 10000
}

The list of asset types can vary per job type, but in a single job are consistent from task to task. exr and info.json exist all the time at the moment and likely will continue to for the foreseeable future. More information on what each of these files are exists at Face API Output Documentation.

Issue a GET request with the job ID, using your org ID. You can create separate orgs in our web application for a development/test environment versus a production environment.


Step 3: “Fan Out” / Batch and download each task

Each task is numbered in ascending order from 0 to “task_count” (exclusive).

Step 3a. Download metadata for each task

The metadata is the settings for each image made at request time, like pose of camera, lighting setup, and face attributes.

Metadata is paginated, so you can request up to “max_render_count” json-lines at a time. An example of fetching a single json-line, for an individual task follows, but you can request more..

GET https://app.synthesis.ai/api/v1/org/{ORGNAME}/job/{JOBID}/metadata?offset={TASK_NUMBER}&count=1

Headers:
Authorization: {APIKEY}
{
  "task_id": "d0e4207b-6ae8-40e2-a1cc-dcdf716e8998",
  "render_id": 12,
  "render": {
      "resolution": {
          "w": 1024,
          "h": 1024
      },
      "noise_threshold": 0.025,
      "samples": 700,
      "engine": "cycles",
      "hair": "strands",
      "denoise": false
  },
  "scene": {
      "id": 73,
      "environment": {
          "hdri": {
              "name": "parking_lot",
              "intensity": 0.035,
              "exposure": 0,
              "rotation": 0
          },
          "lights": [{
              "color": [255, 255, 255],
              "rotation": [-32, -38, 0],
              "intensity": 0.5,
              "size_meters": 0.05,
              "distance_meters": 0.25
          }],
          "geometry": "noGeometry"
      },
      "facial_attributes": {
          "expression": {
              "name": "eyes_closed_max",
              "amount": 15
          },
          "gaze": {
              "horizontal": 11,
              "vertical": -4
          },
          "hair": {
              "style": "female_hair_long_generic_1",
              "length": 100,
              "density": 100,
              "root_color": [163, 9, 1],
              "tip_color": [163, 9, 1]
          },
          "beard": {
              "style": "noBeard",
              "length": 100,
              "density": 100,
              "root_color": [0, 0, 0],
              "tip_color": [0, 0, 0]
          },
          "mustache": {
              "style": "noMustache",
              "length": 100,
              "density": 100,
              "root_color": [0, 0, 0],
              "tip_color": [0, 0, 0]
          }
      },
      "accessories": {
          "glasses": {
              "style": "noGlasses",
              "transparency": 0.25,
              "diffuse": [0, 0, 0],
              "refraction": [0, 0, 0],
              "metalness": 0,
              "roughness": 0.1
          },
          "mask": "noMask",
          "headwear": "noHeadwear",
          "makeup": {
              "blush": {
                  "color": [255, 255, 255]
              },
              "eyeliner": {
                  "color": [255, 255, 255]
              },
              "eyeshadow": {
                  "color": [255, 255, 255]
              },
              "lipstick": {
                  "color": [255, 255, 255]
              }
          }
      },
      "camera": {
          "h": -38,
          "v": -32,
          "d": 100,
          "truck": 0,
          "pedestal": 0,
          "focal_length": 100,
          "wavelength": "nir"
      },
      "identity_metadata": {
          "id": 73,
          "gender": "female",
          "ethnicity": "black",
          "age": 23,
          "weight_kg": 60,
          "height_cm": 163
      }
  }
}
Step 3b. Download desired assets for each task

For each of the desired “asset_types” specified in the manifest call, you can make a GET request in the format below. For each task, the only two unique asset types are “exr” (a multi-channel OpenEXR file) and “info.json” (computed values for each task not included at image request time):

GET https://app.synthesis.ai/api/v1/org/{ORGNAME}/job/{JOBID}/{TASK_NUMBER}/{ASSET_TYPE}

Headers:
Authorization: {APIKEY}

Examples

GET https://app.synthesis.ai/api/v1/org/{ORGNAME}/job/{JOBID}/{TASK_NUMBER}/exr
Headers:
Authorization: {APIKEY}

(responds with OpenEXR binary)

GET https://app.synthesis.ai/api/v1/org/{ORGNAME}/job/{JOBID}/{TASK_NUMBER}/segments.png
Headers:
Authorization: {APIKEY}

(responds with PNG binary)

GET https://app.synthesis.ai/api/v1/org/{ORGNAME}/job/{JOBID}/{TASK_NUMBER}/info.json
Headers:
Authorization: {APIKEY}
Response:
{
  "camera": {
      "intrinsics": [
          [3103.030303030303, 0.0, 512.0],
          [0, 3103.030303030303, 512.0],
          [0, 0, 1.0]
      ],
      "field_of_view": {
          "y_axis_rads": 0.32705323764198635,
          "x_axis_rads": 0.32705323764198635
      },
      "focal_length_mm": 100.0,
      "transform_world2cam": {
          "mat_4x4": [
              [0.5000000000000001, -4.807406715958909e-17, -0.8660254037844385, 0.034641016151377664],
              [0.43301270189221924, 0.8660254037844386, 0.25, -0.2735315303716047],
              [0.7500000000000001, -0.5, 0.4330127018922194, -1.0651705080756888],
              [0.0, 0.0, -0.0, 1.0]
          ],
          "translation_xyz": [0.034641016151377664, -0.2735315303716047, -1.0651705080756888],
          "quaternion_wxyz": [-0.2241438680420133, -0.48296291314453416, 0.1294095225512602, 0.8365163037378079]
      },
      "sensor": {
          "width_mm": 33.0,
          "height_mm": 33.0
      },
      "transform_cam2world": {
          "mat_4x4": [
              [0.5000000000000001, 0.43301270189221924, 0.75, 0.8999999999999999],
              [0.0, 0.8660254037844387, -0.49999999999999994, -0.29569999999999985],
              [-0.8660254037844386, 0.25, 0.43301270189221946, 0.5596152422706634],
              [0.0, 0.0, 0.0, 1.0]
          ],
          "translation_xyz": [0.8999999999999999, -0.29569999999999985, 0.5596152422706634],
          "quaternion_wxyz": [0.22414386804201333, 0.48296291314453416, -0.12940952255126031, 0.8365163037378079]
      }
  },
  "landmarks": [{
      "screen_space_pos": [0.4223, 0.5931],
      "ptnum": 0,
      "camera_space_pos": [-0.03228643909096718, -0.03869936615228653, -1.2591992616653442],
      "distance_to_camera": 1.2602074146270752,
      "world_space_pos": [-0.07729998230934143, 0.3003849983215332, 0.032652001827955246]
  }, {
      "screen_space_pos": [0.4206, 0.643],
      "ptnum": 1,
      "camera_space_pos": [-0.03269478306174278, -0.058866970241069794, -1.2476886510849],
      "distance_to_camera": 1.2495043277740479,
      "world_space_pos": [-0.07760399580001831, 0.2771640121936798, 0.03294799476861954]
  }, {
      "screen_space_pos": [0.4086, 0.6931],
      "ptnum": 2,
      "camera_space_pos": [-0.03709280490875244, -0.0783248245716095, -1.2293665409088135],
      "distance_to_camera": 1.2324174642562866,
      "world_space_pos": [-0.07448699325323105, 0.25115200877189636, 0.03982599452137947]
  }, {
      "screen_space_pos": [0.3791, 0.7241],
      "ptnum": 3,
      "camera_space_pos": [-0.048368118703365326, -0.08970142155885696, -1.212809443473816],
      "distance_to_camera": 1.2170835733413696,
      "world_space_pos": [-0.07263299077749252, 0.23302100598812103, 0.05391601473093033]
  }, {
      "screen_space_pos": [0.3524, 0.749],
      "ptnum": 4,
      "camera_space_pos": [-0.058056652545928955, -0.09798802435398102, -1.1923061609268188],
      "distance_to_camera": 1.197733759880066,
      "world_space_pos": [-0.06568802893161774, 0.21559298038482666, 0.06911304593086243]
  }, {
      "screen_space_pos": [0.3258, 0.763],
      "ptnum": 5,
      "camera_space_pos": [-0.06717868149280548, -0.10145524144172668, -1.1688776016235352],
      "distance_to_camera": 1.1751940250396729,
      "world_space_pos": [-0.05417899042367935, 0.20087601244449615, 0.08629100769758224]
  }, {
      "screen_space_pos": [0.3064, 0.7652],
      "ptnum": 6,
      "camera_space_pos": [-0.0730912908911705, -0.10008703917264938, -1.1437618732452393],
      "distance_to_camera": 1.1504567861557007,
      "world_space_pos": [-0.03770599886775017, 0.189503014087677, 0.10262898355722427]
  }, {
      "screen_space_pos": [0.295, 0.7632],
      "ptnum": 7,
      "camera_space_pos": [-0.07585170120000839, -0.09740252792835236, -1.121346116065979],
      "distance_to_camera": 1.1281213760375977,
      "world_space_pos": [-0.021111980080604553, 0.1806199997663498, 0.11539699137210846]
  }, {
      "screen_space_pos": [0.3201, 0.7508],
      "ptnum": 8,
      "camera_space_pos": [-0.0654330924153328, -0.09121610224246979, -1.1019929647445679],
      "distance_to_camera": 1.1076959371566772,
      "world_space_pos": [0.0012910283403471112, 0.1763010025024414, 0.11630100011825562]
  }, {
      "screen_space_pos": [0.3538, 0.7186],
      "ptnum": 9,
      "camera_space_pos": [-0.05255836248397827, -0.07857292890548706, -1.0890463590621948],
      "distance_to_camera": 1.0931413173675537,
      "world_space_pos": [0.022913014516234398, 0.18077699840068817, 0.1139180064201355]
  }, {
      "screen_space_pos": [0.4079, 0.6893],
      "ptnum": 10,
      "camera_space_pos": [-0.03305325284600258, -0.06792779266834259, -1.0875784158706665],
      "distance_to_camera": 1.0901987552642822,
      "world_space_pos": [0.03837600350379944, 0.18926198780536652, 0.10032300651073456]
  }, {
      "screen_space_pos": [0.4705, 0.6558],
      "ptnum": 11,
      "camera_space_pos": [-0.010597254149615765, -0.056030333042144775, -1.0895873308181763],
      "distance_to_camera": 1.091078519821167,
      "world_space_pos": [0.05324900895357132, 0.2005699872970581, 0.08297998458147049]
  }, {
      "screen_space_pos": [0.527, 0.6196],
      "ptnum": 12,
      "camera_space_pos": [0.009756273590028286, -0.043275948613882065, -1.096864104270935],
      "distance_to_camera": 1.0977609157562256,
      "world_space_pos": [0.06349097937345505, 0.215254008769989, 0.06539095938205719]
  }, {
      "screen_space_pos": [0.5717, 0.5793],
      "ptnum": 13,
      "camera_space_pos": [0.026204008609056473, -0.028945449739694595, -1.1067910194396973],
      "distance_to_camera": 1.107479453086853,
      "world_space_pos": [0.0704750120639801, 0.2326280027627945, 0.05043098330497742]
  }, {
      "screen_space_pos": [0.6043, 0.5408],
      "ptnum": 14,
      "camera_space_pos": [0.038532547652721405, -0.015076502226293087, -1.1194612979888916],
      "distance_to_camera": 1.1202256679534912,
      "world_space_pos": [0.07314200699329376, 0.25097399950027466, 0.03773500397801399]
  }, {
      "screen_space_pos": [0.6227, 0.477],
      "ptnum": 15,
      "camera_space_pos": [0.04587966576218605, 0.008586455136537552, -1.1332597732543945],
      "distance_to_camera": 1.1342207193374634,
      "world_space_pos": [0.07671301066875458, 0.27836599946022034, 0.03131300210952759]
  }, {
      "screen_space_pos": [0.6289, 0.4233],
      "ptnum": 16,
      "camera_space_pos": [0.04869098216295242, 0.02896912582218647, -1.1445019245147705],
      "distance_to_camera": 1.145903468132019,
      "world_space_pos": [0.078513003885746, 0.30163899064064026, 0.029106000438332558]
  }, {
      "screen_space_pos": [0.3058, 0.4858],
      "ptnum": 17,
      "camera_space_pos": [-0.07876336574554443, 0.005766687914729118, -1.2292718887329102],
      "distance_to_camera": 1.2318061590194702,
      "world_space_pos": [-0.05883856862783432, 0.3239300549030304, 0.09697763621807098]
  }, {
      "screen_space_pos": [0.2961, 0.4557],
      "ptnum": 18,
      "camera_space_pos": [-0.08230104297399521, 0.01788867823779583, -1.223358392715454],
      "distance_to_camera": 1.2262542247772217,
      "world_space_pos": [-0.05092332139611244, 0.3314712643623352, 0.1056324690580368]
  }, {
      "screen_space_pos": [0.2928, 0.4306],
      "ptnum": 19,
      "camera_space_pos": [-0.08304918557405472, 0.027823306620121002, -1.2145841121673584],
      "distance_to_camera": 1.2177380323410034,
      "world_space_pos": [-0.04041484743356705, 0.3356877565383911, 0.11256341636180878]
  }, {
      "screen_space_pos": [0.2937, 0.4107],
      "ptnum": 20,
      "camera_space_pos": [-0.0820019543170929, 0.0354885458946228, -1.2042620182037354],
      "distance_to_camera": 1.2075722217559814,
      "world_space_pos": [-0.028830507770180702, 0.3371649980545044, 0.11804240196943283]
  }, {
      "screen_space_pos": [0.2996, 0.4012],
      "ptnum": 21,
      "camera_space_pos": [-0.0787007063627243, 0.03881540894508362, -1.1903241872787476],
      "distance_to_camera": 1.193554401397705,
      "world_space_pos": [-0.015285927802324295, 0.33307722210884094, 0.12205041199922562]
  }, {
      "screen_space_pos": [0.3367, 0.3663],
      "ptnum": 22,
      "camera_space_pos": [-0.06293649226427078, 0.0515042208135128, -1.16763436794281],
      "distance_to_camera": 1.170462965965271,
      "world_space_pos": [0.015107916668057442, 0.33272117376327515, 0.12139536440372467]
  }, {
      "screen_space_pos": [0.363, 0.3452],
      "ptnum": 23,
      "camera_space_pos": [-0.05249826982617378, 0.05931001156568527, -1.1611859798431396],
      "distance_to_camera": 1.163884162902832,
      "world_space_pos": [0.028543388471007347, 0.3362569510936737, 0.11709931492805481]
  }, {
      "screen_space_pos": [0.3908, 0.3368],
      "ptnum": 24,
      "camera_space_pos": [-0.04161638021469116, 0.06219886988401413, -1.1546000242233276],
      "distance_to_camera": 1.1570228338241577,
      "world_space_pos": [0.040174730122089386, 0.33546578884124756, 0.11124935001134872]
  }, {
      "screen_space_pos": [0.4202, 0.337],
      "ptnum": 25,
      "camera_space_pos": [-0.030237296596169472, 0.061741407960653305, -1.1475656032562256],
      "distance_to_camera": 1.149622917175293,
      "world_space_pos": [0.05094198137521744, 0.3315524160861969, 0.10432638972997665]
  }, {
      "screen_space_pos": [0.4513, 0.3518],
      "ptnum": 26,
      "camera_space_pos": [-0.018377050757408142, 0.05590676888823509, -1.1431151628494263],
      "distance_to_camera": 1.1446290016174316,
      "world_space_pos": [0.05768343061208725, 0.3242742717266083, 0.09452353417873383]
  }, {
      "screen_space_pos": [0.3131, 0.4165],
      "ptnum": 27,
      "camera_space_pos": [-0.07217758148908615, 0.03223099932074547, -1.1701302528381348],
      "distance_to_camera": 1.1727970838546753,
      "world_space_pos": [0.0002699881442822516, 0.3172779679298401, 0.12349937111139297]
  }, {
      "screen_space_pos": [0.2894, 0.4348],
      "ptnum": 28,
      "camera_space_pos": [-0.08062136918306351, 0.02496415190398693, -1.1600267887115479],
      "distance_to_camera": 1.1630929708480835,
      "world_space_pos": [0.0004789979720953852, 0.30593299865722656, 0.13337008655071259]
  }, {
      "screen_space_pos": [0.2686, 0.4606],
      "ptnum": 29,
      "camera_space_pos": [-0.08773209154605865, 0.014950796961784363, -1.1490544080734253],
      "distance_to_camera": 1.1524958610534668,
      "world_space_pos": [0.0008170126820914447, 0.2917749881744385, 0.14177599549293518]
  }, {
      "screen_space_pos": [0.2436, 0.4865],
      "ptnum": 30,
      "camera_space_pos": [-0.09623341262340546, 0.0050539616495370865, -1.1371382474899292],
      "distance_to_camera": 1.1412142515182495,
      "world_space_pos": [0.0012180125340819359, 0.27724599838256836, 0.1518239974975586]
  }, {
      "screen_space_pos": [0.297, 0.5612],
      "ptnum": 31,
      "camera_space_pos": [-0.0776500403881073, -0.023406680673360825, -1.158895492553711],
      "distance_to_camera": 1.1617298126220703,
      "world_space_pos": [-0.018132029101252556, 0.2634769678115845, 0.11919400840997696]
  }, {
      "screen_space_pos": [0.2845, 0.5537],
      "ptnum": 32,
      "camera_space_pos": [-0.08154541999101639, -0.020330095663666725, -1.1464747190475464],
      "distance_to_camera": 1.1495509147644043,
      "world_space_pos": [-0.009431968443095684, 0.2599309980869293, 0.12871499359607697]
  }, {
      "screen_space_pos": [0.2883, 0.5444],
      "ptnum": 33,
      "camera_space_pos": [-0.07936886698007584, -0.016658028587698936, -1.1362165212631226],
      "distance_to_camera": 1.1391069889068604,
      "world_space_pos": [0.0009400360286235809, 0.2579819858074188, 0.13219000399112701]
  }, {
      "screen_space_pos": [0.3092, 0.5321],
      "ptnum": 34,
      "camera_space_pos": [-0.07120895385742188, -0.01198173314332962, -1.1310789585113525],
      "distance_to_camera": 1.133381724357605,
      "world_space_pos": [0.01089803408831358, 0.25946301221847534, 0.1285170018672943]
  }, {
      "screen_space_pos": [0.3434, 0.5215],
      "ptnum": 35,
      "camera_space_pos": [-0.05848461762070656, -0.00802323967218399, -1.1318527460098267],
      "distance_to_camera": 1.1333911418914795,
      "world_space_pos": [0.018393976613879204, 0.2632780373096466, 0.11815198510885239]
  }, {
      "screen_space_pos": [0.3098, 0.4975],
      "ptnum": 36,
      "camera_space_pos": [-0.07602328807115555, 0.0010015488369390368, -1.2115250825881958],
      "distance_to_camera": 1.2139084339141846,
      "world_space_pos": [-0.04622179642319679, 0.31092992424964905, 0.1010979637503624]
  }, {
      "screen_space_pos": [0.3032, 0.4767],
      "ptnum": 37,
      "camera_space_pos": [-0.0783839300274849, 0.009267076849937439, -1.206825613975525],
      "distance_to_camera": 1.2094039916992188,
      "world_space_pos": [-0.04029844328761101, 0.31573835015296936, 0.10724364966154099]
  }, {
      "screen_space_pos": [0.3143, 0.4576],
      "ptnum": 38,
      "camera_space_pos": [-0.07337833940982819, 0.01676384173333645, -1.197610855102539],
      "distance_to_camera": 1.1999738216400146,
      "world_space_pos": [-0.02763831801712513, 0.3176233172416687, 0.10877301543951035]
  }, {
      "screen_space_pos": [0.3324, 0.4674],
      "ptnum": 39,
      "camera_space_pos": [-0.06566564738750458, 0.012785492464900017, -1.1876002550125122],
      "distance_to_camera": 1.1894829273223877,
      "world_space_pos": [-0.017996691167354584, 0.309172660112381, 0.10543376207351685]
  }, {
      "screen_space_pos": [0.3102, 0.4815],
      "ptnum": 40,
      "camera_space_pos": [-0.07475847005844116, 0.0072784400545060635, -1.19362473487854],
      "distance_to_camera": 1.1959856748580933,
      "world_space_pos": [-0.029446149244904518, 0.3074156939983368, 0.10932290554046631]
  }, {
      "screen_space_pos": [0.3035, 0.4939],
      "ptnum": 41,
      "camera_space_pos": [-0.07791361212730408, 0.002438052324578166, -1.2016154527664185],
      "distance_to_camera": 1.2041412591934204,
      "world_space_pos": [-0.039112698286771774, 0.30721914768218994, 0.10738516598939896]
  }, {
      "screen_space_pos": [0.3746, 0.4258],
      "ptnum": 42,
      "camera_space_pos": [-0.0480746254324913, 0.028463605791330338, -1.162118911743164],
      "distance_to_camera": 1.1634610891342163,
      "world_space_pos": [0.0166985671967268, 0.3100096881389618, 0.10515271872282028]
  }, {
      "screen_space_pos": [0.3784, 0.3927],
      "ptnum": 43,
      "camera_space_pos": [-0.04639381170272827, 0.040941812098026276, -1.1565971374511719],
      "distance_to_camera": 1.1582510471343994,
      "world_space_pos": [0.02708357386291027, 0.3180552124977112, 0.10920766741037369]
  }, {
      "screen_space_pos": [0.399, 0.3826],
      "ptnum": 44,
      "camera_space_pos": [-0.03823418542742729, 0.04445098340511322, -1.1470110416412354],
      "distance_to_camera": 1.1485086679458618,
      "world_space_pos": [0.0398724265396595, 0.31630122661590576, 0.10716938972473145]
  }, {
      "screen_space_pos": [0.4196, 0.3909],
      "ptnum": 45,
      "camera_space_pos": [-0.030338596552610397, 0.04117106273770332, -1.1436173915863037],
      "distance_to_camera": 1.1447603702545166,
      "world_space_pos": [0.04494525119662285, 0.3117638826370239, 0.10098114609718323]
  }, {
      "screen_space_pos": [0.3956, 0.4032],
      "ptnum": 46,
      "camera_space_pos": [-0.03943433240056038, 0.036535218358039856, -1.1442164182662964],
      "distance_to_camera": 1.14547860622406,
      "world_space_pos": [0.03794073313474655, 0.30804863572120667, 0.10743993520736694]
  }, {
      "screen_space_pos": [0.3797, 0.4122],
      "ptnum": 47,
      "camera_space_pos": [-0.04568980634212494, 0.03333134949207306, -1.1506130695343018],
      "distance_to_camera": 1.152002215385437,
      "world_space_pos": [0.028628230094909668, 0.30847230553627014, 0.10928656160831451]
  }, {
      "screen_space_pos": [0.2856, 0.6442],
      "ptnum": 48,
      "camera_space_pos": [-0.08140892535448074, -0.054755911231040955, -1.1506739854812622],
      "distance_to_camera": 1.1548490524291992,
      "world_space_pos": [-0.027419986203312874, 0.2322169989347458, 0.11817199736833572]
  }, {
      "screen_space_pos": [0.2714, 0.6079],
      "ptnum": 49,
      "camera_space_pos": [-0.08632111549377441, -0.0407545305788517, -1.144374966621399],
      "distance_to_camera": 1.148349404335022,
      "world_space_pos": [-0.019088970497250557, 0.2411929965019226, 0.12865401804447174]
  }, {
      "screen_space_pos": [0.2679, 0.5875],
      "ptnum": 50,
      "camera_space_pos": [-0.08721201866865158, -0.032870806753635406, -1.1385979652404785],
      "distance_to_camera": 1.1424061059951782,
      "world_space_pos": [-0.011787915602326393, 0.24513199925422668, 0.13389800488948822]
  }, {
      "screen_space_pos": [0.2757, 0.5706],
      "ptnum": 51,
      "camera_space_pos": [-0.08352857828140259, -0.026306452229619026, -1.128446102142334],
      "distance_to_camera": 1.1318391561508179,
      "world_space_pos": [0.0005101045244373381, 0.24574099481105804, 0.13674500584602356]
  }, {
      "screen_space_pos": [0.2986, 0.5609],
      "ptnum": 52,
      "camera_space_pos": [-0.07446742057800293, -0.022507259622216225, -1.1201937198638916],
      "distance_to_camera": 1.1228917837142944,
      "world_space_pos": [0.012875080108642578, 0.2449049949645996, 0.13342100381851196]
  }, {
      "screen_space_pos": [0.3198, 0.5664],
      "ptnum": 53,
      "camera_space_pos": [-0.0663389191031456, -0.024427415803074837, -1.1152734756469727],
      "distance_to_camera": 1.1175117492675781,
      "world_space_pos": [0.019798023626208305, 0.2407819926738739, 0.12803198397159576]
  }, {
      "screen_space_pos": [0.3532, 0.5881],
      "ptnum": 54,
      "camera_space_pos": [-0.05374600365757942, -0.032251935452222824, -1.109678030014038],
      "distance_to_camera": 1.1114468574523926,
      "world_space_pos": [0.02690301090478897, 0.23120799660682678, 0.11759299784898758]
  }, {
      "screen_space_pos": [0.3226, 0.6006],
      "ptnum": 55,
      "camera_space_pos": [-0.06498179584741592, -0.03684799000620842, -1.110048532485962],
      "distance_to_camera": 1.1125593185424805,
      "world_space_pos": [0.019017010927200317, 0.22741299867630005, 0.12601399421691895]
  }, {
      "screen_space_pos": [0.2997, 0.615],
      "ptnum": 56,
      "camera_space_pos": [-0.0734577402472496, -0.04219108447432518, -1.1115810871124268],
      "distance_to_camera": 1.1148042678833008,
      "world_space_pos": [0.011316024698317051, 0.22355200350284576, 0.13135500252246857]
  }, {
      "screen_space_pos": [0.2793, 0.6187],
      "ptnum": 57,
      "camera_space_pos": [-0.08147823065519333, -0.04383609816431999, -1.118760347366333],
      "distance_to_camera": 1.1225796937942505,
      "world_space_pos": [0.0012090443633496761, 0.2257169932126999, 0.13478100299835205]
  }, {
      "screen_space_pos": [0.2728, 0.6362],
      "ptnum": 58,
      "camera_space_pos": [-0.08450767397880554, -0.05065159499645233, -1.1270111799240112],
      "distance_to_camera": 1.1313095092773438,
      "world_space_pos": [-0.009444971568882465, 0.22393999993801117, 0.13212800025939941]
  }, {
      "screen_space_pos": [0.2762, 0.6392],
      "ptnum": 59,
      "camera_space_pos": [-0.08402907103300095, -0.05226952210068703, -1.1375374794006348],
      "distance_to_camera": 1.141833782196045,
      "world_space_pos": [-0.017800990492105484, 0.22780199348926544, 0.12675100564956665]
  }, {
      "screen_space_pos": [0.2931, 0.6401],
      "ptnum": 60,
      "camera_space_pos": [-0.07829583436250687, -0.053001657128334045, -1.1466915607452393],
      "distance_to_camera": 1.1505827903747559,
      "world_space_pos": [-0.02211698703467846, 0.23174500465393066, 0.11763899773359299]
  }, {
      "screen_space_pos": [0.2828, 0.613],
      "ptnum": 61,
      "camera_space_pos": [-0.08151347190141678, -0.04242671653628349, -1.1374292373657227],
      "distance_to_camera": 1.1411352157592773,
      "world_space_pos": [-0.012199976481497288, 0.23627200722694397, 0.12707999348640442]
  }, {
      "screen_space_pos": [0.2899, 0.596],
      "ptnum": 62,
      "camera_space_pos": [-0.07812026888132095, -0.03571563586592674, -1.127007246017456],
      "distance_to_camera": 1.1302759647369385,
      "world_space_pos": [0.00021906601614318788, 0.23687300086021423, 0.13033199310302734]
  }, {
      "screen_space_pos": [0.3139, 0.5867],
      "ptnum": 63,
      "camera_space_pos": [-0.06870856136083603, -0.03199600800871849, -1.1189546585083008],
      "distance_to_camera": 1.1215187311172485,
      "world_space_pos": [0.012575019150972366, 0.236067995429039, 0.12659800052642822]
  }, {
      "screen_space_pos": [0.3478, 0.5933],
      "ptnum": 64,
      "camera_space_pos": [-0.055928442627191544, -0.03430197015404701, -1.1138408184051514],
      "distance_to_camera": 1.1157714128494263,
      "world_space_pos": [0.021802011877298355, 0.23151400685310364, 0.11716800183057785]
  }, {
      "screen_space_pos": [0.3165, 0.5892],
      "ptnum": 65,
      "camera_space_pos": [-0.06776618212461472, -0.03296057879924774, -1.1192474365234375],
      "distance_to_camera": 1.121781349182129,
      "world_space_pos": [0.012409014627337456, 0.23537899553775787, 0.12541399896144867]
  }, {
      "screen_space_pos": [0.2963, 0.5987],
      "ptnum": 66,
      "camera_space_pos": [-0.07576972991228104, -0.036739446222782135, -1.1274285316467285],
      "distance_to_camera": 1.1305688619613647,
      "world_space_pos": [0.0006350509938783944, 0.23619699478149414, 0.1278579980134964]
  }, {
      "screen_space_pos": [0.2877, 0.6149],
      "ptnum": 67,
      "camera_space_pos": [-0.07967554777860641, -0.04313568398356438, -1.137189269065857],
      "distance_to_camera": 1.140792727470398,
      "world_space_pos": [-0.011407981626689434, 0.23553800582885742, 0.12541499733924866]
  }],
  "version": 1,
  "gaze_values": {
      "eye_left": {
          "horizontal_angle": 0.0,
          "gaze_vector": [0.07748550176620483, -0.004395884461700916, -0.9969837665557861],
          "vertical_angle": 0.0
      },
      "eye_right": {
          "horizontal_angle": 0.0,
          "gaze_vector": [0.07748550176620483, -0.004395884461700916, -0.9969837665557861],
          "vertical_angle": 0.0
      }
  },
  "pupil_coordinates": {
      "pupil_left": {
          "screen_space_pos": [0.38961470127105713, 0.39613932371139526],
          "camera_space_pos": [-0.04198618233203888, 0.039504487067461014, -1.1526069641113281],
          "distance_to_camera": 1.1540477275848389,
          "world_space_pos": [0.03165767341852188, 0.31481534242630005, 0.10675903409719467]
      },
      "pupil_right": {
          "screen_space_pos": [0.31282761693000793, 0.47344881296157837],
          "camera_space_pos": [-0.04198618233203888, 0.039504487067461014, -1.1526069641113281],
          "distance_to_camera": 1.2026057243347168,
          "world_space_pos": [0.03165767341852188, 0.31481534242630005, 0.10675903409719467]
      }
  }
}