Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
9b74235
Add start of dynamics code
zfergus May 31, 2024
75d0588
Add comments to OrthogonalityPotential::hessian
zfergus May 31, 2024
8b3a1b2
Add J matrix to AffineBody class
zfergus Jun 6, 2024
1e31d41
Merge branch 'main' into dynamics
zfergus Nov 10, 2024
5c73e27
Fix comment
zfergus Nov 11, 2024
73c28ce
Merge branch 'main' into dynamics
zfergus Jun 8, 2025
47c282b
[WIP] Implement rigid body dynamics framework
zfergus Jun 13, 2025
caf4d50
Fix rotation_vector_to_matrix derivatives
zfergus Jun 14, 2025
59edd85
Test RigidBody class
zfergus Jun 17, 2025
5cbe3d4
Test InertialTerm
zfergus Jun 18, 2025
dbad1ba
Add density parameter to mass calculations; store R0 in RB
zfergus Jun 18, 2025
5d7512a
Add (empty) simulator loop
zfergus Jun 18, 2025
0107073
Move body forces into separate class
zfergus Jun 21, 2025
e118277
Merge branch 'main' into dynamics
zfergus Aug 18, 2025
6987872
Remove duplicate cross_product_matrix function
zfergus Aug 18, 2025
3bb8029
Refactor error handling in matrix projection functions to use log_and…
zfergus Aug 18, 2025
f34250b
Remove cross_product_matrix function from pose.cpp
zfergus Aug 18, 2025
42510aa
Fix CMake option syntax for CCD Query IO, filib, libigl, and scalable…
zfergus Aug 18, 2025
e560de5
Initialize integral array in compute_mass_properties_3D with empty br…
zfergus Aug 18, 2025
3a9b326
Remove unicode from test names for Windows CI
zfergus Aug 18, 2025
3491217
Remove unused K_dKj_plus_K_dKj_T
zfergus Aug 19, 2025
e10542a
Add RigidBody class bindings to expose mass and inertia properties.
zfergus Aug 20, 2025
ea38e5d
Fix broad phase benchmark
zfergus Aug 24, 2025
f27fbe8
Update GIT_TAG for ipc_toolkit_tests_data and modify expected output …
zfergus Aug 24, 2025
7f75e25
Refactor broad phase collision detection methods
zfergus Aug 24, 2025
0c00276
Refactor nonlinear CCD methods to use NonlinearCCD class and simplify…
zfergus Aug 28, 2025
0f3bc00
Add RigidCandidates class for managing collision candidates and imple…
zfergus Aug 28, 2025
7470786
Merge branch 'main' into dynamics
zfergus Sep 1, 2025
a5674a6
Merge branch 'main' into dynamics
zfergus Sep 1, 2025
7c702d6
Merge branch 'main' into dynamics
zfergus Jan 27, 2026
6b834f5
Refactor math utils and update NonlinearCCD API
zfergus Jan 27, 2026
d647396
Fix NonlinearCCD parameter order
zfergus Jan 27, 2026
63b330c
Fix Clang-Tidy Errors
zfergus Jan 27, 2026
701318d
Add NOLINTNEXTLINE for identifier-naming
zfergus Jan 27, 2026
30c802f
Assert Q_hat size instead of torque size
zfergus Jan 27, 2026
ebf466f
Fix nonlinear CCD; update body force parameter names
zfergus Jan 28, 2026
7cb148b
Use Eigen::ConstRef for function parameters
zfergus Jan 28, 2026
52bdbfd
Start work on RigidCandidates
zfergus Feb 1, 2026
d29ec6a
Update normal hessians to vectorized 3rd-order tensor format
zfergus Feb 2, 2026
1c89c51
Remove invisible unicode
zfergus Feb 2, 2026
e7c63c3
Skip force and torque computations when zero
zfergus Feb 2, 2026
22fc7b1
Fix normal hessian calculations for vectorized order
zfergus Feb 3, 2026
860f714
Refactor tangent basis and rel velocity Jacobians and update tests
zfergus Feb 4, 2026
c1cbee6
Update TangentialPotential to match new layout for Jacobians
zfergus Feb 4, 2026
81d7b29
Update finite-diff package version to 1.0.4
zfergus Feb 4, 2026
7febecd
Add ground contact dynamics and related tests
zfergus Feb 4, 2026
486985b
Bind write_gltf and add Save button
zfergus Feb 4, 2026
ae11670
Merge branch 'main' into dynamics
zfergus Feb 7, 2026
c182fe8
Remove maybe_parallel_for from utils sources
zfergus Feb 7, 2026
41c8b71
Rigid dynamics: simulator API, fixes, and tests
zfergus Feb 7, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,10 @@ include(tinyad)
# TODO: Make this a private dependency once we stop exposing TinyAD types in the public API.
target_link_libraries(ipc_toolkit PUBLIC TinyAD::TinyAD)

# TinyGLTF
include(tinygltf)
target_link_libraries(ipc_toolkit PRIVATE tinygltf::tinygltf)

# CCD
if(IPC_TOOLKIT_WITH_INEXACT_CCD)
# Etienne Vouga's CTCD Library for the floating point root finding algorithm
Expand Down
2 changes: 1 addition & 1 deletion cmake/ipc_toolkit/ipc_toolkit_tests_data.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ else()
SOURCE_DIR ${IPC_TOOLKIT_TESTS_DATA_DIR}

GIT_REPOSITORY https://github.com/ipc-sim/ipc-toolkit-tests-data.git
GIT_TAG c7eba549d9a80d15569a013c473f0aff104ac44a
GIT_TAG 9061bb85b30b7e410db736f6e16de234d5b0555a

CONFIGURE_COMMAND ""
BUILD_COMMAND ""
Expand Down
2 changes: 1 addition & 1 deletion cmake/recipes/finite_diff.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ endif()
message(STATUS "Third-party: creating target 'finitediff::finitediff'")

include(CPM)
CPMAddPackage("gh:zfergus/finite-diff@1.0.3")
CPMAddPackage("gh:zfergus/finite-diff@1.0.4")

# Folder name for IDE
set_target_properties(finitediff_finitediff PROPERTIES FOLDER "ThirdParty")
21 changes: 21 additions & 0 deletions cmake/recipes/tinygltf.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# TinyGLTF (https://github.com/syoyo/tinygltf)
# License: MIT
if(TARGET tinygltf::tinygltf)
return()
endif()

message(STATUS "Third-party: creating target 'tinygltf::tinygltf'")

include(CPM)
CPMAddPackage(
URI "gh:syoyo/tinygltf@2.9.6"
DOWNLOAD_ONLY TRUE
)

add_library(tinygltf)
add_library(tinygltf::tinygltf ALIAS tinygltf)
target_sources(tinygltf PRIVATE ${tinygltf_SOURCE_DIR}/tiny_gltf.cc)
target_include_directories(tinygltf INTERFACE
$<BUILD_INTERFACE:${tinygltf_SOURCE_DIR}>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
)
16 changes: 8 additions & 8 deletions docs/source/cpp-api/tangent.rst
Original file line number Diff line number Diff line change
Expand Up @@ -28,18 +28,18 @@ Relative Velocity
Relative Velocity as Multiplier Matricies
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. doxygenfunction:: ipc::point_point_relative_velocity_matrix
.. doxygenfunction:: ipc::point_edge_relative_velocity_matrix
.. doxygenfunction:: ipc::edge_edge_relative_velocity_matrix
.. doxygenfunction:: ipc::point_triangle_relative_velocity_matrix
.. doxygenfunction:: ipc::point_point_relative_velocity_jacobian
.. doxygenfunction:: ipc::point_edge_relative_velocity_jacobian
.. doxygenfunction:: ipc::edge_edge_relative_velocity_jacobian
.. doxygenfunction:: ipc::point_triangle_relative_velocity_jacobian

Relative Velocity Matrix Jacobians
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. doxygenfunction:: ipc::point_point_relative_velocity_matrix_jacobian
.. doxygenfunction:: ipc::point_edge_relative_velocity_matrix_jacobian
.. doxygenfunction:: ipc::edge_edge_relative_velocity_matrix_jacobian
.. doxygenfunction:: ipc::point_triangle_relative_velocity_matrix_jacobian
.. doxygenfunction:: ipc::point_point_relative_velocity_dx_dbeta
.. doxygenfunction:: ipc::point_edge_relative_velocity_dx_dbeta
.. doxygenfunction:: ipc::edge_edge_relative_velocity_dx_dbeta
.. doxygenfunction:: ipc::point_triangle_relative_velocity_dx_dbeta

Closet Points
-------------
Expand Down
16 changes: 8 additions & 8 deletions docs/source/python-api/tangent.rst
Original file line number Diff line number Diff line change
Expand Up @@ -28,18 +28,18 @@ Relative Velocity
Relative Velocity as Multiplier Matricies
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. autofunction:: ipctk.point_point_relative_velocity_matrix
.. autofunction:: ipctk.point_edge_relative_velocity_matrix
.. autofunction:: ipctk.edge_edge_relative_velocity_matrix
.. autofunction:: ipctk.point_triangle_relative_velocity_matrix
.. autofunction:: ipctk.point_point_relative_velocity_jacobian
.. autofunction:: ipctk.point_edge_relative_velocity_jacobian
.. autofunction:: ipctk.edge_edge_relative_velocity_jacobian
.. autofunction:: ipctk.point_triangle_relative_velocity_jacobian

Relative Velocity Matrix Jacobians
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. autofunction:: ipctk.point_point_relative_velocity_matrix_jacobian
.. autofunction:: ipctk.point_edge_relative_velocity_matrix_jacobian
.. autofunction:: ipctk.edge_edge_relative_velocity_matrix_jacobian
.. autofunction:: ipctk.point_triangle_relative_velocity_matrix_jacobian
.. autofunction:: ipctk.point_point_relative_velocity_dx_dbeta
.. autofunction:: ipctk.point_edge_relative_velocity_dx_dbeta
.. autofunction:: ipctk.edge_edge_relative_velocity_dx_dbeta
.. autofunction:: ipctk.point_triangle_relative_velocity_dx_dbeta

Closet Points
-------------
Expand Down
6 changes: 3 additions & 3 deletions docs/source/tutorials/nonlinear_ccd.rst
Original file line number Diff line number Diff line change
Expand Up @@ -199,13 +199,13 @@ The following code snippet shows an example of how to use interval arithmetic to

.. code-block:: cpp

#include <ipc/utils/interval.hpp>
#include <ipc/math/interval.hpp>

using namespace ipc;

Vector2I position(
const VectorMax3d& center,
const VectorMax3d& point,
Eigen::ConstRef<VectorMax3d> center,
Eigen::ConstRef<VectorMax3d> point,
const double omega,
const Interval& t)
{
Expand Down
Loading
Loading