Will Thimbleby  |  Research

I am a PhD student at Swansea university researching user interfaces and their principles.


I am looking at the link between input and output, syntactic and semantic, interface and data. Every program is in some fashion a process, input to output. This is similar to a mathematical relation from domain A to domain B.

My questions are: What can we learn from domain A, from domain B or from the process? Does domain A provide insight into domain B or visa-versa? Is there a way to improve the program's usability by, in mathematical terms, making the process total, symmetric or reflexive? Are there aspects of either domain that is missing in the other? Or constraints from either domains or process that need to be enforced in the other domain.

A simple example is source code compliation. The process, compiling, takes source code and produces programs. Is a symmetric process useful for example JavaScript's function.toString()? There are constraints from both compilation and program is it useful to constrain the source code as well?

In a different but related process, the process of writing code, syntax highlighting is a feature of the input, is it useful to have this extra data used by the process?


A real calculator

A very cool pen based calculator that works how you think and how you write. Magic paper.

A novel calculator, ideal for interactive whiteboards and pen-based devices. The calculator provides a natural, dynamic method of entering conventional expressions by handwriting and provides continual feedback showing the calculation and results. The user interface adjusts and copes with partial expressions, morphing the expressions to correct position and syntax. Gestures are also used to edit and manipulate calculations. The user interface is declarative, in that all displays, even with partial user input, are of correct calculations. We have found the user interface to be surprisingly engaging, and people enjoy using it and playing with mathematics.

Principles: Ink editing, instant declaration, output = input, continuous feedback

A text editor with history

A text editor that provides a time line to enable the review of how the document was created.

It records every event as you type. This allows you to scrub back and forth in a timeline of the document showing the process that created it. The result of this is that no data is ever lost from the document, and that you can more easily understand the flow of how it was created. This could be especially useful for collaborative document writing.

Principles: No data ever lost, history is separate from undo

MacSword (Instantly declaritive)

Bible study software with ~20,000 users in 10 languages, altered to use an instantly declaritive interface.

MacSword will be altered to use instant declaration in searching (live search), viewing (live url-like bar), and bookmarks. These will hopefully provide usability benefits. The instant declaration principle will be applied to the interface in a brute force fashion. This will hopefully show where the principle both works and fails.

Principles: Instant declaration

Old Stuff

3rd year Project PDF (2.28 MB)

Using surface curvature and topological features from shape-from-shading to improve shape-from-stereo

Investigating the use of shape-from-shading to improve shape-from- stereo. Using of topological and curvature information provided by the 2.5D surface information provided from shape-from-shading, to provide better information to create an improved point-to-point correspondence between stereo images.