Elastic Route Smoothing

"/home/yossef/notes/git/projects/maplibra/decisions/Elastic Route Smoothing.md"

path: maplibra/decisions/Elastic Route Smoothing.md

- **fileName**: Elastic Route Smoothing
- **Created on**: 2026-06-16 00:48:42

Elastic Route Smoothing

Purpose: Explain why route smoothing now moves remaining graph points toward safe straight chords after full direct shortcuts fail.

This decision is documented in ../modules/Route Smoothing.md under Stage 0: Elastic Route Relaxation.

Decision

Route rendering now includes an elastic relaxation pass after direct visibility smoothing.

Why

Some correct A* paths remain visually stair-stepped because a full endpoint shortcut is blocked by wall or object clearance. Moving individual interior points toward the route chord can reduce visual zigzags while keeping adjacent segments valid.

Safety

The pass preserves endpoints and protected anchors. A moved point is accepted only when its previous and next route segments pass isSegmentWalkable(), and the route pipeline validates the full candidate with isRouteSegmentWalkable() before rendering it.

continue:[[]]
before:[[]]