This is a course project for BICA taught in MEPhI by Alexei Samsonovich. The main goal is to create an easy-to-use programmatic API for Mozilla Hubs.
There are quite a few similar pieces of software freely available, however none of them seem to provide an ability to use voice-chat features of the Hubs. The voice, however, is very important for any research involving the Human-AI interaction.
Therefore, the main feature of this project is that it allows to receive and send voice messages and control position and other properties of the avatar in Hubs by means of simple and minimalistic API, which the Hubs itself seems to lack.
- pymediasoup -- Hubs voice capabilities are based on the MediaSoup protocol, which is inherited from the WebRTC. This library provides a python wrapper for this protocol. Note that it strictly requires Python <= 3.10 to build without errors;
- hubsclient -- simple GraphQL wrapper for rooms and other avatars interactions;
- aiortc -- required for audio acquisition.