Rigid Multiview Varieties

Michael Joswig, Joe Kileel, Bernd Sturmfels and André Wagner

This webpage provides the code use in the paper Rigid Multiview Varieties. We performed several random experiments in this paper. Our hardware was a cluster with Intel Xeon X2630v2 Hexa-Cores (2.8 GHz) and 64GB main memory per node. The software was Macaulay2, version All computations were single-threaded.

The tests were repeated several times with random input. The exact running times vary, even with identical input; the Table 1 lists the average values. It is not surprising that increasing n, the number of cameras, increases the running times considerably. Therefore we adapted the number of experiments according to n.

For all the statements in Section 2 regarding two cameras, (i.e. n=2) we performed at least 1000 computations, with one exception. The statement regarding the universal Gröbner basis in Remark 5 is based on 20 experiments. Regarding three and four cameras (i.e., n=3;4) we performed at least 100 computations each. For n=5 we performed at least 20 computations each. The Example 14 was checked with 50 choices of random cameras.


The files prop1.m2, cor2.m2, eq7.m2, prop3.m2, prop4.m2, table1.m2, exmp14.m2 verify the computational statements of Rigid Multiview Varieties.

However they depend on the the load file computerVision.m2. In order to ensure that the code runs properly you need the file computerVision.m2. The other files load functions from it. You need to make sure that M2's current directory points to the folder in which computerVision.m2 lies. You can view M2's current directory with the command "currentDirectory()".

  1. read me file
  2. Load File
    File containing functions used multiple times in the other files. For all computations NEEDED!
  3. Proposition 1
    Computes the rigid multiview ideal for two cameras, and it's betti tally
  4. Corollary 2
    Computes the statement of Corollary 2
  5. Distinct polynomials of Eq.7
    Computes all distinct polynomials of Equations 7 and the dimension of their spanned vector space
  6. Proposition 3
    Computes the rigid multiview ideal for three cameras, and it's betti tally
  7. Proposition 4
    Computes the rigid multiview ideal for four cameras
  8. Table 1
    Computes the rigid multiview ideal for five cameras. This completes Table 1 (with the results form prop1.m2, prop3.m2, prop4.m2)
  9. Example 14
    Computes the unlabeled rigid multiview ideal