# 7-9.01.2014 Assignment6: Project description

Today in class I presented a project which I have been working on, on and off, for several years.  It is a visualization of the Schatz linkage.  You can access the webstart I showed here. The video I showed at the beginning of the class can be seen here. The pictures of the wooden oloid which Thomas Neukirchner made can be found here. Thomas’s diagrams and plywood models of the oloid can be found here.  The latest edition of Paul Schatz’s book Die Welt ist Umstülpbar: Rhythmusforschung und Technik can be found here on Amazon.  If you are interested in this theme then mark your calender for April 4-6, when there will be a weekend event in Berlin devoted to themes related to Paul Schatz’s research.  A few more details can be found here.

On Thursday, Jan. 9, we will take some time to evaluate this “project presentation” in regard to the various criteria mentioned in the evaluation handout.  Be there or be square!  I will also discuss the half-edge data structure and demonstrate some advanced features of the discretegroup package, and, if time permits, more!

Assignment 6: As discussed in class on our final meeting before the holidays, the next assignment is not a programming assignment but rather a planning assignment.  I ask you to enter a description of your project as a comment to this blog post.  Use the account name studentmv with the clever password.  Please  sign your comment with either your name(s) or with your student number(s).  Your comments are due as usual on Friday at midnight.  (That’s Friday Jan. 10).   The details of the description are provided below, but first comes a “news flash” regarding a change in the way property files are handled in the basic template.Assignment class.

Improved way to provide property files. Although I didn’t do much work over the holiday break, I did play around some with webstarts — enough to realize that the current way that property files are handled doesn’t work with webstart technology.  So I’ve figured out a new way to handle property files that does work with webstarts, and has other advantages.  Here’s how it works:

• If you have a class named MyAssignment.java that inherits from template.Assignment, then store off the properties in a file named myAssignment.xml (note the leading lower case letter!) in the same folder as MyAssignment.java. Implement the method getPropertiesFile() to return null.  Or, remove your implementation of the method, it’s no longer an abstract method and by default it returns null.
• That’s all you have to do.  Now your class should read the property file correctly whether run “normally” or as a webstart application (which your project application will ultimately need to do).
• Please try this out to make sure it works for you — if you don’t change anything the old code will continue to work but you should get used to using the new approach.

What to include in your description.

1. Mathematics. The description should begin with the mathematical content of the project.  Try to be as precise and accurate.  Zoom in gently — make clear to which domain of mathematics this content belongs.  Use technical language if necessary to specify this.  If possible, include one or two references (either articles or books) which provide a more detailed description of the context of your project.  None of the projects exists “in a vacuum”, give a pointer to your point(s) of departure.
2. Software design. Begin this section by a statement describing the concrete goal of your project.  For example, “We intend to create an application to allow the user to explore the 3-dimensional kaleidoscopes introduced above [in the mathematical section].”  Describe then the software tools and building blocks you think you will need in order to realize this aim, and how they will be put together.  For example, building blocks might include “jReality geometry factories, the de.jtem.halfedge package, and the de.jtem.discretegroup package”; additionally indicate which parts of these building blocks you will use and how they will be combined.  Think if this as the blueprint for your project.  Of course at this stage of the planning it shouldn’t be too detailed.
3. User experience. Finally, briefly indicate how you envision a typical “usage cycle” of your program.  What choices does the user have, how can he/she interact with the software sketched in the previous section?  Can the user save the state of the program from one invocation to the next? Will you rely on sliders and dials, or have you ideas for innovative interactive tools?  Will your application be particularly aimed at the PORTAL? Will there be a connection to 3D printing?

# 17-19.12 Magic Theorems

New Math this week:  the main results this week involved the so-called Magic Theorems, that establish important results about the orbifold notation we have been learning to use to name symmetry groups.  To understand the theorems we need to introduce the basic symbols for the notation.

• $\large *$ Represents a mirror line
• X Represents a glide reflection
• $n\in \mathbb{N}$ represents a natural number $n > 1$, a rotation center of order $n$.
• $O$ represents a pattern without any of the above features.

To each of these symbols there is a cost associated.  By considering all possible valid strings consisting of these symbols, one can then associate to each string a cost by summing over the costs associated to the constituent symbols.  One obtains some beautiful theorems.  But first we need to introduce some further concepts.

The Euler characteristic of a surface.   Suppose I have a set of polygons with the property that every edge is shared by exactly two polygons.  This set of polygons is called a 2-complex and determines a two-dimensional surface without boundary. Consider 2-complexes which yield the 2-sphere as surface.  Let V, E, and F denote the number of vertices, edges, and faces, resp. in the 2-complex. Then we showed by considering the platonic solids that $V-E+F=2$ for these surfaces, and gave reasons to believe that this relation is always true.  We define the associated function for a 2-complex $c$: the Euler characteristic $\lambda(c) := V-E+F$.  For a 2-sphere, $\lambda(c) = 2$.  Considering the 1-holed torus we showed that $\lambda(c)=0$ and, in general, for n-holed tori, $\lambda(c) = 2-2n$.

Euler characteristic of orbifolds. By considering the orbifolds we have been studying, we were able to extend the notion of Euler characteristic to these spaces, too.  The key idea is to introduce fractional points and edges at points and edges which are fixed by some group element.  One determines the fractional weights so that the resulting weights add up to 1 wherever the stabilizer of the group is non-trivial.  That is, make sure that the statement: “The copies of the fundamental domain cover the plane (or sphere) without overlap” remains true.

The cost function.  The cost function is defined as follows:

• $k(*) = k(X) = 1$,
• $k(n) = \dfrac{n-1}{n}$ if it comes before any $*$ in the string, otherwise $k(n) = \dfrac{n-1}{2n}$.

# 28-30.10 More fun with projectivities

It’s Halloween!  And so we spent the lecture exploring some strange and eerie applications of projective transformations.  Here are the rough notes Dr. Gunn used to prepare the lecture.

• Semester Projects.
• Possible themes.  Balancing mathematical content with practical implementation (“theory and practice”).  Rough suggested time-table.
• Lecture write-up from 28.10.2013.  Are there volunteers to write up the lecture from Tuesday?  Recall: we went through all the gory details required to construct a projectivity (as 3×3 matrix) which maps the unit square onto a trapezoid.  Either directly enter into blog (which supports LaTeX formatting directly) or prepare a pdf file for inclusion.
• State of gitorious.  This week we have the modest goal of being able to “push” student projects back onto your gitorious accounts, and from there notify me (by e-mail or “merge request” from gitorious) that there is something to look at.  Next week we’ll conclude the gitorious work by showing how to update to receive new assignments from me, and how to update jReality.  See this blog post for details.
• The Internship trailer.
• Applications of projective transformations:  the Ames room.
• Noneuclidean geometry via projective geometry.
• TriangleGroup demo
• Klein’s Erlangen program: preserved properties determine subgroup of PGL(n+1).
• The subgroups SO(3) and SO(2,1) lead to spherical/elliptic and hyperbolic geometry, resp.
• Distance via inner product, cos and cosh. Examples.