Posts

Hard hard user interfaces.

Started as someone doing ActionScript in Macromedia Flash I got into Human-Computer-Interaction after watching Jeff's Hann's multi-touch work. That's the power of a really cool demo that inspired the birth of NUIGroup community which spawned 1000s of makers all around the world making their own projector camera multitouch systems. All of it became mainstream once Apple released the iPhone to the world, and also gave birth to my interest in human-centered engineering. I spent some 10 years after that playing with sensors, haptics, and gestural interfaces through multiple input modalities but nothing stuck as much as multi-touch did. Thanks to Apple's execution. Everyone's phone/tablet interaction is default multitouch. (unless you have a visual impairment). Primsense evolved into Kinect, then came Wiimote, Leap but nothing stuck.  for speech, it was Amazon's Alexa. Latest news , that its going to lose Amazon 10B.  Like I am writing this post through my keyboard a...

Analysing an autorickshaw ride in Bangalore

Image
The bumpy ride on the Bangalore streets triggered a thought the other day, why not log the data and analyse it later(whackily purposeless initially).  The desire to log is esp. a fallout of my recent stint with user studies dealing with data cleaning/analysis and deriving statistical results from it: formally two-way ANOVA tests, T-tests etc. and who doesn't love clean graphs telling a story :-) Without giving much thought, I tied my Macbook Pro equipped with SuddenMotionSensor(SMS) to the auto-rickshaw seat and used http://www.shiffman.net/p5/sms/ to log the X/Y/Z axis data in CSV format. I manually kept a record through a stopwatch about the potholes/pit occurrence during the 25 minute rick-ride. It was interesting to the see the outliers due to the sudden relative motion triggered jerks. Ankit and I plotted a few qualitative graphs out of the sampled CSV data(6731 datalogs). I matched the spikes with the manually recorded pothole/sudden-jerk data to s...

Scratch Mini Bootcamp

So the scratch bootcamp turned out to be fun during my 14 day break from regular research. We traveled 3 cities, 4 schools, and introduced Scratch Programming environment to 8-12 year old kids. Most kids were first time introduced to programming. The novel drag and drop based looping and the fact that other kids from around the world could re-mix, check out their projects,  excited them into coming up with their own ideas, and build them into something usable. The projects involved animations, adding interactivity, and using sprites. Tapan Sharma(student of class 3rd) volunteered and shared some of the projects online . I am highly confident of Scratch as a learning tool, and its induction in our education system, due to its learning-by-doing approach.

Basically, its negative thinking

Image
Thoughts after watching Final Destination series!

The G1 and the interface blues

New year! HTC Dev Phone1, first time Android experience! The device felt loose, just like it would fall apart if I shake it. Why would I? Of-course the accelerometer exists, but then 500 $ should make it tough? Although its late, in Jan 2011,  I got an Android phone hands-on to try out for some prototyping. Being a iPhone user since the first gen, i found many contrasts, mostly being on the design and interface side. I had my brief stint of Android with Shreekant on his Galaxy, the interaction felt wonderful and intuitive. I got the device last week, it was an Android Dev Phone 1 (HTC G1) with Android 1.6 pre-installed. First experience was sloppy, slow, fragmented and far from slick. After a day of usage without Googling I found myself unable to change the pre-set Google ID (the phone was being used by someone else earlier). The interface locks you down into a loop undiscovered, just as if maybe the singularity had arrived. Then I actually figured out that th...

Plans for the Mozilla Firefox Multitouch UX

Image
I am quite interested in exploring the Multitouch scenario on Mozilla Firefox for my project under Felipe's and Gerv's mentorship. Working with Mozilla Team design team members( Alexander Limi ) and mentors is turning out to be a great experience so far. I am learning a lot of new things. Browsing the web is a very distributed activity with a lot of interactions possible- my aim would be to design a minimalist interface, that is slick, fast, and non-obtrusive. Hence devoted past couple of weeks researching on the topic-and doing some user study with Natural User Interface Group members. Browsing through guidelines and advice by Dan Saffer in his book "Designing Gestural Interfaces"  was an eye opener. I'll be using the book as a ready reference before writing code portions. - Setup Mercurial(hg) repo at Google-Code at a mirror at BitBucket - Wrote the extension skeleton: Sidebars etc. - Recompiled Fx on Ubuntu and Win - Checked out Fennec's and iP...

Last few days at college

Just taking a moment out to dedicate some space from one of the last few days that remain at college. The experience turned out very good, and will always remain with me. Sad and happy.

CV dilemma

Looks like there's a problem with OpenCV's distributed parameterization of coordinates used during the camera calibration tasks. Three distinct sources of information on img distortion formulae apparently give three non-equivalent description of the parameters and equations involved: (1) In their book "Learning OpenCV" write regarding lens distortion: xcorrected = x * ( 1 + k1 * r^2 + k2 * r^4 + k3 * r^6 ) + [ 2 * p1 * x * y + p2 * ( r^2 + 2 * x^2 ) ], ycorrected = y * ( 1 + k1 * r^2 + k2 * r^4 + k3 * r^6 ) + [ p1 * ( r^2 + 2 * y^2 ) + 2 * p2 * x * y ], where r = sqrt( x^2 + y^2 ). Assumably, (x, y) are the pixel coordinates (in pixel units) in the uncorrected captured image corresponding to world-point objects with coordinates (X, Y, Z), camera-frame referenced, for which xcorrected = fx * ( X / Z ) + cx and ycorrected = fy * ( Y / Z ) + cy, where fx, fy, cx, and cy, are the capturing camera's intrinsic parameters. Therefore, having (x, y) from a ...