Firefly: Untethered multi-user VR for commodity mobile devices

Xing Liu, Christina Vlachou, Feng Qian, Chendong Wang, Kyu Han Kim

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

Firefly is an untethered multi-user virtual reality (VR) system for commodity mobile devices. It supports more than 10 users to simultaneously enjoy high-quality VR content using a single commodity server, a single WiFi access point, and commercial off-the-shelf (COTS) mobile devices. Firefly employs a series of techniques including offline content preparation, viewport-adaptive streaming with motion prediction, adaptive content quality control among users, to name a few, to ensure good image quality, low motion-to-photon delay, a high frame rate at 60 FPS, scalability with respect to the number of users, and fairness among users. We have implemented Firefly in 17,400 lines of code. We use our prototype to demonstrate, for the first time, the feasibility of supporting 15 mobile VR users at 60 FPS using COTS smartphones and a single AP/server.

Original languageEnglish (US)
Title of host publicationProceedings of the 2020 USENIX Annual Technical Conference, ATC 2020
PublisherUSENIX Association
Pages943-957
Number of pages15
ISBN (Electronic)9781939133144
StatePublished - 2020
Event2020 USENIX Annual Technical Conference, ATC 2020 - Virtual, Online
Duration: Jul 15 2020Jul 17 2020

Publication series

NameProceedings of the 2020 USENIX Annual Technical Conference, ATC 2020

Conference

Conference2020 USENIX Annual Technical Conference, ATC 2020
CityVirtual, Online
Period7/15/207/17/20

Bibliographical note

Funding Information:
We thank the voluntary users who participated in our study, the anonymous reviewers for their valuable comments, and Philip Levis for shepherding the paper. This work was supported in part by NSF Award #1903880 and #1915122.

Fingerprint Dive into the research topics of 'Firefly: Untethered multi-user VR for commodity mobile devices'. Together they form a unique fingerprint.

Cite this