For my final project in 24-681, I was in a 3-person person group that wrote a 3D path planning application. The program would randomly create a 3D map with randomly sized squares in random locations, and would choose the optimal path to solve it.
Our starting point was to develop an algorithm to do 2D path planning. We wrote a simple path planning program that used manhattan distances and dijkstra's algorithm to quickly find the optimal route. We made a video to easily visually understand our code.
The next step was taking it to 3 dimensions.
We basically used the same algorithm, but adopted it to work in 3 dimensions. Check out the results below. The blue squares are the obstacles and the green line is the optimal no-collision path.