Skip to content

Commit 4bde021

Browse files
committed
Update changelog.rst
1 parent 52028df commit 4bde021

File tree

3 files changed

+85
-1
lines changed

3 files changed

+85
-1
lines changed

docs/source/_static/versions.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22
"version": "https://ipctk.xyz",
33
"title": "main",
44
"aliases": ["latest", "head"]
5+
}, {
6+
"version": "https://ipctk.xyz/v1.2.0",
7+
"title": "v1.2.0",
8+
"aliases": ["stable"]
59
}, {
610
"version": "https://ipctk.xyz/v1.1.1",
711
"title": "v1.1.1",

docs/source/changelog.rst

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,84 @@ Changelog
66
.. role:: cmake(code)
77
:language: cmake
88

9+
v1.2.0 (Dec 11, 2023)
10+
---------------------
11+
12+
Various new features |:rocket:| and some bug fixes |:bug:|.
13+
14+
- Implement the improved max approximator as described in `[Li et al. 2023] <https://arxiv.org/abs/2307.15908>`__
15+
- Add a port of the Additive CCD method from `[Li et al. 2021] <https://ipc-sim.github.io/C-IPC/>`__
16+
- Add a generic implementation of the nonlinear CCD (of linear geometry) algorithm from `[Ferguson et al. 2021] <https://ipc-sim.github.io/rigid-ipc/>`__
17+
- Add missing codimensional collision support (point-point and point-edge)
18+
19+
.. _details-3:
20+
21+
Details
22+
~~~~~~~
23+
24+
* Update website URL to `ipctk.xyz <https://ipctk.xyz>`__ in `#54 <https://github.com/ipc-sim/ipc-toolkit/pull/54>`__
25+
* Simplify tangential basis Jacobian calculation thanks to `@halehOssadat <https://github.com/halehOssadat>`__ and `@jpanetta <https://github.com/jpanetta>`__ in `#56 <https://github.com/ipc-sim/ipc-toolkit/pull/56>`__
26+
* Update ``FindSIMD.cmake`` to now add support for Neon (Arm/Apple Silicon SIMD instruction set) in `#58 <https://github.com/ipc-sim/ipc-toolkit/pull/58>`__
27+
28+
* Credit: ``FindSIMD.cmake`` from `Project CHRONO <https://github.com/projectchrono/chrono>`__ under `BSD 3-Clause “New” or “Revised” License <https://github.com/projectchrono/chrono/blob/main/LICENSE>`__.
29+
30+
* Improve the max approximator used (i.e., sum over constraints) as described in `[Li et al. 2023] <https://arxiv.org/abs/2307.15908>`__ in `#55 <https://github.com/ipc-sim/ipc-toolkit/pull/55>`__
31+
32+
* Add a ``dtype`` to EE collisions to keep track of the distance type for mollified constraints
33+
* Initialize mesh adjacencies by default
34+
* Use edge length as the area weighting for codimensional edges
35+
36+
* Improve documentation and tutorials in `#61 <https://github.com/ipc-sim/ipc-toolkit/pull/61>`__
37+
38+
* Add documentation describing the convergent formulation
39+
* Add documentation describing the constraint offset/minimum distance
40+
* Add documentation for broad- and narrow-phase CCD
41+
* Add documentation for High-Order IPC
42+
* Also, renames ``CollisionConstraint::minimum_distance`` to ``CollisionConstraint::dmin``
43+
44+
* Add a port of the Additive CCD method from `[Li et al. 2021] <https://ipc-sim.github.io/C-IPC/>`__ in `#62 <https://github.com/ipc-sim/ipc-toolkit/pull/62>`__
45+
46+
* This is a modified version of the `original open-source implementation <https://github.com/ipc-sim/Codim-IPC>`__ which is under the `Appache-2.0 License <https://github.com/ipc-sim/Codim-IPC/blob/main/LICENSE>`__.
47+
* Modifications: remove broad phase functions, refactor code to use a single implementation of the ``additive_ccd`` algorithm, utilize our distance function rather than porting the Codim-IPC versions, return ``true`` if the initial distance is less than the minimum distance, and add an explicit ``tmax`` parameter rather than relying on the initial value of ``toi``.
48+
* This is mostly for reference comparison and it is not integrated into the full code. This also includes the ability to pull the sample CCD queries and run them in a unit-test (requires GMP).
49+
* This adds missing feature mentioned in `#63 <https://github.com/ipc-sim/ipc-toolkit/discussions/63>`__
50+
51+
* Add Codecov to get a report of unit test code coverage in `#64 <https://github.com/ipc-sim/ipc-toolkit/pull/64>`__
52+
53+
* Add more tests to improve code coverage and fix small bugs in `#65 <https://github.com/ipc-sim/ipc-toolkit/pull/65>`__
54+
55+
* Fix the symmetric matrix assertion in ``project_to_psd`` and ``project_to_pd`` in `#67 <https://github.com/ipc-sim/ipc-toolkit/pull/67>`__
56+
* Handle codim. point-point collisions in `#66 <https://github.com/ipc-sim/ipc-toolkit/pull/66>`__
57+
58+
* This adds missing feature as discussed in `#63 <https://github.com/ipc-sim/ipc-toolkit/discussions/63>`__
59+
60+
* Add tests of Python bindings using `nose2 <https://docs.nose2.io/en/latest/>`__ in `#69 <https://github.com/ipc-sim/ipc-toolkit/pull/69>`__
61+
* In CCD, check the initial distance when no motion occurs in `#71 <https://github.com/ipc-sim/ipc-toolkit/pull/71>`__
62+
* Add a generic implementation of the nonlinear CCD (of linear geometry) algorithm from `[Ferguson et al. 2021] <https://ipc-sim.github.io/rigid-ipc/>`__ in `#72 <https://github.com/ipc-sim/ipc-toolkit/pull/72>`__
63+
64+
* Generic nonlinear trajectories are specified through a ``NonlinearTrajectory`` virtual class. By default the maximum distance between the trajectory and a linearized version is computed using interval arithmetic. That is
65+
66+
.. math::
67+
68+
\max_{t \in [0, 1]} \Vert p(\mathrm{lerp}(t_0, t_1, t)) - \mathrm{lerp}(p(t_0), p(t_1), t) \Vert_2 \\
69+
\leq \sup(\Vert p([t_0, t_1]) - \mathrm{lerp}(p(t_0), p(t_1), [0, 1]) \Vert_2)
70+
71+
where :math:`p` is the point's position over time, :math:`\mathrm{lerp}(a, b, t) := (b - a) t + a` and :math:`\sup([a,b]):=b`. Because this can be an overly conservative approximation, users can override the ``NonlinearTrajectory::max_distance_from_linear`` function to compute the max directly in closed form, if known.
72+
* We perform interval arithmetic using `filib <https://github.com/zfergus/filib>`__ which has been shown to be “the only library that is correct, consistent, portable, and efficient” `[Tang et al. 2022] <https://cims.nyu.edu/gcl/papers/2022-Intervals.pdf>`__.
73+
* Add a nonlinear CCD tutorial to the docs in `#78 <https://github.com/ipc-sim/ipc-toolkit/pull/78>`__
74+
75+
* Add additional compiler warnings and resolve them to be warning-free in `#73 <https://github.com/ipc-sim/ipc-toolkit/pull/73>`__
76+
* Add Python bindings for ``igl::predicate::segment_segment_intersect`` in `#74 <https://github.com/ipc-sim/ipc-toolkit/pull/74>`__
77+
* Integrate `SimpleBVH <https://github.com/ipc-sim/SimpleBVH>`__ as a broad-phase method in `#75 <https://github.com/ipc-sim/ipc-toolkit/pull/75>`__
78+
* Fix the shape derivative of mollified edge-edge contact in `#76 <https://github.com/ipc-sim/ipc-toolkit/pull/76>`__
79+
80+
* Additionally, this makes the shape derivative computation object-oriented.
81+
82+
* Update Python bindings with recent changes and unified comments in `#77 <https://github.com/ipc-sim/ipc-toolkit/pull/77>`__
83+
* Add support for collision between codimensional edges and points in 3D in `#79 <https://github.com/ipc-sim/ipc-toolkit/pull/79>`__
84+
85+
* Implements missing features discussed in `#63 <https://github.com/ipc-sim/ipc-toolkit/discussions/63>`__.
86+
987
v1.1.1 (Aug 18, 2023)
1088
---------------------
1189

@@ -21,6 +99,8 @@ v1.1.0 (Jul 25, 2023)
2199

22100
Large refactoring to make the code more object-oriented rather than passing objects to functions. Other changes include the friction potential now being a function of velocity, bug fixes, and a new tutorial.
23101

102+
.. _details-2:
103+
24104
Details
25105
~~~~~~~
26106

docs/source/cpp.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ C++
2424
:end-before: <!--- BEGIN C++ README 2 --->
2525

2626
.. tip::
27-
If your :cmake:`IPC_TOOLKIT_GIT_TAG` is a tag (e.g. ``v1.1.1``), then you can use the :cmake:`FetchContent_Declare` argument :cmake:`GIT_SHALLOW TRUE` to download only a single commit. Otherwise, you should use the default :cmake:`GIT_SHALLOW FALSE`.
27+
If your :cmake:`IPC_TOOLKIT_GIT_TAG` is a tag (e.g. ``v1.2.0``), then you can use the :cmake:`FetchContent_Declare` argument :cmake:`GIT_SHALLOW TRUE` to download only a single commit. Otherwise, you should use the default :cmake:`GIT_SHALLOW FALSE`.
2828

2929
.. include:: ../../README.md
3030
:parser: myst_parser.sphinx_

0 commit comments

Comments
 (0)