Author Topic: Head Tracking on a Linux 3d Desktop Environment  (Read 12847 times)

Offline Nphyx

  • *
  • Posts: 3
  • Karma: +0/-0
    • View Profile
on: January 13, 2008, 12:54:33 AM
Seems like a cool idea.



Offline OasisGames

  • *
  • Posts: 10
  • Karma: +2/-0
    • View Profile
Reply #1 on: January 13, 2008, 03:26:15 PM
You'll be happy to know that such functionality is being worked on.

http://wiki.compiz-fusion.org/Plugins/Wiitrack

This Compiz plugin does not yet track a Wiimote, but a separate plugin is being worked on to retrieve data from the Wiimote through CWiiD. The two should intertwine and "Wiitrack" as I've dubbed it will get data from the other plugin to calculate the head position. Other than that, we have a basic framework up and running and you can move a virtual head with key commands. It also stacks windows three dimensionally.



Offline Nphyx

  • *
  • Posts: 3
  • Karma: +0/-0
    • View Profile
Reply #2 on: January 13, 2008, 07:39:01 PM
That's pretty slick!  Thanks for your work, and the link.



Offline OasisGames

  • *
  • Posts: 10
  • Karma: +2/-0
    • View Profile
Reply #3 on: January 14, 2008, 03:04:38 PM
We now have our actual tracking up, but it's 2-point tracking "pan-and-zoom" tracking (the same stuff Johnny uses)
We'll be upgrading it to 6 DOF later. The plugin itself only requires the location of your head, which is provided by a second plugin that calculates and does a few other Wiimote things.



Offline SmSpillaz

  • *
  • Posts: 1
  • Karma: +0/-0
    • View Profile
Reply #4 on: January 15, 2008, 01:21:09 AM
Hey guys.

For those who don't have the necessary hardware to get the Wii Remote and Wii Head Tracking plugins working, I've posted a small demonstration video on YouTube (Below) of the plugin in action. It requires that you have Compiz Fusion. It's not quite done yet and there are still a few bugs and algorithm issues. Johnny's method of display and tracking seems to be a lot more accurate. I'll look into his code within the next few days. Other than that, the plugin works. See the above link for more info.

[youtube]http://www.youtube.com/watch?v=92i8to9njUo[/youtube]

- SmSpillaz



Offline EuroMateo

  • *
  • Posts: 16
  • Karma: +1/-0
  • Please join my project CHCIMC
    • View Profile

Offline uberben

  • *
  • Posts: 1
  • Karma: +0/-0
    • View Profile
Reply #6 on: January 25, 2008, 07:14:07 AM
That is pretty sweet. I can't wait to get a very usable implementation of that.

2 things, though. First of all, should those windows in the video be in the reversed order? You would think that when you move your head side to side that the window in the front would move most. Maybe its just the way that the video looks, but something seems fishy to me.

Second, when using the head tracker, how does the mouse function? If the slightest motion of the head moves your windows around, how is it possible to reliably click on your 3D windows with your 2D cursor? Also how is the z order determined? Is it just the least recently to most recently activated window? If so, wouldn't the windows do some serious jumping as you switch the focus of the windows? I suppose this could be countered with some smooth animation of sorts, but in my opinion, a 3D computing environment should just have all windows in the layering order you put them in and changing the focus leaves then where they are. That way the windows are where you want them. I suppose that will largely be a personal preference thing, but I suspect more people would agree.

Like I said, I'm really excited to see where this goes and how soon I will be able to implement it.



Offline OasisGames

  • *
  • Posts: 10
  • Karma: +2/-0
    • View Profile
Reply #7 on: January 31, 2008, 04:05:44 PM
That is pretty sweet. I can't wait to get a very usable implementation of that.

2 things, though. First of all, should those windows in the video be in the reversed order? You would think that when you move your head side to side that the window in the front would move most. Maybe its just the way that the video looks, but something seems fishy to me.

Second, when using the head tracker, how does the mouse function? If the slightest motion of the head moves your windows around, how is it possible to reliably click on your 3D windows with your 2D cursor? Also how is the z order determined? Is it just the least recently to most recently activated window? If so, wouldn't the windows do some serious jumping as you switch the focus of the windows? I suppose this could be countered with some smooth animation of sorts, but in my opinion, a 3D computing environment should just have all windows in the layering order you put them in and changing the focus leaves then where they are. That way the windows are where you want them. I suppose that will largely be a personal preference thing, but I suspect more people would agree.

Like I said, I'm really excited to see where this goes and how soon I will be able to implement it.
The front most window is on the screen, so it would not move at all relative to the screen itself. This is actually what allows interaction to be possible, as the top most window doesn't move. Z order is determined by Z order, period, there is no determination. I've tried animation, but failed miserably and decided to leave it for after I get a Wiimote myself and have a use for it. You can move the windows manually, but due to technical limitations (for which fixes have been in the works for many many months), you are not able to correctly click on windows that aren't flat on the screen (there is absolutely no way to transform the clicking into 3d space at this time, we're working on it, the X server guys are working on it, the functionality will come)
To tell you the truth, this video is extremely buggy and doesn't even use Lee's trig calculations. I just recently added them myself, so as soon as SmSpillaz gets the updates we should be able to get a new video out. I just hope my Y values are correct (I may have inverted them  :o )

You've actually brought up a great point and I'm going to try to get the Z order changing animation working this weekend, now that I have plenty of time to do it.