Skip to content
/ OTP.js Public

A node.js Library for interfacing with Object Transform Protocol (OTP).

License

Notifications You must be signed in to change notification settings

HFreni/OTP.js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OTP.js Logo

OTP.js

OTP.js is a node.js library for interfacing with Object Transform Protocol (ESTA E1.59). This is an open source library, developed by Infinitus Lux, LLC, in order to allow javascript projects, such as our internal tooling, to use OTP.

Coordinate System

Space Origin Viewpoint
Proscenium Theatre Downstage Center, Stage Level Auditorium Center
Arena Center of Arena Floor Operating Position
TV Studio Center of Studio Floor Camera 1 Position
Axis Linear Positive Linear Negative Zero Degrees
X Right Left Up
Y Far Near Up
Z Up Down Far

Important Defenitions To Understand OTP

  • Octet: an 8 bit byte.
  • Point: The smallest, indivisible component having properties of motion. This may be the center of a complex Object, or merely one of many Points on it.
  • Object: A conceptual container composed of one or more Points. An Object’s motion is described via the properties of the Points that make it up.
  • Group: A user-defined collection of one or more Points. A Group could describe a single Object, many Objects, or simply a set of Points with some logical association.
  • System: A user-defined collection of one or more Groups. Systems provide part of the method of partitioning network traffic.
  • Module: A set of properties of a Point, such as its position or rotation. The data structure of a Module is either defined by this standard, or it is manufacturer-specific.
  • System Number: Each System is assigned a unique System Number, identifying the System.
  • Group Number: Each Group is assigned a Group Number, identifying the Group within its System. Group Numbers are unique within a System. That is, anything within a single System with the same Group Number belongs to the same Group. In a multi-System implementation, there may be several Groups (a maximum of one per System) with the same Group Number.
  • Point Number: Each Point is assigned a Point Number, identifying the Point. A Point Number is unique within a Group. In a multi-Group System, or a multi-System implementation, there may be many Points with the same Point Number.
  • Address: The combination of System Number, Group Number, and Point Number make up the Address which identifies a Point.
  • Reference Frame: Each Point can be assigned a single Reference Frame, which is another Point with which it shares a kinematic relationship. Transform information for the Point is relative to the Reference Frame.
  • Time Origin: The Time Origin is the point in time from which a Component’s timestamps are calculated (represented as 0 microseconds). Components may use a standard system such as Unix Time, the moment a Component initializes, or any other moment in time as the Time Origin.
  • Rotation: The circular movement or orientation of an object around a Point of rotation. For the purposes of OTP, Rotation and orientation are considered equivalent and are relative to the space defined in Section 4, or any assigned Reference Frame. There are 3 rotational axes: X,Y,Z.
  • Producer: A Producer is any network device transmitting OTP Transform Messages.
  • Consumer: A Consumer is the intended target of information from a Producer.
  • Component: Producers and Consumers are all OTP Components.
  • OTP Transform Message: An OTP Transform Message carries object transform information such as position and rotation. It is transmitted with the VECTOR_OTP_TRANSFORM_MESSAGE vector.
  • OTP Advertisement Message: An OTP Advertisement Message is any of the set of messages containing OTP Module Advertisement Messages, OTP System Advertisement Messages and OTP Name Advertisement Messages. It is transmitted with the VECTOR_OTP_ADVERTISEMENT_MESSAGE vector.
  • OTP Module Advertisement Message: An OTP Module Advertisement Message contains a packed list of the Module Identifiers of Modules supported by a Consumer. It is transmitted with the VECTOR_OTP_ADVERTISEMENT_MODULE vector.
  • OTP System Advertisement Message: An OTP System Advertisement Message contains a packed list of the System Numbers for which Producer provides object transform data. It is transmitted with the VECTOR_OTP_ADVERTISEMENT_SYSTEM vector.
  • OTP Name Advertisement Message: An OTP Name Advertisement Message contains a packed list of the Point Names and associated Addresses for a Producer. It is transmitted with the VECTOR_OTP_ADVERTISEMENT_NAME vector.
  • OTP Message: An OTP Message is any of the set of messages containing OTP Transform Messages and OTP Advertisement Messages.
  • OTP Folio: An OTP Folio is a set of OTP Messages with the same folio number. Together they make up a snapshot of information which due to its size has to be split across multiple messages.
  • Full Point Set: A Full Point Set for a Producer includes every Point for a specific System for which a Producer is currently providing transform information.

License

OTP.js is licensed under the MIT license, this means that you are free to do with it as you please. I'd love to see what kind of cool stuff folks come up with.

© Infinitus Lux, LLC 2022

About

A node.js Library for interfacing with Object Transform Protocol (OTP).

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published