Figure Number | Description | Origin File Location |
---|---|---|
1 | Meta Quest Pro power use when using different bandwidth limits. | ./new_bm.ipynb |
4 | Timing accuracy (i.e., error) of librnr over time (top plot) and as a statistical summary (bottom plot). | TODO:Add file location |
5 | librnr energy overhead on Meta Quest Pro (MQP) and Meta Quest 2 (MQ2). | ./analysis_BM.ipynb |
6 | librnr GPU-usage overhead on the two PCs. | ./analysis_BM.ipynb |
7 | Effect of bandwidth limitation on power consumption for the Quest Pro (MQP) and Quest 2 (MQ2) VR devices. | ./new_bm.ipynb |
8 | Effect of bandwidth limits on Meta Quest 2 frames per second (FPS). | ./new_systemmetrics.ipynb |
9 | Cumulative probability density function for the frames per second (FPS) on Meta Quest. | ./fps_bandwithlimit_analysis.ipynb |
10 | Comparison in workload offloading between Meta Quest 2 (MQ2) and Meta Quest Pro (MQP). | ./analysis_BM.ipynb |
Trace Folder Name | Game / App | Duration of trace | PC | VR | Network Conditions | Additional Info | Location | Paper Section |
---|---|---|---|---|---|---|---|---|
clumsy-bandwidth-100Mbps/Quest-2 | Beat Saber | 229.161 | PC-R | Quest 2 | 100 Mbps bandwidth limitation | 1 recording, 3 replays | clumsy-bandwidth-100Mbps/Quest-2 | Section 5.2 |
clumsy-bandwidth-100Mbps/Quest-Pro | Beat Saber | 219.424 | PC-D | Quest Pro | 100 Mbps bandwidth limitation | 1 recording, 3 replays | clumsy-bandwidth-100Mbps/Quest-Pro | Section 5.2 |
clumsy-bandwidth-80Mbps/Quest-2 | Beat Saber | 229.161 | PC-R | Quest 2 | 80 Mbps bandwidth limitation | 1 recording, 3 replays | clumsy-bandwidth-80Mbps/Quest-2 | Section 5.2 |
clumsy-bandwidth-80Mbps/Quest-Pro | Beat Saber | 219.424 | PC-D | Quest Pro | 80 Mbps bandwidth limitation | 1 recording, 3 replays | clumsy-bandwidth-80Mbps/Quest-Pro | Section 5.2 |
clumsy-bandwidth-50Mbps/Quest-2 | Beat Saber | 229.161 | PC-R | Quest 2 | 50 Mbps bandwidth limitation | 1 recording, 3 replays | clumsy-bandwidth-50Mbps/Quest-2 | Section 5.2 |
clumsy-bandwidth-50Mbps/Quest-Pro | Beat Saber | 219.424 | PC-D | Quest Pro | 50 Mbps bandwith limitation | 1 recording, 3 replays | clumsy-bandwidth-50Mbps/Quest-Pro | Section 5.2 |
clumsy-bandwidth-30Mbps/Quest-2 | Beat Saber | 229.161 | PC-R | Quest 2 | 30 Mbps bandwith limitation | 1 recording, 3 replays | clumsy-bandwidth-30Mbps/Quest-2 | Section 5.2 |
clumsy-bandwidth-30Mbps/Quest-Pro | Beat Saber | 219.424 | PC-D | Quest Pro | 30 Mbps bandwith limitation | 1 recording, 3 replays | clumsy-bandwidth-30Mbps/Quest-Pro | Section 5.2 |
clumsy-dropchance-0.05/Quest-2 | Beat Saber | 229.161 | PC-R | Quest 2 | 5% drop chance | 1 recording, 3 replays | clumsy-dropchance-0.05/Quest-2 | Not used |
clumsy-dropchance-0.05/Quest-Pro | Beat Saber | 219.424 | PC-D | Quest Pro | 5% drop chance | 1 recording, 3 replays | clumsy-dropchance-0.05/Quest-Pro | Not used |
clumsy-dropchance-0.025/Quest-2 | Beat Saber | 229.161 | PC-R | Quest 2 | 2.5% drop chance | 1 recording, 3 replays | clumsy-dropchance-0.025/Quest-2 | Not used |
clumsy-dropchance-0.025/Quest-Pro | Beat Saber | 219.424 | PC-D | Quest Pro | 2.5% drop chance | 1 recording, 3 replays | clumsy-dropchance-0.025/Quest-Pro | Not used |
clumsy-dropchance-0.01/Quest-2 | Beat Saber | 229.161 | PC-R | Quest 2 | 1% drop chance | 1 recording, 3 replays | clumsy-dropchance-0.01/Quest-2 | Not used |
clumsy-dropchance-0.01/Quest-Pro | Beat Saber | 219.424 | PC-D | Quest Pro | 1% drop chance | 1 recording, 3 replays | clumsy-dropchance-0.01/Quest-Pro | Not used |
clumsy-dropchance-0.001/Quest-2 | Beat Saber | 229.161 | PC-R | Quest 2 | 0.1% drop chance | 1 recording, 3 replays | clumsy-dropchance-0.001/Quest-2 | Not used |
clumsy-dropchance-0.001/Quest-Pro | Beat Saber | 219.424 | PC-D | Quest Pro | 0.1% drop chance | 1 recording, 3 replays | clumsy-dropchance-0.001/Quest-Pro | Not used |
overhead-validation/Quest-2 | Beat Saber | 224.746, 229.161, 228.258 | PC-R | Quest 2 | - | 3 baseline, 3 recordings, 10 replays per recording | overhead-validation/Quest-2 | Sections 4.2, 5 |
overhead-validation/Quest-Pro | Beat Saber | 222.230, 219.424, 217.662 | PC-D | Quest Pro | - | 3 baseline, 3 recordings, 10 replays per recording | overhead-validation/Quest-Pro | Sections 4.2, 5 |
swap-vr/Quest-2 | Beat Saber | 222.146 | PC-D | Quest 2 | - | 1 recording, 10 replays | swap-vr/Quest-2 | Section 5.4 |
swap-vr/Quest-Pro | Beat Saber | 233.927 | PC-R | Quest Pro | - | 1 recording, 10 replays | swap-vr/Quest-Pro | Section 5.4 |
haptic-traces/Quest-2 | Beat Saber | 188.766, 163.524, 240.221 | PC-R | Quest 2 | - | 3 recordings, 1 replay per recording | haptic-traces/Quest-2 | Section 4.1 |
Where:
PC-R
: Windows 10 system with an air-cooled AMD Ryzen 5 7600X CPU, a GeForce RTX 4070 GPU, and a motherboard that supports Wi-Fi 6E (802.11ax).PC-D
: Windows 11 system with a water-cooled AMD Ryzen 5 7600X CPU, a GeForce RTX 3080 GPU, and a motherboard that supports Wi-Fi 6E (802.11ax).
Old experiments are stored in the old-experiments
folder.
New experiments are in the root of the project under the following names:
clumsy-<parameter>-<value>
: Experiments with clumsy enabled. Can be used for clumsy validation + other experiments.overhead-validation
: Experiments with clumsy disabled. Used to validate the overhead of the trace replaying. This folder contains runs with the layer disabled (baseline
), enabled and recording (record<number>
), and enabled and replaying (replay<recording-number>.<replay-number>
).
These experiments cover the entire list of experiments that are proposed in the overleaf document (check Paul's sexy table). For questions or complaints, please contact the contributors to the repo except for Damla and Radu. 🙃
- Connect Quest to PC via cable.
- In a terminal, run
adb devices
to verify that Quest is connected. - Install the BatteryManager app on Quest by running
adb install -g <path-to-apk>
. - Start the BatteryManager app on Quest via
adb shell am start -n "com.example.batterymanager_utility/com.example.batterymanager_utility.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
- After the app starts, you can now connect the VR headset via adb wifi.
- Run
adb tcpip 5555
to enable adb wifi. - Run
adb connect <ip-address-of-quest>:5555
to connect to Quest via adb wifi. The IP address can be found in the Quest settings > Wifi ><Your Network>
> Scroll down until you see the IP address. - Run
adb devices
to verify that Quest is connected via adb wifi. - Disconnect the cable from the Quest.
- Launch Quest Link.
- Add the steam folder to the environment variable
Path
. (C:\Program Files (x86)\Steam
) - Clone Vlad's traffic shaper repo
- Install clumsy as per his instructions.
- Configure the
config.json
file.
experiment_name
: The name of the experiment. This will be used to create a directory with the same name as the experiment and all results will be stored there under the same file conventions as before.clumsy
clumsy_scripts_path
: The path to the folder containing the clumsy scripts in Vlad's traffic shaper.clumsy_path
: Path to the clumsy executable.delay
,delay_chance
,bandwidth_KBps
,drop_chance
: The values for the clumsy script.-1
means disabled.
apps
name
: The name of the app. This will be used to create a directory with the same name as the app and all results will be stored there under the same file conventions as before.exe_name
: The name of the executable for the app. This is used by therunbench.ps1
script to stop the app.steam_app_id
: ID of the app on Steam. This is used by therunbench.ps1
script to start the app. The ID can be found on the app's Steam page >> Settings (Cog wheel) >> Properties >> Updates >> AppID (Below Background downloads).startup_time
: The time in seconds to wait for the app to start.
- Open PowerShell with admin privileges.
- Find the
python.exe
path for your python version Run<your-python.exe-path> vr_runner.py
to start the script. - The script will use the
config.json
file to determine which experiments to run. - First the script will launch
clumsy
with the specified parameters, thenrunbench.ps1
. The application should start shortly after theSleep 5 seconds...BatteryManager
. When the trace is done replaying, the app will automatically close (be patient). After all the iterations are done, the script will closeclumsy
and copy the config file to the experiment directory.