2026/04/06

Author

Alexandre Bry

Published

April 6, 2026

Results since previous meeting

  • Edge matching in Python:
    • Implemented the “simple” version of the edge matching algorithm
    • Restructured the code to be flexible about the different parts of the pipeline which combines:
      • Geometric primitives and operations
      • Functions to create sample data
      • Visualization functions
      • Topological properties and checks
      • A line moving structure which adapts the polygons to the movement of one edge to build valid configurations
      • A criterion to evaluate configurations
  • After testing the algorithm in different scenarios, it seems to me that the criterion to score configurations should include different weighted components:
    • A score for the proximity of the edges to the points (which is currently linear with the distance with a threshold)
    • A score to minimize the length of the edges (which is currently the perimeter of the polygons)
    • A score to preserve the initial shape (which is currently the ratio between the current perimeter and the initial perimeter)
  • About the criterion to stop the algorithm, I could simply stop when the edges don’t move any more (meaning that the sum of the shifts and/or the maximum shift are below certain thresholds). On top of that, a maximum number of iterations could be set.

Material for discussion

Results edge matching algorithm

As it is shown below, the new algorithm works very well in these toy examples. However, it still needs to be tested in actual noisy conditions with more complex examples. Moreover, as can be seen in the circle example, the algorithm can end up reducing some edges to zero even though it does not add much to the score, so it could be interesting to look into adding to the metric something that encourages keeping the relative lengths of the edges.

Simple square.

Square with missing edges.
(a) Circle.

Polygon with many edges.
Figure 1

Discussion

Meeting did not happen as it was Easter Monday.

Work until next meeting

Back to top