Clustering Authoring Tools by Feature

An experiment during my PhD required me to evaluate authoring workflow in various authoring tools with different interface and user experience paradigms. Obviously it is impractical to evaluate each single tool both in terms of time and participant count. The solution I needed was to take all of the candidate tools and cluster them based […]

Read More

C# Null Extensions

When working in C#, it is not uncommon to encounter nested object properties (e.g. Student.Grades.Total). Each chained object should be checked for null in order to avoid accessing null elements, throwing a NullReferenceException. This article aims to fix that. In C# 6, the Null-Conditional Operator was introduced, which solves the null-checking in chained objects. Unfortunately, this feature […]

Read More

Converting QT UI Files to Maya Python

Plugins are one of Maya’s strongest points. As plugins become increasingly complex, they usually call for some form of user interface. However, Maya’s native methods of building user interfaces is quite rudimentary and awkward to use at best. What many people are not aware of is that Maya itself is built using QT, and actually […]

Read More

Exporting Bézier Curves From Maya

In Maya, there are many degrees of curves available. Bézier curves are one of the more favored within Maya due to their intuitive usability and flexibility in comparison to other existing curve types. Bézier curves prove to be a useful asset in any toolbox, as is evident by its extensive use in video games, among […]

Read More

Undergraduate Works

Below is a collection of some works I have created during my Bachelors degree. They were made around 2011-2013. Real-Time Translucency As a final-year graphics module at university, I had to work on exploring real-time translucency. The technique I ended up using is based upon Translucent Shadow Maps (TSM). I did, however, cite multiple papers, combining […]

Read More