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-OpenMVS.cmake b/SuperBuild/cmake/External-OpenMVS.cmake index 7eb58fbd7..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 355 + GIT_TAG e7eda74782ffb97ec09a684e88361458e7ec2d1e #--Update/Patch step---------- UPDATE_COMMAND "" PATCH_COMMAND ${OPENMVS_PATCH_COMMAND} @@ -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} 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 \ 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',