RRT Algorithm (Rapidly-exploring Random Tree)
Demo
See this Jupyter notebook for an example of RRT in action:

RRT is a sampling-based method used often in high-dimensional spaces. It's particularly useful in cases where the exact representation of obstacles is unknown or hard to compute.
Basics of RRT
- Initialize the tree with a starting node.
- For a predetermined number of iterations:
- Select a random point in the space.
- Find the closest node in the tree to the random point.
- Add a new node to the tree that's a set distance towards the random point from the closest node.
- If the new node is close enough to the goal, connect it and terminate.