Next: Conclusion
Up: Compiling for Computational Origami
Previous: Empirical Results
Only a few areas of compiling for computational origami have been
explored in this thesis. Many more remain. Among them are:
- A new type of input and output should be added to the language,
the FLOATING INPUT and FLOATING OUTPUT. These channels would be free
to move around during optimization, and would solve some of the
hand-optimization problems encountered in
section 3.4. Fixed position INPUTs and OUTPUTs will
still be necessary for interfacing with external connections, and for
making sure that outputs and inputs line up when two origami arrays
are connected or the outputs of an array are fed back to the inputs to
produce a finite state machine.
- The annealing schedule should be experimented with. The shape
of the temperature vs. iteration curve can be very important in
determining the quality of the resultant system.
- A number of aspects of the placement and routing algorithm could
be improved. Specifically, the determination of goal columns needs
some work since the modules are shifted to make room for wires in a
very unintelligent fashion.
- Other iterative optimization methods should be investigated.
For example, genetic algorithms
[24][11][8][7] have proven themselves
worthwhile in many different applications.
- The boundary conditions of origami arrays should be analyzed and
used to perform time-domain shifting of data. Among the applications
that could be envisioned are parallel to serial and serial to parallel
converters, time-domain multiplexers, and packet switchers. A new
language should be developed to allow the programmer to express both
data flow and time constraints in a concise, intuitive manner.
Next: Conclusion
Up: Compiling for Computational Origami
Previous: Empirical Results