AR Research 2015-2018

Since 2015, I’ve worked on a variety of research projects that I’d retrospectively say were all related to the future of augmented reality, and particularly head mounted displays for augmented reality. I’ve recently started shifting my research focus to a new area, so I figured this would be a good time to post a retrospective of what I’ve done and what I feel I’ve learned over these last 3 years.

G3D Starter Project

I’ve recently been spending a lot of my time working on projects based on the G3D Innovation Engine by Morgan McGuire. I personally learned how to program using unix development tools, so I’m used to using the command line for everything, and Makefiles are the build tool I’m most comfortable with. G3D, being a research game engine, primarily for graphics research, has had to focus on Windows-based development for a number of years now.

Phaser Game

In the past few weeks, I decided to spend some of my spare time trying out some new methods for game development. In particular, I thought it would be good to come up with something that would allow me to easily create a networked game for multiple players, and would give me a chance to learn something new. I decided to look into javascript frameworks, and there were a wide variety out there.

Hugo Notes

I recently undertook the effort of moving my website from jekyll using jekyll-bootstrap to Hugo and I wanted to record some notes from my efforts. In particular I want to collect a set of useful links that helped me in making the switch. For what it’s worth, I greatly prefer Hugo now that I’ve gotten used to it, though there wasn’t too much broken about Jekyll. The most useful thing for developing my site was when I found the academic theme.

An Introductory Cache Problem

I recently gave a problem on the final in E85. The students didn’t do too well on it overall, so I wanted to post the problem and solution in an effort to make more resources available for people learning basic cache behaviors. First of all, I need to introduce the piece of ARM assembly being used since it is the basis for a number of questions. FUNC: 0x0044 SUBS R0, R0, #3 0x0048 BLT DONE 0x004C STR LR, [SP, #-4]!

Submitting my first article to arXiv

Today I submitted a technical report done by my students over the last academic year. It took a while to get the write-up to the level of quality that I felt good about submitting it, but now that it’s there, I figured I should push it out. I used arXiv to post it since they make it easy to publish a technical report while not preventing you from submitting the work to another venue such as a conference or journal at a later date.

Automount network drives on a Mac

I recently added a network storage device to my home network and decided I didn’t want to have to keep reconnecting to the device every time I got home and wanted to use it. I did a little searching and found a tool called ControlPlane that seems ideally suited to solve my issue. ControlPlane is really a tool to detect where you are using things that are already available and allow for automated actions to be taken when you arrive or leave a place.

Google Cardboard compatilbe iOS apps

I got a Google Cardboard last week at SIGGRAPH and since I don’t own an Android phone, I set out to find a way to use my iPhone to try it out. The first thing I noticed is that there were no web pages easily found that mentioned a list of apps that are compatible with it, even without including the magnetic switch for input. What follows is a short list of apps I discovered on my search:

Jetson TK1 First Steps

I recently received my Jetson TK1 Development Board, which I’m evaluating for potential use in an embedded systems course next Spring. This board is attractive to me because it has a high-end quad core ARM A15 processor as well as a high-end mobile GPU with support for the latest OpenGL and CUDA development environments. This post is going to serve as a way for me to record the things needed to set up the device in the first place, and hopefully more posts will follow as I manage to develop some examples on the board that will hopefully turn into lab assignments for the class.

A Busy Semester

This semester has been extremely exciting. In particular, E85 has been updated from MIPS to use the ARM v7 instructions set. This has been a good experience for me despite some difficulties and a few moments of intensity where I wasn’t sure things would come together in time. In doing this, I’ve come to learn a lot about the ARM ISA, and I’ve decided I like it a lot. In particular, I think it strikes a reasonably good balance between RISC and CISC instructions where there are a couple nice addressing modes for stack manipulation that aren’t quite RISC, but are close enough.