Thin Air Multitouch

Although I have a deep interest in all ways that we interact with technology, one my favorite niche areas of HCI is Multitouch research. Ever since I saw Jeff Han give his TED Talk on Multitouch technology, I was hooked. This summer I wanted to make my own Multi... Read More

View Next Project View Complete Portfolio

Web Design Portfolio

WebGIFT (November 2010-Present) Under RIT's Laboratory for Environmental Computing and Decision Making, I work as a student software engineer developing both domain logic and a new web interface for GIFT (Geospatial Intermodal Freight Transportation). The purpo... Read More

View Next Project View Complete Portfolio


View All Posts »

New House!


Meg and I got a new house on Sunday! We’re super excited about it, and we’re really looking forward to moving in soon.

Here’s the owner’s description of the property (I think he said it best):

Nice & Cute corner house in the heart of the nice part of Point Breeze. Make as much noise as you want because you don’t have any neighbors right next to you! I’m renting my beloved house because I’m moving in with my girlfriend.

You’re in Point Breeze. Home of Mac Miller. Right across the street is a great Doctor named Joop, a Vet, 2 Amazing Restaurants with cute bars, the best Coffee Shop in the burgh,
Dry Cleaners, Salon & More. You’re also a 5 minute jog away from the beautiful Frick Park.

Yes, you have your own parking spot & plenty of off street parking too. You’re welcome.

Do you like to people watch? I do. You have an awesome porch you can hang out at and even eat dinner on while you watch the dog walkers, joggers and restaurant goers.

Walk right into the house and you’re in the dining room that is connected to the kitchen by an awesome bar. You even got a nice little liquor cabinet to host your next jump off.

The kitchen is cool. It comes with a stove, fridge and dishwasher and has enough space in it to entertain your friends and cook them up something real nice.

The dining room and kitchen are connected in an open space manner with the living room. No big deal.

The living room is pretty pimp. You can fit a big TV and nice sectional couch in it. I watched the superbowl with friends here and we fit 8 people in it. We were kinda squished though, but it was fun.

The is the view from the living room to the dining room. My mom made me that painting on the right.

If you walk upstairs and make a left, you’ll see the master bedroom. It fits a king sized bed and leaves a lot of space. There are two closets in here, enough for 1 person’s clothes. There are three windows in here that bring in a lot of great sexy, natural light.

The second bedroom has a nice size to it, and also comes with a small walk in type closet. Lots of fresh sun rays come into this room too. I use this room as a guest room and my guests love it.

The bathroom has a nice size to it. The only strange thing about the bathroom is that when you are pooping, you have to stretch to grab the toilet paper.

Here’s a view from the porch of one of Pittsburgh’s best restaurants, Point Brugge Cafe. Stop in for their mussels or just grab a nice Belgian beer at the bar and mingle with the locals. You can stumble right home. If the line is too long to
get in, just give them your phone number and they’ll call you. Go back home but bring some of their bloody mary’s with you until they’re ready for you. That little trick will come in handy for Sunday brunch.
What else do you need to know about this place?

- hardwood floors throughout
- washer and dryer
- big basement for storage (comes with punching bag)
- central heat and a/c
- fans in the bedrooms to save on your a/c bill
- incredible location
- awesome landlord (me)

Can’t wait!

Things I’ve Learned The Hard Way So You Don’t Have To

1 Comment

This past Thursday I gave a Tech Talk for the Society of Software Engineers titled Things I’ve Learned The Hard Way So You Don’t Have To (a.k.a. Hacking Life).

This Tech Talk was very different than every other one I’ve given as it really wasn’t about any technology at all. In essence, it was a talk about everything I wish I knew when I started at RIT and moreover, it’s the graduation speech I couldn’t give ;)

In the talk I went over over project management tips, personal information management tricks, tips for leading a happy life as a student and generally anything I’ve found in the past few years I’ve found to be really useful – in essence, everything I’ve learned the hard way so you don’t have to :)



Slide Deck (with notes):

Links referenced in talk:

CG2 Ray Tracer Updates


Howdy folks!

These past two weeks have been an interesting few for my ray tracer. It began with this:

That’s not a lossy image, unfortunately it’s my graphics card doing some ungodly things. Occasionally, it would cause the system to freeze entirely when drawing the app, but for the most part, things weren’t so bad…. until my hard drive decided it didn’t want to be friends with me anymore.
So, I did a Time Machine restore and ultimately ended up only losing about two weeks of work. Not as bad as it could have been.
However, that’s when things started to get interesting. I started doing some LINQ at work and thought this would be so cool to use for my ray tracer. I could do three dimensional spatial query using LINQ to take care of the ray intersection logic for me (among other things), check it out:
private IEnumerable<ISect> Intersections(Ray ray, CGScene scene)
return scene.AllObjects
.Select(obj => obj.Intersect(ray))
.Where(inter => inter != null)
.OrderBy(inter => inter.Dist);
This, however, meant that I would have to have both a language and paradigm shift over to C#/.NET. I was already a few weeks in the hole, but I knew what I needed to do and calculated that it should only be “an extra three hours or so of work” to port it over.
I was wrong. The work took longer than I had expected, and now I was maintaining two different codebases. Retrospectively, this was a poor choice. As a result, I wasn’t able to get everything working that I wanted to for Checkpoint 7 functionality, but I was able to do a lot of extras! Here are some screenshots of the app demonstrating some of those functionalities (some of these I forgot to put in the Readme):
  • Adjust your shadow ray to take into consideration the transparency of any object(s) it intersects
  • Implement another procedural shader or texture
  • Implement texture mapping from an image
  • Add support for multiple light sources

Here are some sample images of the .NET version. Check it out!

Checkpoint 6

Different Programmatic Shader

Different Light Position

Different Light Position and Color

Wood Texture Mapping

Wood Texture Mapping

Anyways, this project certainly has been a learning experience, and I got some cool images to show at the end of the day. Not bad!