Inspiration

During the pandemic, we noticed that students really struggled to stay concentrated with online classes. We wanted to create something which can turn boring video calls to interactive and fun learning sessions.

What it does

Our project is a chrome extension that lets users create and join "rooms" anonymously. The user can host a room with a 3D model and others can join it with the specified password. The host can broadcast its view to all the members which allows others to follow the host. The users can also turn off following in case they want to explore on their own.

How we built it

The project has a chrome extension front-end and a Node.JS REST API and WebSocket Server as the backend. The user sends a request to create or join a room with the specified data. The REST API handles the request and returns necessary payload for the response. The host receives a host key which allows them to connect to the WebSocket server to broadcast their camera details. While the regular user can simply authenticate with the WebSocket server with the regular room password.

For the 3D rendering we used Babylon. We obtained a few basic models from SketchFab under CC BY 4.0 license.

Challenges we ran into

The main challenge we faced was to figure out authentication for rooms as well as WebSocket connections.

Accomplishments that we're proud of

We're proud that we were able to successfully implement 3 Web Technologies we were completely new to - Chrome Extensions, Babylon.js, and WebSocket Servers.

What's next for 3D Sessions

We plan to work on adding a more attractive user interface and extend model support with the help of third-party providers automate it with APIs.

Built With

Share this project:

Updates