Abc Stream Pipeline

Run with Docker Image

Download the AbcStreamPipeline docker image:

docker pull openxrlab/xrviewer_runtime:ubuntu1804_x64_py310_abc_service

Setup the pipeline config under configs/abc_stream_pipeline.cfg:

websocket_port=18836                  # port to be exposed to the viewer
zmq_port=18837                        # port that websocket server and pipeline used to communicate
websocket_server_ip='127.0.0.1'       # ip address to be exposed to the viewer

Run the pipeline with the config:

sudo sh scripts/run_abc_stream_pipeline_docker.sh configs/abc_stream_pipeline.cfg

From-scratch Setup

Install the PyAlembic package, which involves compiling Boost, Imath and Alembic. This could be quite annoying:

# setup variables
IMATH_INSTALL_DIR="PATH/TO/IMATH/INSTALL/DIR"       # imath install directory
ALEMBIC_INSTALL_DIR="PATH/TO/ALEMBIC/INSTALL/DIR"   # alembic install directory
CONDA_ENVS_DIR="PATH/TO/CONDA/ENVS"                 # conda virtual environments root directory

# Create conda virtual env and install XRViewer
conda create -n AbcStream python=3.10
git clone https://github.com/openxrlab/xrviewer.git
cd xrviewer/
pip install .

# Install boost
wget https://boostorg.jfrog.io/artifactory/main/release/1.81.0/source/boost_1_81_0.tar.gz
tar -xzvf boost_1_81_0.tar.gz
cd boost_1_81_0
./bootstrap.sh --with-python=$(which python)
sudo ./b2

# Install Imath
git clone https://github.com/AcademySoftwareFoundation/Imath.git
cd imath
cmake -S . -B build \
    -DCMAKE_INSTALL_PREFIX=$IMATH_INSTALL_DIR \
    -DPYTHON=ON \
    -DBOOST_ROOT="/usr/local/lib/"
cmake --build build --config Release
cmake --install build

# Install Alembic
git clone https://github.com/alembic/alembic.git
cd alembic
cmake -S . -B build \
    -DCMAKE_INSTALL_PREFIX=$ALEMBIC_INSTALL_DIR \
    -DImath_DIR="${IMATH_INSTALL_DIR}/lib/cmake/Imath" \
    -DUSE_PYALEMBIC=ON \
    -DPYALEMBIC_PYTHON_MAJOR=3 \
    -DBOOST_ROOT="/usr/local/lib/"
cmake --build build --config Release
cmake --install build

# Copy deps
cp ${ALEMBIC_INSTALL_DIR}/lib/python3.10/site-packages/alembic.so \
    ${CONDA_ENVS_DIR}/AbcStream/lib/python3.10/site-packages/
cp ${IMATH_INSTALL_DIR}/lib/python3.10/site-packages/imath.so \
    ${CONDA_ENVS_DIR}/AbcStream/lib/python3.10/site-packages/

Start the pipeline:

python tools/run_abc_stream_pipeline.py \
    --websocket_port $websocket_port \
    --zmq_port $zmq_port \
    --websocket_server_ip $websocket_server_ip