Skip to main content

Developer documentation

Most of the documentation of this website is meant for users of the application.

If you are a developer, you should consult the README.md on GitHub for technical information about the extraction process, the shader, the WebSockets API, and the camera position extraction.

info

If you made it this far into this documentation, you may want to know there is a new temporary Discord server here for early troubleshooting: https://discord.gg/3VzveJQYWE

Adding support for other robotic arms

Are you a developer looking to connect an unsupported robotic arm? Check out the GitHub.

WebSockets

Resonite
🔺 Basis

If you are using Resonite, or if you are modifying ChilloutVR, or if you are making an application built using the Basis framework, you should probably use WebSockets.

In the Data calibration tab of the software, at the bottom in the Resonite WebSockets section, check the box to enable the WebSocket service.

position-system_CUz03IfbdR.png

You can find the WebSockets message specification here:

If WebSockets support is enabled, we will expose a websocket on port 56247 at url ws://localhost:56247/ws

Send the following string to it that represents an interpreted position and normal:

PositionSystemInterpreted PositionX PositionY PositionZ NormalX NormalY NormalZ
  • PositionX, PositionY, PositionZ is the position in local space, where (0, 0, 0) is the bottommost center, and (0, 1, 0) is the uppermost center.
  • NormalX, NormalY, NormalZ is the direction, represented as a vector of length 1. It doesn't matter if you don't make it length 1, we will normalize it anyway.

While you're at it, you can also submit the tangent, which can be useful to define the twist, but this is optional:

PositionSystemInterpreted PositionX PositionY PositionZ NormalX NormalY NormalZ TangentX TangentY TangentZ
  • TangentX, TangentY, TangentZ is the tangent (which is a vector perpendicular to the direction), represented as a vector of length 1. It doesn't matter if you don't make it length 1, we will normalize it anyway.