Here are my Honours Projects for 2011-2012.

IMPORTANT: Please come and see me regarding any project you intend doing before selecting that project.
Interested in computer graphics? Most of the projects listed have a strong graphics component. Please come and talk with me if you would like to know more.

Current Projects: > A Temporal Language for Real Time Audiovisuals
  > Adaptive Parameter Control for Complex User Interfaces
  > Developmental Modelling with Generalised Cylinders
  > Computational Models of Artistic Creativity
  > Mesh Operations with fugu (with Ben Porter)
  > Inference of Musical Networks with Nodal
A Temporal Language for Real Time Audiovisuals
Jon McCormack
Project-id: McCormack-TLang

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 simultaneous 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).

Adaptive Parameter Mapping for Complex User Interfaces (12 or 24-pts)
Jon McCormack
Project-id: McCormack-PMap

Creative software applications, such as virtual music synthesizers 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 To make things easier for the user we need to reduce a high-dimensional parameter space (10-100 control parameters) to a low-dimensional space (2-3 dimensions) that can easily be visualised and interacted with. A number of dimensionality reduction techniques can be used, such as MDS or Isomaps. A different 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.

Developmental Modelling with Generalised Cylinders (12 or 24-pts)
Jon McCormack
Project-id: McCormack-GC

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.

Model created 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.

Computational Models of Artistic Creativity (24-pts)
Jon McCormack
Project-id: McCormack-Creative
Niche Constructions

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 interest in a number of domains: philosophy, computer science, 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. The practical research for the project will focus on developing drawing machines (either real or virtual), an gradually imbuing them with their own autonomous creativity.

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.

Boden, M.A. Creativity and Art: three roads to surprise, Oxford University Press, 2010
J. McCormack and M. d'Inverno (eds) Computers and Creativity, Springer, 2012

Mesh Operations with fugu (24-pts)
Jon McCormack and Ben Porter
Project-id: McCormack-fugu

Fugu is new software for the scripting of mesh-based form, developed at Monash. It allows users to rapidly design animated, growing organic forms by writing simple scripts (using the Lua programming language). In this project you will extend the software to enable it to model more complex organic forms, by extending the range and type of "mesh operators" (simple commands that modify an underlying triangular mesh) and building more complex operations using Lua. A strong interest in computer graphics, along with some experience in C++ programming is important for this project.

Inference of Musical Networks with Nodal (24-pts)
Jon McCormack
Project-id: McCormack-Nodal
Nodal Screen Shot

Nodal is a new type of software for composing music, developed at Monash and sold commercially. Nodal uses a user-created network of nodes (musical events) and edges (transitions between events) to create a generative musical system. A number of virtual players traverse the network, playing the notes they encounter in each node as they move around. Different players can start from different points on the network and the physical edge length determines the time between events (you can think of it as players traveling at a constant speed so the greater the edge distance from one node to the next, the longer the time between playing notes. You can find out more about Nodal (including a free trial download) here.

Nodal saves and loads networks in an XML format. The aim of this project is to read and analyise music recorded in sequentional notation (e.g. encoded as a standard MIDI file) and try to intelligently convert it into a Nodal network. The trick, of course, is in the "intelligently" bit. The method you develop must be able to look for repeated sequences, create efficent network structures and make musically meaningful distinctions between different parts of the sequential input (WARNING: this is not a trivial problem). So this project is somewhat related to information compression, with the additional constraint of retaining the musical and performance features of the source material. Some basic musical knowledge or background in music (yes - playing the guitar is ok!) will be necessary to complete this project.


Past Projects:

Honours Projects 2009-10
Honours Projects 2008
Honours Projects 2007
Honours Projects 2006
Honours Projects 2005
Honours Projects 2004
Honours Projects 2003