CAVE System troubles

General discussion area.
hogan
Posts: 8
Joined: Mon 26. Nov 2012, 16:44

CAVE System troubles

Post by hogan » Mon 26. Nov 2012, 17:20

Good morning,

I'm a PhD student in IT at the University of Tallinn and a complete newcomer to JReality and I am trying to setup a simple small-sized prototype of CAVE System. It will consist of 2 walls and one floor (table). The actual testing environment is composed with 3 19" displays (as in the first picture below), but the final one will be made with 122x92cm backprojection screens.

My test machine (the one for the final system will be much empowered version of this, but still only one machine with several graphic cards to control the full system) is actually :

Corei5 Quadcore CPU
2xQuadro600 Nvidia graphic cards
8 Gb ram
OS : Ubuntu 12.10
3x19" Display
1x22" display (for the main control)
The display are runned on the dual heads of the Quadro600 cards as Separate X display.

I run and configured ParaView in the test environment and it worked perfectly (of course with only anaglyph stereo, but well enough to learn the configuration steps necessary for the final system) as you can see in the picture :

Image

I actually have 2 main problems and questions.

1) First of all, i don't seem to achieve in any way to run the cave-demo example that is included in jreality, nor in any other way. I tried to follow the setup steps indicated in the CAVE tutorial, but when i start it, the only thing i obtain is the Viewer window on my control display, and nothing at all in the other 3.
* while modifying the settings files, i tried to figure out how the output is distributed among the different displays (usually and in paraview i've been using :0.1 :0,2 to define the separate display, but in the several config files here in jreality i still can't find where it is done.
* the server name in the clients.dat file, how should they be properly specified?
Basically i'm being quite clueless on how to proceed at all, any help would be seriously welcomed!

2)The second main question deals with the physical setup that we will have to adopt for the final system. A picture explains it better than a lot of words i think, and here it is Image. One of the screens will have a "flap" that will disappear behind the other screen, so it will be hidden in the external frame. I would therefore like to reposition the coordinates of the "truncated" screen so to have anyway the complete scene perception looking at the center of the small cave. In paraview i managed to do that easily changing a couple of coordinates in the config file (the example in the first picture also shows it, it is not that well visibile in the picture and because the displays frames, but it seem to be working properly). Now, before designing and projecting the whole frame, we would like to know if this is also possible to do in JReality, as it is gonna probably be the software we will use mostly.

I hope i explained everything properly and to hear something soon from you,
thanks a lot in advance,
Emiliano

Andre
Posts: 226
Joined: Fri 18. Sep 2009, 11:30

Re: CAVE System troubles

Post by Andre » Mon 26. Nov 2012, 18:27

Hallo Emiliano,

nice that you're using jReality for your CAVE-Setup. I'll try to update the CAVE-Tutorials among this week. There have been some changes recently. This update will probably solve most of your questions and what's left I'll handle afterwards.

best Andre

hogan
Posts: 8
Joined: Mon 26. Nov 2012, 16:44

Re: CAVE System troubles

Post by hogan » Tue 27. Nov 2012, 08:49

Morgen Andre,

thank you very much! I will be waiting for news then, can't wait to make it finally work on our system (i'm kinda sure that i'll be asking more questions in here in the future anyway ).

Best and thanks,
Emiliano

Andre
Posts: 226
Joined: Fri 18. Sep 2009, 11:30

Re: CAVE System troubles

Post by Andre » Tue 4. Dec 2012, 10:04

Hi Emiliano,

I haven't forgot you. I had a busy week and couldn't manage it to proceed with the tutorial. You will find the technical data for our cave here: http://www.tu-berlin.de/3dlabor/ausstat ... ng/portal/ Unfortunately the site is just in German, but I'll write the responsible to get it translated.

As you can see, so far we have 3 walls and use 4 computers for our setup, one master and one for each wall. You have just one computer but several graphic-cards. In your setup you don't have to communicate with smrj, so your setup should be more simple. Today, I'll try to setup a testsetting with two separate X-screens on one Computer and start writing an tutorial for it. This should be similar to your case.

best
Andre

hogan
Posts: 8
Joined: Mon 26. Nov 2012, 16:44

Re: CAVE System troubles

Post by hogan » Tue 4. Dec 2012, 12:20

Hi Andre,

no problem and thank you very much again! Actually i know some german and my supervisor is german (he will be probably visiting you in berlin this week) so i can figure out some information from that page. But thanks for going on with the tutorial, i think a setup similar to mine is quite common for basic low-cost testing machines, so most probably some other people will benefit from it in the future!

Regarding the screens setup that I mentioned, with one of the screen flapping behind the other, do you think it's manageable? Because this is the last detail preventing me from building the frame (because i shall now somehow if i can hold that "flap" behind or i should better have it coming out from the external side instead.).

Best regards and good work again!
Emiliano

Andre
Posts: 226
Joined: Fri 18. Sep 2009, 11:30

Re: CAVE System troubles

Post by Andre » Tue 4. Dec 2012, 12:56

If I understand you right, then you mean with flap the lost part of your right screen. If so it shouldn't be a problem. You'll be able to deal with it via the config files.

E.g. our Walls have an ugly 5:4 ratio. Try to find projectors able to display such a resolution. We had to buy some with 16:10 resolution ratio:
At the walls we need 1500:1200 (5:4) our projectors have 1920:1200 (16:10). At our installation, we shrink the java frame to the needed size. The calibration is all done at the config files which I will explain in the tutorial too.

hogan
Posts: 8
Joined: Mon 26. Nov 2012, 16:44

Re: CAVE System troubles

Post by hogan » Tue 4. Dec 2012, 13:08

Hi Andre, that's exactly what i was looking for!
(among my first concerns when i started learning about how to build a cave, months ago, there was indeed this matter regarding the necessary ratios).
Thanks!
Emiliano

Andre
Posts: 226
Joined: Fri 18. Sep 2009, 11:30

Re: CAVE System troubles

Post by Andre » Thu 6. Dec 2012, 19:15

So, the first step is done. Together with Steffen, we have improved the jreality cave-demo and written a tutorial for "VR-Simulation of a single Desktop system":

http://www3.math.tu-berlin.de/jreality/ ... SceneGraph

Tomorrow I'll improve this tutorial further to a "Two-Desktop system with separate X"

best
Andre

hogan
Posts: 8
Joined: Mon 26. Nov 2012, 16:44

Re: CAVE System troubles

Post by hogan » Thu 6. Dec 2012, 19:55

Thank you very much guys, amazing speed and really helpful! I hope in spring i'll find a chance to pay you a visit in Berlin! Tomorrow I will finish dealing with the magnetic tracker, and if I don't have time tomorrow, at the beginning of next week i will try immediately with your tutorials!

Andre
Posts: 226
Joined: Fri 18. Sep 2009, 11:30

Re: CAVE System troubles

Post by Andre » Wed 2. Jan 2013, 18:54

Hi hogan,

have you made any progress on your Cave installation so far?

best Andre

hogan
Posts: 8
Joined: Mon 26. Nov 2012, 16:44

Re: CAVE System troubles

Post by hogan » Tue 8. Jan 2013, 13:59

Hi Andre, thank you for the tutorials! I've been away for two weeks, now i'm back in tallinn and in this week and next week i will be dealing again with our CAVe and with jReality. As soon as I get it working, or should i have any further question, I will let you know! Thanks again and see you soon!

hogan
Posts: 8
Joined: Mon 26. Nov 2012, 16:44

Re: CAVE System troubles

Post by hogan » Sat 12. Jan 2013, 15:00

Hi Andre,

I finally tested jReality on the small 3 displays setup and worked perfectly on the first attempt, the tutorial is perfect, exactly what we needed!

We have two remaining open issues anyway : stereo and tracking.

*** stereo - the current setup is with 3 common 19" displays, so it couldn't run any stereo mode other than red/cyan or crosseye mode. in the JRViewerVR i can toggle the stereo mode, but once active, if i try to change the stereo mode, i only have Crossed eye mode, red/green, red/blue and red red/cyan. As soon as I will move to a bigger system with paired projectors for passive stereo, how would i managed that?
Also, if I try to change the stereo mode, nothing happens but i have an exception report in eclipse :

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: de.jreality.portal.PortalServerViewer cannot be cast to de.jreality.jogl.Viewer
at de.jreality.plugin.menu.CameraMenu$6.actionPerformed(CameraMenu.java:125)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.JToggleButton$ToggleButtonModel.setPressed(JToggleButton.java:308)
at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877)
at java.awt.Component.processMouseEvent(Component.java:6504)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6269)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4860)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4686)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Component.dispatchEvent(Component.java:4686)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
at java.awt.EventQueue.access$000(EventQueue.java:101)
at java.awt.EventQueue$3.run(EventQueue.java:666)
at java.awt.EventQueue$3.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:680)
at java.awt.EventQueue$4.run(EventQueue.java:678)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

***tracking. We would like to obviously track the position and interaction of the user. Last week i wrote a vrpn server for the tracker we have, WintrackerIII, that is currently working well, but how to use it in jReality?

Thanks a lot for your time again,
Emiliano

Andre
Posts: 226
Joined: Fri 18. Sep 2009, 11:30

Re: CAVE System troubles

Post by Andre » Wed 16. Jan 2013, 11:56

Hi Emiliano,

the switching-bug should be fixed now.

For your wall-stereo question I need further information: What kind of graphicscard (nvidia quattro, nvidia consumer, ati) do you have? Do you have one graphiccard per wall or one per eye?

hogan
Posts: 8
Joined: Mon 26. Nov 2012, 16:44

Re: CAVE System troubles

Post by hogan » Wed 16. Jan 2013, 14:01

Hi Andre,
at the moment i'm testing with 2x quadro 600, (4x ports, 3 for the walls and 1 for the control display), but the system we'll fire un in the next days will be having 4x nvidia quadro4000, each managing a couple of projectors, so 1 graphic card+2 projectors per screen.
Best,
Emiliano

Andre
Posts: 226
Joined: Fri 18. Sep 2009, 11:30

Re: CAVE System troubles

Post by Andre » Mon 21. Jan 2013, 18:57

We are using trackd: http://www.mechdyne.com/trackd.aspx for our tracking. There is a daemon running, which calculates the transformations. Depending on your setup 'Synchronized SceneGraph' or 'Synchronized Toolsystem' you have to add certain arguments to your applications. I'll check and try to explain them later. I don't understand anything yet...

For your setup with one graphicscard and two projectors per wall, you have to render each eye seperately. You have to add the the following arguments to your clients:
#!/bin/bash
CONFIG=path_to_jreality/jreality_portal_settings
ARGS="-Xms1024M -Xmx1568M -Djava.library.path='path_to_workspace'

ARGS_LEFT="-Djreality.jogl.leftStereo=true"
script_render_per_wall 'DISPLAY=:0.0 java -Djreality.config='$CONFIG'/portal.$HOSTNAME '$ARGS' '$ARGS_LEFT' -jar 'path_to_jreality'/lib/smrj-client.jar

ARGS_RIGHT="-Djreality.jogl.rightStereo=true"
script_render_per_wall 'DISPLAY=:0.1 java -Djreality.config='$CONFIG'/portal.$HOSTNAME '$ARGS' '$ARGS_RIGHT' -jar 'path_to_jreality'/lib/smrj-client.jar

Post Reply