Skip to content

Commit 6ef8b54

Browse files
committed
Add v1.4.0 release notes
1 parent 801f82c commit 6ef8b54

File tree

1 file changed

+110
-1
lines changed

1 file changed

+110
-1
lines changed

docs/source/about/release_notes.rst

Lines changed: 110 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,115 @@ Release Notes
66
.. role:: cmake(code)
77
:language: cmake
88

9+
v1.4.0 (July 22, 2025)
10+
----------------------
11+
12+
Highlights
13+
~~~~~~~~~~
14+
15+
- Add adhesion potentials for sticky interactions, allowing for more realistic simulations of contact between objects.
16+
17+
- Based on the paper "Augmented Incremental Potential Contact for Sticky Interactions" by :cite:t:`Fang2023AugmentedStickyInteractions`
18+
19+
- Implement new barrier functions from the literature.
20+
21+
- :cpp:class:`ipc::NormalizedClampedLogBarrier`: unit-less clamped log barrier function.
22+
- :cpp:class:`ipc::ClampedLogSqBarrier`: clamped log barrier with a quadratic log term from :cite:`Huang2024GIPC`
23+
- :cpp:class:`ipc::CubicBarrier`: cubic barrier function from :cite:`Ando2024Cubic`
24+
25+
- Add support for separate static and kinetic coefficients in tangential collisions.
26+
27+
What's Changed
28+
~~~~~~~~~~~~~~
29+
30+
- Adhesion in `#85 <https://github.com/ipc-sim/ipc-toolkit/pull/85>`_
31+
32+
- Implement the adhesion potentials from "Augmented Incremental Potential Contact for Sticky Interactions" :cite:t:`Fang2023AugmentedStickyInteractions`
33+
- Files moved from `ipc/friction <https://github.com/ipc-sim/ipc-toolkit/tree/v1.3.1/src/ipc/friction>`_ to generic `ipc/tangential <https://github.com/ipc-sim/ipc-toolkit/tree/v1.4.0/src/ipc/tangential>`_ and `ipc/collisions/tangential <https://github.com/ipc-sim/ipc-toolkit/tree/v1.4.0/src/ipc/collisions/tangential>`_ folders.
34+
- Renamed ``Collision`` classes to :cpp:class:`ipc::NormalCollision`
35+
- Renamed ``FrictionCollision`` classes to :cpp:class:`ipc::TangentialCollision`
36+
- Renamed ``DistanceBasedPotential`` to :cpp:class:`ipc::NormalPotential`
37+
38+
- Added :cpp:func:`ipc::NormalPotential::force_magnitude` and :cpp:func:`ipc::NormalPotential::force_magnitude_gradient` methods
39+
40+
- Added :cpp:class:`ipc::TangentialPotential` parent class to :cpp:class:`ipc::FrictionPotential` and :cpp:class:`ipc::TangentialAdhesionPotential`
41+
- `Tutorial <https://ipctk.xyz/tutorials/adhesion.html>`_ added by `@antoinebou12 <https://github.com/antoinebou12>`_ in `#144 <https://github.com/ipc-sim/ipc-toolkit/pull/144>`_
42+
- Use normal potential in tangential collisions by `@maxpaik16 <https://github.com/maxpaik16>`_ in `#142 <https://github.com/ipc-sim/ipc-toolkit/pull/142>`_
43+
44+
- Replaces the ``const BarrierPotential&`` parameter with a ``const NormalPotential&``
45+
- This allows tangential adhesion to be properly set up in simulation.
46+
47+
- Add :cpp:class:`ipc::NormalizedClampedLogBarrier` in `#143 <https://github.com/ipc-sim/ipc-toolkit/pull/143>`_
48+
- Add :cpp:member:`ipc::AdditiveCCD::max_iterations` parameter in `#145 <https://github.com/ipc-sim/ipc-toolkit/pull/145>`_
49+
- Add cubic barrier with elasticity-inclusive dynamic stiffness in `#148 <https://github.com/ipc-sim/ipc-toolkit/pull/148>`_
50+
51+
- Implement the cubic barrier and elasticity-inclusive dynamic stiffness from :cite:`Ando2024Cubic`
52+
- Implement :math:`log^2`-barrier from GIPC :cite:`Huang2024GIPC`
53+
- Add :cpp:func:`ipc::CollisionStencil::compute_coefficients` -- computes the coefficients :math:`\vec{c}` s.t. :math:`d(x) = \Vert \sum c_i x_i\Vert^2`
54+
- Add :cpp:func:`ipc::CollisionStencil::compute_distance` taking :math:`V`, :math:`E`, :math:`F` directly
55+
56+
- Replace ``BroadPhaseMethod`` enum with ``shared_ptr<BroadPhase>`` in `#152 <https://github.com/ipc-sim/ipc-toolkit/pull/152>`_
57+
58+
- Python BroadPhase in `#155 <https://github.com/ipc-sim/ipc-toolkit/pull/155>`_
59+
60+
- Remove ``ContinuousCollisionCandidate`` inheritance in `#156 <https://github.com/ipc-sim/ipc-toolkit/pull/156>`_
61+
62+
- Replace it with the :cpp:class:`ipc::CollisionStencil` class.
63+
64+
- Replace ``const Eigen::Matrix&`` with ``Eigen::ConstRef<Matrix>`` in `#157 <https://github.com/ipc-sim/ipc-toolkit/pull/157>`_
65+
66+
- This allows for more efficient passing of matrices to functions.
67+
68+
- Separate Static and Kinetic Coefficients of Friction in `#177 <https://github.com/ipc-sim/ipc-toolkit/pull/177>`_
69+
70+
- Enhancements to tangential collision handling by distinguishing between static and kinetic friction coefficients (``mu_s`` and ``mu_k``) and implementing smooth transitions between them.
71+
- Updated :cpp:class:`ipc::TangentialCollision` class to replace ``mu`` with separate ``mu_s`` (static friction coefficient) and ``mu_k`` (kinetic friction coefficient). This change applies to the class definition and all related methods.
72+
- New :cpp:func:`ipc::smooth_mu` functions: Added functions to compute smooth transitions between static and kinetic friction coefficients, including derivatives and related mathematical formulations. These functions improve the modeling of friction forces at varying tangential velocities.
73+
- Integration with adhesion module: Incorporated smooth friction coefficient calculations into the adhesion module.
74+
- Tutorial added in `#178 <https://github.com/ipc-sim/ipc-toolkit/pull/178>`_
75+
76+
Python Specific
77+
~~~~~~~~~~~~~~~
78+
79+
- Add faster ``can_collide`` functions to Python in `#135 <https://github.com/ipc-sim/ipc-toolkit/pull/135>`_
80+
- Add ``PyBroadPhase`` and ``PyNarrowPhaseCCD`` classes to wrap the :py:class:`ipctk.BroadPhase` and :py:class:`ipctk.NarrowPhaseCCD` classes, respectively, allowing for custom implementations of these classes in Python.
81+
- Add new constructors to candidate classes (:py:class:`ipctk.EdgeEdgeCandidate`, :py:class:`ipctk.EdgeFaceCandidate`, :py:class:`ipctk.EdgeVertexCandidate`, :py:class:`ipctk.FaceFaceCandidate`, :py:class:`ipctk.FaceVertexCandidate`, :py:class:`ipctk.VertexVertexCandidate`) that accept tuples for easier initialization.
82+
- Include a call to ``std::atexit`` to reset the thread limiter upon program exit to ensure proper cleanup.
83+
- :WARNING: Python :py:class:`ipctk.NarrowPhaseCCD` implementations will not work with multi-threading because of GIL locking.
84+
- Switch from ``py::arg`` to ``_a`` literals in `#168 <https://github.com/ipc-sim/ipc-toolkit/pull/168>`_
85+
86+
Miscellaneous
87+
~~~~~~~~~~~~~
88+
89+
- Add ``/Wall`` and ``/MP`` compiler flags for MSVC in `#134 <https://github.com/ipc-sim/ipc-toolkit/pull/134>`_
90+
- Enable CUDA by default if CUDA is detected by CMake in `#134 <https://github.com/ipc-sim/ipc-toolkit/pull/134>`_
91+
- Devcontainer by `@antoinebou12 <https://github.com/antoinebou12>`_ in `#136 <https://github.com/ipc-sim/ipc-toolkit/pull/136>`_
92+
- Update dependencies for CMake 4.0 in `#158 <https://github.com/ipc-sim/ipc-toolkit/pull/158>`_
93+
- Organize folder structure for generated Xcode project in `#159 <https://github.com/ipc-sim/ipc-toolkit/pull/159>`_
94+
95+
- Refactor CMake configurations and improve project structure
96+
- Updated CMake recipes for third-party libraries to set appropriate folder properties for IDE organization.
97+
- Changed the CPMAddPackage references for scalable-ccd to a more recent commit.
98+
- Enhanced logging functionality by adding a new ``log_and_throw_error`` function to improve error handling.
99+
- Improved documentation in the style guide for naming conventions.
100+
- Move generated ``config.hpp`` file from ``src/ipc`` to ``build/include/src/ipc``
101+
- Update CUDA builds in ``CMakePresets.json``
102+
- Remove ``virtual`` tag from :cpp:func:`ipc::BroadPhase::detect_collision_candidates`
103+
104+
- Index typedef in `#161 <https://github.com/ipc-sim/ipc-toolkit/pull/161>`_
105+
106+
- Add a ``index_t`` typedef for vertex/edge/face ids. Changes default from ``long`` to ``int32_t``.
107+
108+
- Update Tight Inclusion package version to 1.0.6 in `#165 <https://github.com/ipc-sim/ipc-toolkit/pull/165>`_
109+
- Fix cmake for non-top-level inclusion by `@sin3point14 <https://github.com/sin3point14>`_ in `#167 <https://github.com/ipc-sim/ipc-toolkit/pull/167>`_
110+
- Improve and clean up documentation:
111+
112+
- Fix Error in Docs in `#169 <https://github.com/ipc-sim/ipc-toolkit/pull/169>`_
113+
- Update docs in `#173 <https://github.com/ipc-sim/ipc-toolkit/pull/173>`_
114+
- Update docs.yml in `#174 <https://github.com/ipc-sim/ipc-toolkit/pull/174>`_
115+
- Refactor and clean-up C++ API docs in `#175 <https://github.com/ipc-sim/ipc-toolkit/pull/175>`_
116+
117+
9118
v1.3.1 (Nov 08, 2024)
10119
---------------------
11120

@@ -100,7 +209,7 @@ Details
100209

101210
- Fix 🐛 Python bindings for Numpy 2 in `#100 <https://github.com/ipc-sim/ipc-toolkit/pull/100>`__
102211
- Make faces an optional parameter to ``CollisionMesh`` in `#105 <https://github.com/ipc-sim/ipc-toolkit/pull/105>`__
103-
- Fix Python documentation by @rc in `#108 <https://github.com/ipc-sim/ipc-toolkit/pull/108>`__
212+
- Fix Python documentation by `@rc <https://github.com/rc>`_ in `#108 <https://github.com/ipc-sim/ipc-toolkit/pull/108>`__
104213
- Polymorphic CCD in `#110 <https://github.com/ipc-sim/ipc-toolkit/pull/110>`__
105214

106215
- Add narrow phase CCD parent class; pass CCD object to choose method

0 commit comments

Comments
 (0)