项目地址:https://github.com/spiriMirror/libuipc
Libuipc是一个库,它提供统一的GPU增量势接触框架,用于模拟刚体、软体、布料和线及其耦合的动力学。它确保准确、无穿透的摩擦接触,并且具有自然可微性。Libuipc 旨在提供强大而高效的正向和反向模拟,使用户可以轻松地与机器学习框架、逆动力学、机器人技术等集成。
样例脚本展示:
该项目提供了跨平台C++/Python的Increment Potential Contact算法实现,至于这个算法,请参考https://zhuanlan.zhihu.com/p/154542103。
项目配置:
操作系统:Windows11
python:3.12
cuda-toolkit:12.6
Visual Studio:17.13.0
MSVC:19.43.34808
不需要所有版本完全一致,关键在于MSVC版本和cuda版本的协调性。
STEP1
创建一个根目录libui用来存放整个项目,由于我已经创建好,故图中显示了三个目录。
STEP2
1.打开cmd,导航到项目中。
2.按顺序执行下面三条指令:会自动下载vcpkg包,vcpkg 是一个免费开源的 C/C++ 包管理器,可在 Windows、macOS 和 Linux 上运行,支持从源生成或下载预生成的依赖项。
git clone https://github.com/microsoft/vcpkg.git
cd vcpkg
.\bootstrap-vcpkg.sh
执行完以后回到根目录:cd ..
执行以下指令克隆项目
创建文件夹CMakeBuild:
mkdir CMakeBuild
cd CMakeBuild
STEP3
编译项目
确保你的VS、cuda、vcpkg都已经没问题了。在CMakeBuild目录下执行以下命令:
注意,如果想要使用py接口,要在命令里加上第二段,不用则不加;第三段替换成自己的vcpkg.cmake地址,当然也可以在系统环境变量里为CMAKE_TOOLCHAIN_FILE赋值,这么做是为了使CMAKE可以找到TOOLCHAIN;第四段,如果要使用虚拟环境来运行项目,则加上这段并把地址替换成你所用的虚拟环境的python.exe,否则会自动使用系统中的python。
cmake -S ../libuipc
-DUIPC_BUILD_PYBIND=1
-DCMAKE_TOOLCHAIN_FILE=<VCPKG_PATH>
-DUIPC_PYTHON_EXECUTABLE_PATH=<PYTHON_EXE_IN_CONDA_ENV>
构建项目
选择Release或者RelWithDebInfo其中一种即可,后面的 -j8可以替换成你的cpu最大核心数,该操作是为了加快构建速度
cmake --build . --config <Release/RelWithDebInfo> -j8
STEP4
下载各种py包:cd进入根目录先
cd libuipc/python
pip install .
安装完成,打开随便一个编译器,运行libuipc/python下的uipc_info.py,成功运行则表示构建成功,可以开始按着教程Libuipc Documentation来玩了 。之所以写这个,是因为自己在构建过程中遇到了很多的问题,当然在积极与作者沟通后,解决了这些问题,完成了构建。
至于Linux下的构建,直接按照教程走就不会有什么报错了(要配好vpn)否则下载会卡死。