Belle II in Virtual Reality

October 10, 2018

This virtual reality model of the Belle II experiment shows the marvels of the subatomic world, where matter and antimatter collide at almost the speed of light, converting energy to matter and back again in less than a nanosecond. You do not need a VR headset to experience this virtual-reality world - you may run one of the "Screen" variants of the app. Specific requirements are listed for each app.

The free app is available at the Steam Store for Windows, Mac OSX, and Linux.

The free app is available at the Oculus Store for the Rift and Go headsets. Please ask me for a Promo Code (specify your headset in your email) then redeem it by following the instructions at Oculus promo code redemption.

You may view narrated or captioned movies about the creation of this VR project.

This work is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-nc-sa/4.0/).

Quick Reference
This PDF document describes the hand controls (for the Xbox gamepad, the Oculus Touch controllers, the Vive controllers, and the keyboard/mouse) and gives a brief summary of the use of the in-game menu.
Download one of these zipped executables (Windows, MacOSX or Linux) of the Belle II VR app, then unzip it to a convenient location.

The computer should have an x86_64-compatible CPU and a GPU. You can display the app on the computer screen and/or with a VR headset. For the VR-capable setup, you need an HDMI port for the headset and USB-3 ports (for the Oculus Rift: one for the headset, one for the Xbox gamepad [zero for the Touch controllers], and one or two for the tracker(s); for the HTC Vive: one for the headset).

Windows laptops: We have had a good experience with the ASUS Republic of Gamers Strix laptop (https://www.newegg.com/Product/Product.aspx?item=N82E16834234294), which is comparable to the Gigabyte P57Wv7-KL3 (https://www.newegg.com/Product/Product.aspx?Item=N82E16834233195).

VR headsets: The Oculus Rift package includes the headset, two Touch controllers, two trackers, and a remote control. (It is no longer sold with the Xbox gamepad, I'm told.) The HTC Vive package includes the headset, two controllers, two room-mount trackers and some other doo-dads.

Belle_II_VR.zip
This Windows executable works with both the HTC Vive headset/controllers and the Oculus Rift headset with either the Oculus Touch controllers or an Xbox gamepad. (Keyboard/mouse can also be used.) It auto-senses which VR headset you are using. You will need the HTC Vive hardware and runtime software (https://support.steampowered.com/steamvr/HTC_Vive/) and/or the Oculus Rift hardware and runtime software (https://www.oculus.com/setup/) to run this app.

Belle_II_VR_OculusRift.zip
This Windows executable works with the Oculus Rift headset and either the Oculus Touch controllers or an Xbox gamepad. (Keyboard/mouse can also be used.) You will need the Oculus Rift hardware and runtime software at https://www.oculus.com/setup/ to run this app.

Belle_II_VR_HTCVive.zip (for Windows)
Belle_II_VR_HTCVive_MacOSX.zip (for Mac OSX)
This executable works with the HTC Vive headset and Vive controllers or with an Xbox gamepad. (Keyboard/mouse can also be used.) You will need the HTC Vive hardware and runtime SteamVR software at https://support.steampowered.com/steamvr/HTC_Vive/ (or at https://www.vive.com/us/setup/ if you want to get some extra Vive-specific apps) to run this app. If you use the Mac app, you will need the SteamVR BETA: in the Steam app's Library > Tools menu, right-click (or control-click) on SteamVR, select Properties, select the "Betas" tab, then choose "SteamVR Beta" from the dropdown.

Belle_II_VR_Screen_Windows.zip
Belle_II_VR_Screen_MacOSX.zip
Belle_II_VR_Screen_Linux.zip (*)
Belle_II_VR_Screen_SplitStereo_Windows.zip
Belle_II_VR_Screen_SplitStereo_MacOSX.zip
These executables use your computer screen for the display: they do not require any VR hardware.

(*) The Linux executable requires GLIBCXX_3.4.15 or newer and GLIBC_2.15 or newer. Some distros, like CentOS, are stuck at GLIBC_2.12. I installed GLIBC_2.15 in a private folder like ~/local, prepended this and the BelleII-basf2 folder containing the newer libstdc++.so.6 to LD_LIBRARY_PATH, and tried '~/local/lib/ld-linux-x86-64.so.2 ./Belle_II_VR_Screen.x86_64' - it ran but wasn't able to establish a ssh-tunnelled X11 connection to the remote display. If you get this to work, kudos - and please share your magic incantations!

Belle_II_VR_OculusGO.apk
This Android executable works with the standalone Oculus GO headset and a Bluetooth Xbox-compatible gamepad like the Steel Series Stratus XL. If you download this file, you will need to set up the Oculus GO headset in 'Developer' mode using your smartphone and then install the above apk file on the headset from your computer with the 'adb' command.

You might prefer to install the Oculus Store edition of this app to avoid having to enable the 'Developer' mode for your headset. Please ask me for a Promo Code (specify your headset in your email) then redeem it by following the instructions at Oculus promo code redemption.

Belle_II_VR_WebGL.zip       (Try it here)
This WebGL app runs in your web browser.

It reads events from the web - the default URL is http://www1.phys.vt.edu/~piilonen/VR/events/ . You may change this by modifying the url variable in the index.html file. If you do so, make sure that your new location contains the .htaccess file (contents) to permit cross-site access to the files in this location.

Electron-positron Collision Events
The simulated electron-positron collision events are stored in a folder named events at the same level as the app itself. You may modify the contents of this folder to suit your needs, according to the following rules.

The events.lis text file in the events folder specifies the sequence of event files that are fetched by the app. You may comment out and/or reorder lines here to suit your preferences. Each event file is a comma-separated text file that is exported from the basf2 GEANT4-based simulation of the Belle II detector.

If the events folder contains the text file events.url and this file specifies a valid web address (URL) then events.lis and the event csv files will be fetched from this web address instead of the events folder. In this case, the folder needs only one file: events.url.

If the above event-fetching mechanisms fail (due to syntax or file-corruption errors), the app will revert to displaying one of five baked-in events: (1) e+ e → μ+ μ, (2) e+ e → γ γ, (3) e+ e → c c̄, (4) e+ e → B0 B̄0, and (5) e+ e → B+ B.

 
Belle II detector geometry files