Looking at the current online classes, it very much seems that the students get bored or it doesn't give a sense of realism or interactiveness. Targeting this issue, we are tying to provide the presence of each student and teacher in a virtual room, impersonating themselves in the form of avatars.

What it does

In V-Meet, the students and the teacher, can have the classic meeting, besides the luxury of experiencing the virtual room. So what's a virtual room? The virtual room is a place where all the participants can see themselves in form of their avatars. For example, when the teacher joins the meeting, his/her avatar will become live the virtual room, and same for the students. The students' avatar will be sitting on the chair, looking at the teacher, having the feature to switch cameras in the room. Whenever a student raises their hand in the meeting, their avatar rises from the chair, raising it's hand, giving a more realistic feel to the students attending the meeting.

How we built it

We started off by developing an android application, using react-native, java, node.js, and unity. We needed to write a bridge from android to react-native, for java APIs. We didn't use the UXKit sdk for react-native, as we wanted to have full control on the code. Because we might need to utilise our bridge for notifications, and other services. We used unity to develop our virtual room scene, and then bridged it with react-native to connect it to the on-going meeting. We also deployed our server on Heroku to authorize the user to be able to access the dolby APIs.

Challenges we ran into

We needed to explore how Unity works, and did some R&D with android native application, we were successful but we wanted a UnityView not a UnityPlayerActivity. So, we switched to react-native, because it allows us to integrate the unity project as a UnityView, which very much suits are need. In future, there's still possibility to turn to native activity for unity, if we run into performance issues. There's another challenge for which we didn't yet find a solution. We need to schedule or not expire the conference which are created. Currently it seems if we just create a conference, and no user including the creator doesn't join the conference within a minute or less, the conference seems to expire. Currently we are allowing only 6 participants, because we need to caluclate the layout for more participants in the virtual room, without getting the avatars colliding with eachother.

Accomplishments that we're proud of

What we did at V-Meet is quite unique, and we are extremely proud for the efforts we put in over the past 3-4 weeks. Our team had only one member, and he solely developed this whole product, which is quite an achievement.

What we learned

Throughout this journey, we learned how Unity works, developing the characters in Unity, and bridging it with react-native. We explored APIs, bridged it with react-native.

What's next for V-Meet

It's a good start for V-Meet, and we are eyeing many heights of success. First we are targeting the screen share feature, in both the call screen and displaying the screen share in virtual room. Then we have custom avatars for every users, most probably we will try to integrate the Bitmoji's avatars in the first attempt. We also want to include the AR for allowing the schools to capture their walls using our AR camera, and then those captured images will be used as texture for the virtual room walls.

Share this project: