Differentiable Simulation of Soft Multi-body Systems

Overview

Differentiable Simulation of Soft Multi-body Systems

Yi-Ling Qiao, Junbang Liang, Vladlen Koltun, Ming C. Lin

[Paper] [Code]

Updates

The C++ backend simulator files are in ./sim/ and ./utils/. We will soon update more demos and documentations.

Our Related Repos

Differentiable Soft Body Dynamics (this repo) Code Paper Differentiable Simulation of Soft Multi-body Systems. Yi-Ling Qiao, Junbang Liang, Vladlen Koltun, Ming C. Lin. (Neurips 2021)

Differentiable Articulated Body Dynamics Code Paper Efficient Differentiable Simulation of Articulated Bodies. Yi-Ling Qiao, Junbang Liang, Vladlen Koltun, Ming C. Lin. (ICML 2021)

Differentiable Dynamics for Rigid Body and Cloth Coupling Code Paper Scalable Differentiable Physics for Learning and Control. Yi-Ling Qiao, Junbang Liang, Vladlen Koltun, Ming C. Lin. (ICML 2020)

Differentiable Cloth Dynamics Code Paper Differentiable Cloth Simulation for Inverse Problems. Junbang Liang, Ming C. Lin, Vladlen Koltun. (NeurIPS 2019)

Bibtex

@inproceedings{Qiao2021Differentiable,
author  = {Qiao, Yi-Ling and Liang, Junbang and Koltun, Vladlen and Lin, Ming C.},
title  = {Differentiable Simulation of Soft Multi-body Systems},
booktitle = {Conference on Neural Information Processing Systems (NeurIPS)},
year  = {2021},
}
You might also like...
Custom TensorFlow2 implementations of forward and backward computation of soft-DTW algorithm in batch mode.

Batch Soft-DTW(Dynamic Time Warping) in TensorFlow2 including forward and backward computation Custom TensorFlow2 implementations of forward and backw

Official implementation of "DSP: Dual Soft-Paste for Unsupervised Domain Adaptive Semantic Segmentation"

DSP Official implementation of "DSP: Dual Soft-Paste for Unsupervised Domain Adaptive Semantic Segmentation". Accepted by ACM Multimedia 2021. Authors

 Fast Soft Color Segmentation
Fast Soft Color Segmentation

Fast Soft Color Segmentation

Permute Me Softly: Learning Soft Permutations for Graph Representations

Permute Me Softly: Learning Soft Permutations for Graph Representations

Softlearning is a reinforcement learning framework for training maximum entropy policies in continuous domains. Includes the official implementation of the Soft Actor-Critic algorithm.

Softlearning Softlearning is a deep reinforcement learning toolbox for training maximum entropy policies in continuous domains. The implementation is

Implementation of parameterized soft-exponential activation function.
Implementation of parameterized soft-exponential activation function.

Soft-Exponential-Activation-Function: Implementation of parameterized soft-exponential activation function. In this implementation, the parameters are

Code of U2Fusion: a unified unsupervised image fusion network for multiple image fusion tasks, including multi-modal, multi-exposure and multi-focus image fusion.

U2Fusion Code of U2Fusion: a unified unsupervised image fusion network for multiple image fusion tasks, including multi-modal (VIS-IR, medical), multi

 FrankMocap: A Strong and Easy-to-use Single View 3D Hand+Body Pose Estimator
FrankMocap: A Strong and Easy-to-use Single View 3D Hand+Body Pose Estimator

FrankMocap pursues an easy-to-use single view 3D motion capture system developed by Facebook AI Research (FAIR). FrankMocap provides state-of-the-art 3D pose estimation outputs for body, hand, and body+hands in a single system. The core objective of FrankMocap is to democratize the 3D human pose estimation technology, enabling anyone (researchers, engineers, developers, artists, and others) can easily obtain 3D motion capture outputs from videos and images.

 My Body is a Cage: the Role of Morphology in Graph-Based Incompatible Control
My Body is a Cage: the Role of Morphology in Graph-Based Incompatible Control

My Body is a Cage: the Role of Morphology in Graph-Based Incompatible Control

Comments
  • Error when setup

    Error when setup

    Nice work, but I meet some problem when python setup.py.

    Follow your instruction, this system still cannot work on my PC (ubuntu 20, nvcc V10.1.243, gcc/g++ 9.4, clang 10.0.0. CMake 3.16.3) Any idea how to fix that? python setup.py install

    running install /media/ly/1dc08886-9b59-45c8-809c-468f28b98ce1/anaconda3$/envs/difem/lib/python3.8/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools. warnings.warn( /media/ly/1dc08886-9b59-45c8-809c-468f28b98ce1/anaconda3$/envs/difem/lib/python3.8/site-packages/setuptools/command/easy_install.py:160: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools. warnings.warn( running bdist_egg running egg_info writing pydifem.egg-info/PKG-INFO writing dependency_links to pydifem.egg-info/dependency_links.txt writing top-level names to pydifem.egg-info/top_level.txt reading manifest file 'pydifem.egg-info/SOURCES.txt' adding license file 'LICENSE' writing manifest file 'pydifem.egg-info/SOURCES.txt' installing library code to build/bdist.linux-x86_64/egg running install_lib running build_ext CMake Warning (dev) at CMakeLists.txt:2 (project): Policy CMP0048 is not set: project() command manages VERSION variables. Run "cmake --help-policy CMP0048" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

    The following variable(s) would be set to empty:

    CMAKE_PROJECT_VERSION
    CMAKE_PROJECT_VERSION_MAJOR
    CMAKE_PROJECT_VERSION_MINOR
    CMAKE_PROJECT_VERSION_PATCH
    

    This warning is for project developers. Use -Wno-dev to suppress it.

    CMake Warning at CMakeLists.txt:17 (find_package): By not providing "FindCGAL.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "CGAL", but CMake did not find one.

    Could not find a package configuration file provided by "CGAL" with any of the following names:

    CGALConfig.cmake
    cgal-config.cmake
    

    Add the installation prefix of "CGAL" to CMAKE_PREFIX_PATH or set "CGAL_DIR" to a directory containing one of the above files. If "CGAL" provides a separate development package or SDK, be sure it has been installed.

    -- Found rapidjson header files in /media/ly/1dc08886-9b59-45c8-809c-468f28b98ce1/anabur_test/diff_fem/extern/rapidjson/include Flags :
    -- Found OpenMP_C: -fopenmp
    -- Found OpenMP_CXX: -fopenmp
    -- Boost 1.66.0 found. -- Found Boost components: filesystem;python3;numpy3 -- Found OpenMP_C: -fopenmp
    -- Found OpenMP_CXX: -fopenmp
    -- pybind11 v2.10.0 dev1 CMake Warning (dev) at CMakeLists.txt:66 (target_link_libraries): Policy CMP0023 is not set: Plain and keyword target_link_libraries signatures cannot be mixed. Run "cmake --help-policy CMP0023" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

    The keyword signature for target_link_libraries has already been used with the target "pydifem". All uses of target_link_libraries with a target should be either all-keyword or all-plain.

    The uses of the keyword signature are here:

    • extern/pybind11/tools/pybind11Tools.cmake:160 (target_link_libraries)
    • extern/pybind11/tools/pybind11Tools.cmake:192 (target_link_libraries)

    This warning is for project developers. Use -Wno-dev to suppress it.

    -- Configuring done CMake Warning at extern/pybind11/tools/pybind11Tools.cmake:158 (add_library): Cannot generate a safe runtime search path for target pydifem because files in some directories may conflict with libraries in implicit directories:

    runtime library [libgomp.so.1] in /usr/lib/gcc/x86_64-linux-gnu/9 may be hidden by files in:
      /media/ly/1dc08886-9b59-45c8-809c-468f28b98ce1/anaconda3$/envs/difem/lib
    

    Some of these libraries may not be found correctly. Call Stack (most recent call first): CMakeLists.txt:63 (pybind11_add_module)

    -- Generating done -- Build files have been written to: /media/ly/1dc08886-9b59-45c8-809c-468f28b98ce1/anabur_test/diff_fem/build/temp.linux-x86_64-3.8 [1/2] Building CXX object CMakeFiles/pydifem.dir/python/pydifem.cc.o FAILED: CMakeFiles/pydifem.dir/python/pydifem.cc.o /usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_FILESYSTEM_DYN_LINK -DNDEBUG -DSOFTCON_DIR="/media/ly/1dc08886-9b59-45c8-809c-468f28b98ce1/anabur_test/diff_fem" -DVERSION_INFO=0.0.1 -Dpydifem_EXPORTS -I../../extern/tinyObjLoader -I/usr/include/eigen3 -I../../extern/rapidjson/include -I../../sim -I../../sim/fem -isystem ../../extern/pybind11/include -isystem "/media/ly/1dc08886-9b59-45c8-809c-468f28b98ce1/anaconda3$/envs/difem/include/python3.8" -O3 -DNDEBUG -fPIC -fvisibility=hidden -fPIC -std=gnu++11 -Wdeprecated-declarations -flto -fno-fat-lto-objects -fopenmp -std=gnu++14 -MD -MT CMakeFiles/pydifem.dir/python/pydifem.cc.o -MF CMakeFiles/pydifem.dir/python/pydifem.cc.o.d -o CMakeFiles/pydifem.dir/python/pydifem.cc.o -c ../../python/pydifem.cc In file included from ../../python/pydifem.cc:8: ../../python/../sim/diff/cppad_utils.h:26:10: fatal error: cppad/cppad.hpp: No such file or directory 26 | #include <cppad/cppad.hpp> | ^~~~~~~~~~~~~~~~~ compilation terminated. ninja: build stopped: subcommand failed. Traceback (most recent call last): File "setup.py", line 104, in setup( File "/media/ly/1dc08886-9b59-45c8-809c-468f28b98ce1/anaconda3$/envs/difem/lib/python3.8/site-packages/setuptools/init.py", line 155, in setup return distutils.core.setup(**attrs) File "/media/ly/1dc08886-9b59-45c8-809c-468f28b98ce1/anaconda3$/envs/difem/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 148, in setup return run_commands(dist) File "/media/ly/1dc08886-9b59-45c8-809c-468f28b98ce1/anaconda3$/envs/difem/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 163, in run_commands dist.run_commands() File "/media/ly/1dc08886-9b59-45c8-809c-468f28b98ce1/anaconda3$/envs/difem/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 967, in run_commands self.run_command(cmd) File "/media/ly/1dc08886-9b59-45c8-809c-468f28b98ce1/anaconda3$/envs/difem/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 986, in run_command cmd_obj.run() File "/media/ly/1dc08886-9b59-45c8-809c-468f28b98ce1/anaconda3$/envs/difem/lib/python3.8/site-packages/setuptools/command/install.py", line 74, in run self.do_egg_install() File "/media/ly/1dc08886-9b59-45c8-809c-468f28b98ce1/anaconda3$/envs/difem/lib/python3.8/site-packages/setuptools/command/install.py", line 116, in do_egg_install self.run_command('bdist_egg') File "/media/ly/1dc08886-9b59-45c8-809c-468f28b98ce1/anaconda3$/envs/difem/lib/python3.8/site-packages/setuptools/_distutils/cmd.py", line 313, in run_command self.distribution.run_command(command) File "/media/ly/1dc08886-9b59-45c8-809c-468f28b98ce1/anaconda3$/envs/difem/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 986, in run_command cmd_obj.run() File "/media/ly/1dc08886-9b59-45c8-809c-468f28b98ce1/anaconda3$/envs/difem/lib/python3.8/site-packages/setuptools/command/bdist_egg.py", line 165, in run cmd = self.call_command('install_lib', warn_dir=0) File "/media/ly/1dc08886-9b59-45c8-809c-468f28b98ce1/anaconda3$/envs/difem/lib/python3.8/site-packages/setuptools/command/bdist_egg.py", line 151, in call_command self.run_command(cmdname) File "/media/ly/1dc08886-9b59-45c8-809c-468f28b98ce1/anaconda3$/envs/difem/lib/python3.8/site-packages/setuptools/_distutils/cmd.py", line 313, in run_command self.distribution.run_command(command) File "/media/ly/1dc08886-9b59-45c8-809c-468f28b98ce1/anaconda3$/envs/difem/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 986, in run_command cmd_obj.run() File "/media/ly/1dc08886-9b59-45c8-809c-468f28b98ce1/anaconda3$/envs/difem/lib/python3.8/site-packages/setuptools/command/install_lib.py", line 11, in run self.build() File "/media/ly/1dc08886-9b59-45c8-809c-468f28b98ce1/anaconda3$/envs/difem/lib/python3.8/site-packages/setuptools/_distutils/command/install_lib.py", line 107, in build self.run_command('build_ext') File "/media/ly/1dc08886-9b59-45c8-809c-468f28b98ce1/anaconda3$/envs/difem/lib/python3.8/site-packages/setuptools/_distutils/cmd.py", line 313, in run_command self.distribution.run_command(command) File "/media/ly/1dc08886-9b59-45c8-809c-468f28b98ce1/anaconda3$/envs/difem/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 986, in run_command cmd_obj.run() File "/media/ly/1dc08886-9b59-45c8-809c-468f28b98ce1/anaconda3$/envs/difem/lib/python3.8/site-packages/setuptools/command/build_ext.py", line 79, in run _build_ext.run(self) File "/home/ly/.local/lib/python3.8/site-packages/Cython/Distutils/old_build_ext.py", line 186, in run _build_ext.build_ext.run(self) File "/media/ly/1dc08886-9b59-45c8-809c-468f28b98ce1/anaconda3$/envs/difem/lib/python3.8/site-packages/setuptools/_distutils/command/build_ext.py", line 339, in run self.build_extensions() File "/home/ly/.local/lib/python3.8/site-packages/Cython/Distutils/old_build_ext.py", line 195, in build_extensions _build_ext.build_ext.build_extensions(self) File "/media/ly/1dc08886-9b59-45c8-809c-468f28b98ce1/anaconda3$/envs/difem/lib/python3.8/site-packages/setuptools/_distutils/command/build_ext.py", line 448, in build_extensions self._build_extensions_serial() File "/media/ly/1dc08886-9b59-45c8-809c-468f28b98ce1/anaconda3$/envs/difem/lib/python3.8/site-packages/setuptools/_distutils/command/build_ext.py", line 473, in _build_extensions_serial self.build_extension(ext) File "setup.py", line 97, in build_extension subprocess.check_call( File "/media/ly/1dc08886-9b59-45c8-809c-468f28b98ce1/anaconda3$/envs/difem/lib/python3.8/subprocess.py", line 364, in check_call raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command '['cmake', '--build', '.']' returned non-zero exit status 1.

    opened by ruoshui252844 4
Owner
YilingQiao
YilingQiao
PyTorch implementation of Soft-DTW: a Differentiable Loss Function for Time-Series in CUDA

Soft DTW Loss Function for PyTorch in CUDA This is a Pytorch Implementation of Soft-DTW: a Differentiable Loss Function for Time-Series which is batch

Keon Lee 76 Dec 20, 2022
Expressive Body Capture: 3D Hands, Face, and Body from a Single Image

Expressive Body Capture: 3D Hands, Face, and Body from a Single Image [Project Page] [Paper] [Supp. Mat.] Table of Contents License Description Fittin

Vassilis Choutas 1.3k Jan 7, 2023
Full body anonymization - Realistic Full-Body Anonymization with Surface-Guided GANs

Realistic Full-Body Anonymization with Surface-Guided GANs This is the official

Håkon Hukkelås 30 Nov 18, 2022
Multi-task Multi-agent Soft Actor Critic for SMAC

Multi-task Multi-agent Soft Actor Critic for SMAC Overview The CARE formulti-task: Multi-Task Reinforcement Learning with Context-based Representation

RuanJingqing 8 Sep 30, 2022
Differentiable Neural Computers, Sparse Access Memory and Sparse Differentiable Neural Computers, for Pytorch

Differentiable Neural Computers and family, for Pytorch Includes: Differentiable Neural Computers (DNC) Sparse Access Memory (SAM) Sparse Differentiab

ixaxaar 302 Dec 14, 2022
Differentiable molecular simulation of proteins with a coarse-grained potential

Differentiable molecular simulation of proteins with a coarse-grained potential This repository contains the learned potential, simulation scripts and

UCL Bioinformatics Group 44 Dec 10, 2022
Differentiable simulation for system identification and visuomotor control

gradsim gradSim: Differentiable simulation for system identification and visuomotor control gradSim is a unified differentiable rendering and multiphy

null 105 Dec 18, 2022
Official PyTorch implementation of the ICRA 2021 paper: Adversarial Differentiable Data Augmentation for Autonomous Systems.

Adversarial Differentiable Data Augmentation This repository provides the official PyTorch implementation of the ICRA 2021 paper: Adversarial Differen

Manli 3 Oct 15, 2022
OpenPose: Real-time multi-person keypoint detection library for body, face, hands, and foot estimation

Build Type Linux MacOS Windows Build Status OpenPose has represented the first real-time multi-person system to jointly detect human body, hand, facia

null 25.7k Jan 9, 2023
Code for Private Recommender Systems: How Can Users Build Their Own Fair Recommender Systems without Log Data? (SDM 2022)

Private Recommender Systems: How Can Users Build Their Own Fair Recommender Systems without Log Data? (SDM 2022) We consider how a user of a web servi

joisino 20 Aug 21, 2022