From fa9c199f01ef03df51f21b4660c993b9af3ca7a3 Mon Sep 17 00:00:00 2001 From: Leonardo Date: Mon, 31 Aug 2026 16:11:25 +0300 Subject: [PATCH 1/4] Bumping OpenMVS to v2.4.0 branch - Pined a commit hash (v2.4.0) - Updated pixi dependencies: cgal 5.6 -> 6, added nanoflann. - Added new arguments to preserver default behaviour from v2.2.0 --- SuperBuild/cmake/External-OpenMVS.cmake | 2 +- opendm/config.py | 39 ++ pixi.lock | 467 +++++++++++++----------- pixi.toml | 3 +- stages/openmvs.py | 13 + 5 files changed, 311 insertions(+), 213 deletions(-) diff --git a/SuperBuild/cmake/External-OpenMVS.cmake b/SuperBuild/cmake/External-OpenMVS.cmake index 7eb58fbd7..6e2966291 100644 --- a/SuperBuild/cmake/External-OpenMVS.cmake +++ b/SuperBuild/cmake/External-OpenMVS.cmake @@ -100,7 +100,7 @@ ExternalProject_Add(${_proj_name} #--Download step-------------- DOWNLOAD_DIR ${SB_DOWNLOAD_DIR} GIT_REPOSITORY https://github.com/OpenDroneMap/openMVS - GIT_TAG 355 + GIT_TAG d7081f414e3b6d0bdb7ade59ac071d049fdee29e #--Update/Patch step---------- UPDATE_COMMAND "" PATCH_COMMAND ${OPENMVS_PATCH_COMMAND} diff --git a/opendm/config.py b/opendm/config.py index c5f5ba115..5c3909907 100755 --- a/opendm/config.py +++ b/opendm/config.py @@ -71,6 +71,10 @@ 'pc_quality': 'opensfm', 'pc_rectify': 'odm_georeferencing', 'pc_sample': 'odm_filterpoints', + 'pc_fusion_filter': 'openmvs', + 'pc_fusion_depth_diff': 'openmvs', + 'pc_fusion_reprojection': 'openmvs', + 'pc_crop_to_roi': 'openmvs', 'pc_skip_geometric': 'openmvs', 'primary_band': 'dataset', 'project_path': None, @@ -510,6 +514,41 @@ def config(argv=None, parser=None): help='Filters the point cloud by keeping only a single point around a radius N (in meters). This can be useful to limit the output resolution of the point cloud and remove duplicate points. Set to 0 to disable sampling. ' 'Default: %(default)s') + parser.add_argument('--pc-fusion-filter', + metavar='', + action=StoreValue, + default='fuse', + choices=['merge', 'fuse', 'dense-fuse'], + help='Select algorithm to fuse the depth-maps into a point cloud. ' + '"merge" Keeps everything, i.e. one point per depth pixel. ' + '"fuse" aggregates points and keeps the weighted mean (projecting back the point into other depth maps) ' + '"dense-fuse" applies a stricter consensus, it requires a certain amount (default 5) to actually create the point.' + 'Can be one of: %(choices)s. Default: %(default)s') + + parser.add_argument('--pc-fusion-depth-diff', + metavar='', + action=StoreValue, + type=float, + default=0.01, + help='Maximum relative depth difference, as a fraction of the depth, for two depth estimates to be fused. ' + 'Default: %(default)s') + + parser.add_argument('--pc-fusion-reprojection', + metavar='', + action=StoreValue, + type=float, + default=1.2, + help='Maximum reprojection distance in pixels for two depth estimates to be fused.' + 'Only used by "dense-fuse".' + 'Default: %(default)s') + + parser.add_argument('--pc-crop-to-roi', + action=StoreTrue, + nargs=0, + default=False, + help='Crop the point cloud to the ROI (region of interest), if not given, it is estimated by OpenMVS' + 'Default: %(default)s') + parser.add_argument('--pc-skip-geometric', action=StoreTrue, nargs=0, diff --git a/pixi.lock b/pixi.lock index e0c608d3b..a2f2ab700 100644 --- a/pixi.lock +++ b/pixi.lock @@ -80,8 +80,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.4-h3394656_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/capnproto-1.2.0-hfc315d8_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ceres-solver-2.2.0-cpugplhc142d66_210.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cgal-5.6.1-py312h69444aa_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cgal-cpp-5.6.1-hd557e15_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cgal-6.0.1-py312hd58c7e2_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cgal-cpp-6.0.1-h9b37d73_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/charls-2.4.4-hecca717_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/cmake-3.31.8-hc85cc9f_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/conda-gcc-specs-14.4.0-h611768e_1.conda @@ -158,9 +158,9 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/libass-0.17.4-h96ad9f0_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libavif16-1.3.0-h6395336_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.11.0-8_h4a7cf45_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-1.86.0-hed09d94_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-devel-1.86.0-hfcd1e18_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-headers-1.86.0-ha770c72_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-1.88.0-hed09d94_6.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-devel-1.88.0-hfcd1e18_6.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-headers-1.88.0-ha770c72_6.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.1.0-hb03c661_4.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.1.0-hb03c661_4.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.1.0-hb03c661_4.conda @@ -317,6 +317,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/mpfr-4.2.2-he0a73b1_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/mpg123-1.32.9-hc50e24c_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/muparser-2.3.5-h5888daf_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/nanoflann-1.6.1-hff21bea_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.6-hdb14827_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ninja-1.13.2-h171cf75_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/nitro-2.7.dev8-h59595ed_0.conda @@ -537,8 +538,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/cairo-1.18.4-h83712da_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/capnproto-1.2.0-h272d560_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ceres-solver-2.2.0-cpugplhc057b3f_210.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/cgal-5.6.1-py312h6230e42_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/cgal-cpp-5.6.1-h578bb86_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/cgal-6.0.1-py312h5ad6c5f_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/cgal-cpp-6.0.1-h3fceeef_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/charls-2.4.4-hfae3067_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/cmake-3.31.8-hc9d863e_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/contourpy-1.3.3-py312hf18b547_4.conda @@ -611,9 +612,9 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libass-0.17.4-hcfe818d_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libavif16-1.3.0-hfe54310_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libblas-3.11.0-8_haddc8a3_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libboost-1.86.0-h6339299_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libboost-devel-1.86.0-h37bb5a9_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libboost-headers-1.86.0-h8af1aa0_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libboost-1.88.0-h6339299_6.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libboost-devel-1.88.0-h37bb5a9_6.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libboost-headers-1.88.0-h8af1aa0_6.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libbrotlicommon-1.1.0-he30d5cf_4.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libbrotlidec-1.1.0-he30d5cf_4.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libbrotlienc-1.1.0-he30d5cf_4.conda @@ -766,6 +767,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/mpfr-4.2.2-h3faef18_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/mpg123-1.32.9-h65af167_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/muparser-2.3.5-h5ad3122_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/nanoflann-1.6.1-h17cf362_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ncurses-6.6-hf8d1292_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ninja-1.13.2-hdc560ac_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/nitro-2.7.dev8-h2f0025b_0.conda @@ -1044,8 +1046,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cctools_impl_osx-arm64-1030.6.3-llvm19_1_hc7668c6_5.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cctools_osx-arm64-1030.6.3-llvm19_1_hd01ab73_5.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ceres-solver-2.2.0-cpugplhc6e4162_210.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cgal-5.6.1-py312hce81f85_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cgal-cpp-5.6.1-h5f86f28_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cgal-6.0.1-py312h0fb87b3_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cgal-cpp-6.0.1-hbc35424_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/charls-2.4.4-hf6b4638_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/clang-19-19.1.7-default_hf3020a7_9.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/clang-19.1.7-default_hf9bcbb7_9.conda @@ -1118,9 +1120,9 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libass-0.17.4-hcbd7ca7_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libavif16-1.3.0-hb06b76e_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libblas-3.11.0-8_h51639a9_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libboost-1.86.0-hf493ff8_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libboost-devel-1.86.0-hf450f58_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libboost-headers-1.86.0-hce30654_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libboost-1.88.0-h18cd856_6.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libboost-devel-1.88.0-hf450f58_6.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libboost-headers-1.88.0-hce30654_6.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlicommon-1.1.0-h6caf38d_4.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlidec-1.1.0-h6caf38d_4.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlienc-1.1.0-h6caf38d_4.conda @@ -1253,6 +1255,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/mpc-1.4.0-h169892a_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/mpfr-4.2.2-h6bc93b0_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/muparser-2.3.5-h11e0b38_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nanoflann-1.6.1-hd04e3b9_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.6-h1d4f5a5_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ninja-1.13.2-h49c215f_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nitro-2.7.dev8-h13dd4ca_0.conda @@ -1435,8 +1438,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/cairo-1.18.4-h5782bbf_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/capnproto-1.2.0-h3a793f1_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/ceres-solver-2.2.0-cpugplhf344f7c_210.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cgal-5.6.1-py312h0d2d5cd_4.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cgal-cpp-5.6.1-h31bd75c_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cgal-6.0.1-py312h96e49e0_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cgal-cpp-6.0.1-hc4f255e_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/charls-2.4.4-h7cafa3a_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/cmake-3.31.8-hdcbee5b_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/contourpy-1.3.3-py312h78d62e6_4.conda @@ -1494,9 +1497,9 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/libasprintf-0.22.5-h5728263_3.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libavif16-1.3.0-he916da2_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libblas-3.11.0-6_hf2e6a31_mkl.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libboost-1.86.0-h9dfe17d_5.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libboost-devel-1.86.0-h1c1089f_5.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libboost-headers-1.86.0-h57928b3_5.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libboost-1.88.0-h9dfe17d_7.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libboost-devel-1.88.0-h1c1089f_7.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libboost-headers-1.88.0-h57928b3_7.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlicommon-1.1.0-hfd05255_4.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlidec-1.1.0-hfd05255_4.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlienc-1.1.0-hfd05255_4.conda @@ -1612,6 +1615,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/mkl-2025.3.1-hac47afa_13.conda - conda: https://conda.anaconda.org/conda-forge/win-64/mpfr-4.2.2-h883a981_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/muparser-2.3.5-he0c23c2_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/nanoflann-1.6.1-hc790b64_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/ninja-1.13.2-h477610d_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/nitro-2.7.dev8-h1537add_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.3.2-py312ha72d056_2.conda @@ -1749,8 +1753,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.4-h3394656_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/capnproto-1.2.0-hfc315d8_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ceres-solver-2.2.0-cpugplhc142d66_210.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cgal-5.6.1-py312h69444aa_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cgal-cpp-5.6.1-hd557e15_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cgal-6.0.1-py312hd58c7e2_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cgal-cpp-6.0.1-h9b37d73_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/charls-2.4.4-hecca717_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/cmake-3.31.8-hc85cc9f_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/conda-gcc-specs-14.4.0-h611768e_1.conda @@ -1840,9 +1844,9 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/libass-0.17.4-h96ad9f0_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libavif16-1.3.0-h6395336_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.11.0-8_h4a7cf45_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-1.86.0-hed09d94_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-devel-1.86.0-hfcd1e18_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-headers-1.86.0-ha770c72_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-1.88.0-hed09d94_6.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-devel-1.88.0-hfcd1e18_6.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-headers-1.88.0-ha770c72_6.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.1.0-hb03c661_4.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.1.0-hb03c661_4.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.1.0-hb03c661_4.conda @@ -2009,6 +2013,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/mpfr-4.2.2-he0a73b1_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/mpg123-1.32.9-hc50e24c_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/muparser-2.3.5-h5888daf_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/nanoflann-1.6.1-hff21bea_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.6-hdb14827_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ninja-1.13.2-h171cf75_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/nitro-2.7.dev8-h59595ed_0.conda @@ -2300,8 +2305,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/cairo-1.18.4-h5782bbf_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/capnproto-1.2.0-h3a793f1_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/ceres-solver-2.2.0-cpugplhf344f7c_210.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cgal-5.6.1-py312h0d2d5cd_4.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cgal-cpp-5.6.1-h31bd75c_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cgal-6.0.1-py312h96e49e0_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cgal-cpp-6.0.1-hc4f255e_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/charls-2.4.4-h7cafa3a_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/cmake-3.31.8-hdcbee5b_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/contourpy-1.3.3-py312h78d62e6_4.conda @@ -2370,9 +2375,9 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/libasprintf-0.22.5-h5728263_3.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libavif16-1.3.0-he916da2_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libblas-3.11.0-6_hf2e6a31_mkl.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libboost-1.86.0-h9dfe17d_5.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libboost-devel-1.86.0-h1c1089f_5.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libboost-headers-1.86.0-h57928b3_5.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libboost-1.88.0-h9dfe17d_7.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libboost-devel-1.88.0-h1c1089f_7.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libboost-headers-1.88.0-h57928b3_7.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlicommon-1.1.0-hfd05255_4.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlidec-1.1.0-hfd05255_4.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlienc-1.1.0-hfd05255_4.conda @@ -2498,6 +2503,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/mkl-2025.3.1-hac47afa_13.conda - conda: https://conda.anaconda.org/conda-forge/win-64/mpfr-4.2.2-h883a981_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/muparser-2.3.5-he0c23c2_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/nanoflann-1.6.1-hc790b64_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/ninja-1.13.2-h477610d_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/nitro-2.7.dev8-h1537add_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.3.2-py312ha72d056_2.conda @@ -2631,8 +2637,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.4-h3394656_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/capnproto-1.2.0-hfc315d8_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ceres-solver-2.2.0-cpugplhc142d66_210.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cgal-5.6.1-py312h69444aa_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cgal-cpp-5.6.1-hd557e15_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cgal-6.0.1-py312hd58c7e2_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cgal-cpp-6.0.1-h9b37d73_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/charls-2.4.4-hecca717_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.3.3-py312h0a2e395_4.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/cpd-0.5.5-h434a139_2.conda @@ -2701,9 +2707,9 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/libass-0.17.4-h96ad9f0_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libavif16-1.3.0-h6395336_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.11.0-8_h4a7cf45_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-1.86.0-hed09d94_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-devel-1.86.0-hfcd1e18_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-headers-1.86.0-ha770c72_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-1.88.0-hed09d94_6.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-devel-1.88.0-hfcd1e18_6.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-headers-1.88.0-ha770c72_6.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.1.0-hb03c661_4.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.1.0-hb03c661_4.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.1.0-hb03c661_4.conda @@ -2864,6 +2870,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/mpfr-4.2.2-he0a73b1_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/mpg123-1.32.9-hc50e24c_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/muparser-2.3.5-h5888daf_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/nanoflann-1.6.1-hff21bea_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.6-hdb14827_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/nitro-2.7.dev8-h59595ed_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.3.2-py312h33ff503_2.conda @@ -3126,8 +3133,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/cairo-1.18.4-h5782bbf_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/capnproto-1.2.0-h3a793f1_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/ceres-solver-2.2.0-cpugplhf344f7c_210.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cgal-5.6.1-py312h0d2d5cd_4.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cgal-cpp-5.6.1-h31bd75c_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cgal-6.0.1-py312h96e49e0_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cgal-cpp-6.0.1-hc4f255e_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/charls-2.4.4-h7cafa3a_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/contourpy-1.3.3-py312h78d62e6_4.conda - conda: https://conda.anaconda.org/conda-forge/win-64/cuda-cudart-12.9.79-he0c23c2_0.conda @@ -3184,9 +3191,9 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/libasprintf-0.22.5-h5728263_3.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libavif16-1.3.0-he916da2_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libblas-3.11.0-6_hf2e6a31_mkl.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libboost-1.86.0-h9dfe17d_5.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libboost-devel-1.86.0-h1c1089f_5.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libboost-headers-1.86.0-h57928b3_5.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libboost-1.88.0-h9dfe17d_7.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libboost-devel-1.88.0-h1c1089f_7.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libboost-headers-1.88.0-h57928b3_7.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlicommon-1.1.0-hfd05255_4.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlidec-1.1.0-hfd05255_4.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlienc-1.1.0-hfd05255_4.conda @@ -3307,6 +3314,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/mkl-2025.3.1-hac47afa_13.conda - conda: https://conda.anaconda.org/conda-forge/win-64/mpfr-4.2.2-h883a981_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/muparser-2.3.5-he0c23c2_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/nanoflann-1.6.1-hc790b64_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/nitro-2.7.dev8-h1537add_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.3.2-py312ha72d056_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/onemkl-license-2025.3.1-h57928b3_13.conda @@ -3436,8 +3444,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.4-h3394656_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/capnproto-1.2.0-hfc315d8_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ceres-solver-2.2.0-cpugplhc142d66_210.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cgal-5.6.1-py312h69444aa_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cgal-cpp-5.6.1-hd557e15_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cgal-6.0.1-py312hd58c7e2_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cgal-cpp-6.0.1-h9b37d73_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/charls-2.4.4-hecca717_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.3.3-py312h0a2e395_4.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/cpd-0.5.5-h434a139_2.conda @@ -3503,9 +3511,9 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/libass-0.17.4-h96ad9f0_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libavif16-1.3.0-h6395336_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.11.0-8_h4a7cf45_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-1.86.0-hed09d94_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-devel-1.86.0-hfcd1e18_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-headers-1.86.0-ha770c72_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-1.88.0-hed09d94_6.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-devel-1.88.0-hfcd1e18_6.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-headers-1.88.0-ha770c72_6.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.1.0-hb03c661_4.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.1.0-hb03c661_4.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.1.0-hb03c661_4.conda @@ -3659,6 +3667,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/mpfr-4.2.2-he0a73b1_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/mpg123-1.32.9-hc50e24c_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/muparser-2.3.5-h5888daf_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/nanoflann-1.6.1-hff21bea_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.6-hdb14827_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/nitro-2.7.dev8-h59595ed_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.3.2-py312h33ff503_2.conda @@ -3865,8 +3874,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/cairo-1.18.4-h83712da_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/capnproto-1.2.0-h272d560_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ceres-solver-2.2.0-cpugplhc057b3f_210.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/cgal-5.6.1-py312h6230e42_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/cgal-cpp-5.6.1-h578bb86_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/cgal-6.0.1-py312h5ad6c5f_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/cgal-cpp-6.0.1-h3fceeef_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/charls-2.4.4-hfae3067_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/contourpy-1.3.3-py312hf18b547_4.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/cpd-0.5.5-h70be974_2.conda @@ -3929,9 +3938,9 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libass-0.17.4-hcfe818d_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libavif16-1.3.0-hfe54310_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libblas-3.11.0-8_haddc8a3_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libboost-1.86.0-h6339299_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libboost-devel-1.86.0-h37bb5a9_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libboost-headers-1.86.0-h8af1aa0_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libboost-1.88.0-h6339299_6.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libboost-devel-1.88.0-h37bb5a9_6.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libboost-headers-1.88.0-h8af1aa0_6.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libbrotlicommon-1.1.0-he30d5cf_4.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libbrotlidec-1.1.0-he30d5cf_4.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libbrotlienc-1.1.0-he30d5cf_4.conda @@ -4081,6 +4090,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/mpfr-4.2.2-h3faef18_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/mpg123-1.32.9-h65af167_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/muparser-2.3.5-h5ad3122_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/nanoflann-1.6.1-h17cf362_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ncurses-6.6-hf8d1292_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/nitro-2.7.dev8-h2f0025b_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/numpy-2.3.2-py312h6615c27_2.conda @@ -4340,8 +4350,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cairo-1.18.4-h6a3b0d2_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/capnproto-1.2.0-h1b2d5af_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ceres-solver-2.2.0-cpugplhc6e4162_210.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cgal-5.6.1-py312hce81f85_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cgal-cpp-5.6.1-h5f86f28_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cgal-6.0.1-py312h0fb87b3_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cgal-cpp-6.0.1-hbc35424_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/charls-2.4.4-hf6b4638_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/contourpy-1.3.3-py312h3093aea_4.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cpd-0.5.5-h420ef59_2.conda @@ -4400,9 +4410,9 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libass-0.17.4-hcbd7ca7_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libavif16-1.3.0-hb06b76e_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libblas-3.11.0-8_h51639a9_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libboost-1.86.0-hf493ff8_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libboost-devel-1.86.0-hf450f58_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libboost-headers-1.86.0-hce30654_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libboost-1.88.0-h18cd856_6.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libboost-devel-1.88.0-hf450f58_6.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libboost-headers-1.88.0-hce30654_6.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlicommon-1.1.0-h6caf38d_4.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlidec-1.1.0-h6caf38d_4.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlienc-1.1.0-h6caf38d_4.conda @@ -4529,6 +4539,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/mpc-1.4.0-h169892a_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/mpfr-4.2.2-h6bc93b0_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/muparser-2.3.5-h11e0b38_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nanoflann-1.6.1-hd04e3b9_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.6-h1d4f5a5_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nitro-2.7.dev8-h13dd4ca_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.3.2-py312h2f38b44_2.conda @@ -4701,8 +4712,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/cairo-1.18.4-h5782bbf_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/capnproto-1.2.0-h3a793f1_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/ceres-solver-2.2.0-cpugplhf344f7c_210.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cgal-5.6.1-py312h0d2d5cd_4.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cgal-cpp-5.6.1-h31bd75c_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cgal-6.0.1-py312h96e49e0_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cgal-cpp-6.0.1-hc4f255e_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/charls-2.4.4-h7cafa3a_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/contourpy-1.3.3-py312h78d62e6_4.conda - conda: https://conda.anaconda.org/conda-forge/win-64/dav1d-1.2.1-hcfcfb64_0.conda @@ -4756,9 +4767,9 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/libasprintf-0.22.5-h5728263_3.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libavif16-1.3.0-he916da2_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libblas-3.11.0-6_hf2e6a31_mkl.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libboost-1.86.0-h9dfe17d_5.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libboost-devel-1.86.0-h1c1089f_5.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libboost-headers-1.86.0-h57928b3_5.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libboost-1.88.0-h9dfe17d_7.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libboost-devel-1.88.0-h1c1089f_7.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libboost-headers-1.88.0-h57928b3_7.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlicommon-1.1.0-hfd05255_4.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlidec-1.1.0-hfd05255_4.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlienc-1.1.0-hfd05255_4.conda @@ -4872,6 +4883,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/mkl-2025.3.1-hac47afa_13.conda - conda: https://conda.anaconda.org/conda-forge/win-64/mpfr-4.2.2-h883a981_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/muparser-2.3.5-he0c23c2_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/nanoflann-1.6.1-hc790b64_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/nitro-2.7.dev8-h1537add_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.3.2-py312ha72d056_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/onemkl-license-2025.3.1-h57928b3_13.conda @@ -5591,42 +5603,42 @@ packages: - eigen >=3.4.0,<3.4.1.0a0 size: 1512609 timestamp: 1778568727317 -- conda: https://conda.anaconda.org/conda-forge/linux-64/cgal-5.6.1-py312h69444aa_4.conda - sha256: 23ffd91ce23fdb31f0eeff18ab4ccf6edb52d77243748674897646b3a3cd236b - md5: e4edcbb0dd15c2573e9f35ecdfa78567 +- conda: https://conda.anaconda.org/conda-forge/linux-64/cgal-6.0.1-py312hd58c7e2_3.conda + sha256: 78fd8e03c5bc8eab770e2c6bcc73dd6b75dd399372ff0678b258d7dffa225a8c + md5: 8c239039753c02c745fdd49de02241b9 depends: - __glibc >=2.17,<3.0.a0 - - cgal-cpp 5.6.1.* + - cgal-cpp 6.0.1.* - gmp >=6.3.0,<7.0a0 - - libboost >=1.86.0,<1.87.0a0 - - libgcc >=13 - - libstdcxx >=13 + - libboost >=1.88.0,<1.89.0a0 + - libgcc >=14 + - libstdcxx >=14 - mpfr >=4.2.1,<5.0a0 - - numpy >=1.19,<3 + - numpy >=1.23,<3 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 license: GPL-3.0-or-later license_family: GPL purls: [] run_exports: {} - size: 6718801 - timestamp: 1725440429724 -- conda: https://conda.anaconda.org/conda-forge/linux-64/cgal-cpp-5.6.1-hd557e15_2.conda - sha256: 61b824d884742b21f74be6fcbdd72ede28a78b91c37bb8f8c457d25a42fb0370 - md5: 9a3727da051061e29d726e4ab5a0ab35 + size: 7912128 + timestamp: 1765562763842 +- conda: https://conda.anaconda.org/conda-forge/linux-64/cgal-cpp-6.0.1-h9b37d73_1.conda + sha256: 77942d4f054e99faa7847cac883a6298dd26e4f997b251e7992f36efcd202da1 + md5: 257f168056bc44e0cbc6351c8e913234 depends: - __glibc >=2.17,<3.0.a0 - eigen - - libboost >=1.86.0,<1.87.0a0 + - libboost >=1.88.0,<1.89.0a0 - libboost-devel - - libgcc-ng >=12 - - libstdcxx-ng >=12 + - libgcc >=14 + - libstdcxx >=14 - mpfr >=4.2.1,<5.0a0 license: GPL3/LGPL3 purls: [] run_exports: {} - size: 5749053 - timestamp: 1724405951194 + size: 5866779 + timestamp: 1753275161432 - conda: https://conda.anaconda.org/conda-forge/linux-64/charls-2.4.4-hecca717_0.conda sha256: 285bb88f6229a1eb4772ab805fbc61ef786e27b5e9ca0b6434b13d2a728790bb md5: dc7072d888ba25c06d706d9dd4bd48ec @@ -7200,9 +7212,9 @@ packages: - libblas >=3.11.0,<4.0a0 size: 18804 timestamp: 1779859100675 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-1.86.0-hed09d94_4.conda - sha256: 2e9778d8c3bbc6e7698fd87a1499a68ca1f02be37f6aaefa7541eb2728ffbff3 - md5: b708abf3b6a0f3cf2f833d2edf18aff0 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-1.88.0-hed09d94_6.conda + sha256: 40b334d77229fcceb51d911a153d7ab9ff4f6a6f90e938387bf29129ab956c58 + md5: 70675d70a76e1b5539b1f464fd5f02ba depends: - __glibc >=2.17,<3.0.a0 - bzip2 >=1.0.8,<2.0a0 @@ -7217,33 +7229,33 @@ packages: license: BSL-1.0 purls: [] run_exports: {} - size: 2959099 - timestamp: 1756549412040 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-devel-1.86.0-hfcd1e18_4.conda - sha256: 2301427eb210dd3b09ae335856385b040db82ea4ef6afbc92a1aa0d4947bfa9f - md5: 89014e9211890d097ea823f9a22451b3 + size: 2978265 + timestamp: 1763017293494 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-devel-1.88.0-hfcd1e18_6.conda + sha256: 5abd12f5d09b133e50d97006294e9bddd5ca4fcfd47600f7af2c423ee4248329 + md5: 34506edc32bf34fe87b9167c1db3c594 depends: - - libboost 1.86.0 hed09d94_4 - - libboost-headers 1.86.0 ha770c72_4 + - libboost 1.88.0 hed09d94_6 + - libboost-headers 1.88.0 ha770c72_6 constrains: - boost-cpp <0.0a0 license: BSL-1.0 purls: [] run_exports: weak: - - libboost >=1.86.0,<1.87.0a0 - size: 38690 - timestamp: 1756549508060 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-headers-1.86.0-ha770c72_4.conda - sha256: e9e3178ae39650b6f3b1c79d5380e205668628c30ac42c930b186bcd61c59aaf - md5: 1cc7035631f5e331e09e1c56b816f242 + - libboost >=1.88.0,<1.89.0a0 + size: 39998 + timestamp: 1763017388984 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-headers-1.88.0-ha770c72_6.conda + sha256: 47329777ccff1119a2b23cf09c01bbba61af1580f607a6401787d43b6aa3fa1a + md5: e186cec17311f2bdc0d83c520c42276c constrains: - boost-cpp <0.0a0 license: BSL-1.0 purls: [] run_exports: {} - size: 14055378 - timestamp: 1756549426826 + size: 14583444 + timestamp: 1763017308042 - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.1.0-hb03c661_4.conda sha256: 2338a92d1de71f10c8cf70f7bb9775b0144a306d75c4812276749f54925612b6 md5: 1d29d2e33fe59954af82ef54a8af3fe1 @@ -10020,6 +10032,14 @@ packages: - muparser >=2.3.5,<2.4.0a0 size: 203174 timestamp: 1747116762269 +- conda: https://conda.anaconda.org/conda-forge/linux-64/nanoflann-1.6.1-hff21bea_0.conda + sha256: 0141796f802039a40d3e2bce0d1183040f8cd2c53453455cb1401df1eb01d478 + md5: acccd21b34ac988d1b26d15c53b28f65 + license: BSD + purls: [] + run_exports: {} + size: 25915 + timestamp: 1728332440211 - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.6-hdb14827_0.conda sha256: fc89f74bbe362fb29fa3c037697a89bec140b346a2469a90f7936d1d7ea4d8a3 md5: fc21868a1a5aacc937e7a18747acb8a5 @@ -12466,17 +12486,17 @@ packages: - eigen >=3.4.0,<3.4.1.0a0 size: 1509346 timestamp: 1778568761960 -- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/cgal-5.6.1-py312h6230e42_4.conda - sha256: 25ccc131680ea8090edb66ae3f915f12fc9cc0617ecc41764500f6482f50a914 - md5: d1e34f03772ffcc98032f1667fd3fae7 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/cgal-6.0.1-py312h5ad6c5f_3.conda + sha256: 94b8f0fe767e9bcbd63d2482fb832a239f1c85f96d73bd96f8fdb5f6fb5ceb14 + md5: c79c7563cf29f864a41bcdda7b592ac6 depends: - - cgal-cpp 5.6.1.* + - cgal-cpp 6.0.1.* - gmp >=6.3.0,<7.0a0 - - libboost >=1.86.0,<1.87.0a0 - - libgcc >=13 - - libstdcxx >=13 + - libboost >=1.88.0,<1.89.0a0 + - libgcc >=14 + - libstdcxx >=14 - mpfr >=4.2.1,<5.0a0 - - numpy >=1.19,<3 + - numpy >=1.23,<3 - python >=3.12,<3.13.0a0 - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 @@ -12484,23 +12504,23 @@ packages: license_family: GPL purls: [] run_exports: {} - size: 6205441 - timestamp: 1725440599794 -- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/cgal-cpp-5.6.1-h578bb86_2.conda - sha256: 6c4d97911e615cffc47e0457877e793ce4dcf5934289e38003f62062bc8b2c19 - md5: b1be591c1828d4112c93c0543c859231 + size: 7401060 + timestamp: 1765561851854 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/cgal-cpp-6.0.1-h3fceeef_1.conda + sha256: c9effaba0de2c2f0d3abc868ac2e9c8fe99a390b1c4b64b77c7051486e3c933e + md5: 73d221a991d1bde2f013818ad5c90efa depends: - eigen - - libboost >=1.86.0,<1.87.0a0 + - libboost >=1.88.0,<1.89.0a0 - libboost-devel - - libgcc-ng >=12 - - libstdcxx-ng >=12 + - libgcc >=14 + - libstdcxx >=14 - mpfr >=4.2.1,<5.0a0 license: GPL3/LGPL3 purls: [] run_exports: {} - size: 5756060 - timestamp: 1724406020420 + size: 5868588 + timestamp: 1753275198702 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/charls-2.4.4-hfae3067_0.conda sha256: 56883cfe62069e173343c4dc641473dbfbaf6513d25f428f9e48f53e8daefa75 md5: 7e681179cfdcf9c3fa60c31280416b49 @@ -13721,9 +13741,9 @@ packages: - libblas >=3.11.0,<4.0a0 size: 18843 timestamp: 1779859042591 -- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libboost-1.86.0-h6339299_4.conda - sha256: 407b5041c0455f424451a937dca4d112a1503e2b84e748ce891f4cb4713f53e4 - md5: a37b21976747c7451d4d60a14be014ae +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libboost-1.88.0-h6339299_6.conda + sha256: 19c1f57fd12fdbdc8fb7ede908fed0eea10a78dfa0aef8d13e70f5b1845d9f02 + md5: c7dd6db54e262c6718f035fe31612397 depends: - bzip2 >=1.0.8,<2.0a0 - icu >=75.1,<76.0a0 @@ -13737,33 +13757,33 @@ packages: license: BSL-1.0 purls: [] run_exports: {} - size: 3126365 - timestamp: 1756549539193 -- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libboost-devel-1.86.0-h37bb5a9_4.conda - sha256: 80458c2a5e398779527c2a7e10efd12aa397081a8c570ed5158766fe8e957eb5 - md5: 6298edbeec4be981e9ecb4baa43a0291 + size: 3106527 + timestamp: 1763017607450 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libboost-devel-1.88.0-h37bb5a9_6.conda + sha256: 0559804b7690b7b29ef480fbe08cacfe578d05d5128580aa631df6f234d66bd8 + md5: f3e086f05dfe57336ba739c5341dd1ac depends: - - libboost 1.86.0 h6339299_4 - - libboost-headers 1.86.0 h8af1aa0_4 + - libboost 1.88.0 h6339299_6 + - libboost-headers 1.88.0 h8af1aa0_6 constrains: - boost-cpp <0.0a0 license: BSL-1.0 purls: [] run_exports: weak: - - libboost >=1.86.0,<1.87.0a0 - size: 37704 - timestamp: 1756549634735 -- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libboost-headers-1.86.0-h8af1aa0_4.conda - sha256: 2aca1c68e0fe2d5dfdb067b84684d24e56802d936d7d460cafc1d5a208cdae68 - md5: 26c7fca41dee63427d0441e85a2b3262 + - libboost >=1.88.0,<1.89.0a0 + size: 38803 + timestamp: 1763017737045 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libboost-headers-1.88.0-h8af1aa0_6.conda + sha256: 816bbc0875cafb19cf933cca40088395d783c636feab134b2ada6dd9d26cecbe + md5: 0dc43aace408db1dd6bd2c7fc9e48c7f constrains: - boost-cpp <0.0a0 license: BSL-1.0 purls: [] run_exports: {} - size: 14040148 - timestamp: 1756549554879 + size: 14556248 + timestamp: 1763017626568 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libbrotlicommon-1.1.0-he30d5cf_4.conda sha256: fcd4f03086da6d32f23315ae53183e9889d1ce1c551da9dbfacd9cb735867b21 md5: a94d4448efbf2053f07342bf56ea0607 @@ -16175,6 +16195,14 @@ packages: - muparser >=2.3.5,<2.4.0a0 size: 179867 timestamp: 1747116846991 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/nanoflann-1.6.1-h17cf362_0.conda + sha256: dac60cff789e8e31f4a03621e0e6245d8687c38054535457309ece4fcec1917c + md5: 42cc1fd8821a5a824a643a4ed055e24e + license: BSD + purls: [] + run_exports: {} + size: 25905 + timestamp: 1728332554740 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ncurses-6.6-hf8d1292_0.conda sha256: 369db85c5cd8d99dde364ce70725d76511d9c8199e5b820c740414091bf5bcca md5: b2a43456aa56fe80c2477a5094899eff @@ -19660,17 +19688,17 @@ packages: - eigen >=3.4.0,<3.4.1.0a0 size: 1253039 timestamp: 1778570250806 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/cgal-5.6.1-py312hce81f85_4.conda - sha256: 74150d6ed0dd74d96a3b2bdb40f039a15b93d3f4d90b6ed975b04f7c924346d7 - md5: d913ea86cb3efe6f647cfd2b6052b071 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/cgal-6.0.1-py312h0fb87b3_3.conda + sha256: d73477a521b360830d9fb67e93b28059bafa3dca58e8542098af661d7219993c + md5: 5fa7db802d1bd29b4fab6661d213df5b depends: - __osx >=11.0 - - cgal-cpp 5.6.1.* + - cgal-cpp 6.0.1.* - gmp >=6.3.0,<7.0a0 - - libboost >=1.86.0,<1.87.0a0 - - libcxx >=17 + - libboost >=1.88.0,<1.89.0a0 + - libcxx >=19 - mpfr >=4.2.1,<5.0a0 - - numpy >=1.19,<3 + - numpy >=1.23,<3 - python >=3.12,<3.13.0a0 - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 @@ -19678,23 +19706,23 @@ packages: license_family: GPL purls: [] run_exports: {} - size: 5267010 - timestamp: 1725440560136 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/cgal-cpp-5.6.1-h5f86f28_2.conda - sha256: 7499a25eadef31d6ffed5f11f757236a26088abeeb7b3ec972ba34335c0fb0a0 - md5: ab750c243bc955a87a5c3b751bd7632e + size: 5070497 + timestamp: 1765562325666 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/cgal-cpp-6.0.1-hbc35424_1.conda + sha256: 6eb977e64637115d2e08c4783a30c8e1128de4bd92efd8a34ebaafc6bc189d68 + md5: e995dba89b350789bd8356ce15c7e4cf depends: - __osx >=11.0 - eigen - - libboost >=1.86.0,<1.87.0a0 + - libboost >=1.88.0,<1.89.0a0 - libboost-devel - - libcxx >=16 + - libcxx >=19 - mpfr >=4.2.1,<5.0a0 license: GPL3/LGPL3 purls: [] run_exports: {} - size: 5770597 - timestamp: 1724406149482 + size: 5897125 + timestamp: 1753275376401 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/charls-2.4.4-hf6b4638_0.conda sha256: f4fd475fbee76984c99f99daacef5b8b7dac67ff9117c32f873cd6eb2b9bfe57 md5: 6e1205a502ac0ff3c45a98513db81615 @@ -20897,9 +20925,9 @@ packages: - libblas >=3.11.0,<4.0a0 size: 18949 timestamp: 1779859141315 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libboost-1.86.0-hf493ff8_4.conda - sha256: 045e14f278f081c642325e382a81bb7593cd19a91a0208a6ee86217954493b8d - md5: abb88838f1ba4f91f588f8eb47bc0549 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libboost-1.88.0-h18cd856_6.conda + sha256: 717fbfa249f14fb1c6ce564cd0f242460cbc1703b584ad4063366ee349b22325 + md5: 605e24dba1de926ae54fc01ab557dfa8 depends: - __osx >=11.0 - bzip2 >=1.0.8,<2.0a0 @@ -20913,33 +20941,33 @@ packages: license: BSL-1.0 purls: [] run_exports: {} - size: 1961984 - timestamp: 1756549827458 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libboost-devel-1.86.0-hf450f58_4.conda - sha256: 86ee9346a9c33aa33b21c37bf646e9a98fec5f250c6d30e0cfc8a5255ad7b939 - md5: 696d5b5012138dbe1839e567865bc957 + size: 1954928 + timestamp: 1763019429173 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libboost-devel-1.88.0-hf450f58_6.conda + sha256: 794ca2145f99e347cfd379843b531aa0b494870778bc8f3cc5aef037fb174ff9 + md5: bd9ce2843b13383efa2c7687105ad4b9 depends: - - libboost 1.86.0 hf493ff8_4 - - libboost-headers 1.86.0 hce30654_4 + - libboost 1.88.0 h18cd856_6 + - libboost-headers 1.88.0 hce30654_6 constrains: - boost-cpp <0.0a0 license: BSL-1.0 purls: [] run_exports: weak: - - libboost >=1.86.0,<1.87.0a0 - size: 38243 - timestamp: 1756549986601 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libboost-headers-1.86.0-hce30654_4.conda - sha256: bb5378f4f366915559cc56c4fba2b69259d4c69f0e7943f020d7b8a47d3ec75f - md5: ea7a73d0ddf903c172666bd521ea07ca + - libboost >=1.88.0,<1.89.0a0 + size: 39738 + timestamp: 1763019732573 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libboost-headers-1.88.0-hce30654_6.conda + sha256: dbf2e98c2f9987e9456afc5321911258cff22fc632e35286704fd15247090f02 + md5: 2c6c26ccc8395de079dd8ad4ce4dd682 constrains: - boost-cpp <0.0a0 license: BSL-1.0 purls: [] run_exports: {} - size: 14133907 - timestamp: 1756549852688 + size: 14688515 + timestamp: 1763019497953 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlicommon-1.1.0-h6caf38d_4.conda sha256: 023b609ecc35bfee7935d65fcc5aba1a3ba6807cbba144a0730198c0914f7c79 md5: 231cffe69d41716afe4525c5c1cc5ddd @@ -23088,6 +23116,14 @@ packages: - muparser >=2.3.5,<2.4.0a0 size: 154087 timestamp: 1747117056226 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/nanoflann-1.6.1-hd04e3b9_0.conda + sha256: ad51fe356a0162d075ff40b28c6bce739d0ba1cc88ecc20345f8465f967e89b2 + md5: e951f716fef5b6f2c12e907a69c9f7bd + license: BSD + purls: [] + run_exports: {} + size: 26047 + timestamp: 1728332507009 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.6-h1d4f5a5_0.conda sha256: 4ea6c620b87bd1d42bb2ccc2c87cd2483fa2d7f9e905b14c223f11ff3f4c455d md5: 343d10ed5b44030a2f67193905aea159 @@ -24887,42 +24923,42 @@ packages: - eigen >=3.4.0,<3.4.1.0a0 size: 967363 timestamp: 1778569937739 -- conda: https://conda.anaconda.org/conda-forge/win-64/cgal-5.6.1-py312h0d2d5cd_4.conda - sha256: da7567fe55ffe2a37584efd6ff475b71ccf4f84161a13de039a1409f9da01902 - md5: 47b78c7480d53982a03cfb831c766fb4 +- conda: https://conda.anaconda.org/conda-forge/win-64/cgal-6.0.1-py312h96e49e0_3.conda + sha256: 9dc1fa44531887468ac6cabec5a46663f1a0312a8115bf959b9a9f655caf5097 + md5: 8d79ad11602a3f9ef3e322f430895394 depends: - - cgal-cpp 5.6.1.* + - cgal-cpp 6.0.1.* - gmp >=6.3.0,<7.0a0 - - libboost >=1.86.0,<1.87.0a0 + - libboost >=1.88.0,<1.89.0a0 - mpfr >=4.2.1,<5.0a0 - - numpy >=1.19,<3 + - numpy >=1.23,<3 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 license: GPL-3.0-or-later license_family: GPL purls: [] run_exports: {} - size: 4725770 - timestamp: 1725440549263 -- conda: https://conda.anaconda.org/conda-forge/win-64/cgal-cpp-5.6.1-h31bd75c_2.conda - sha256: 38ccfefdef2a6e38e16ca61f8c721d79d9e8595c6cf9950bfca98b6abd1b90fc - md5: e8139004e8d33a14ec6558ad5af3eacd + size: 4911439 + timestamp: 1765561772372 +- conda: https://conda.anaconda.org/conda-forge/win-64/cgal-cpp-6.0.1-hc4f255e_1.conda + sha256: a1f688c4534805745ecdf5af56693e51cc9f08ca229aa0833b9bcd8d38809319 + md5: 1d24d2a3da87350a846ab3bdbd4b9396 depends: - eigen - - libboost >=1.86.0,<1.87.0a0 + - libboost >=1.88.0,<1.89.0a0 - libboost-devel - mpfr >=4.2.1,<5.0a0 - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 license: GPL3/LGPL3 purls: [] run_exports: {} - size: 5802544 - timestamp: 1724406386285 + size: 5890254 + timestamp: 1753275328387 - conda: https://conda.anaconda.org/conda-forge/win-64/charls-2.4.4-h7cafa3a_0.conda sha256: d82c9d26232fa87829baa82e33cad8a1cb3d2d8835edc9917956b70d18f5e07d md5: 45c00fb3c1b591383953c0385f1afafd @@ -26200,9 +26236,9 @@ packages: - libblas >=3.11.0,<4.0a0 size: 68082 timestamp: 1774503684284 -- conda: https://conda.anaconda.org/conda-forge/win-64/libboost-1.86.0-h9dfe17d_5.conda - sha256: 85ad2e31f2e603a74b5276b49a156dba3f137df08c8316b7bc956d791d147696 - md5: 2ccf85deef654aba17b733e6ed340b93 +- conda: https://conda.anaconda.org/conda-forge/win-64/libboost-1.88.0-h9dfe17d_7.conda + sha256: fad63bb3b722d4fc50c8258fc30402970ad36baf73edd87c1b647bdd6aed3f04 + md5: e13bc25d81b0132a0c51eb5cc179b0e9 depends: - bzip2 >=1.0.8,<2.0a0 - libiconv >=1.18,<2.0a0 @@ -26214,36 +26250,37 @@ packages: - zstd >=1.5.7,<1.6.0a0 constrains: - boost-cpp <0.0a0 + - __win ==0|>=10 license: BSL-1.0 purls: [] run_exports: {} - size: 2399304 - timestamp: 1766349425761 -- conda: https://conda.anaconda.org/conda-forge/win-64/libboost-devel-1.86.0-h1c1089f_5.conda - sha256: 5bcd5e7cf72f0f8f1748a7d156e51fa18a61cb2a92a037cffd15f6ae70fc8558 - md5: 12f7966be6135f476cc1064f9ea2e21d + size: 2404502 + timestamp: 1766348533008 +- conda: https://conda.anaconda.org/conda-forge/win-64/libboost-devel-1.88.0-h1c1089f_7.conda + sha256: b68a3d2d10f1837f8c4c1029a70e4beeab8740e9f22de081caac8efcd7b0b8d3 + md5: 1706ad0abc99f425edac178d4bd91f8d depends: - - libboost 1.86.0 h9dfe17d_5 - - libboost-headers 1.86.0 h57928b3_5 + - libboost 1.88.0 h9dfe17d_7 + - libboost-headers 1.88.0 h57928b3_7 constrains: - boost-cpp <0.0a0 license: BSL-1.0 purls: [] run_exports: weak: - - libboost >=1.86.0,<1.87.0a0 - size: 40977 - timestamp: 1766349615743 -- conda: https://conda.anaconda.org/conda-forge/win-64/libboost-headers-1.86.0-h57928b3_5.conda - sha256: 010d6a8326620357cb644538f6b6f9d3653415b7e043a1dd648bad4f283551e6 - md5: 8b85fc5582003d0214e068c6103cbbaa + - libboost >=1.88.0,<1.89.0a0 + size: 42557 + timestamp: 1766348731376 +- conda: https://conda.anaconda.org/conda-forge/win-64/libboost-headers-1.88.0-h57928b3_7.conda + sha256: 64109e62262e5b4a2125a2a44edc087d0443b2dbd2dd1cabf7442b3e32a1be35 + md5: e7fb10a0c6fa8639eaa61ee453dfe90f constrains: - boost-cpp <0.0a0 license: BSL-1.0 purls: [] run_exports: {} - size: 14181796 - timestamp: 1766349485667 + size: 14701109 + timestamp: 1766348593737 - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlicommon-1.1.0-hfd05255_4.conda sha256: 65d0aaf1176761291987f37c8481be132060cc3dbe44b1550797bc27d1a0c920 md5: 58aec7a295039d8614175eae3a4f8778 @@ -28490,6 +28527,14 @@ packages: - muparser >=2.3.5,<2.4.0a0 size: 148557 timestamp: 1747117340968 +- conda: https://conda.anaconda.org/conda-forge/win-64/nanoflann-1.6.1-hc790b64_0.conda + sha256: dd027ddfd13732b0463b43f197167d5174c486397f8be89efc5fdaca6252ad90 + md5: a2717e5d411b4a87fd3510c4bc50c898 + license: BSD + purls: [] + run_exports: {} + size: 26303 + timestamp: 1728332702722 - conda: https://conda.anaconda.org/conda-forge/win-64/ninja-1.13.2-h477610d_0.conda sha256: e41a945c34a5f0bd2109b73a65486cd93023fa0a9bcba3ef98f9a3da40ba1180 md5: 7ecb9f2f112c66f959d2bb7dbdb89b67 @@ -30371,20 +30416,20 @@ packages: - pytest-cov>=2.2.0 ; extra == 'test' - pytest>=2.8.2 ; extra == 'test' - shapely ; extra == 'test' - - numpydoc ; extra == 'all' - - boto3>=1.2.4 ; extra == 'all' - - ghp-import ; extra == 'all' - - packaging ; extra == 'all' - - sphinx-click ; extra == 'all' - - matplotlib ; extra == 'all' - fsspec ; extra == 'all' - - hypothesis ; extra == 'all' - - shapely ; extra == 'all' + - sphinx-click ; extra == 'all' + - boto3>=1.2.4 ; extra == 'all' - pytest>=2.8.2 ; extra == 'all' + - packaging ; extra == 'all' + - ipython>=2.0 ; extra == 'all' - pytest-cov>=2.2.0 ; extra == 'all' - sphinx-rtd-theme ; extra == 'all' + - hypothesis ; extra == 'all' - sphinx ; extra == 'all' - - ipython>=2.0 ; extra == 'all' + - shapely ; extra == 'all' + - ghp-import ; extra == 'all' + - numpydoc ; extra == 'all' + - matplotlib ; extra == 'all' requires_python: '>=3.9' - pypi: https://files.pythonhosted.org/packages/e7/67/ce06267c5fc5c7bb1cc027410a75cca0c5232afa1d4072ff2abe685cb923/rerun_sdk-0.27.2-cp310-abi3-manylinux_2_28_aarch64.whl name: rerun-sdk diff --git a/pixi.toml b/pixi.toml index a828c0459..756483b8a 100644 --- a/pixi.toml +++ b/pixi.toml @@ -16,7 +16,8 @@ platforms = ["linux-64-cuda-12-0", "win-64-cuda-12-0"] [dependencies] beautifulsoup4 = "==4.13.4" ceres-solver = "==2.2.0" -cgal = "5.6.*" # OpenMVS +cgal = "6.*" # OpenMVS v2.4.0 (AABB_traits_3.h, renamed in CGAL 6) +nanoflann = "*" # OpenMVS v2.4.0 (libs/Common, REQUIRED) cloudpickle = "*" # OpenSfM (parallel serialization) exifread = "==3.5.1" exiftool = "*" diff --git a/stages/openmvs.py b/stages/openmvs.py index 55e13a1c8..0fe25f2be 100644 --- a/stages/openmvs.py +++ b/stages/openmvs.py @@ -60,6 +60,7 @@ def process(self, args, outputs): log.ODM_INFO("Estimating depthmaps") number_views_fuse = 2 + fusion_filter = {'merge': 0, 'fuse': 1, 'dense-fuse': 2}[args.pc_fusion_filter] densify_ini_file = os.path.join(tree.openmvs, 'Densify.ini') subres_levels = 2 # The number of lower resolutions to process before estimating output resolution depthmap. filter_point_th = -20 @@ -72,7 +73,13 @@ def process(self, args, outputs): "--min-resolution %s" % min_resolution, "--max-threads %s" % args.max_concurrency, "--number-views-fuse %s" % number_views_fuse, + "--fusion-filter %s" % fusion_filter, + "--fusion-depth-diff-threshold %s" % args.pc_fusion_depth_diff, + "--fusion-reprojection-threshold %s" % args.pc_fusion_reprojection, "--sub-resolution-levels %s" % subres_levels, + "--postprocess-dmaps 7", # 2.4.0 default changed to 0 + "--tower-mode 3", + "--up-axis 2", "--archive-type 3", '-w "%s"' % depthmaps_dir, "-v 0" @@ -90,6 +97,9 @@ def process(self, args, outputs): if args.pc_skip_geometric: extra_config.append("--geometric-iters 0") + if not args.pc_crop_to_roi: + extra_config.append("--crop-to-roi 0") + masks_dir = os.path.join(tree.opensfm, "undistorted", "masks") masks = os.path.exists(masks_dir) and len(os.listdir(masks_dir)) > 0 if masks: @@ -166,6 +176,9 @@ def run_densify(): "--sub-resolution-levels %s" % subres_levels, '--dense-config-file "%s"' % subscene_densify_ini_file, '--number-views-fuse %s' % number_views_fuse, + '--fusion-filter %s' % fusion_filter, + '--fusion-depth-diff-threshold %s' % args.pc_fusion_depth_diff, + '--fusion-reprojection-threshold %s' % args.pc_fusion_reprojection, '--max-threads %s' % args.max_concurrency, '--archive-type 3', '--postprocess-dmaps 0', From 7c80a2bd5b2f1be36fc618b241774be03a30658b Mon Sep 17 00:00:00 2001 From: Leonardo Date: Tue, 1 Sep 2026 12:22:23 +0300 Subject: [PATCH 2/4] Fixing GPU build for OpenMVS We have the policy for empty variables: IF(POLICY CMP0104) # Initialize CMAKE_CUDA_ARCHITECTURES when CMAKE_CUDA_COMPILER_ID is NVIDIA. Raise an error if CUDA_ARCHITECTURES is empty. CMAKE_POLICY(SET CMP0104 NEW) ENDIF() and then: UNSET(CMAKE_CUDA_ARCHITECTURES) Setting: -DCMAKE_CUDA_ARCHITECTURES=OFF Prevents the policy violation while preserving the intent. --- SuperBuild/cmake/External-OpenMVS.cmake | 1 + 1 file changed, 1 insertion(+) diff --git a/SuperBuild/cmake/External-OpenMVS.cmake b/SuperBuild/cmake/External-OpenMVS.cmake index 6e2966291..dc3c06c5a 100644 --- a/SuperBuild/cmake/External-OpenMVS.cmake +++ b/SuperBuild/cmake/External-OpenMVS.cmake @@ -116,6 +116,7 @@ ExternalProject_Add(${_proj_name} -DOpenMVS_MAX_CUDA_COMPATIBILITY=ON -DINSTALL_USE_SUBDIR=OFF -DOpenMVS_USE_CUDA=${SB_ENABLE_CUDA} + -DCMAKE_CUDA_ARCHITECTURES=OFF ${GPU_CMAKE_ARGS} ${CONDA_CMAKE_ARGS} ${OPENMVS_WIN_CONDA_ARGS} From ed440167369248ee03ffb258adb7d923a59020df Mon Sep 17 00:00:00 2001 From: Michael Johnson Date: Tue, 15 Sep 2026 17:29:06 +0100 Subject: [PATCH 3/4] Cap SuperBuild parallelism in the Docker image builds The image builds have been dying on the free GitHub runners at the same point: once the small externals finish, ninja starts openpointclass, draco, opensfm, openmvs, pypopsift and poissonrecon together, each running its own cores+2 inner build. Output stops, and some minutes to an hour later GitHub reports "The hosted runner lost communication with the server". The GPU image failed four of five attempts this way, and the CPU image then failed on both amd64 and arm64 in one run. Pass CMAKE_BUILD_PARALLEL_LEVEL=3 from both Docker workflows as a build argument. cmake --build honours it at the SuperBuild level and inside every ExternalProject that builds through cmake, so the total is bounded at 9 jobs. The value stays in the workflows because it is tuned to the runner; each Dockerfile only declares the ARG, so local builds are unchanged. The native-builds workflow already sets the same variable as a step env. Two SuperBuild changes make the cap reach everything. The top-level nproc block now runs before the External-*.cmake files are included, so they can share it. External-OpenSfM.cmake no longer computes its own ProcessorCount and passes --parallel; that was left over from when OpenSfM built with plain make, and under Ninja it only overrode the cap. --- .github/workflows/docker-gpu.yaml | 5 +++++ .github/workflows/docker.yaml | 5 +++++ Dockerfile | 1 + SuperBuild/CMakeLists.txt | 8 ++++---- SuperBuild/cmake/External-OpenSfM.cmake | 4 +--- gpu.Dockerfile | 1 + 6 files changed, 17 insertions(+), 7 deletions(-) diff --git a/.github/workflows/docker-gpu.yaml b/.github/workflows/docker-gpu.yaml index 80381734a..5d520b458 100644 --- a/.github/workflows/docker-gpu.yaml +++ b/.github/workflows/docker-gpu.yaml @@ -38,6 +38,11 @@ jobs: push: ${{ github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/v') }} file: ./gpu.Dockerfile target: runtime + # The SuperBuild nests ninja inside ninja; uncapped, both levels run + # cores+2 jobs and the free 16 GB runner is starved until GitHub kills + # it. cmake --build honours this at both levels, so 3 bounds it at 9. + build-args: | + CMAKE_BUILD_PARALLEL_LEVEL=3 platforms: linux/amd64 set-meta-labels: true meta-images: opendronemap/odm diff --git a/.github/workflows/docker.yaml b/.github/workflows/docker.yaml index 41261e12e..794d471a9 100644 --- a/.github/workflows/docker.yaml +++ b/.github/workflows/docker.yaml @@ -25,6 +25,11 @@ jobs: push: ${{ github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/v') }} file: ./Dockerfile target: runtime + # The SuperBuild nests ninja inside ninja; uncapped, both levels run + # cores+2 jobs and the free 16 GB runner is starved until GitHub kills + # it. cmake --build honours this at both levels, so 3 bounds it at 9. + build-args: | + CMAKE_BUILD_PARALLEL_LEVEL=3 platforms: | linux/amd64 linux/arm64 diff --git a/Dockerfile b/Dockerfile index 7c47f360e..4d92244eb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -19,6 +19,7 @@ RUN pixi install --locked \ && rm -rf .pixi/envs/prod/include .pixi/envs/prod/share/doc .pixi/envs/prod/share/man .pixi/envs/prod/share/info COPY . ./ +ARG CMAKE_BUILD_PARALLEL_LEVEL RUN pixi run build && pixi run test RUN mkdir -p /odm-runtime/SuperBuild /odm-runtime/scripts \ diff --git a/SuperBuild/CMakeLists.txt b/SuperBuild/CMakeLists.txt index 4f5d842c5..576803e7e 100644 --- a/SuperBuild/CMakeLists.txt +++ b/SuperBuild/CMakeLists.txt @@ -140,10 +140,6 @@ externalproject_add(mve INSTALL_COMMAND "" ) -foreach(lib ${custom_libs}) - SETUP_EXTERNAL_PROJECT_CUSTOM(${lib}) -endforeach() - include(ProcessorCount) if(DEFINED ENV{CMAKE_BUILD_PARALLEL_LEVEL}) set(nproc $ENV{CMAKE_BUILD_PARALLEL_LEVEL}) @@ -151,6 +147,10 @@ else() ProcessorCount(nproc) endif() +foreach(lib ${custom_libs}) + SETUP_EXTERNAL_PROJECT_CUSTOM(${lib}) +endforeach() + if (WIN32) find_program(MSBUILD_EXECUTABLE msbuild REQUIRED) if(NOT CMAKE_VS_PLATFORM_TOOLSET) diff --git a/SuperBuild/cmake/External-OpenSfM.cmake b/SuperBuild/cmake/External-OpenSfM.cmake index 6b3b78dff..5bd2239c2 100644 --- a/SuperBuild/cmake/External-OpenSfM.cmake +++ b/SuperBuild/cmake/External-OpenSfM.cmake @@ -1,7 +1,5 @@ set(_proj_name opensfm) set(_SB_BINARY_DIR "${SB_BINARY_DIR}/${_proj_name}") -include(ProcessorCount) -ProcessorCount(nproc) set(EXTRA_INCLUDE_DIRS "") set(OPENSFM_ADDITIONAL_INCLUDE_DIRS "") @@ -19,7 +17,7 @@ if(WIN32) set(OPENSFM_EXTRA_LINKER_FLAGS "$ENV{CONDA_PREFIX}/Library/lib/glog.lib $ENV{CONDA_PREFIX}/Library/lib/gflags.lib") else() set(OPENSFM_ADDITIONAL_INCLUDE_DIRS "${SB_INSTALL_DIR}/include") - set(BUILD_CMD ${CMAKE_COMMAND} --build . --parallel ${nproc}) + set(BUILD_CMD ${CMAKE_COMMAND} --build .) endif() set(OPENSFM_CERES_ROOT_DIR "${SB_INSTALL_DIR}") diff --git a/gpu.Dockerfile b/gpu.Dockerfile index 15cc0822a..27f5dcf5d 100644 --- a/gpu.Dockerfile +++ b/gpu.Dockerfile @@ -23,6 +23,7 @@ RUN pixi install --locked -e gpu \ && rm -rf .pixi/envs/gpu-prod/include .pixi/envs/gpu-prod/share/doc .pixi/envs/gpu-prod/share/man .pixi/envs/gpu-prod/share/info COPY . ./ +ARG CMAKE_BUILD_PARALLEL_LEVEL RUN pixi run -e gpu build && pixi run -e gpu test RUN mkdir -p /odm-runtime/SuperBuild /odm-runtime/scripts \ From 969ae57eea85d5ef71b169e4dc338fa56d7f24ae Mon Sep 17 00:00:00 2001 From: Michael Johnson Date: Wed, 16 Sep 2026 11:45:30 +0100 Subject: [PATCH 4/4] Pin OpenMVS to the fork commit with the pkg-config backport The macOS native build failed linking DensifyPointCloud and ReconstructMesh with "library not found for -ljxl": the v2.4.0 pkg-config macro fell back to a bare -ljxl because conda-forge ships libjxl only as a shared library. The fork's omvs-v240 branch now carries upstream's fix for that macro on top of v2.4.0, and drops the upstream CI workflow that cannot run without the vcpkg manifest the fork removes. --- SuperBuild/cmake/External-OpenMVS.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SuperBuild/cmake/External-OpenMVS.cmake b/SuperBuild/cmake/External-OpenMVS.cmake index dc3c06c5a..0d9455c8e 100644 --- a/SuperBuild/cmake/External-OpenMVS.cmake +++ b/SuperBuild/cmake/External-OpenMVS.cmake @@ -100,7 +100,7 @@ ExternalProject_Add(${_proj_name} #--Download step-------------- DOWNLOAD_DIR ${SB_DOWNLOAD_DIR} GIT_REPOSITORY https://github.com/OpenDroneMap/openMVS - GIT_TAG d7081f414e3b6d0bdb7ade59ac071d049fdee29e + GIT_TAG e7eda74782ffb97ec09a684e88361458e7ec2d1e #--Update/Patch step---------- UPDATE_COMMAND "" PATCH_COMMAND ${OPENMVS_PATCH_COMMAND}