An image of me

I have always had an interest in mathematics, computers and information technology. This interest lead me to pursue a degree in Electronic and Computer Engineering (BEng), at the National University of Ireland Galway from which I graduated with a first class honors degree. After graduating I enrolled in a masters course in Artificial Intelligence and Intelligent Robotics (MSc) from the University of Edinburgh. Upon achieving my masters I accepted a Research position at the National University Of Ireland Maynooth and from there accepted another Research position at the University Of California Berkeley. I am currently employed as a Software Developer.

Contact: contact e-mail address
Resume: CV for Rory McGrath
Git Hub:


Exploring the Twitch network

This work looks at exploring and visualizing the Twitch network of broadcasters and followers. Data is obtained using the Twitch api and a graph of broadcasters and followers is created. The preferential attachment model is applied to the network to predict the probability of a new viewer observing any given broadcaster. (Read More...)

Personalized Aurabox android app

This project looks to emulated and improve upon the official closed source app used as a remote control for the Aurabox device. Initially the official app was emulated by monitoring the bluetooth traffic between the app and the device and extracting the commands signals being sent. Implementing these signals allowed for the creation of an android app with the potential for greater customization and functionality. This project is to be made open source. (Under Development...)

Personal Recommender: Location inference and restaurant recommendation

This work looks at making personalized restaurant recommendations for an individual by taking their home and work locations into account and weighting based on the users sensitivity to distance to travel, cost and user rating. This project can be divided into two parts. The first deals with inferring the home and work locations by looking at a users Twitter history. The second deals with generating personalized recommendations for restaurants based on the users location and their sensitivity to travel distance, cost and restaurant rating. The results of this work present a new and novel approach to tackling the cold start problem for recommendation problems. (Read More...)

Lyft: The power of friend recommendations

This project investigates the effect recommendations from a friend have on an individuals decision making process. Taking the Lyft service in the Bay Area I investigated how friend recommendations affect a persons likelihood of using the on-demand ride sharing service over a traditional taxi service. I hypothesized that people who may feel unsure or are hesitant about using the service could be influenced into experimenting with Lyft if a friend reports a positive experience. I found that a persons "socialness" has a positive effect on the decision to use the Lyft service, their perceived "safety" has a negative effect on the utility of Lyft and a friend recommendation has a significant, positive impact on the utility of choosing Lyft. I also found that an individual is more tolerant of waiting times for Lyft if they personally know someone who has used or uses the service. (Read More...)

Lottery: Is it truly uniform?

Is the lottery truly random or is there some sort of pattern to it? Are all the balls truly equal in size shape and weight? Some balls have two numbers others have only one. Does this affect the weight or shape and bias the ball in any way? My prior belief is that the lottery is random and balls are drawn from a uniform distribution, however I would like to statistically verify this. For this project I look at the previous seven years of Irish lottery results to show that the balls are all drawn from a uniform distribution. (Read More...)

Robot-sumo: Autonomous robot

For this project an autonomous robot was built for a robot-sumo competition. Robot-sumo involves autonomous robots trying to out position and push each other out of a sumo ring. This project involved designing, creating and programming a autonomous robot to strict specifications and while this is fun enough in it's own right the additional challenge came by having to create the robot 24 hours before the first match. (Read More...)



Courses of note
  • Behavioral Modeling for Engineering, Planning, and Policy Analysis
  • Sensors and Signal Interpretation
  • Control and Information Management
  • Spatiotemporal Data Analytics
I accepted a research position at the University of California Berkeley. Working with the Systems Engineering Department I continued my research on generative models for user check-ins, predicting social interactions and simulating how a city is utilized by its inhabitants. During this time I also work and consulted on various other projects some of which included, predicting the likelihood of individuals using a service given friend recommendations, a restaurant recommendation system for twitter users in San Francisco and an application that tracked individuals as they went about their daily routines. This research culminated with the authoring of the paper, "A generative model of urban activities: simulating a population"

National University of Ireland Maynooth

student id card for Galway
Courses of note
  • Applied Probability
  • Linear Models
  • Data Analysis
  • Organizing and Managing Research

Upon graduating from Edinburgh I found myself drawn more towards prediction and classification than robotics. Pursuing this interest lead to a Research position at the National University of Ireland Maynooth which dealt with learning and predicting human spacial dynamics. The problems presented by predicting human motion were both intriguing and challenging.

During this time I worked on various academic papers, most noteworthy being my paper for the Nokia workshop in Pervasive which dealt with predicting an individuals location by analysing their phone interactions. Utilizing Support Vector Machines (SVMs), Monti-Carlo Support Vector Machines (MCSVM) and Hidden Markov Support Vector Machines (HMSVM) this work illustrated the validity of location prediction using an individuals phone usage habits and idiosyncrasies. Additionally I worked on a paper dealing with the community structure of a network of significant locations in cities as observed from location-based social network data. Here we found evidence that particular areas in cities stratified into distinct "habitats" of frequently visited locations, featuring both spatially overlapping and disjoint regions.

Building on the work above I started developing ways of simulating how people utilize urban environments. By observing check-in data from location-based social networks I recreated the populations latent social structures via topic modeling. Implementing models such as Latent Dirichlet Allocation (LDA), Probabilistic Latent Semantic Analysis (PLSA) and PLSA-HITS I identified clusters of people with similar interests. Using real world data I then started creating an extension of the link PLSA-LDA generative model to create realistic check-in data for a medium scale urban environment.

University of Edinburgh

student id card for Galway
Courses of note
  • Reinforcement Learning
  • Advanced Vision
  • Probabilistic Modeling and Reasoning
  • Computer Animation and Visualization
  • Machine Learning & Pattern Recognition
  • Intelligent Autonomous Robotics

Upon the completion of my Bachelors Degree I found myself fascinated with the fields of both Machine Learning and Robotics. I enrolled in a Masters course in Artificial Intelligence with a focus on Intelligent Robotics from the Computer Science department of the University of Edinburgh.

During this taught masters I chose courses that primarily dealt with Machine Learning, Computer Vision and Robotics. The project work from these courses covered a variety of areas including: using visual servoing to guide a robot through a maze, designing and building an autonomous robot to navigate and map an area, rigging and animating a 3D arm, visualizing voxel data obtained from an MRI scan and training a virtual autonomous robot soccer team using reinforcement learning and functional approximation.

My thesis dealt with the automatic classification of fish species from underwater video recordings. Key features were identified and obtained such as the contour of the fish, the texture and complex moments. A feature selection process was developed to reduce the feature space and using three-fold cross-validation the classifier was trained, tested and verified.

National University of Ireland Galway

student id card for Galway
Courses of note
  • Digital Signal Processing
  • Graphics and Image Processing
  • Distributed Systems & Co-Operative Computing
  • Operating Systems
  • Digital Systems Design & VHDL
  • Applied Software Engineering

I obtained my Bachelors Degree in Electronic and Computer Engineering from the National University of Ireland, Galway. Here the subjects studied encompassed both hardware and software development with courses covering analogue systems, digital systems, computer programming and hardware design. During this time I achieved the title 'Scholar' for my academic record. Two main projects were completed during this time.

The first project dealt with the creation of a software based system for circuit characterization. Here a system for characterizing an analogue electronic circuit using the National Instruments USB-6009 Device (NI-DAQ) was designed and created. A C++ program was written to interface with the National Instruments device. A Java wrapper was created to display the results through an interactive GUI.

The second project dealt with the creation of a Bluetooth enable mobile robot. Here I designed and constricted a Bluetooth enabled mobile robot. I created circuitry to interface with Gumstix microprocessor and power the motors. A J2ME mobile phone client and Python based PC client controller were create along with a python server to run on the Gumstix and interpret controller commands sent via bluetooth.



Travel Diary

The travel patterns and habbits of individuals.

In this demo individuals in Berkeley were tracked via an application running on their mobile phone. This demo shows how the participants moved around the area, utilize public transit and the various locations that were visited. As part of the data collection effort users were asked to label the activity and mode of transit. This data is visualised here along with the functionality of exploring individual observations and animating the day as a whole. Each mode of transit used is denoted by a different icon i.e bus, car bike, person walking and activities are denoted by the icon representing a group. MongoDb was used to store the data, the map was visualised via leaflet.

Restaurant Recommender System

Predictions and regions of interest

For this demo restaurants are recommended for twitter users living in San Francisco. Home and work locations for individuals are inferred by fitting a truncated Gaussian distribution parameterized by the time of the day of geotagged tweets. The probability of an individual visiting certain areas of the city is calculated by the radiation model taking population densities obtained from census data. Preferences can be fine tuned by adjusting the sensitivity to distance, user rating and price. The map is visualised using Leaflet, an open-source JavaScript library, and the data is stored in mongoDB. Spatial indexes were utilized in mongoDB to allow for complex geo-spatial queries. A more in-depth discussion of the project can be found here.

Smart Bay

Predictions and regions of interest

In this demo the city of San Francisco is partitioned into areas according to census tracts. For each tract the probability of the inhabitants visiting other areas of the city are calculated using the radiation model. Sociodemographic information about each tract is provided along with dynamic word clouds showing the most common topics being discussed in these areas on twitter. The map is visualised using Leaflet, an open-source JavaScript library, and the data is stored in mongoDB with 2dSphere spatial indexes being implemented.



A generative model of urban activities: simulating a population

UrbComp, The 3rd International Workshop on Urban Computing 2014
Model framework.

This work presents a data-driven generative model of a social network in a city. It takes both mobility and social context into account by building a generative process of establishing social connections that is governed by latent profiles of city dwellers. These profiles influence both the community structure of the network as well as preferences in destination choices. Therefore, the model captures an interplay between mobility and the geography of the social network, and can be used to infer social connections from the revealed mobility pattern and vice versa. The model is capable of inferring population profiles and community structure of urban areas from partly observed social network and mobility traces, and could then be applied to simulate a representative sample of the entire population. The results are verified in terms of descriptive statistics of the network structure as well as on the out-of-sample subset of real data collected via Twitter API in San Francisco, CA.

Habitualisation: localisation without location data:

Nokia Mobile Data Challenge Workshop, Pervasive 2012
Predictions and regions of interest

Location prediction remains a keystone of traditional location-based services operating on mobile devices. However location can not be separated from activities. In this paper we presented a method of determining the likelihood of a users location within know stay regions (called habitats) by looking at a users habits and idiosyncrasies. These likelihoods were calculated without taking into consideration location based data. We looked at predicting a users location using the SVM, MCSVM and HMSVM techniques

Stratification structure of urban habitats:

PURBA- 2012 Workshop, Pervasive 2012
Habitats found in an urban environment.

This paper explored the community structure of a network of significant locations in cities as observed from location-based social network data. We presented the findings of that analysis at multiple spatial scales. While there is previously observed distinct spatial structure at inter-city level, in a form of catchment areas and functional regions, the exploration of in-city scales provides novel insights. We presented the evidence that particular areas in cities stratify into distinct "habitats" of frequently visited locations, featuring both spatially overlapping and disjoint regions. We then quantified this stratification with normalized mutual information which showed different stratification levels for different cities. Our findings have important implications for advancing models of human mobility, studying social exclusion and segregation processes in cities, and are also of interest for geomarketing analysts developing fidelity schemes and promotional programmes.