{"id":13714952,"url":"https://github.com/hjwdzh/QuadriFlow","last_synced_at":"2025-05-07T03:31:06.458Z","repository":{"id":37514139,"uuid":"114520175","full_name":"hjwdzh/QuadriFlow","owner":"hjwdzh","description":"QuadriFlow: A Scalable and Robust Method for Quadrangulation","archived":false,"fork":false,"pushed_at":"2019-12-07T19:02:04.000Z","size":16838,"stargazers_count":674,"open_issues_count":7,"forks_count":77,"subscribers_count":32,"default_branch":"master","last_synced_at":"2024-11-14T03:34:19.205Z","etag":null,"topics":["geometry","quad","quadrangulation","quadriflow","remeshing"],"latest_commit_sha":null,"homepage":"http://stanford.edu/~jingweih/papers/quadriflow/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hjwdzh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-12-17T08:12:09.000Z","updated_at":"2024-11-13T03:00:22.000Z","dependencies_parsed_at":"2022-08-02T01:09:57.247Z","dependency_job_id":null,"html_url":"https://github.com/hjwdzh/QuadriFlow","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hjwdzh%2FQuadriFlow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hjwdzh%2FQuadriFlow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hjwdzh%2FQuadriFlow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hjwdzh%2FQuadriFlow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hjwdzh","download_url":"https://codeload.github.com/hjwdzh/QuadriFlow/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252806414,"owners_count":21807199,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["geometry","quad","quadrangulation","quadriflow","remeshing"],"created_at":"2024-08-03T00:00:52.373Z","updated_at":"2025-05-07T03:31:02.780Z","avatar_url":"https://github.com/hjwdzh.png","language":"C++","funding_links":[],"categories":["Meshing","Libraries","Maths"],"sub_categories":["Quadrilateral and hexahedral meshing","Geometry"],"readme":"# QuadriFlow: A Scalable and Robust Method for Quadrangulation\n\nSource code for the paper:\n\nJingwei Huang, Yichao Zhou, Matthias Niessner, Jonathan Shewchuk and Leonidas Guibas. [**QuadriFlow: A Scalable and Robust Method for Quadrangulation**](http://stanford.edu/~jingweih/papers/quadriflow/quadriflow.pdf), The Eurographics Symposium on Geometry Processing (SGP) 2018.\n\n\u003c!-- ## Processing Result --\u003e\n![QuadriFlow Results](https://github.com/hjwdzh/quadriflow/raw/master/img/result.jpg)\n\n## WebGL Application\nOur 3D WebGL Apps for QuadriFlow are online!  Without any installation, you are able to\n*  [**Compare**](https://yichaozhou.com/publication/1805quadriflow/#demo) QuadriFlow with previous methods;\n*  [**Quadrangulate**](https://yichaozhou.com/publication/1805quadriflow/#tool) your own meshes and\n    download the result!\n\n## Desktop Software\nThe software supports cmake build for Linux/Mac/Windows systems. For linux and mac users, run **`sh demo.sh`** to build and try the QuadriFlow example, which converts `examples/Gargoyle_input.obj` to `examples/Gargoyle_quadriflow.obj`.\n\n### Install\n\n```\ngit clone git://github.com/hjwdzh/quadriflow\ncd quadriflow\nmkdir build\ncd build\ncmake .. -DCMAKE_BUILD_TYPE=release\nmake -j\n```\n\n### QuadriFlow Software\n\nWe take a manifold triangle mesh `input.obj` and generate a manifold quad mesh `output.obj`. The face number increases linearly with the resolution controled by the user.\n\n```\n./quadriflow -i input.obj -o output.obj -f [resolution]\n```\n\nHere, the resolution is the desired number of faces in the quad mesh.\n\n## Advanced Functions\n\n### Min-cost Flow\nBy default, `quadriflow` uses the Boykov maximum flow solver from boost because it is faster.  To\nenable the adaptive network simplex minimum-cost flow solver, you can enable the `-mcf` option:\n\n```\n./quadriflow -mcf -i input.obj -o output.obj -f [resolution]\n```\n\n### Sharp Preserving\nBy default, `quadriflow` does not explicitly detect and preserve the sharp edges in the model. To\nenable this feature, uses\n\n```\n./quadriflow -sharp -i input.obj -o output.obj -f [resolution]\n```\n\n### SAT Flip Removal (Unix Only)\nBy default, `quadriflow` does not use the SAT solver to remove the flips in the integer offsets\nmap.  To remove the flips and guarantee a watertight result mesh, you can enable the SAT solver.\nFirst, make sure that `minisat` and `timeout` is properly installed under your `${PATH}`.  The\nformer can be done by building `3rd/MapleCOMSPS_LRB/CMakeLists.txt` and copying `minisat` to `/usr/bin`.\nIn addition, `timeout` is included in coreutils. If you are using Mac, you can install it using\nhomebrew:\n```\nbrew install coreutils\nexport PATH=\"/usr/local/opt/coreutils/libexec/gnubin:$PATH\"\n```\n\nYou can verify if those binaries are properly installed by executing\n```\nwhich minisat\nwhich timeout\n```\n\nAfter that, you can enable SAT flip removal procedure by executing\n```\n./quadriflow -sat -i input.obj -o output.obj -f [resolution]\n```\n\nWhen using the SAT flip removal, we also suggest you enabling the verbose logging to understand\nwhat is going on. You can build quadriflow with the following options:\n```\ncmake .. -DCMAKE_BUILD_TYPE=release -DBUILD_LOG=ON\n```\n\n### GUROBI Support (For Benchmark Purpose)\n\nTo use the Gurobi integer programming to solve the integer offset problem, you can build QuadriFlow with\n```\ncmake .. -DCMAKE_BUILD_TYPE=release -DBUILD_GUROBI=ON -DBUILD_LOG=ON\n```\nThis override other solvers and should only be used for benchmark purpose.\n\n## External Dependencies\n* Boost\n* Eigen\n* OpenMP (optional in CMake)\n* TBB (optional in CMake)\n* GUROBI (for benchmark purpose only)\n\n## Licenses\n\nQuadriFlow is released under [MIT License](LICENSE.txt).\nFor 3rd dependencies,\n* Boost and Lemon are released under [Boost Software License](https://lemon.cs.elte.hu/trac/lemon/wiki/License)\n* Most part of Eigen is released under [MPL2](https://www.mozilla.org/en-US/MPL/2.0/FAQ/)\n    * Sparse Cholesky Decomposition algorithms are released under LGPL\n    * To replace it using Sparse LU decomposition with a more permissive MPL2 license (a little slower), enable `BUILD_FREE_LICENSE` in CMake (e.g., `-DBUILD_FREE_LICENSE=ON`).\n* `pcg32.h` is released under the Apache License, Version 2.0\n* `parallel_stable_sort.h` is released under the MIT License\n\n## Authors\n- [Jingwei Huang](mailto:jingweih@stanford.edu)\n- [Yichao Zhou](mailto:zyc@berkeley.edu)\n\n\u0026copy; 2018 Jingwei Huang and Yichao Zhou All Rights Reserved\n\n**IMPORTANT**: If you use this software please cite the following in any resulting publication:\n```\n@article {10.1111:cgf.13498,\n    journal = {Computer Graphics Forum},\n    title = {{QuadriFlow: A Scalable and Robust Method for Quadrangulation}},\n    author = {Huang, Jingwei and Zhou, Yichao and Niessner, Matthias and Shewchuk, Jonathan Richard and Guibas, Leonidas J.},\n    year = {2018},\n    publisher = {The Eurographics Association and John Wiley \u0026 Sons Ltd.},\n    ISSN = {1467-8659},\n    DOI = {10.1111/cgf.13498}\n}\n```\n\n## Triangle Manifold\n\nIn case you are dealing with a triangle mesh that is not a manifold, we implemented the software that converts any triangle mesh to watertight manifold. Please visit https://github.com/hjwdzh/Manifold for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhjwdzh%2FQuadriFlow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhjwdzh%2FQuadriFlow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhjwdzh%2FQuadriFlow/lists"}