agent/pygl_fov/player/3d/summary
CMU field of view agent
header
| Field | Type | Required | Allowed values | Description |
|---|---|---|---|---|
| timestamp | string | ✓ | ||
| message_type | string | ✓ | observation |
|
| version | string | ✓ | The message format version |
msg
| Field | Type | Required | Allowed values | Description |
|---|---|---|---|---|
| experiment_id | string | ✓ | ||
| trial_id | string | |||
| timestamp | string | ✓ | ||
| source | string | ✓ | ||
| sub_type | string | ✓ | FoV |
|
| version | string | ✓ | ||
| replay_parent_type | string|null | TRIAL REPLAY null |
||
| replay_parent_id | string|null | |||
| replay_id | string|null |
data
| Field | Type | Required | Allowed values | Description |
|---|---|---|---|---|
| observation | integer | ✓ | ||
| name | string | |||
| blocks | array<object> | ✓ | ||
| blocks[].location | array | ✓ | ||
| blocks[].type | string | ✓ | ||
| blocks[].number_pixels | integer | |||
| blocks[].playername | string | |||
| blocks[].bounding_box | object | |||
| blocks[].bounding_box.x | array | ✓ | ||
| blocks[].bounding_box.y | array | ✓ |
Example message
{
"header": {
"timestamp": "2020-07-10T14:48:52.041004Z",
"message_type": "observation",
"version": "0.5"
},
"msg": {
"experiment_id": "3a99e95e-11ab-4668-932a-55c645579ea4",
"trial_id": "f955eed1-8a82-4919-86d7-3c5652977470",
"timestamp": "2020-07-10T14:48:52.041004Z",
"source": "PyGL_FoV_Agent",
"sub_type": "FoV",
"version": "0.5"
},
"data": {
"playername": "Player18",
"observation": 10797,
"blocks": [
{ "location": [-2168, 51, 174],
"type": "block_victim_1",
"number_pixels": 600,
"bounding_box": { "x": [69, 95],
"y": [280, 302]
}
},
{ "location": [-2168, 51, 175],
"type": "gravel",
"number_pixels": 541,
"bounding_box": { "x": [96, 120],
"y": [278, 300]
}
}
]
}
}Raw JSON Schema (resolved)
{
"$id": "http://asist.aptima.com/schemas/pygl_fov.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"block": {
"$id": "#/properties/block",
"properties": {
"bounding_box": {
"$id": "#/properties/block/properties/bounding_box",
"properties": {
"x": {
"$id": "#/properties/block/properties/bounding_box/properties/x",
"examples": [
[
52,
83
]
],
"items": [
{
"$id": "#/properties/block/properties/bounding_box/properties/x/properties/xmin",
"examples": [
50
],
"minimum": 0,
"title": "The PyGL FoV Block Bounding Box x_min Schema",
"type": "integer"
},
{
"$id": "#/properties/block/properties/bounding_box/properties/x/properties/xmax",
"examples": [
72
],
"minimum": 0,
"title": "The PyGL FoV Block Bounding Box x_max Schema",
"type": "integer"
}
],
"title": "The PyGL FoV Block X Bounding Box Schema",
"type": "array"
},
"y": {
"$id": "#/properties/block/properties/bounding_box/properties/y",
"examples": [
[
128,
423
]
],
"items": [
{
"$id": "#/properties/block/properties/bounding_box/properties/x/properties/ymin",
"examples": [
83
],
"minimum": 0,
"title": "The PyGL FoV Block Bounding Box y_min Schema",
"type": "integer"
},
{
"$id": "#/properties/block/properties/bounding_box/properties/y/properties/ymax",
"examples": [
120
],
"minimum": 0,
"title": "The PyGL FoV Block Bounding Box y_max Schema",
"type": "integer"
}
],
"title": "The PyGL FoV Block Y Bounding Box Schema",
"type": "array"
}
},
"required": [
"x",
"y"
],
"title": "The PyGL FoV Block Bounding Box Schema",
"type": "object"
},
"location": {
"$id": "#/properties/block/properties/location",
"items": [
{
"$id": "#/properties/block/properties/location/properties/x",
"default": 0,
"examples": [
-1324
],
"title": "The PyGL FoV Block Location X Schema",
"type": "number"
},
{
"$id": "#/properties/block/properties/location/properties/y",
"default": 0,
"examples": [
54
],
"maximum": 255,
"minimum": 0,
"title": "The PyGL FoV Block Location Y Schema",
"type": "number"
},
{
"$id": "#/properties/block/properties/location/properties/z",
"default": 0,
"examples": [
160
],
"title": "The PyGL FoV Block Location Z Schema",
"type": "number"
}
],
"title": "The PyGL FoV Block Location Schema",
"type": "array"
},
"number_pixels": {
"$id": "#/properties/block/properties/number_pixels",
"examples": [
1543
],
"minimum": 1,
"title": "The PyGL FoV Block Pixel Count Schema",
"type": "integer"
},
"playername": {
"$id": "#/properties/block/properties/playername",
"examples": [
"McSillypants"
],
"pattern": "^(.*)$",
"title": "The PyGL FoV Block Playername Schema",
"type": "string"
},
"type": {
"$id": "#/properties/block/properties/type",
"examples": [
"clay"
],
"pattern": "^(.*)$",
"title": "The PyGL FoV Block Type Schema",
"type": "string"
}
},
"required": [
"location",
"type"
],
"title": "The PyGL FoV Block Schema",
"type": "object"
}
},
"properties": {
"data": {
"$id": "#/properties/data",
"properties": {
"blocks": {
"$id": "#/properties/data/properties/blocks",
"default": [],
"items": {
"$id": "#/properties/block",
"properties": {
"bounding_box": {
"$id": "#/properties/block/properties/bounding_box",
"properties": {
"x": {
"$id": "#/properties/block/properties/bounding_box/properties/x",
"examples": [
[
52,
83
]
],
"items": [
{
"$id": "#/properties/block/properties/bounding_box/properties/x/properties/xmin",
"examples": [
50
],
"minimum": 0,
"title": "The PyGL FoV Block Bounding Box x_min Schema",
"type": "integer"
},
{
"$id": "#/properties/block/properties/bounding_box/properties/x/properties/xmax",
"examples": [
72
],
"minimum": 0,
"title": "The PyGL FoV Block Bounding Box x_max Schema",
"type": "integer"
}
],
"title": "The PyGL FoV Block X Bounding Box Schema",
"type": "array"
},
"y": {
"$id": "#/properties/block/properties/bounding_box/properties/y",
"examples": [
[
128,
423
]
],
"items": [
{
"$id": "#/properties/block/properties/bounding_box/properties/x/properties/ymin",
"examples": [
83
],
"minimum": 0,
"title": "The PyGL FoV Block Bounding Box y_min Schema",
"type": "integer"
},
{
"$id": "#/properties/block/properties/bounding_box/properties/y/properties/ymax",
"examples": [
120
],
"minimum": 0,
"title": "The PyGL FoV Block Bounding Box y_max Schema",
"type": "integer"
}
],
"title": "The PyGL FoV Block Y Bounding Box Schema",
"type": "array"
}
},
"required": [
"x",
"y"
],
"title": "The PyGL FoV Block Bounding Box Schema",
"type": "object"
},
"location": {
"$id": "#/properties/block/properties/location",
"items": [
{
"$id": "#/properties/block/properties/location/properties/x",
"default": 0,
"examples": [
-1324
],
"title": "The PyGL FoV Block Location X Schema",
"type": "number"
},
{
"$id": "#/properties/block/properties/location/properties/y",
"default": 0,
"examples": [
54
],
"maximum": 255,
"minimum": 0,
"title": "The PyGL FoV Block Location Y Schema",
"type": "number"
},
{
"$id": "#/properties/block/properties/location/properties/z",
"default": 0,
"examples": [
160
],
"title": "The PyGL FoV Block Location Z Schema",
"type": "number"
}
],
"title": "The PyGL FoV Block Location Schema",
"type": "array"
},
"number_pixels": {
"$id": "#/properties/block/properties/number_pixels",
"examples": [
1543
],
"minimum": 1,
"title": "The PyGL FoV Block Pixel Count Schema",
"type": "integer"
},
"playername": {
"$id": "#/properties/block/properties/playername",
"examples": [
"McSillypants"
],
"pattern": "^(.*)$",
"title": "The PyGL FoV Block Playername Schema",
"type": "string"
},
"type": {
"$id": "#/properties/block/properties/type",
"examples": [
"clay"
],
"pattern": "^(.*)$",
"title": "The PyGL FoV Block Type Schema",
"type": "string"
}
},
"required": [
"location",
"type"
],
"title": "The PyGL FoV Block Schema",
"type": "object"
},
"title": "The Block List Schema",
"type": "array"
},
"name": {
"$id": "#/properties/data/properties/playername",
"default": "",
"examples": [
"Ed"
],
"pattern": "^(.*)$",
"title": "The Name Schema",
"type": "string"
},
"observation": {
"$id": "#/properties/data/properties/observation",
"default": 0,
"examples": [
6857
],
"title": "The Observation Number Schema",
"type": "integer"
}
},
"required": [
"observation",
"playername",
"blocks"
],
"title": "The PyGL FoV Data Schema",
"type": "object"
},
"header": {
"$id": "http://asist.aptima.com/schemas/common_header.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {},
"properties": {
"message_type": {
"$id": "#/properties/message_type",
"const": "observation",
"enum": [
"control",
"observation",
"chat",
"status",
"trial",
"event",
"groundtruth",
"experiment",
"metadata",
"agent"
],
"examples": [
"observation"
],
"pattern": "^([a-z_]*?)$",
"title": "The Message_type Schema",
"type": "string"
},
"timestamp": {
"$id": "#/properties/timestamp",
"examples": [
"2019-12-26T12:47:23.1234Z"
],
"pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}[.]?[0-9]{0,}?Z",
"title": "The Timestamp Schema",
"type": "string"
},
"version": {
"$id": "#/properties/version",
"examples": [
"1.0",
"2.3.1"
],
"pattern": "^([0-9]+\\.)?([0-9]+\\.)?([0-9]+)$",
"title": "The message format version",
"type": "string"
}
},
"required": [
"timestamp",
"message_type",
"version"
],
"title": "ASIST message common header Schema",
"type": "object",
"version": "0.3"
},
"msg": {
"$id": "http://asist.aptima.com/schemas/event_message.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {},
"properties": {
"experiment_id": {
"$id": "#/properties/experiment_id",
"default": "",
"examples": [
"123e4567-e89b-12d3-a456-426655440000"
],
"pattern": "(([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})|Not Set|Null|null)",
"title": "The Experiment Id Schema",
"type": "string"
},
"replay_id": {
"$id": "#/properties/replay_id",
"default": "",
"examples": [
"123e4567-e89b-12d3-a456-426655440000"
],
"pattern": "(([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})|Not Set|null|Null)",
"title": "The Replay Id Schema",
"type": [
"string",
"null"
]
},
"replay_parent_id": {
"$id": "#/properties/replay_parent_id",
"default": "",
"examples": [
"123e4567-e89b-12d3-a456-426655440000"
],
"pattern": "(([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})|Not Set|null|Null)",
"title": "The Replay Parent Id Schema",
"type": [
"string",
"null"
]
},
"replay_parent_type": {
"$id": "#/properties/replay_parent_type",
"enum": [
"TRIAL",
"REPLAY",
null
],
"title": "The Replay Parent Type Schema",
"type": [
"string",
"null"
]
},
"source": {
"$id": "#/properties/source",
"default": "",
"examples": [
"simulator"
],
"pattern": "^(.*)$",
"title": "The Source Schema",
"type": "string"
},
"sub_type": {
"$id": "#/properties/sub_type",
"const": "FoV",
"default": "",
"examples": [
"equip",
"triage"
],
"pattern": "^([a-zA-Z0-9_:]*?)$",
"title": "The Sub Type Schema",
"type": "string"
},
"timestamp": {
"$id": "#/properties/timestamp",
"default": "",
"examples": [
"2019-12-26T14:05:02.3412Z"
],
"pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}[.]?[0-9]{0,}?Z",
"title": "The Timestamp Schema",
"type": "string"
},
"trial_id": {
"$id": "#/properties/trial_id",
"default": "",
"examples": [
"123e4567-e89b-12d3-a456-426655440000"
],
"pattern": "(([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})|Not Set|null|Null)",
"title": "The Trial Id Schema",
"type": "string"
},
"version": {
"$id": "#/properties/version",
"default": "",
"examples": [
"0.1",
"1.0.1"
],
"pattern": "^([.]*)|(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$",
"title": "The Version Schema",
"type": "string"
}
},
"required": [
"experiment_id",
"timestamp",
"source",
"sub_type",
"version"
],
"title": "The Event Message Schema",
"type": "object",
"version": "0.5"
}
},
"required": [
"header",
"msg",
"data"
],
"title": "The PyGL FoV Agent Schema",
"type": "object",
"version": "0.1"
}Upstream spec documentation
Data Subtype: Field of View Message Format
This data message subtype is used to communicate a summary of blocks in the player's Field of View from the PyGLFoVAgent to any component on the message bus that is interested in it.
TOPIC
agent/pygl_fov/player/3d/summary
Message Fields
| Field Name | Type | Description |
|---|---|---|
| header | object | From Common Header Format section |
| msg | object | From the Common Event Message Format section |
| data.observation | integer | An observation number that corresponds to that in a PlayerState message |
| data.playername | string | The name of the entity whose FoV is summarized |
| data.blocks | list | A list consisting of summary information for each block in the Field of View |
Blocks Fields
| Field Name | Type | Description |
|---|---|---|
| location | list | The (x,y,z) location of the block in Minecraft coordinates |
| type | str | The type of the block |
| number_pixels | int | The number of pixels the block occupies in the player's FoV |
| bounding_box | object | The boundary (i.e., (x_min, x_max) and (y_min, y_max)) of the block in the player's FoV |
| playername | string | (optional) The player's name, if the block type is a player |
Message Example
{
"header": {
"timestamp": "2020-07-10T14:48:52.041004Z",
"message_type": "observation",
"version": "0.5"
},
"msg": {
"experiment_id": "3a99e95e-11ab-4668-932a-55c645579ea4",
"trial_id": "f955eed1-8a82-4919-86d7-3c5652977470",
"timestamp": "2020-07-10T14:48:52.041004Z",
"source": "PyGL_FoV_Agent",
"sub_type": "FoV",
"version": "0.5"
},
"data": {
"playername": "Player18",
"observation": 10797,
"blocks": [
{ "location": [-2168, 51, 174],
"type": "block_victim_1",
"number_pixels": 600,
"bounding_box": { "x": [69, 95],
"y": [280, 302]
}
},
{ "location": [-2168, 51, 175],
"type": "gravel",
"number_pixels": 541,
"bounding_box": { "x": [96, 120],
"y": [278, 300]
}
}
]
}
}