Skip to content

Commit dd72b2d

Browse files
Merge pull request #151 from diffCheckOrg/release/2.0.0
Release/2.0.0
2 parents 8f668b1 + 09e6e0b commit dd72b2d

75 files changed

Lines changed: 2774 additions & 337 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.gitmodules‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,4 @@
1919
url = https://github.com/diffCheckOrg/submodule-cilantro.git
2020
[submodule "deps/eigen"]
2121
path = deps/eigen
22-
url = https://gitlab.com/libeigen/eigen.git
22+
url = https://github.com/diffCheckOrg/submodule-eigen.git

‎.pre-commit-config.yaml‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ repos:
2525
files: \.py$
2626

2727
- repo: https://github.com/pre-commit/mirrors-mypy
28-
rev: 'v1.11.1'
28+
rev: 'v1.19.1'
2929
hooks:
3030
- id: mypy
3131
files: (src/gh|tests|invokes\.py)
@@ -34,6 +34,7 @@ repos:
3434
types-requests==2.31.0,
3535
numpy==2.0.1,
3636
pytest==8.3.1,
37+
websockets>=10.4,
3738
types-setuptools>=71.1.0.20240818
3839
]
3940
args: [--config=pyproject.toml]

‎CMakeLists.txt‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ include(options)
1010
# disabling warnings
1111
if (MSVC)
1212
add_compile_options(/wd4003)
13+
# Disable _SECURE_SCL to avoid issues with stdext::checked_array_iterator
14+
# in newer MSVC versions with Open3D's bundled fmt library
15+
add_compile_definitions(_SECURE_SCL=0 _HAS_STDEXT_CHECKED_ARRAY_ITERATOR=0)
1316
endif()
1417

1518
# check that the -DCMAKE_BUILD_TYPE is set

‎README.md‎

Lines changed: 9 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,15 @@
1414
</p>
1515

1616

17-
![demo](https://github.com/user-attachments/assets/3c9f353d-7707-4630-aa6d-fe59cbdeae2f)
17+
![demo](./assets/img/intro_illustration_with_final_distances_and_pose_estimation.png)
1818

1919
# DiffCheck: CAD-Scan comparison
2020

2121
With `diffCheck`, you can easily compare your scans and 3D models of timber structures or joinery to measure precision and see the differences at a glance, [here](https://diffcheckorg.github.io/diffCheck/quickstart.html)!
2222

2323
`diffCheck` can also function as a general purpose point cloud processing toolset and we hope that the digital community will use it, see the interest, and contribute to this open-source project we starting!
2424

25-
`diffCheck` is originally developed and now maintained by Andrea Settimi (PhD), Damien Gilliard (PhD) from the [Laboratory of Timber Construction (IBOIS, lab head: Prof. Yves Weinand)](https://www.epfl.ch/labs/ibois/), Eleni Skevaki (PhD) and Dr. Marirena Kladeftira (Post-Doc) from the [Laboratory for Creative Computation (CRCL, lab head: Prof. Stefana Parascho)](https://www.epfl.ch/labs/crcl/) here at [Ecole Polytechnique Fédérale de Lausanne (EPFL)](https://www.epfl.ch/en/).
25+
`diffCheck` 1 was originally developed by Dr. Andrea Settimi, Damien Gilliard (PhD candidate) from the [Laboratory of Timber Construction (IBOIS, lab head: Prof. Yves Weinand)](https://www.epfl.ch/labs/ibois/), Eleni Skevaki (PhD candidate) and Dr. Marirena Kladeftira (Post-Doc) from the [Laboratory for Creative Computation (CRCL, lab head: Prof. Stefana Parascho)](https://www.epfl.ch/labs/crcl/) here at [Ecole Polytechnique Fédérale de Lausanne (EPFL)](https://www.epfl.ch/en/). Development for the version 2 was done by Damien Gilliard (still PhD candidate) from the [Laboratory of Timber Construction (IBOIS, lab head: Prof. Yves Weinand)](https://www.epfl.ch/labs/ibois/) and Eleni Skevaki (PhD candidate) from the [Laboratory for Creative Computation (CRCL, lab head: Prof. Stefana Parascho)](https://www.epfl.ch/labs/crcl/).
2626

2727
`diffCheck` is designed to be user-friendly and can be used either via a Grasshopper plug-in, we provide tutorials and online documentation for each component and its Python API.
2828

@@ -38,50 +38,27 @@ Open your Grasshopper canvas and search for the `DF` components!
3838

3939
## Functionalities
4040

41-
`diffCheck` is a toolset that allows you to compare a 3D model of a structure to evaluate its assembly or joint's quality and accuracy.
41+
`diffCheck` is a toolset that allows you to compare a 3D model of a structure to evaluate its assembly or joint's quality and accuracy. It can be used on finished assemblies to evaluate their quality, but also to detect poses during fabrication, to allow fabricator to react to pose discrepancies on-the-fly.
4242

4343
<div align="center">
4444
<img src="./assets/img/placeholder_additive.png" width="600">
45-
<p>Example of several structures assembled with different digital technologies.</p>
45+
<p>Example of several finished structures assembled with different digital technologies.</p>
4646
</div>
4747
<div align="center">
4848
<img src="./assets/img/placeholder_subtractive.png" width="600">
4949
<p>Example of joinery evaluation.</p>
5050
</div>
51-
51+
<div align="center">
52+
<img src="./assets/img/pose_detection.png" width="400">
53+
<p>Example of pose estimation.</p>
54+
</div>
5255

5356
## Documentation
5457

5558
The full documentation, with tutorials, automatic documentation for GHComponents and PythonAPI is available [here](https://diffcheckorg.github.io/diffCheck/).
5659

5760

58-
59-
## Roadmap
60-
61-
```mermaid
62-
gantt
63-
dateFormat YYYY-MM-DD
64-
title diffCheck - general overview
65-
excludes weekends
66-
67-
section Publication
68-
Abstract edition :active, absed, 2024-03-01, 2024-03-15
69-
Submission abstract ICSA :milestone, icsaabs, 2024-03-15, 0d
70-
Paper edition :paperd, 2024-10-01, 2024-10-30
71-
Submission paper ICSA :milestone, icsapap, 2024-10-30, 0d
72-
73-
section Code development
74-
Backend development :backenddev, after icsaabs, 6w
75-
Rhino/Grasshopper integration :rhghinteg, after backenddev, 6w
76-
Documentation & Interface :docuint, after fabar, 3w
77-
78-
section Prototype testing
79-
Fabrication of AR Prototype :crit, fabar, 2024-07-01, 2024-08-30
80-
Fabrication of CNC Prototype :crit, fabcnc, 2024-07-01, 2024-08-30
81-
Fabrication of Robot Prototype :crit, fabrob, 2024-07-01, 2024-08-30
82-
Data collection and evaluation :dataeval, after fabrob, 4w
83-
```
84-
8561
## How to contribute
8662

8763
If you want to contribute to the project, please refer to the [contribution guidelines]([./CONTRIBUTING.md](https://diffcheckorg.github.io/diffCheck/contribute.html)).
64+
2.75 MB
Loading

‎assets/img/pose_detection.png‎

174 KB
Loading

‎cmake/copy_dlls_script.cmake‎

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# This script is executed at build time to copy DLLs
2+
# It uses variables passed from the main CMake configuration
3+
4+
# Remove old DLLs from the destination directory
5+
file(GLOB old_dlls "${DIR_TO_CLEAN}/*.dll")
6+
if(old_dlls)
7+
file(REMOVE ${old_dlls})
8+
endif()
9+
10+
# Get all DLLs from the source directory (evaluated at build time)
11+
file(GLOB dll_files "${SRC_DIR}/*.dll")
12+
13+
# Copy each DLL to the destination directory
14+
foreach(dll_file ${dll_files})
15+
get_filename_component(dll_name ${dll_file} NAME)
16+
message(STATUS "Copying ${dll_name} to ${DST_DIR}")
17+
file(COPY ${dll_file} DESTINATION ${DST_DIR})
18+
endforeach()

‎cmake/external_tools.cmake‎

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -232,19 +232,19 @@ endfunction()
232232

233233
# ------------------------------------------------------------------------------
234234
function (copy_dlls directory_to_copy_dlls post_build_target)
235-
message (STATUS "Erasing old DLLs and copy new ones to ${directory_to_copy_dlls}")
236-
file(GLOB files ${directory_to_copy_dlls}/*.dll)
237-
foreach(file ${files})
238-
message(STATUS "Removing ${file}")
239-
file(REMOVE ${file})
240-
endforeach()
241-
file(GLOB files ${CMAKE_BINARY_DIR}/bin/${CMAKE_BUILD_TYPE}/*.dll)
242-
foreach(file ${files})
243-
message(STATUS "Copying ${file} to ${directory_to_copy_dlls}")
244-
add_custom_command(TARGET ${post_build_target} POST_BUILD
245-
COMMAND ${CMAKE_COMMAND} -E copy
246-
${file}
247-
${directory_to_copy_dlls}
248-
)
249-
endforeach()
235+
message (STATUS "Configuring DLL copy to ${directory_to_copy_dlls} at build time")
236+
237+
# Get the path to the script relative to the project source dir
238+
set(COPY_DLLS_SCRIPT ${PROJECT_SOURCE_DIR}/cmake/copy_dlls_script.cmake)
239+
240+
# Add a post-build command that will copy DLLs at build time
241+
# This ensures the file list is evaluated at build time, not configure time
242+
add_custom_command(TARGET ${post_build_target} POST_BUILD
243+
COMMAND ${CMAKE_COMMAND}
244+
-DDIR_TO_CLEAN="${directory_to_copy_dlls}"
245+
-DSRC_DIR="${CMAKE_BINARY_DIR}/bin/${CMAKE_BUILD_TYPE}"
246+
-DDST_DIR="${directory_to_copy_dlls}"
247+
-P "${COPY_DLLS_SCRIPT}"
248+
COMMENT "Copying DLLs to ${directory_to_copy_dlls}"
249+
)
250250
endfunction()

‎deps/eigen‎

Submodule eigen updated from 11fd34c to 2036a28

‎deps/pybind11‎

Submodule pybind11 updated 159 files

0 commit comments

Comments
 (0)