Multi-Touch System with Lasers

About a month ago I decided that it was time to do something geeky, so I looked at a couple different projects that I could do and picked a multi-touch system. I didn’t want to do the standard FTIR system because it seemed like a lot of people were building them so I decided to do it with lasers. I stumbled across this http://arbi.trario.us/2008/11/02/diy-laser-multi-touch-table/ tutorial and set on my way.

The first step was to do a lot of planning. How big should it be? What do I need to build it? How am I going to do something like this when I don’t know anything about the technology? Well, I decided to go ahead with it based on the list of parts that were in that tutorial plus a couple things of my own.

Once all of the parts were ordered, I decided to spec out and start building the box to house the screen and eventually the projector. Here are a couple pictures of the construction process.

Once that was built enough for me to start on the electrical aspects of the screen (and once all the parts arrived), I started on that. Cut out the corners of my acrylic and struggled with my first ever electrical circuit. Mounted the lasers in some air-drying clay and plugged it in. It worked on the first test (with a lot of little adjustments) and I have the following video to show you my first test.

There is still a lot to do with the setup, including adding the projector and a screen to touch, but it is on its way and I am very happy with it thus far. Stay tuned for more updates in the coming weeks.

thanks, marc

Happy 1 Year (ish) Anniversary to me

Hey folks,

In March 2008, I decided that I needed to actually start my own blog, it was something that I had thought about for a while but I never really pictured myself writing anything. It ended up being a great idea because it has pushed me to try new things so that I have something to post about. I have tried to use my blog as a place to share code and thoughts about the industry. So far, I would say that it has been a success and I thank all of you for staying with me through the year.

I thought that today I would mix things up a little bit by switching up my theme for my site. I wanted something with more room for the side columns now that I have my tweets feeding in to my site as well. So I hope this doesn’t screw anything up!

anyways, have a good one. Marc

Attention to Detail – Becoming More Efficient

A couple of years ago, when I was working at Critical Mass in Calgary, AB and noticed a couple things with the team that I was with that could make everything go faster. When I took a step back to evaluate what was happening I noticed that all of the issues that I was experiencing were rooted in having every person that was touching a project pay a little bit more attention to detail.

When I started my web career, I was at a smaller company that didn’t have the ability to get a huge account and throw 70 people at it to get it done; there were just a few of us on every account. So many projects were just pushed through that we didn’t have all the time in the world to make sure that layers were named and all code was documented.

As I got into the world of larger agencies I started to notice how detrimental this was to the efficiency of future projects, as well as the maintenance of past projects (already kind of knew that one). So what I did was I set up a meeting with most of the team and we talked about what people’s roles were, where they fit into the greater scheme of things, and all of the little things that individuals could be doing to make everything easier for all involved.

Some of it was obvious, just follow best practices and standards and things will run smoothly but it really seemed like people needed a reminder of a lot of things. I am not innocent on this either, I have been rushed through countless projects that just kept getting messier as the days went by. I thought that I would write this to remind people of the basics and hopefully get them to pay a little bit more attention to even the smallest things.

Names:

When creating anything, whether it be a Photoshop file or a Flash file make sure that you name everything clearly. Build everything as though someone else is going to have to look at it and understand it at some point down the line. Name all layers and assets with descriptive names, try and group similar assets and layers so that every bit of the file is quickly and easily accessible.

Layer Comps:

If you are working in Photoshop and passing files to designers, layer comps are a great resource for working with your content. If you haven’t heard of layer comps I strongly recommend looking into how to work with them. You can keep things organized, cut down file size, and make sure that it is clear what your thoughts were when designing.

Documentation:

I tend to write a little too much documentation in my code these days, just to be certain that anyone that touches my files know what was going on in my mind. One key thing to keep in mind with documentation is that it is not just for you, so keep it a little bit descriptive for others to understand. When documenting your code try to picture that your code is going online, not just what is produced by it, use this as a motivation to keep it clean and documented. That always helps motivate me because I have always been a little self-conscious about my code so I write a lot of documentation to help out.

Clean Code:

Don’t go through your files and name things randomly x and y. Come up with some short, succinct names and always follow a naming convention. This comes in handy a lot because you don’t have to go looking through all the definitions in the script to find that gameTimer is a game timer as opposed to having a variable named gt.

Know Your Team:

I have worked (and still work) at companies with multiple offices where I haven’t had the chance to meet many of my team members. This doesn’t have to be a problem thanks to other forms of communication, but communication is something that should really be pushed. When starting on a project, I always find it best to layout the some sort of plan for putting everything together. If you are a programmer just blindly getting files from a designer then you may not get what you want. If you are a designer preparing files for a developer, you may be doing more than you have to.

A good example of this is when there are a couple of different stages in design/development that are sharing assets. Let’s say a designer creates a PSD and passes that off to a motion designer who spends days animating things over and over again. This might prove to be a waste of time because the developer can re-use just the first animation and do the rest. These are things that should be discussed beforehand. With experience, you will eventually start picking up on aspects that can be coded and those that should be manually done. Until then, just talk.

Know Your Own Role:

This one has always been a big one for me. Being a developer, I am generally one of the last touch-points on a project before it gets out the door. This means that towards the end of the project if anyone has an issue with the way something looks or works, they generally come to me first. This is where I have to make the decision if that is something that I should do. I can make little revisions to positioning and layout but I know that anything even slightly beyond that should be done by or with a designer to ensure that it is done right and won’t have to be done again.

Knowing your role basically comes down to knowing your strengths in a given project and knowing when to go to others to use their strengths. If you are at an agency, there is generally someone that you can turn to that can do something quicker and better than you if the task is not in your specific area.

Overall, Just Pay Attention

In the end, it all comes down to just paying attention and spending the extra couple minutes on the fine details. Once you get into the habit of doing things that I listed above, they become easier and quicker and you may even find that your work is not just getting easier to work with but it is getting better and you are getting things done faster.

– Thanks, Marc

The Nepali Children’s Education Project

The Nepali Children's Education ProgramIn 2006 a very good friend of mine, Luke Yorkden-Chamberlain, traveled to Nepal. The experience impacted him deeply and set the course for the formation of the Nepali Children’s Education Project (NCEP).

For the past 6 months he has been talking to me about the organization and asked that I build a website for him. Due to time restrictions I have been unable to make a site that is as solid as NCEP is deserving of but last night I finally got the first launch of the site up and running at http://www.nceponline.org/.

The Nepali Children’s Education Project’s mission is to provide poor and orphaned children with the financial means to access and complete primary and secondary education in Kathmandu, Nepal, facilitated through fund raising initiatives in Canada. I ask you to take a look at the site and consider making a contribution to the cause. The members of the organization are very passionate about what they are doing and after hearing stories from Luke about his reasons for getting the ball rolling with the organization, I believe that they have started something great for the children of Nepal.

thank you and happy holidays !

My First REAL Touch of Processing

For several years now (since seeing the presentation at FITC in Toronto), I have had an interest in the capabilities of Processing. I have only ever had time to dabble in it and just get a feel for what other people have done.

Last week I was able to find some time for playing with a couple of the libraries that interest me in order to see what they can do. I grabbed the OpenCV Processing library and a couple others and started playing with my video camera. I don’t know if the issues that I had are related to the fact that I am on a Macbook Pro with Windows Vista on it but for the life of me I couldn’t get my webcam to work with the OpenCV capture methods. But I managed to get it up and running with a different library and then grabbed the incoming image with OpenCV to process it.

Take a look and let me know what you think: www.marcpelland.com/application.windows.zip (you need a webcam). It isn’t much, but it was good to finally get in there and write some code in Processing. I don’t really know if I am going to pursue this much further after discovering that I cannot access the webcam VIA a java applet. If there is anyone out there with more java / processing experience that may have a way to use this type of app online I would be very greatful.

thanks, marc