Skip to content

Commit e12c685

Browse files
authoredFeb 8, 2025
A Cubic Barrier with Elasticity-Inclusive Dynamic Stiffness (#148)
* Add cubic barrier functions * Add compute_coefficients to CollisionStencil * Add semi_implicit_stiffness * Revert math type * Fix FaceVertexCandidate::compute_coefficients * Add semi-implicit stiffness to python * Test all coeffs cases * Test plane_vertex coeffs * Test semi-implicit stiffness * Fix index assignment in edge-vertex collision stencil coefficient tests
1 parent c79a67a commit e12c685

34 files changed

+1265
-137
lines changed
 

‎docs/requirements.txt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
11
sphinx
22
sphinx-sitemap
3-
sphinx-immaterial==0.11.14
3+
sphinx-immaterial
44
autoclasstoc
55
# sphinx-autodoc-toolbox
66
breathe
77
nbsphinx
88
pandoc
9-
myst_parser==1.0.0
9+
myst_parser
1010
sphinxcontrib-bibtex
1111
sphinxemoji
1212
sphinx-last-updated-by-git
13-
sphinx-autobuild
13+
sphinx-autobuild
14+
nbconvert==5.6.1
15+
ipython_genutils
16+
jinja2==3.0.3
17+
setuptools

‎docs/source/Doxyfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -806,7 +806,7 @@ LAYOUT_FILE =
806806
# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
807807
# search path. See also \cite for info how to create references.
808808

809-
CITE_BIB_FILES =
809+
CITE_BIB_FILES = references.bib
810810

811811
#---------------------------------------------------------------------------
812812
# Configuration options related to warning and progress messages
@@ -2054,7 +2054,7 @@ LATEX_HIDE_INDICES = NO
20542054
# The default value is: plain.
20552055
# This tag requires that the tag GENERATE_LATEX is set to YES.
20562056

2057-
LATEX_BIB_STYLE = plain
2057+
LATEX_BIB_STYLE = plainnat
20582058

20592059
# If the LATEX_TIMESTAMP tag is set to YES then the footer of each generated
20602060
# page will contain the date and time when the page was generated. Setting this

‎docs/source/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@
6464
"sphinx_last_updated_by_git",
6565
]
6666

67-
bibtex_bibfiles = ['refs.bib']
67+
bibtex_bibfiles = ['references.bib']
6868
bibtex_reference_style = 'author_year'
6969
bibtex_default_style = 'plain'
7070

‎docs/source/cpp-api/barrier.rst

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,11 @@ Adaptive Barrier Stiffness
1717
.. doxygenfunction:: ipc::initial_barrier_stiffness
1818
.. doxygenfunction:: ipc::update_barrier_stiffness
1919

20+
Semi-Implicit Stiffness
21+
~~~~~~~~~~~~~~~~~~~~~~~
22+
23+
.. doxygenfunction:: ipc::semi_implicit_stiffness(const CollisionMesh&, const Eigen::MatrixXd&, const StencilsT&, const Eigen::VectorXd&, const Eigen::SparseMatrix<double>&, const double)
24+
2025
Barrier Class
2126
-------------
2227

@@ -33,4 +38,16 @@ Normalized Clamped Log Barrier
3338
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3439

3540
.. doxygenclass:: ipc::NormalizedClampedLogBarrier
41+
:allow-dot-graphs:
42+
43+
Clamped Log Squared Barrier
44+
~~~~~~~~~~~~~~~~~~~~~~~~~~~
45+
46+
.. doxygenclass:: ipc::ClampedLogSqBarrier
47+
:allow-dot-graphs:
48+
49+
Cubic Barrier
50+
~~~~~~~~~~~~~
51+
52+
.. doxygenclass:: ipc::CubicBarrier
3653
:allow-dot-graphs:

‎docs/source/python-api/barrier.rst

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,12 @@ Adaptive Barrier Stiffness
1717
.. autofunction:: ipctk.initial_barrier_stiffness
1818
.. autofunction:: ipctk.update_barrier_stiffness
1919

20+
21+
Semi-Implicit Stiffness
22+
~~~~~~~~~~~~~~~~~~~~~~~
23+
24+
.. autofunction:: ipctk.semi_implicit_stiffness
25+
2026
Barrier Class
2127
-------------
2228

@@ -25,4 +31,19 @@ Barrier Class
2531
Clamped Log Barrier
2632
~~~~~~~~~~~~~~~~~~~
2733

28-
.. autoclass:: ipctk.ClampedLogBarrier
34+
.. autoclass:: ipctk.ClampedLogBarrier
35+
36+
Normalized Clamped Log Barrier
37+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
38+
39+
.. autoclass:: ipctk.NormalizedClampedLogBarrier
40+
41+
Clamped Log Squared Barrier
42+
~~~~~~~~~~~~~~~~~~~~~~~~~~~
43+
44+
.. autoclass:: ipctk.ClampedLogSqBarrier
45+
46+
Cubic Barrier
47+
~~~~~~~~~~~~~
48+
49+
.. autoclass:: ipctk.CubicBarrier

‎docs/source/references.bib

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
@article{Li2020IPC,
2+
title = {Incremental Potential Contact: Intersection- and Inversion-free Large Deformation Dynamics},
3+
author = {Minchen Li and Zachary Ferguson and Teseo Schneider and Timothy Langlois and Denis Zorin and Daniele Panozzo and Chenfanfu Jiang and Danny M. Kaufman},
4+
year = 2020,
5+
journal = {{ACM} Transactions on Graphics ({SIGGRAPH})},
6+
volume = 39,
7+
number = 4,
8+
note = {\url{https://ipc-sim.github.io}},
9+
articleno = 49
10+
}
11+
@article{Li2021CIPC,
12+
title = {Codimensional Incremental Potential Contact},
13+
author = {Minchen Li and Danny M. Kaufman and Chenfanfu Jiang},
14+
year = 2021,
15+
journal = {{ACM} Transactions on Graphics ({SIGGRAPH})},
16+
volume = 40,
17+
number = 4,
18+
note = {\url{https://ipc-sim.github.io/C-IPC}},
19+
articleno = 170
20+
}
21+
@misc{Li2023Convergent,
22+
title = {Convergent Incremental Potential Contact},
23+
author = {Minchen Li and Zachary Ferguson and Teseo Schneider and Timothy Langlois and Denis Zorin and Daniele Panozzo and Chenfanfu Jiang and Danny M. Kaufman},
24+
year = 2023,
25+
eprint = {2307.15908},
26+
archiveprefix = {arXiv},
27+
primaryclass = {math.NA}
28+
}
29+
@article{Wang2021TightInclusion,
30+
title = {A Large Scale Benchmark and an Inclusion-Based Algorithm for Continuous Collision Detection},
31+
author = {Bolun Wang and Zachary Ferguson and Teseo Schneider and Xin Jiang and Marco Attene and Daniele Panozzo},
32+
year = 2021,
33+
month = oct,
34+
journal = {{ACM} Transactions on Graphics},
35+
volume = 40,
36+
number = 5,
37+
note = {\url{https://continuous-collision-detection.github.io/tight_inclusion/}},
38+
articleno = 188,
39+
numpages = 16
40+
}
41+
@misc{Belgrod2023Time,
42+
title = {Time of Impact Dataset for Continuous Collision Detection and a Scalable Conservative Algorithm},
43+
author = {David Belgrod and Bolun Wang and Zachary Ferguson and Xin Zhao and Marco Attene and Daniele Panozzo and Teseo Schneider},
44+
year = 2023,
45+
eprint = {2112.06300},
46+
archiveprefix = {arXiv},
47+
primaryclass = {cs.GR}
48+
}
49+
@inproceedings{Ferguson2023HighOrderIPC,
50+
title = {High-Order Incremental Potential Contact for Elastodynamic Simulation on Curved Meshes},
51+
author = {Zachary Ferguson and Pranav Jain and Denis Zorin and Teseo Schneider and Daniele Panozzo},
52+
year = 2023,
53+
booktitle = {{ACM} {SIGGRAPH} 2023 Conference Proceedings},
54+
location = {Los Angeles, CA, USA},
55+
publisher = {Association for Computing Machinery},
56+
address = {New York, NY, USA},
57+
series = {SIGGRAPH '23},
58+
note = {\url{https://zferg.us/research/high-order-ipc/}},
59+
numpages = 11
60+
}
61+
@article{Ferguson2021RigidIPC,
62+
title = {Intersection-free Rigid Body Dynamics},
63+
author = {Zachary Ferguson and Minchen Li and Teseo Schneider and Francisca Gil-Ureta and Timothy Langlois and Chenfanfu Jiang and Denis Zorin and Danny M. Kaufman and Daniele Panozzo},
64+
year = 2021,
65+
journal = {{ACM} Transactions on Graphics ({SIGGRAPH})},
66+
volume = 40,
67+
number = 4,
68+
note = {\url{https://ipc-sim.github.io/rigid-ipc}},
69+
articleno = 183
70+
}
71+
@inproceedings{Chen2024Stabler,
72+
title = {Stabler Neo-Hookean Simulation: Absolute Eigenvalue Filtering for Projected Newton},
73+
author = {Honglin Chen and Hsueh-Ti Derek Liu and David I.W. Levin and Changxi Zheng and Alec Jacobson},
74+
year = 2024,
75+
booktitle = {{ACM} {SIGGRAPH} 2024 Conference Proceedings},
76+
note = {\url{https://www.cs.columbia.edu/cg/abs-psd/}}
77+
}
78+
@article{Fang2023AugmentedStickyInteractions,
79+
title = {Augmented Incremental Potential Contact for Sticky Interactions},
80+
author = {Fang, Yu and Li, Minchen and Cao, Yadi and Li, Xuan and Wolper, Joshuah and Yang, Yin and Jiang, Chenfanfu},
81+
year = 2024,
82+
journal = {IEEE Transactions on Visualization and Computer Graphics},
83+
volume = 30,
84+
number = 8,
85+
pages = {5596--5608},
86+
doi = {10.1109/TVCG.2023.3295656},
87+
keywords = {Adhesives;Friction;Computational modeling;Deformation;Solids;Force;Deformable models;Physically based animation;optimization time integration}
88+
}
89+
@article{Ando2024Cubic,
90+
title = {A Cubic Barrier with Elasticity-Inclusive Dynamic Stiffness},
91+
author = {Ando, Ryoichi},
92+
year = 2024,
93+
month = dec,
94+
journal = {{ACM} Transactions on Graphics ({SIGGRAPH} Asia)},
95+
volume = 43,
96+
number = 6,
97+
pages = {1--13},
98+
note = {\url{https://github.com/st-tech/ppf-contact-solver}}
99+
}
100+
@article{Huang2024GIPC,
101+
title = {{GIPC}: Fast and Stable Gauss-Newton Optimization of IPC Barrier Energy},
102+
author = {Huang, Kemeng and Chitalu, Floyd M. and Lin, Huancheng and Komura, Taku},
103+
year = 2024,
104+
month = apr,
105+
journal = {ACM Transactions on Graphics},
106+
volume = 43,
107+
number = 2,
108+
pages = {1--18},
109+
note = {\url{https://dl.acm.org/doi/10.1145/3643028}}
110+
}

‎docs/source/refs.bib

Lines changed: 0 additions & 88 deletions
This file was deleted.

0 commit comments

Comments
 (0)