There isn't any repository in which a comprehensive collection of 2D shapes are contained that I know of, most of the time, you need to generate the mesh by yourself for your research. While for some applied problems in mechanical engineering, you may need some commercial CAD software.
However, there are some free mesh generating packages which could handle arbitrary piecewise defined geometries in 2D. I'll name two here:
DistMesh, a very compact package written in C++ and MATLAB/Octave by P.-O. Persson, you could generate arbitrary 2D triangulations based on a distance function that describes what the boundary of the domain of your interest is like. In Persson's short introductory note, he showed the MATLAB implementation, also gave many examples of how to cook out a distance function for a certain shape, also a mesh size function that makes your mesh "better", ie finer in the corners, edges.
NETGEN is a cross-platform mesh generator as a C++ library, it has a UI, lets you import your own geometry/data, here is the user's manual.
Last, here is a link of a quite huge list of mesh generators compiled by Dr. Robert Schneider. Hope my answer would help.