  Rigidity theory studies the properties of graphs that can have rigid
embeddings in a euclidean space $\mathbb{R}^d$ or on a sphere and which in
addition satisfy certain edge length constraints. One of the major open
problems in this field is to determine lower and upper bounds on the number of
realizations with respect to a given number of vertices. This problem is
closely related to the classification of rigid graphs according to their
maximal number of real embeddings.
  In this paper, we are interested in finding edge lengths that can maximize
the number of real embeddings of minimally rigid graphs in the plane, space,
and on the sphere. We use algebraic formulations to provide upper bounds. To
find values of the parameters that lead to graphs with a large number of real
realizations, possibly attaining the (algebraic) upper bounds, we use some
standard heuristics and we also develop a new method inspired by coupler
curves. We apply this new method to obtain embeddings in $\mathbb{R}^3$. One of
its main novelties is that it allows us to sample efficiently from a larger
number of parameters by selecting only a subset of them at each iteration.
  Our results include a full classification of the 7-vertex graphs according to
their maximal numbers of real embeddings in the cases of the embeddings in
$\mathbb{R}^2$ and $\mathbb{R}^3$, while in the case of $S^2$ we achieve this
classification for all 6-vertex graphs. Additionally, by increasing the number
of embeddings of selected graphs, we improve the previously known asymptotic
lower bound on the maximum number of realizations. The methods and the results
concerning the spatial embeddings are part of the proceedings of ISSAC 2018
(Bartzos et al, 2018).
