Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minutePC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11A Rust port of QuadriFlow exposed two failure paths on one SketchUp-derived house mesh, then delivered a counterintuitive solver result: on the author’s measured workloads, Boykov–Kolmogorov substantially outpaced the port’s in-house max-flow solver. These are findings and timings reported by Felipe Carvajal Brown, not independent reproductions or claims about every QuadriFlow input.
What the Rust port covers—and what it leaves out
Brown inspected QuadriFlow at upstream commit 810b7a0 and ported the code reached by the default command-line run, quadriflow -i in.obj -o out.obj -f <faces>. The described pipeline builds a hierarchy, computes orientation and position fields, finds integer edge offsets using max flow, handles flipped faces, extracts quads, repairs valence, and optimizes positions. The findings and measurements below are Brown’s account in his porting report.
As an Amazon Associate I earn from qualifying purchases.
This is a port of the default path, not a feature-complete replacement. It omits optional sharp-edge, boundary, adaptive-scale, min-cost-flow, and SAT paths, as well as CUDA and TBB. Blender’s QuadriFlow README describes manifold triangle meshes as the input expectation and documents options such as sharp-edge preservation, min-cost flow, and SAT flip removal. That expectation does not establish support for arbitrary non-manifold meshes.
Two upstream failure paths on a SketchUp-derived mesh
Brown tested a cleaned house model derived from SketchUp, with many T-junctions and non-manifold incidences. He reports two distinct problems found through code inspection and testing. They concern that input and should not be read as evidence that all QuadriFlow runs fail.
#1 Best Overall
Repeated half-edge pairing can break twin links
When several half-edges occur around an edge, Brown found that each could pair with the same opposite half-edge. Later assignments then overwrite earlier ones, leaving links that are not mutual twins. On the house model, he counted 382 non-mutual twin links among 15,171 half-edges. A subsequent rotation search can fail to find a matching orientation when these links are inconsistent.
The non-manifold-vertex split is unreachable
Brown also reports that the code intended to split non-manifold vertices sits after an unconditional return. As a result, edges are not queued for splitting and fields do not propagate to those vertices; their offsets remain arbitrary. On the tested input, upstream printed “wrong init” and exited without producing output.
Rank #2
Brown says he built upstream separately: on this house model it remained at “Solve index map” until a 600-second timeout. His Rust port completed the model in 1.2 seconds after he changed half-edge pairing and added the vertex split. Those times describe one test model and the author’s implementations; they are not a general speed comparison.
Why the max-flow surprise depends on the workload
QuadriFlow’s in-house solver pushes one unit per breadth-first search. Brown says upstream uses that solver only when supply is below 20 units; for larger problems it uses Boost’s Boykov–Kolmogorov implementation. Blender’s README likewise says the default uses Boost Boykov maximum flow because it is faster, and lists min-cost flow as an optional -mcf mode.
Rank #3
Dinic can look attractive on paper, but Brown’s tests show why theoretical appeal alone did not decide this implementation choice. He reports that Dinic took longer than the one-unit solver on the torus test, even after limiting the level search at the sink. On the larger model, Boykov–Kolmogorov sharply reduced the integer-stage time. Brown attributes the advantage on that measured network to fewer repeated searches or phases and retained search trees. It is a result for these workloads, not a theorem that Boykov–Kolmogorov always wins.
| Workload and setup | Solver or implementation | Reported time and result |
|---|---|---|
| 160,000-triangle torus; target of 10,000 faces | Rust port | 18.4 seconds; produced 9,271 quads. |
| Same torus and target | Upstream QuadriFlow | 11.6 seconds; produced 8,903 quads. |
| Same torus; solver-stage comparison | Dinic versus one-unit solver | 11.6 seconds versus 5.8 seconds. Brown reports a Dinic probe requiring 145 phases for 174 units after limiting the level search at the sink. |
| 662,843-triangle model; 100,000-face budget; 3,726-unit max-flow round | In-house solver stage | 203.5 seconds, as reported by Brown. |
| Same larger model and max-flow round | Boykov–Kolmogorov | Integer stage: 13.6 seconds rather than 246 seconds. Full run: 137 seconds rather than 441 seconds; output: 44,024 quads. |
All figures in the table are Brown’s reported measurements, not independently reproduced results. The torus and the 662,843-triangle model are different workloads, so their runtimes are not controlled repetitions of one test. The full-run change from 441 to 137 seconds is the largest reported improvement, but it belongs specifically to the larger model and stated settings.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.What the results do—and do not—establish
The porting report gives a useful implementation case study: malformed half-edge relationships and unreachable repair code can derail processing of a non-manifold input, while max-flow performance can hinge on the actual network and solver strategy. The paper introducing QuadriFlow describes a scalable automatic quad-meshing method building on Instant Meshes and using a global method to remove singularities from the position field; it does not make Brown’s port measurements general performance guarantees. See the QuadriFlow paper.
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Repair Windows errors before they cause bigger problems3Scan for outdated or missing drivers - takes under a minuteBrown says the architectural test models were routed to a different retopology path, so the report does not yet demonstrate the remesher on an organic model. UV repair for SketchUp-to-Unreal workflows is identified as future work. Separately, the original repository has a 2018 issue report about crashes when subdividing open-boundary meshes with SAT enabled; that historical report is not evidence of behavior in every version or configuration.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




