Summer at UIC

Summer at UIC

In the photo above: Computer Science Freshman Maxwell Dausch (right) with Ph.D. student Harish Naik (left).

My name is Maxwell Dausch, I enjoy long walks on the beach, deep conversations, candle lit dinners and anything tech related. At the time of writing, I am currently going into my sophomore year in Computer Science at UIC. I obtained this internship at the HCI Lab through the Rising Stars Program (formerly known as GPIP). I worked under Dr. Debaleena Chattopadhyay, an Assistant Professor in the Department of Computer Science at the UIC, in the Electronic Visualization Lab.

Professor Debaleena heads the Human Computer Interaction team at UIC. Before this summer, HCI was never on my mind. To be honest I had never even known about it as a sect of computer science. Now more than ever, I see how much the research here is utilized in everyday interfaces and systems. From this day on, I will always be unconsciously thinking about usability and versatility of any sort of interface that I encounter or design.

On March 31st, If someone were to ask me what SAGE was, I would have replied that it was just someone I once knew back in elementary school. Rust was just something that my car had too much of, and SQL (when pronounced apparently sounds like the word sequel) was just a movie or book that almost never lives up to the hype of the first. Today, each of those has a brand new meaning. SAGE is a wonderful piece of software that allows users to collaborate on large multi-screen displays, by sharing screens, documents and anything else you can think of. It would be used in our weekly EVL meetings where each student working on a project would share their screens and give a short presentation on what we had accomplished that week. These meetings were a fantastic way to gauge my own progress, while also being exposed to what everyone else was doing.

Professor Debaleena placed me with Harish Naik on his Collaborative Proxemics research. She had felt that working with him, and being under her guidance, I would be given the best opportunity to learn and grow. Working with Harish was a fantastic experience, as I had the ability to pick his brain about all that he knows, which is quite a lot. Being able to work with someone who has been working in the computer science field was an amazing opportunity. Collaborating with him gave me a chance to learn so much about technologies I had never even heard of before, as well as helping cement all of the concepts that I had learned in the class room by actually putting them to use.

For a bit of situational context, I’d like to give a quick, extremely simplified background to the research I was doing. Research has been done hundreds of times over on how people interact with each other. With all this past research, it is possible to automatically discern the types of interactions and relationships between people in a group environment, just by looking at how individuals are organized in a spatial and orientation context. Now here is where it gets tricky; technology could be changing all of these interactions. The past studies only focused on people interacting with each other, and not looking at how devices like smart phones, laptops, large scale displays, and head mounted displays might change the nature of our interactions.

This gives us the basis for the initial research proposal, how does technology change the interactions we have with others in our daily life?

Now here is where I come in.

Harish already had quite a bit of infrastructure for his investigations into interactive proxemics, so when I came along I was given the task of becoming familiar with the projects code base.

Initially, it took quite a decent amount of time to even have the project properly build on my machine, just because there was a decent amount of dependencies that I had to install and configure on their own. While this was going on, Harish was explaining how every part was incorporated and the usefulness of the dependencies. Take the Boost library for example; at the beginning of this past summer I had never even heard of boost and it is one of the largest peer-reviewed C++ libraries.

Let me be the first to tell you, if you didn’t know already, Boost is absolutely fantastic. Boost is a sort of testing ground for standardization in C++. The number of features that have been incorporated into C++’s standard library is astounding, so becoming familiar with some of these features that might, at some point, become part of the standard is pretty nifty.

Another addition to the build system that I thought was pretty useful and had never even heard of before this past summer was CMake. Acting as a cross platform build manager, CMake has built in dependency detection (which came in handy when setting up the initial project) as well as taking a lot of the work out of creating and configuring makefiles and allows a super customizable and mostly easy set up for project builds. As someone who had struggled with creating makefiles in the past, this is certainly something that I will be implementing into my personal workflow and toolkit.

After working with Harish to solve the incalculable number of errors, one by one, stemming from missing dependencies and system issues, the project was built and ready to be worked with.

My primary task with this project was visualization. As this is the Electronic Visualization Lab, that was to be expected. Harish would hand me a CSV file of movement that was recorded with the help of the VICON capture system – basically the super cool movement tracker that you see featured in Hollywood movies. These CSV files were constantly changing their format as more features were enabled in the capturing of a person’s movement. My job was to create a tool that would take these files and spit out a.VTP (Virtualization Toolkit Polydata) file, which can be easily visualized by another cool piece of software called ParaView, which would then allow us to see every data point that was in our initial CSV and then displays that in a much more visually appealing manner.

The CSV to visualization tool went through many revisions as I incorporated more technologies as I learned about them, like boost’s filesystem support, as well as additions to the capture system, like incorporating the Microsoft Kinect’s motion tracking.

The key point of this visualization tool was that we would be able to use the new output file as a way to visualize multiple people’s paths and interactions from the future studies. At one point I had felt like I had hit a brick wall, the initial tool I had made worked well when viewing a single person and their movements, but it all broke down when multiple people were brought into the picture.

ParaView had issues displaying models for data that was a conglomeration of multiple people and objects. I needed a way to get a per person and object display that all would animate at the same time.

After what felt like an eternity trying to solve this problem on my own, I had to throw in the towel and ask for help, something I would have been much more afraid of in the past.

This summer, I found that asking for help, although sometimes scary, is nothing to be afraid of, nor is it the same as giving up. In reality, it’s just an informal way of asking someone to teach and to guide. There were countless opportunities to learn from others, and I’m glad that I took them up on what they had to offer. Being at EVL, every single person is always ready to jump in and guide those that are struggling. Professor Debaleena was always there to help whenever we needed her, whatever odd hours it might have been when we asked, she always had readings for us that would guide us in solving our problems, or at least give us an idea on where to start.

After asking around about how to even possibly begin on solving my visualization issues, I was given quite a few ideas on what might help. The ideas all had something in common, it simply boiled down to using many different thresholds to separate the data. This would have been extremely time consuming every time we wanted to animate a new set of data, but it worked, and that’s what I had needed. By incorporating the suggested ideas into the tool, we would skip quite a few tedious steps in the workflow. This resulted in the ability of the tool to break down the data into a per person visualization. This gave us the flexibility of viewing a single person’s data at a time. Having this flexible format meant that we now had full control over what we saw at any given time. This was much better than seeing a holistic view of the data. It meant that we had control over all that we saw.

At this time as well, Harish and I were working on our IRB proposal, which meant a stack of paperwork that had to be filled out with extreme care. One mess up here could result in a delay to our study by who knows how long. By far one of the most tedious parts of the research, as this was something that we needed to have perfect. This paperwork was mostly to ensure that everything that involved us working with research participants was ethical and completely safe. Professor Debaleena was always willing to help us with any issues we might have had when filling out this proposal and gave us quite a few examples to go off of as well.

Once our initial IRB Proposal was approved, the project was full steam ahead. Harish and I had to now focus on coming up with tasks for research participants to work on. Who knew how hard it would be to try and figure out collaborative tasks for participants? We had scraped our brains for all that we could, but we still didn’t have exactly what we had wanted, so once again it was time to ask around for help. Communicating with our mentor Professor Debaleena and others in the lab, we were not without help for long in determining what our next step was. The answer was right in front of us and was already being worked on in the lab.

Other EVL Students were working on a visualization task known as the VAST challenge, where teams of people compete to try and solve a set of questions based on a large set of data. Participants needed to look for clues, patterns and everything in-between. It was exactly what we were looking for. Using previous VAST challenges, we wanted to adapt them to be done in a shorter time span by a team of volunteers for the study.

This resulted in us spending time visualizing large amounts of data with JavaScript, something I had never done before, which made for quite the learning experience. It was quite fun seeing a program that worked with small amounts of data fall apart before my eyes. Through many long nights, and revision after revision I watched the visualizations go from completely broken, to mildly less broken and now to sort of mostly working. This whole time I was learning about different optimizations I could make to the program, and really for once finding myself caring about the execution of a program, as one expensive system call could bring the whole computation to a screeching halt. Each revision of these visualization programs featured more and more features suggested by others, who at one point in their life experienced these same issues, and I cannot thank them all enough.

Looking back on this past summer, this internship was everything and more than I ever could have asked for. I worked under the amazing Dr. Debaleena Chattopadhyay, who was always willing to give me a push in the right direction. I worked side by side with Harish Naik, one of the coolest people I have ever met.  He gave me quite a bit of trivia information that I can use to impress people in all of the casual tech related conversations that come up in daily life, as well as so much more knowledge that would require many more pages to even begin to write out. I met so many fantastic people and made quite a few friends, that helped me out along the way. Before this summer, I had never really had the opportunity to work with a group on a larger scale project, but now I see what an absolute joy it can be to work in a team. It was a wonderful opportunity to work with and learn from such an amazing group of people.

It was super exciting to work on a project that could change the way future collaborative research is done, but I’d have to say, the best part about this experience was the people. EVL is a wonderful community of some of the nicest people I have ever met, all willing to pass on their knowledge and help out with everything they can. With the aid of our mentor Professor Debaleena, Harish, and all the others at EVL, I have had a fantastic internship experience and am extremely thankful for this opportunity.

Post a comment

Calendar

November 2017

Sun Mon Tue Wed Thu Fri Sat
1
  • CS 401 - Computer Algorithms I
  • Group meeting
2
  • CS 412 - Introduction to Machine Learning
  • [Hai] CS 521
  • CS 412 - Intro to Machine Learning
  • CS 491 - Virtual and Augmented Reality
  • CS 583 - Data Mining & Text Mining
  • CS 401 - Computer Algorithms I
3
4
5
6
  • CS 401 - Computer Algorithms I
7
  • CS 412 - Introduction to Machine Learning
  • [Hai] CS 521
  • CS 412 - Intro to Machine Learning
  • CS 491 - Virtual and Augmented Reality
  • CS 583 - Data Mining & Text Mining
  • CS 401 - Computer Algorithms I
8
  • CS 401 - Computer Algorithms I
  • Group meeting
9
  • CS 412 - Introduction to Machine Learning
  • [Hai] CS 521
  • CS 412 - Intro to Machine Learning
  • CS 491 - Virtual and Augmented Reality
  • CS 583 - Data Mining & Text Mining
  • CS 401 - Computer Algorithms I
10
11
12
13
  • CS 401 - Computer Algorithms I
14
  • CS 412 - Introduction to Machine Learning
  • [Hai] CS 521
  • CS 412 - Intro to Machine Learning
  • CS 491 - Virtual and Augmented Reality
  • CS 583 - Data Mining & Text Mining
  • CS 401 - Computer Algorithms I
15
  • CS 401 - Computer Algorithms I
  • Group meeting
16
  • CS 412 - Introduction to Machine Learning
  • [Hai] CS 521
  • CS 412 - Intro to Machine Learning
  • CS 491 - Virtual and Augmented Reality
  • CS 583 - Data Mining & Text Mining
  • CS 401 - Computer Algorithms I
17
18
19
20
  • CS 401 - Computer Algorithms I
21
  • CS 412 - Introduction to Machine Learning
  • [Hai] CS 521
  • CS 412 - Intro to Machine Learning
  • CS 491 - Virtual and Augmented Reality
  • CS 583 - Data Mining & Text Mining
  • CS 401 - Computer Algorithms I
22
  • CHI Rebuttal due
  • CS 401 - Computer Algorithms I
  • Group meeting
23
  • CS 412 - Introduction to Machine Learning
  • [Hai] CS 521
  • CS 412 - Intro to Machine Learning
  • CS 491 - Virtual and Augmented Reality
  • CS 583 - Data Mining & Text Mining
  • CS 401 - Computer Algorithms I
24
25
26
27
  • CS 401 - Computer Algorithms I
28
  • CS 412 - Introduction to Machine Learning
  • [Hai] CS 521
  • CS 412 - Intro to Machine Learning
  • CS 491 - Virtual and Augmented Reality
  • CS 583 - Data Mining & Text Mining
  • CS 401 - Computer Algorithms I
29
  • CS 401 - Computer Algorithms I
  • Group meeting
30
  • CS 412 - Introduction to Machine Learning
  • [Hai] CS 521
  • CS 412 - Intro to Machine Learning
  • CS 491 - Virtual and Augmented Reality
  • CS 583 - Data Mining & Text Mining
  • CS 401 - Computer Algorithms I