penn-graphics-research / HOT

Licence: MIT license
Hierarchical Optimization Time Integration (HOT) for efficient implicit timestepping of the material point method (MPM)

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects
Makefile
30231 projects
shell
77523 projects
python
139335 projects - #7 most used programming language
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to HOT

DOT
Decomposed Optimization Time Integration (DOT) is a domain-decomposed optimization method for fast, reliable simulation of deformation dynamics. DOT efficiently converges with frame-rate time-steps across a wide range of extreme conditions.
Stars: ✭ 37 (-55.42%)
Mutual labels:  computer-graphics, siggraph
Photon-v2
A program that takes photographs of a virtual world.
Stars: ✭ 75 (-9.64%)
Mutual labels:  computer-graphics
Blender
Official mirror of Blender
Stars: ✭ 4,175 (+4930.12%)
Mutual labels:  computer-graphics
Usd Resources
A curated list of USD projects and resources
Stars: ✭ 250 (+201.2%)
Mutual labels:  computer-graphics
Scancomplete
[CVPR'18] ScanComplete: Large-Scale Scene Completion and Semantic Segmentation for 3D Scans
Stars: ✭ 213 (+156.63%)
Mutual labels:  computer-graphics
t-rex
A Chrome T-Rex game remake using javascript and threejs. Online demo: https://rossning92.github.io/t-rex
Stars: ✭ 89 (+7.23%)
Mutual labels:  computer-graphics
Light Field Video
Light field video applications (e.g. video refocusing, focus tracking, changing aperture and view)
Stars: ✭ 190 (+128.92%)
Mutual labels:  computer-graphics
FastMassSpring
Interactive cloth simulator using the method described in the SIGGRAPH paper "Fast Simulation of Mass-Spring Systems" by Liu, T., Bargteil, A. W., Obrien, J. F., & Kavan, L.
Stars: ✭ 170 (+104.82%)
Mutual labels:  computer-graphics
bichon
Robust Coarse Curved TetMesh Generation
Stars: ✭ 29 (-65.06%)
Mutual labels:  siggraph
Libwethair
A Multi-Scale Model for Simulating Liquid-Hair Interactions
Stars: ✭ 232 (+179.52%)
Mutual labels:  computer-graphics
Structured3d
[ECCV'20] Structured3D: A Large Photo-realistic Dataset for Structured 3D Modeling
Stars: ✭ 224 (+169.88%)
Mutual labels:  computer-graphics
Ipc
Incremental Potential Contact (IPC) is for robust and accurate time stepping of nonlinear elastodynamics. IPC guarantees intersection- and inversion-free trajectories regardless of materials, time-step sizes, velocities, or deformation severity.
Stars: ✭ 215 (+159.04%)
Mutual labels:  computer-graphics
CompenNet
[CVPR'19] End-to-end Projector Photometric Compensation
Stars: ✭ 35 (-57.83%)
Mutual labels:  computer-graphics
Tf flame
Tensorflow framework for the FLAME 3D head model. The code demonstrates how to sample 3D heads from the model, fit the model to 2D or 3D keypoints, and how to generate textured head meshes from Images.
Stars: ✭ 193 (+132.53%)
Mutual labels:  computer-graphics
TermGL
2D & 3D graphics engine in the terminal [C/C++]
Stars: ✭ 219 (+163.86%)
Mutual labels:  computer-graphics
Dyna Kinematics
A 2D rigid-body dynamics simulator with some cool features for generating beautiful animations.
Stars: ✭ 195 (+134.94%)
Mutual labels:  computer-graphics
Pytorch Cyclegan And Pix2pix
Image-to-Image Translation in PyTorch
Stars: ✭ 16,477 (+19751.81%)
Mutual labels:  computer-graphics
clustered forward demo vk
Clustered forward rendering demo with Vulkan
Stars: ✭ 50 (-39.76%)
Mutual labels:  computer-graphics
photo recoloring
Palette-based Photo Recoloring, implementation of the approach of Huiwen Chang et al.
Stars: ✭ 39 (-53.01%)
Mutual labels:  siggraph
OpenISS
OpenISS -- a unified multimodal motion data delivery framework.
Stars: ✭ 22 (-73.49%)
Mutual labels:  siggraph

Hierarchical Optimization Time Integration (HOT)

Description

This is the opensource code for the ACM Transaction On Graphics (TOG) 2020 paper:

Hierarchical Optimization Time Integration for CFL-Rate MPM Stepping (https://dl.acm.org/doi/10.1145/3386760)

PDF, Supplemental Document, Youtube

Authors: Xinlei Wang*, Minchen Li*, Yu Fang, Xinxin Zhang, Ming Gao, Min Tang, Danny M. Kaufman, Chenfanfu Jiang (* Equal contributions)

We propose Hierarchical Optimization Time Integration (HOT) for efficient implicit timestepping of the material point method (MPM) irrespective of simulated materials and conditions. HOT is an MPM-specialized hierarchical optimization algorithm that solves nonlinear timestep problems for large-scale MPM systems near the CFL limit. HOT provides convergent simulations out of the box across widely varying materials and computational resolutions without parameter tuning. As an implicit MPM timestepper accelerated by a custom-designed Galerkin multigrid wrapped in a quasi-Newton solver, HOT is both highly parallelizable and robustly convergent. As we show in our analysis, HOT maintains consistent and efficient performance even as we grow stiffness, increase deformation, and vary materials over a wide range of finite strain, elastodynamic, and plastic examples. Through careful benchmark ablation studies, we compare the effectiveness of HOT against seemingly plausible alternative combinations of MPM with standard multigrid and other Newton-Krylov models. We show how these alternative designs result in severe issues and poor performance. In contrast, HOT outperforms existing state-of-the-art, heavily optimized implicit MPM codes with an up to 10× performance speedup across a wide range of challenging benchmark test simulations.

Compilation

The following instruction is tested on Ubuntu 18.04 LTS with g++7.4, on Ubuntu 19.10 with g++7.4, g++8.4, clang-9.

Dependencies

Run the command to install all dependencies:

sudo apt-get install make cmake g++ libeigen3-dev gfortran libmetis-dev 
sudo apt-get install libopenvdb-dev libboost-all-dev libilmbase-dev libopenexr-dev 
sudo apt-get install libtbb2 libtbb-dev libz-dev clang-format-6.0 clang-format libarpack2-dev
pip install --upgrade cmake

Build

Run the following command in the root directory.

make Release

Or use the cmake toolchain.

mkdir build && cd build && cmake .. && make -j4

Benchmarks

Data

Extract all models at Data/LevelSets in place.

Run Demos

Go to the project directory (Projects/multigrid/), check all default settings included in Configurations.h file.

To test different setups, run commands with specific options. For example:

./multigrid -test 777011 --3d --usecn -cneps 1e-7 -lsolver 3 -Ainv 1 --project --linesearch --bcproject -mg_level 3 -mg_times 1 -coarseSolver 2 -smoother 5 --l2norm -o faceless_lbfgs

Here are some of the command options:

  • usecn: whether to use characteristic norm
  • cneps: epsilon of characteristic norm
  • lsolver: numerical method
  • coarseSolver: top level solver in multigrid
  • smoother: non-top level smoother in multigrid
  • ...

Please see bash script tog.sh and README for more details.

Bibtex

Please cite our paper if you use this code for your research:

@article{Wang2020HOT,
author = {Wang, Xinlei and Li, Minchen and Fang, Yu and Zhang, Xinxin and Gao, Ming and Tang, Min and Kaufman, Danny M. and Jiang, Chenfanfu},
title = {Hierarchical Optimization Time Integration for CFL-Rate MPM Stepping},
year = {2020},
volume = {39},
number = {3},
journal = {ACM Trans. Graph.},
articleno = {Article 21},
numpages = {16}
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].