This directory contains examples demonstrating the features and architectural capabilities of the `inire` router.
## Architectural Visualization
In all plots generated by `inire`, we distinguish between the search-time geometry and the final "actual" geometry:
***Dashed Lines & Translucent Fill**: The **Collision Proxy** used during the A* search (e.g., `clipped_bbox` or `bbox`). This represents the conservative envelope the router used to guarantee clearance.
***Solid Lines**: The **Actual Geometry** (high-fidelity arcs). This is the exact shape that will be used for PDK generation and fabrication.
| 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. |
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.

## 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.
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.
- 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`.