Approach for algorithm to find closest 3-D object in a list of many similar objects to a given test case
If your shapes are not too elongated, you could calculate their axis-aligned bounding boxes (BBs) and store these bounding boxes in an index, such as R-Tree, quadtree or one of their more modern variants.
Then:


Define a distance function that gives the closest BB to the BB of your search-object.
Find the BB in the index that is closest to the BB of you search object.
Calculate the actual distance $d$ between the search-object and the object from the index.
Search the index again, this time with a window query that is by $d$ larger than the previous search BB. This should return all objects that are potentially closer than $d$.
Brute force all returned objects to calculate their actual distance to your search object.


Worst case complexity of the worst case is $O(N)$ for $N$ objects, but average case should be closer to $O(log N)$.