CyberArchWarehouse
Main Repository for the Cyber-archaeology Warehouse Project
Description
Beyond the buzzword “Metaverse”, technology is quickly approaching a convergence of virtual reality (VR), augmented reality (AR), digital twins, and globally accessible big data. In the field of archaeology, especially in excavations being carried out in the Holy Land, we have similarly pursued over the past twenty years development of technologies to digitally preserve, visualize, analyze and share digital twins of the archaeological record. Archaeology is an inherently destructive science necessitating all efforts to be made to adequately record data in the field and digitally store it in an as accurate and comprehensive record as possible. Once we have a digital twin of our data, digital immersive environments are naturally the most convenient means to fully take advantage of it for analysis and visualization. This projects end goal is to create an immersive Cyber-Archeaologists' Warehouse inside UE5 for analysis and study of digitized assets from field excavations and survey. We see this as the next step to digitization, analysis and collaboration that allows us to begin building out the metaverse of the archaeological past.
Goals:
- Any archaeological data format or application can be accessed in VR
- Data can be studied as if sitting at a desk or computer
- New interfaces to enhance study that go beyond desk or computer (Multiple displays, Touch tables, 3D floating artifacts)
- Multi-user collaborative environment-many people can visit the warehouse at the same time
- Cross-platform: VR/AR, PC, Web, Mac, Linux, Tablet
Getting started
To make it easy for you to get started with GitLab, here's a list of recommended next steps.
Get the repository
cd C:\UnrealProjects
git clone https://gitlab.nrp-nautilus.io/ngsmith/cyberarchwarehouse.git
Add your files
cd C:\UnrealProjects\cyberarchwarehouse
git add [directory/file]
git status
Commit and Push your files
git config --global http.postBuffer 2097152000
git commit -am "new push"
git push origin main
Upate your repository with Pull
git pull origin
Installation
TODO
Download External Project Assets
In order to keep the repository small we have moved all large assets, materials and textures to the WorldBuilding folder. These assets will be packaged into the project but will not be stored on the repository. After cloning the repository, retreive the latest release zip file for WorldBuilding: https://gitlab.nrp-nautilus.io/ngsmith/cyberarchwarehouse/-/releases
Unpack and store on your computer, preferably so that the folder structure is C:/UnrealProjects/WorldBuilding. Now create a symbolic link to make it accessible from the content browser of UE5: mklink /d C:\UnrealProjects\cyberarchwarehouse\Content\WorldBuilding C:\UnrealProjects\WorldBuilding
Make sure to do this before opening the project for the first time. Also do not add the WorldBuilding folder link to gitlab when commiting changes!!!
Connecting your Quest to same wifi as PC
If at UCSD it is almost impossible to get onto the UCSD Protected and it blocks Airlink. The easiest way to do get around this is to make your pc a Mobile Hotspot. Click in windows search bar for: "Mobile Hotspot" Enable the hotspot and from the Quest find the wifi and enter the password
You will now have a direct connection between your PC and Quest avoiding any network bottlenecks.
Setting up OpenXR and Oculus Airlink
-
Download and install Oculus app for windows: https://www.oculus.com/download_app/?id=1582076955407037
-
Select Airlink and then on your Quest go into Settings and enable Airlink
-
If you are on the same wifi as your pc when you select Airlink on the quest it should already show your pc's name and the option to pair should be enabled.
-
Pair your device and then Launch to get into the Oculus App running on your PC
-
Go to Settings->Beta on the Oculus App and enable Public Test Channel and Developer Runtime Features
-
Go to Settings->General and make sure OpenXR Runtime has Oculus set as active.
-
You can now launch the Unreal Editor and you can select VR Preview
Troubleshooting Oculus PC App and Airlink connection
If the 'pair' or 'launch' option is faded out this is the best solution:
- Restart Quest
- Open Task manager, go to Services Tab and make sure OVRService is set to stopped
- Go to Details tab and end task OVRServiceLauncher if it is running. Also kill OVRService if running
- Using File Explorer go to C:\Program Files\Oculus\Support\oculus-runtime and launch OVRServer_x64.exe -This will restart Oculus App but it also opens a log window.
- Make a desktop shortcut for OVRServer_x64.exe for future use.
- Now if you need to restart Oculus app and get pair/launch active you just kill the OVRServer log window and restart it using the shortcut.
Mounting ArchData Folder and linking into the project
Download and unzip rclone https://rclone.org/downloads/
install winFSP (required for fuse mount, willf ail without this installed first) https://github.com/winfsp/winfsp/releases/tag/v1.10
Open CMD, navigate to install folder
run "rclone config", this will create the directory C:\Users\username\AppData\Roaming\rclone\
Hit q to quit
Get rclone.cfg file (in repo) and add keyid and secretid
copy config file (rclone.cfg) into C:\Users\username\AppData\Roaming\rclone\ or alternatively place same folder as rclone
rclone config file --to see config location
rclone config show --to see config data
run command to mount drive:
rclone mount SeaweedS3:pvc-23f3cead-b240-4298-8c61-4e246dc1d8de P: --vfs-cache-mode full
Now that you have the bucket mounted you can create a link to the project into the ArchData content folder [we will access all public shared archaeological data from here]:
mklink /d C:\UnrealProjects\cyberarchwarehouse\Content\ArchData P:\ArchData
If you want to share large data privately use our cyberarch bucket, to mount: rclone mount CephS3:cyberarch S: --vfs-cache-mode full
Syncing WorldBuilding Folder
The WorldBuilding folder is stored on our SeaweedS3 bucket. The best way to add it to your project is to access the most up to date one on SeaweedS3 If you have followed mounting instructions above you can copy the WorldBuilding folder to your computer from the mount If you want to sync latest updates use the following command with rclone:
[Note this will remove any previous changes in your local WorldBuilding folder]
rclone sync -i SeaweedS3:pvc-23f3cead-b240-4298-8c61-4e246dc1d8de/WorldBuilding C:/UnrealProjects/WorldBuilding
After your local folder is synced mount it into the content browser folder:
mklink /d C:\UnrealProjects\cyberarchwarehouse\Content\WorldBuilding C:/UnrealProjects/WorldBuilding
If you have made changes to your local WorldBuilding folder and want to add these to the shared use this command:
[Note only run this command if you are sure you want to sync your folder because it will delete and change the synced destination folder]
rclone sync -i C:/UnrealProjects/WorldBuilding SeaweedS3:pvc-23f3cead-b240-4298-8c61-4e246dc1d8de/WorldBuilding
Make CyberArchWarehouse Home for SteamVR
If you have downloaded the Runtime of this project, you can make it your SteamVR Home!
Edit C:\Program Files (x86)\Steam\steamapps\common\SteamVR\tools\tools.vrmanifest
In "app_key": "openvr.tool.steamvr_environments" make following changes:
"binary_path_windows" : "C:/UnrealProjects/CyberArchWarehouseRelease/Windows/CyberArchWarehouse.exe",
"binary_path_osx" : "steamvr_environments/game/steamtours.sh",
"binary_path_linux" : "steamvr_environments/game/steamtours.sh",
"arguments": "-vr -RenderOffScreen",
Save and Relaunch ALVR with SteamVR
This will always boot you immediately into the project and return you to CyberArchWarehouse after running UE5 editor or other VR app.
Usage and Controls for UE5 project
Movement: Mouse: Rotates Yaw and Pitch View Keyboard: WASD or [Up/Down/Left/Right] Controller: Left Controller X/Y Axis for Moving Right Controller X/Y Axis for rotating
Jump: Keyboard: Spacebar Controller: Right Controller Trigger
Toggle between 1st and 3rd perspective: Keyboard: p or [1,3] Controller: Right Controller B
Support
Contact ngsmith@ucsd.edu or join our Matrix channel: CyberArch Warehouse [https://matrix-to.nrp-nautilus.io/#/room/!GBRMuVTqUnhxjySkiS:matrix.nrp-nautilus.io?via=matrix.nrp-nautilus.io]
Roadmap
Stage 1: Interopability of base warehouse in Quest/Windows/Linux
Contributing
If you would like to contribute to this project contact ngsmith@ucsd.edu to be added.
Only store blueprints and small datatypes inside the content folder (e.g. /cyberarchwarehouse/Content/).
If you are importing or migrating assets that will be core to the project make sure to move them to WorldBuilding folder and place in the proper folder directory. Then zip the WorldBuilding folder and coordinate with other contributors to create a new release.
All Archaeological Data should be outside the project stored on our SeaweedFS S3 to be dynamically loaded in. See above for mounting SeaweedFS to the project.
If you are testing data create a temporary folder in the Content Browser and make sure not to add it to the repository.
Authors and acknowledgment
Current Authors: Neil G. Smith, Haoyang Guo, Sophia Boss, Adrian Rodarte
License
TODO
Project status
Initial Development