Skip to content
Piyush Verma
DEFIANZ / ENGINEERING NOTES / 01

Path planning. RRT & RRT*.

Give two planners the same problem. RRT grows toward random samples; RRT* also revisits the connections it has already made.

0 / 900 SAMPLES
RRT1 NODES / 0 REWIRES
STARTGOAL
RRT*1 NODES / 0 REWIRES
STARTGOAL
Click either map to edit
Sample budget900
Extension distance5 m
Collision clearance1.4 m

Both planners receive the same sequence of samples. Dashed rings include the vehicle’s collision clearance.

RRT path length— m
RRT* path length— m
RRT* rewires0
RRT* best connected path / metres
StartLatest
UNDER THE HOOD

What you’re seeing.

My work: multithreaded RRT / RRT* planning in ROS and C++, evaluated in F1TENTH. This browser experiment is a fresh, single-threaded explanation of the underlying search.

The algorithm: sample → nearest node → collision-checked extension. RRT* chooses a cheaper nearby parent and rewires neighbors, propagating cost changes to their descendants. Both runs get the same seeded samples, a 9% goal bias, and the same circular obstacles.

The boundary: this is a 2D geometric planner with a clearance radius. It does not enforce steering curvature or vehicle dynamics. Finite samples can fail to find a route; no finite run is an optimality certificate.

Now make a car follow a path ↗

Educational reconstructions of ideas from my work. Demo results are computed here; they are not team test results.