diff --git a/examples/01_simple_route.png b/examples/01_simple_route.png deleted file mode 100644 index 4328f2c..0000000 Binary files a/examples/01_simple_route.png and /dev/null differ diff --git a/examples/02_congestion_resolution.png b/examples/02_congestion_resolution.png deleted file mode 100644 index 0fbac4c..0000000 Binary files a/examples/02_congestion_resolution.png and /dev/null differ diff --git a/examples/04_sbends_and_radii.png b/examples/04_sbends_and_radii.png deleted file mode 100644 index 9bbdabf..0000000 Binary files a/examples/04_sbends_and_radii.png and /dev/null differ diff --git a/examples/06_bend_collision_models.png b/examples/06_bend_collision_models.png index b112120..178d952 100644 Binary files a/examples/06_bend_collision_models.png and b/examples/06_bend_collision_models.png differ diff --git a/examples/07_large_scale_routing.png b/examples/07_large_scale_routing.png deleted file mode 100644 index 46b4709..0000000 Binary files a/examples/07_large_scale_routing.png and /dev/null differ diff --git a/examples/08_custom_bend_geometry.png b/examples/08_custom_bend_geometry.png index d41c26f..7088343 100644 Binary files a/examples/08_custom_bend_geometry.png and b/examples/08_custom_bend_geometry.png differ diff --git a/examples/09_unroutable_best_effort.png b/examples/09_unroutable_best_effort.png deleted file mode 100644 index 5da8d26..0000000 Binary files a/examples/09_unroutable_best_effort.png and /dev/null differ diff --git a/examples/README.md b/examples/README.md index 32ec15b..4040cd6 100644 --- a/examples/README.md +++ b/examples/README.md @@ -9,70 +9,31 @@ In all plots generated by `inire`, we distinguish between the search-time geomet --- -## Example Index +## 1. Fan-Out (Negotiated Congestion) +Demonstrates the Negotiated Congestion algorithm handling multiple intersecting nets. The router iteratively increases penalties for overlaps until a collision-free solution is found. This example shows a bundle of nets fanning out through a narrow bottleneck. -| Example | Script | Output PNG | Summary | -| :-- | :-- | :-- | :-- | -| 01 | `01_simple_route.py` | `01_simple_route.png` | Single-net baseline route with one bend radius. | -| 02 | `02_congestion_resolution.py` | `02_congestion_resolution.png` | Small multi-net negotiated-congestion example. | -| 03 | `03_locked_paths.py` | `03_locked_paths.png` | Incremental routing with previously routed geometry treated as locked obstacles. | -| 04 | `04_sbends_and_radii.py` | `04_sbends_and_radii.png` | S-bend and bend-radius behavior on compact routes. | -| 05 | `05_orientation_stress.py` | `05_orientation_stress.png` | Orientation-heavy routing with flips, loops, and U-turn-like cases. | -| 06 | `06_bend_collision_models.py` | `06_bend_collision_models.png` | Comparison of bend collision/proxy geometry models. | -| 07 | `07_large_scale_routing.py` | `07_large_scale_routing.png` | Large fan-out through a bottleneck with negotiated congestion and expansion overlay. | -| 08 | `08_custom_bend_geometry.py` | `08_custom_bend_geometry.png` | Custom physical bend geometry and separate custom proxy geometry. | -| 09 | `09_unroutable_best_effort.py` | `09_unroutable_best_effort.png` | Best-effort partial routing for a blocked or unroutable net. | +![Fan-Out Routing](07_large_scale_routing.png) -## 01. Simple Route -A minimal single-net example that routes one connection across an empty board and saves the result to `01_simple_route.png`. - -![Simple Route](01_simple_route.png) - -## 02. Congestion Resolution -Demonstrates negotiated congestion on a small multi-net problem where overlapping routes must be separated over successive iterations. - -![Congestion Resolution](02_congestion_resolution.png) - -## 03. Locked Paths -Shows how to treat previously routed geometry as fixed static obstacles in a later run. - -![Locked Paths](03_locked_paths.png) - -## 04. S-Bends And Radii -Highlights compact routing behavior with S-bends and the configured bend radii. - -![S-Bends And Radii](04_sbends_and_radii.png) - -## 05. Orientation Stress Test -Demonstrates the router's ability to handle complex orientation requirements, including U-turns, 90-degree flips, and loops. - -![Orientation Stress Test](05_orientation_stress.png) - -## 06. Bend Geometry Models +## 2. Bend Geometry Models `inire` supports multiple collision models for bends, allowing a trade-off between search speed and geometric accuracy: * **Arc**: High-fidelity geometry (Highest accuracy). * **BBox**: Simple axis-aligned bounding box (Fastest search). * **Custom Manhattan Geometry**: A custom 90-degree bend polygon with the same width as the normal waveguide. Example 06 uses the Manhattan polygon as both the true routed bend geometry and the collision proxy. - -![Bend Collision Models](06_bend_collision_models.png) - -## 07. Fan-Out (Negotiated Congestion) -Demonstrates the Negotiated Congestion algorithm handling multiple intersecting nets. The router iteratively increases penalties for overlaps until a collision-free solution is found. This example shows a bundle of nets fanning out through a narrow bottleneck. - -![Fan-Out Routing](07_large_scale_routing.png) - -## 08. Custom Bend Geometry -Compares the standard arc against a run that uses a custom physical bend plus a separate custom proxy polygon, with each net routed in its own session. +Example 08 compares the standard arc against a run that uses a custom physical bend plus a separate custom proxy polygon, with each net routed in its own session. ![Custom Bend Geometry](08_custom_bend_geometry.png) -## 09. Unroutable Nets & Best-Effort Display +## 3. Unroutable Nets & Best-Effort Display When a net is physically blocked or exceeds the node limit, the router returns the "best-effort" partial path—the path that reached the point closest to the target according to the heuristic. This is critical for debugging design constraints. ![Best Effort Display](09_unroutable_best_effort.png) -## Notes -- Example 07 overlays expanded search nodes on the saved routing figure. -- The current implementation can use a cheaper bend proxy on the first negotiated-congestion pass before later passes fall back to the configured bend model. This is controlled by `RoutingOptions.congestion.use_tiered_strategy` together with the bend collision settings described in `DOCS.md`. +## 4. Orientation Stress Test +Demonstrates the router's ability to handle complex orientation requirements, including U-turns, 90-degree flips, and loops. + +![Orientation Stress Test](05_orientation_stress.png) + +## 5. Tiered Fidelity +The current implementation can use a cheaper bend proxy on the first negotiated-congestion pass before later passes fall back to the configured bend model. This is controlled by `RoutingOptions.congestion.use_tiered_strategy` together with the bend collision settings described in `DOCS.md`.