I'll ask you to consider a situation wherein one has a series of edges for a graph, $(e\_1, e\_2, ..., e\_N) \in E$, each with a specifiable length $(l\_1, l\_2, ..., l\_N) \in L$, and the goal is to insure that the connected graph has a unique topology in 3-space. More specifically, I'm interested in insuring that some graph with the connectivity of a polytope can only be drawn as the skeleton of that particular polytope - that there should be no crossed edges or knots possible for the specified edge lengths. 


To provide a physical example: 


I use a group of rods to represent the edges of the desired graph (with pencils or the like) and color/symbol-encode their ends to represent vertex-assignments. I want to choose rod lengths in such a way that if I hand them to a naive-constructor (i.e. a 3-year old or a computer-controlled robot), and tell him/her/it to connect the ends of the rods together that have the same color or symbol, after waiting an arbitrarily long time there will only be a unique geometry satisfying the connectivity constraints of the graph I originally had in mind. 


Is there a known computational complexity for this problem? Is there even a solution in the general case, or in the case where we apply the restriction that the specified polytope is convex?


I appreciate any feedback!


EDIT 1: The edges of the graph must be straight lines in 3-space, they cannot be bent to accommodate a particular edge length. 


EDIT 2: Does the problem become easier if one assumes some physical diameter for the edges?



Can we uniquely define a graph to have the topology of a polytope via proper edge length selection?
This seems like a question in rigidity theory. In particular it seems like part of what you want is conditions for **global rigidity** in 3 dimensions. 


Let me write down some definitions and basic facts from the introduction of [this nice set of slides by Dylan Thurston](http://www.math.columbia.edu/~dpt/speaking/Rigidity/talk.pdf) and then post some references that might be helpful. 


A *framework* is a graph and a map from its vertices into $d$-dimensional Euclidean space $\mathbb{E}^d$. A framework is *locally rigid* if every other framework in a small neighborhood with the same edge lengths is related to it by an isometry of $\mathbb{E}^d$. A framework is *globally rigid* if every other framework in $\mathbb{E}^d$ with the same edge lengths is related to it by an isometry of $\mathbb{E}^d$.


It turns out that checking global rigidity is NP hard, even in 1 dimension (Saxe 1979). However, if you're just interested in "generic" frameworks, i.e. those for which the edge lengths do not satisfy any polynomial relation, then work of Connelly and S. Gortler, A. Healy and D. Thurston characterizes these frameworks in any dimension with an efficient randomized algorithm. See [the paper of GHT](http://www.cs.harvard.edu/~sjg/papers/ggr.pdf) or the slides above. I must admit that I have not yet studied their work in any detail.


Since you are requiring that your frameworks are skeleta of polytopes, there may be extra structure which you can exploit. Let me just point you to [Cauchy's rigidity theorem](http://en.wikipedia.org/wiki/Cauchy%27s_theorem_%28geometry%29) which states that convex polyhedra are rigid if you force the faces to be rigid in addition to the edges. If you don't have this restriction on the faces, then there are nonrigid examples, e.g. the 1-skeleton of a cube can be sheared, also pointed out in sleepless in beantown's answer. If you do have the restriction on the faces, but you allow nonconvex polyhedra, then there are [flexible polyhedra](http://en.wikipedia.org/wiki/Flexible_polyhedra).


In addition to the links above, there are several surveys on the webpage of [Robert Connelly](http://www.math.cornell.edu/~connelly/) on various topics in rigidity theory.


