🛠️ インストール方法#

前提条件#

  • Python: 3.9以上

  • OS: Linux (推奨) / MacOS / Windows

注釈

Genesisはマルチプラットフォームに対応しており、CPUCUDA対応のGPU、および非CUDA GPUを含むバックエンドデバイスをサポートしています。ただし、ベストな性能を得るためには、LinuxプラットフォームとCUDA対応GPUの使用を推奨します。

各システムでサポートされる機能は以下の通りです:

OS

GPUデバイス

GPUシミュレーション

CPUシミュレーション

インタラクティブビューア

ヘッドレスレンダリング

Linux

Nvidia

AMD

Intel

Windows

Nvidia

AMD

Intel

MacOS

Apple Silicon

インストール方法#

  1. PyTorch公式手順に従ってインストールしてください。

  2. GenesisはPyPI経由で利用可能です:

    pip install genesis-world
    

注釈

GenesisをCUDAから利用される場合は適切なnvidia-driverがインストールされているかご確認ください。

(オプション) モーションプランニング#

GenesisはOMPLのモーションプランニング機能を統合しており、直感的なAPIを使用して簡単にモーションプランニングを実施できます。組み込みのモーションプランニング機能が必要な場合は、ここから事前コンパイル済みのOMPLのWheelをダウンロードし、pip installでインストールしてください。

(オプション) サーフェス再構築#

粒子ベースのエンティティ(流体、変形体など)を視覚化するためのメッシュ表面を再構築する必要がある場合、以下の2つのオプションをご用意しています:

  1. splashsurf: 最先端のサーフェス再構築法を使用して視覚化を実現します。

    cargo install splashsurf
    
  2. ParticleMesher: OpenVDBをベースにした独自のサーフェス再構築ツール(高速だが滑らかさは劣る)。

    echo "export LD_LIBRARY_PATH=${PWD}/ext/ParticleMesher/ParticleMesherPy:$LD_LIBRARY_PATH" >> ~/.bashrc
    source ~/.bashrc
    

(オプション) レイトレーシングレンダラー#

写真のようにリアルなビジュアルを目指す場合、GenesisにはLuisaComputeを使用したレイトレーシング(パストレーシング)ベースのレンダラーが組み込まれています。

1. LuisaRenderを取得#

LuisaRenderはext/LuisaRenderサブモジュール内にあります:

git submodule update --init --recursive

2. 依存関係#

2.A: 管理者権限がある場合(推奨)#

注意: コンパイルはUbuntu 20.04以降でのみ動作するようです。Vulkan 1.2+が必要であり、18.04は1.1までしかサポートしていませんが、完全には確認していません。

  • g++gcc のバージョンを11にアップグレード

    sudo apt install build-essential manpages-dev software-properties-common
    sudo add-apt-repository ppa:ubuntu-toolchain-r/test
    sudo apt update && sudo apt install gcc-11 g++-11
    sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 110
    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 110
    
    # バージョン確認
    g++ --version
    gcc --version
    
  • cmakeをインストール

    # システムのcmakeバージョンが3.18未満の場合、卸してsnap経由で再インストール
    sudo snap install cmake --classic
    
  • CUDAをインストール:システム全体で使用するCUDA(バージョン12.0以上):

    • https://developer.nvidia.com/cuda-12-1-0-download-archive からダウンロード

    • CUDAツールキットをインストール

    • 再起動

    # バージョン確認
    nvcc --version
    
  • rustをインストール

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    sudo apt-get install patchelf
    # 上記でエラーが発生する場合、curlがaptからインストールされていることを確認
    
  • Vulkanをインストール

    sudo apt install libvulkan-dev
    
  • zlibをインストール

    sudo apt-get install zlib1g-dev
    
  • RandRヘッダーをインストール

    sudo apt-get install xorg-dev libglu1-mesa-dev
    
  • pybindをインストール

    pip install "pybind11[global]"
    
  • libsnappyをインストール

    sudo apt-get install libsnappy-dev
    

2.B: 管理者権限がない場合#

  • conda依存関係をインストール

    conda install -c conda-forge gcc=11.4 gxx=11.4 cmake=3.26.1 minizip zlib libuuid patchelf vulkan-tools vulkan-headers
    
  • rustをインストール

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    
  • pybindをインストール

    pip install "pybind11[global]"
    

3. コンパイル#

  • LuisaRenderとそのPythonバインディングをビルドする:

    • システム依存関係を使用した場合(2.A)

      cd genesis/ext/LuisaRender
      cmake -S . -B build -D CMAKE_BUILD_TYPE=Release -D PYTHON_VERSIONS=3.9 -D LUISA_COMPUTE_DOWNLOAD_NVCOMP=ON -D LUISA_COMPUTE_ENABLE_GUI=OFF 
      cmake --build build -j $(nproc)
      

      デフォルトではOptiXデノイザを使用しています。OIDNが必要な場合、-D LUISA_COMPUTE_DOWNLOAD_OIDN=ONを追加。

    • conda依存関係を使用した場合(2.B)

      export CONDA_INCLUDE_PATH=path/to/anaconda/include
      cd ./ext/LuisaRender
      cmake -S . -B build -D CMAKE_BUILD_TYPE=Release -D PYTHON_VERSIONS=3.9 -D LUISA_COMPUTE_DOWNLOAD_NVCOMP=ON -D LUISA_COMPUTE_ENABLE_GUI=OFF -D ZLIB_INCLUDE_DIR=$CONDA_INCLUDE_PATH
      cmake --build build -j $(nproc)
      

      CONDA_INCLUDE_PATHは典型的には/home/user/anaconda3/envs/genesis/includeのようになります。

4. FAQ#

  • アサーションエラー 'lerror’ failed: Broken pipe: CUDAのバージョンがコンパイル時と一致しているか確認してください。

  • 2.Aを使用している場合に"GLIBCXX_3.4.30が見つかりません"というエラー

    cd ~/anaconda3/envs/genesis/lib
    mv libstdc++.so.6 libstdc++.so.6.old
    ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so.6