Multitouch - graphics drawn with delay

hey vvvvolks,

i´m facing a “performance problem” in vvvv and i just wanted to ask if anybody recently had the same problems or might even has a solution for it.

so here we go…

i´m currently building a multitouch wall using a IR camera, IR laser and a usual projector. hardware flow goes like this: finger touches glass -> finger interrupts laser beam -> IR camera -> cvv 1.2

everthing fine here. camera is around 30 fps and ccv detects blob and sends them via OSC to vvvv.patch flow goes like:get data from ccv (TUIO Decoder) -> get positions of blobs -> draw circle on projection

so far, the patch is very simple and it runs easily at 60fps. but here´s the problem. there is quite a big delay between sliding my fingers and the circles drawn. so the distance between the graphics and my finger is, depending how fast i move, pretty big.

so i would like to know if this issue is could be connected with the computer i use (which i dont think because camera is at 30fps and patch at 60fps), the setup of the installation or if anybody has experiences related to the ccv software and could give me some hints.

any advice would be helpful!

cheers,
dl-110

Hey!
Check the delay between drawing something onto your screen and compare it to the projector output.
Some projectors introduce a pretty big lag.

alright. thanks for the tip.
i will give it a try as soon as i finished modifying my setup. update in this issue comming soon.

Even with 60 fps you may have a min. delay of about 16ms (1/60fps), so I’m afraid you never will be able to ‘stick’ objects to your fingertip. You can calculate the distance your finger moves in 16ms. E.g think about moving the finger by 60 cm per second, you will have your graphic will follow about 1 cm behind it. If your cam records with 30 fps, you get up to 2cm. And as ampop already said: Check the delay of your projector. Most modern devices connected by DVI or HDMI need some time for internal image processing (e.g. keystone correction, color correction etc.). Try also with an analog connection and switch off all corrections. From TV’s I know they often have a kind of ‘Gaming’ preset, which is almost never explained, but it also reduces the lag between signal in and displaying. Perhaps you find something similar in your projector.

setup is modified (at least a bit) and problem remains although the tracking and drawing is a little bit faster now. after a short discussion several possible problems were detected.

  1. the camera running at 30 fps is to slow. maybe a modified ps3 eye camera will do the trick.
  2. latency time of the projector (there is a latency - but the projector beeing the only problem is not very likely)
  3. OSC connection between vvvv and community core vision (ccv)

trying to solve the problem by attacking point 1 and 3.

point 1 by connectin a modified ps3 eye camera to the setup and
point 3 by detecting blobs within vvvv with trautner and contour node.

any further help or advices would be great.
i´ll keep you informed.

finished. here are my insights

point 3:
trautner and contour slowed down the framerate and the patch was even slower. maybe my cpu is to slow for these kind of things or my patching is so… well… “dumb” - which made everything slow. don´t know. due to a very small patch i would say it was the cpu ;)

…anyway…

point 1:
modifiying the ps3 cam did the trick. followed the instruction of these two videos (http://vimeo.com/2939528, http://vimeo.com/2975294) so the camera only detects IR light and well… now i have i ps3 camera running at 60 fps and the detection and graphics are much faster.at least as fast as a projected image can be. remaining problem is the small camera resolution which is about 320x240. due to the resolution the tracking isn´t as accurate as i want it to be… but that´s another topic.

if anyone has a hint to get the ps3 cam running at a higher resolution at 60 fps…(well, another hint than:“you need a faster cpu…”) i would appreciate that.
otherwise… thanks for all the fast replies in this issue.

so far,
dl-110

hello dl-110,

see this thread for the solution. (last 2 posts -> cleye.config has to be in the same directory as your vvvv.exe)

thanks m4d,
i´m going to give it a try asap.

with cleye.config the camera does 640x480@60 in vvvv. unfortunately ccv is not very impressed by the file and stays at 640x480@30 even when the config.xml in the ccv folder is modified.

however…

i gave reacTIVision a try and so far nearly everything is just fine. camera running at 60fps but the v4 patch shows a strange behaviour after a while. the framerate is at 60fps for a least 15 minutes and then slowly decreasing. after another 5-10 minutes the framerate gets wild, falling down to 20fps and then back up to 120 fps and everything in between without any pattern to refer to. the patch does so even no one is doing stuff in the reactive area of the MT.

main loop pins “Max foreground fpsS” and “Maximum background fpsS” are at 120 and “Time Mode” is set to “Filtered”.

any help is highly appreciated.

ahm… so this is vvvv and reactivision running in parallel and vvvv receiving osc-data? what if only vvvv runs receiving nothing…do you get the same behavior?

@joreg:

so this is vvvv and reactivision running in parallel and vvvv receiving osc-data?

jep.

what if only vvvv runs receiving nothing…do you get the same behavior?

yesterday i would have answered this question with a definite “yes” because i already gave it a try then. but things have changed. today vvvv runs smoothly at 60fps without reactivision. strange things happen here :)

@all:
right now vvvv and reactivision run simultaneously, nothing but a “main loop” and a “timing” node in vvvv : steady 60fps so far. so maybe it is a single node which causes the problem.
i will test a few more things today, trying to locate the exact destination of the problem. i´ll let you guys know as soon as the testing is done.

i assume you know about debug mode? (ctrl + F9 to toggle it on/off - mind that you won’t reach 60 fps with debug mode enabled)

yeah i know the debug mode. shows nothing suspicious so far. unfortunately i haven´t been able to look after the patch in the last weeks… maybe i´ll find some time in january.

try setting all you’re renderers Presentation Interval to immediately. VVVV should now run at 120fps as set in the mainloop node. You should notice some performance increase. You may get some tearing in you’re renderer if you’re unlucky.