Exploratory project for viewing remote image cubes on the Oculus Quest 2. The software uses a client-server approach, with gRPC used for communication.
The server is written in C++, and should work on most Linux distributions, or Windows 10 (although this support may be removed soon). The build process has been tested on Ubuntu 20.04.2 LTS and Windows 10 ( using vcpkg).
- C++17 compatible compiler (GCC 8+, clang 11, msvc 2017+). Tested on GCC 9.3 and msvc 2019.
- cmake 3.12 or newer.
- pkg-config (
pkg-config
on Debian;pkgconf
in vcpkg). - Protocol buffer libraries and compilers (
libprotobuf-dev
andprotobuf-compiler
on Debian;protobuf
in vcpkg). - gRPC and protocol buffer libraries and compilers (
libgrpc++-dev
andprotobuf-compiler-grpc
on Debian;grpc
in vcpkg). - fmt and spdlog libraries (
libfmt-dev
andlibspdlog-dev
on Debian;fmt
andspdlog
in vcpkg). - cfitsio library (
libcfitsio-dev
on Debian;cfitsio
in vcpkg).
- Checkout the repo and all submodules using
git submodule update --init --recursive
. - Create a build folder and
cd
into it. - Run
cmake <path_to_source_folder>
. On Windows platforms you may need to specify the vcpkg toolchain file using-DCMAKE_TOOLCHAIN_FILE=C:\<path_to_vcpkg_root_dir>\scripts\buildsystems\vcpkg.cmake
. - Run
make
(ornmake
for msvc).
The client is written in C#, and has only been tested on Windows (building for Android) with Unity 2021.1. The
powershell script CompileGrpcServiceWindows.ps1
needs to be run before running Unity.
The test scripts are written in TypeScript. Run npm install
and the powershell script CompileGrpcServiceWindows.ps1
before running the client tests using npm run start client
.