This repo is a fork of nicopietroni/quadwild. The original readme is preserved as README_orig.md
Its main purpose is to demonstrate the use of Bi-MDF quantization, see our Project page.
The main code for Bi-MDF modeling can be found in libs/quadretopology/quadretopology/qr_flow.cpp
- Add Bi-MDF solver for quantization that can be used instead of Gurobi IQPs
- Changed to CMake build system
- Fixed alignment bug
- Changed commandline arguments
- Extended config file format
- Build without Gurobi -- controlled by CMake variable
QUADRETOPOLOGY_WITH_GUROBI
We provide pre-built binaries in the Releases section for Linux, Windows and MacOS (arm64+x86_64).
You will need a relatively recent C++ compiler and CMake.
On MacOS, you can get them from Homebrew using brew install git cmake
.
This will also automatically install the required XCode Command Line Tools.
git clone --recursive https://github.com/cgg-bern/quadwild-bimdf/
cd quadwild-bimdf
cmake . -B build -DSATSUMA_ENABLE_BLOSSOM5=0
cmake --build build
./build/Build/bin/quadwild path/to/input/mesh.obj 2 config/prep_config/basic_setup.txt
./build/Build/bin/quad_from_patches path/to/input/mesh_rem_p0.obj 123 config/main_config/flow_noalign_lemon.txt
Note that you need to add _rem_p0.obj
to the filename of the input mesh; this is
the output from the main quadwild binary.
We included sample config files in config/
. To improve output quality, adjust them to your needs :)
The Dockerfile will most likely also work using Docker, but we didn't test this.
You can install podman using Homebrew with brew install podman
.
On MacOS, all podman containers live in a Linux VM. If you don't have one yet, create one using
podman machine init
For a successful build, more memory than the default is requried, and more CPU cores speed it up:
podman machine stop # only required if running
podman machine set --memory 8192 podman-machine-default
podman machine set --cpus 4 podman-machine-default
podman machine start
Create the container:
podman build . --build-arg WITH_GUROBI=0 -t quadwild-bimdf
Run the binaries; you need to mount some volume into the container to access your data, for example mapping /Users
:
podman run --rm --volume /Users:/Users quadwild-bimdf quadwild arguments-as-described-above
podman run --rm --volume /Users:/Users quadwild-bimdf quad_from_patches arguments-as-described-above
QuadWild as well as our additions and changes are licensed under the GPL3.
This project has been developed as part of the AlgoHex project, which has received funding from the European Research Council (ERC) under the European Union’s Horizon 2020 research and innovation programme (Grant agreement No. 853343).