Canonical values for /sex/ are /female/, /male/, and /intersex/.
...
...
@@ -241,11 +242,11 @@ Missing float samples must be represented by /NaN/ values.
An entity may have a 2-dimensional 32-bit float dataset named /positions/, representing the entity's positions with axes time and coordinate. If the dataset's length is \(1\), the entity is considered /fixed in place/.
An entity with positions may also have a 2-dimensional 32-bit float dataset named /orientations/, representing the entity's orientations with axes time and coordinate. If the dataset's length is \(1\), the entity is considered to have a /fixed orientation/.
An entity with /positions/ may also have a 2-dimensional 32-bit float dataset named /orientations/, representing the entity's orientations with axes time and coordinate. If the dataset's length is \(1\), the entity is considered to have a /fixed orientation/.
If an entity has /positions/ but not /orientations/, it is also considered to have a fixed orientation, specifically \((0,1)\) in \(\mathbb{R}^2\) world space and \((0,1,0)\) in \(\mathbb{R}^3\) world space; in this case no rotation is required to convert between world space and entity space.
If an entity has /positions/ but not /orientations/, coordinate space transformations must instead assume a /substitute fixed orientation/ of \((0,1)\) in \(\mathbb{R}^2\) world space and \((0,1,0)\) in \(\mathbb{R}^3\) world space[fn:7].
An entity with positions may contain a 3-dimensional 32-bit float dataset named /outlines/, representing the entity's outlines with the axes time, point, and coordinate. Any outline with less points than the size of /outlines/' second dimension must pad with trailing /NaN/ coordinates. If the dataset's length is \(1\), the entity is considered to have a /fixed outline/.
An entity with /positions/ may contain a 3-dimensional 32-bit float dataset named /outlines/, representing the entity's outlines with the axes time, point, and coordinate. Any outline with less points than the size of /outlines/' second dimension must pad with trailing /NaN/ coordinates. If the dataset's length is \(1\), the entity is considered to have a /fixed outline/.
/positions/, /orientations/, and /outlines/ must select the same /sampling/.
...
...
@@ -256,8 +257,11 @@ The source code for the RoboFish Track Format and supplementary information can
[fn:1] In \(\mathbb{R}^2\): A rectangle (with (x,y) = (width,height)). In \(\mathbb{R}^3\): A rectangular cuboid (with (x,y,z) = (width,height,depth))
[fn:2] In \(\mathbb{R}^2\) world space: \((x,y)\). In \(\mathbb{R}^3\) world space: \((x,y,z)\))
[fn:3] In \(\mathbb{R}^2\) world space: \((\hat{x},\hat{y})\). In \(\mathbb{R}^3\) world space: \((\hat{x},\hat{y},\hat{z})\))
[fn:4] See [[https://semver.org/spec/v2.0.0.html][Semantic Versioning 2.0.0]]
[fn:5] See Unicode Standard 13.0
[fn:1] In \(\mathbb{R}^2\): A rectangle (with (x,y) = (width,height)). In \(\mathbb{R}^3\): A rectangular cuboid (with (x,y,z) = (width,height,depth)).
[fn:2] In \(\mathbb{R}^2\) world space: \((x,y)\). In \(\mathbb{R}^3\) world space: \((x,y,z)\)).
[fn:3] In \(\mathbb{R}^2\) world space: \((\hat{x},\hat{y})\). In \(\mathbb{R}^3\) world space: \((\hat{x},\hat{y},\hat{z})\)).
[fn:4] See [[https://semver.org/spec/v2.0.0.html][Semantic Versioning 2.0.0]].
[fn:5] Groups and datasets share a namespace in HDF, attributes lie in a different one.
[fn:6] See Unicode Standard 13.0.
[fn:7] Thus /no rotation/ is required to convert between world space and entity space.