Late to the party, I’ve just finished the 2016 release of Doom. What stood out to me was the clear amount of effort that has been put into the game’s usability and design. In this article, I want to discuss some of my personal highlights of excellent user experience that stood out to me. Disclaimer: […]
Exploring Crime in Middlesbrough
One of my first projects in R was to plot various types of crime on an interactive map in my hometown. This was written locally and then uploaded to Kaggle as a Kernel. You can visit the page here for the full notebook including the interactive maps!
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 […]
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 […]
Quick ‘n’ Easy Dual-Cone Spotlight in GLSL
In this article, I will be covering the implementation of a basic dual-cone spotlight in GLSL. Theory and GLSL are the primary focus here, and thus other code, such as C++, won’t be covered in detail. This tutorial is being written to hopefully aid students who are just starting, as well as others who are […]
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 […]
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 […]
Exporting a Maya Light’s Radius/Range
It can sometimes be useful to know the radius or range of a light source within Maya. For example, an exporter for a video game could require the radius of a point light and the height of a spotlight to be exported for use in the rendering portion of the game engine, or the same […]
Introduction to MEL Programming for Artists
This series of slides provides an introduction to the world of MEL. The intended audience is artists familiar with Maya, with no required previous programming experience. The slides are designed to be presented as a workshop over five one hour sessions. By the end of the course, students should feel comfortable with the basics of […]
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 […]