Here are my Honours Projects for 2009. Please note I will be away for most of Semester 2
IMPORTANT: Please come and see me regarding any project you intend doing before selecting that project.
In recent years, a number of programming languages and development environments have become popular tools for making generative audio and visuals (e.g. Processing, ContextFree, VVVV, Supercollider, Chuck). Some are custom languages, others language extensions or modifications to traditional programming languages, such as Java. In most cases, these languages are targeted to either audio (Supercollider, Chuck) or 2 and 3d graphics (Processing, VVVV). It is highly uncommon to see a language that integrates sound and image in a temporal paradigm.
The aim of this project is to design an experimental (and esoteric) programming language to support the real time synthesis of images and sound. The language should be fundamentally temporal (i.e. capable of representing and programming time as a first class entity) and link the synthesis of graphics and sound as part of its operator set. Efficiency and creativity of expression are the two primary issues to be considered in the language's design.
To do this project, you should have had some experience with language design and implementation: lexical analysis, parser generators, etc. There is also an opportunity to gain performance advantages using GPU programming (e.g. the CUDA environment).
Creative software applications, such as virtual music synthesisers have complex user interfaces, often with hundreds of parameters to control (see this for example). The user manipulates these parameters in order to control the software. This approach has several problems: the user must learn a complex interface; there are too many parameters to control at once; it is difficult to judge the state of the system in the visual field; interpolation between different parameter sets is very difficult. The aim of this project is to investigate new forms of adaptive interfaces, where manipulation of one parameter changes many different parameters in a coherent way. Approaches to be considered would include the use of techniques such as MDS. Another approach is to represent points in parameter space using Voronoi diagrams. The interface should be able to dynamically adapt based on feedback from the user of the system.
Generalised cylinders are a geometric modelling method, originally developed for use in computer vision. For this project we wish to apply them to the modelling of organic structures for computer graphics. The basic principle for creating a generalised cylinder is to define a series of cross-sectional profiles, possibly of varying shape and size, and distribute them over some continuous curve, known as the carrier curve. The cross-sections are connected to form a continuous surface. Sounds easy, but there are a number of important issues that need to be addressed to ensure that the geometry defined by the cylinder is legal (i.e. can be rendered). Constructing compound surfaces is very useful for modelling organic structures such as branches, leaves, tentacles, veins, shells, etc., as this image (below) illustrates. The image is procedurally generated using generalised cylinders.
![]() |
The challenge for this project will be to create a software system to assist in the automated construction of such models using generalised cylinders. The system will also have to deal with managing geometric complexity and geometric output in a variety of formats (e.g. real-time, offline rendering). The software for the project should be written in C++ and OpenGL. You should have successfully completed FIT3088 Computer Graphics (or equivalent) in order to work on this project. |
Preliminary Reading:
McCormack, J. 2004, Generative Modelling with Timed L-Systems,
in Gero, J.S. (ed) Design Computing and Cognition '04, Kluwer
Academic Publishers, Dordrecht. pp. 157-175. (Hargrave Library reference:
H 620.00420285 I61.4D 2004)
Prusinkiewicz, P., L. Mündermann, R. Karwowski & B. Lane 2001, The Use of Positional Information in the Modeling of Plants. Proceedings of SIGGRAPH 2001 (Los Angeles, California, August 12-17). In Computer Graphics (Proceedings) Annual Conference Series, ACM SIGGRAPH, pp. 289-300.
Mech, R., P. Prusinkiewicz & J. Hanan 1997, 'Extensions to the Graphical Interpretation of L-Systems Based on Turtle Geometry', Technical Report, No. 1997-599-01, April 1, 1997. University of Calgary, Calgary, Alberta Canada.
Can a machine make something that we would consider art? This project will investigate models of artistic creativity, ideally culminating in a software program that can produce "novel and appropriate" artistic results. There have been many famous models and programs that supposedly demonstrate creativity (e.g. Harold Cohen's AARON). The project will require understanding in a number of domains: philosophy, computer science, fine art. You don't have to know about all these areas to do the project, but you'll need to be open to finding out more about them in relation to the project.
Preliminary Reading:
J. McCormack: Facing the Future: Evolutionary Possibilities for Human-Machine
Creativity, in P. Machado and J. Romero (eds.) The Art of Artificial
Evolution: A Handbook on Evolutionary Art and Music, pp. 417-451, Springer, 2008
J. McCormack: Open Problems in Evolutionary Music and Art, in F. Rothlauf et al. (eds), Lecture Notes in Computer Science, Vol 3449 [Proceedings of Applications of Evolutionary Computing, (EvoMUSART 2005), Lausanne, Switzerland, 30 March - 1 April 2005], Springer-Verlag, Berlin, Germany, ISSN: 0302-9743 & ISBN: 3-540-25396-3, pp 428-436.