[Paraview] Using MobileSocketPlugin to get metadata

2013-04-19 Thread Bueter, Travis J. (ST-Student)
Hi,

I am trying to get the metadata from ParaView by connecting to the socket. 
I'm having an issue where I am correctly sending the command to send the data 
but I'm not receiving the length value or string correctly. Below is my method 
how I am currently trying to get the length value:

// In the main program //
command = 2;
if(-1 == send(socket, command, sizeof(command), 0))
exit(1);

int size;
unsigned long long length;
if((size = Receive(socket, length, sizeof(unsigned long long)) 
= 0)
exit(1);
cout  size  endl;
cout  length  endl;

// Receive function //
int Receive( cons int sk, void* data, int len)
{
char* buffer = reinterpret_castchar*(data);
int total = 0;
do
{
int nRecvd = recv(socket, 
buffered+total, len-total, 0);
if(nRecvd == 0)
{
cout  No 
Data Received  endl;
exit(1);
}
if(nRecvd == -1)
{
cout  Error 
 endl;
exit(1);
}
total += nRecvd;
}while(total  len);
return total;
}

Now in the source code of the MobileSocketPlugin, I added a printf to show the 
value of length before it is sent over the socket.  When I run my code, it 
succeeds without an error but the value of my length is not equal.  For 
example, if I connect and run my code immediately after starting up ParaView, 
it always sends a value of 1733  but I receive a value of 7443178323969 
every time.  I'm really not sure what I need to change to get this correct.  If 
someone could point me in the right direction on what I need to be doing to 
receive the metadata through MobileSocketPlugin, I would greatly appreciate it!

Thanks,

Travis J. Bueter
--
Missouri University of Science and Technology - Junior
B.S. Computer Engineering/Computer Science
tjb...@mail.mst.edumailto:tjb...@mail.mst.edu
(573)-238-5843

IT RSS
Treasurer - MST Robotics Competition Team
--

___
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the ParaView Wiki at: 
http://paraview.org/Wiki/ParaView

Follow this link to subscribe/unsubscribe:
http://www.paraview.org/mailman/listinfo/paraview


[Paraview] Controlling RenderView using Wiimote and VRPlugin

2013-02-28 Thread Bueter, Travis J. (ST-Student)
Hi,

I am currently trying to create a way of controlling the camera in ParaView 
using the Joystick of a Wiimote (WiiC library). I had previously attempted this 
by using Pat Marion's socket plugin to send camera changes through the python 
shell but ran into a problem with sending too many Render() commands. It was 
suggested to me by Pat Marion and the Kitware employees I met at SuperComputing 
2012 to use the VRPlugin to accomplish this. So after a 3 month hiatus from my 
project, I have finally gotten back to it but am currently lost in 
documentation. I have no idea where to begin with writing the code for a custom 
device and then connecting to and writing the camera changes to the VRPN server 
for ParaView. If someone could point me in the right direction of documentation 
that explains how to create a custom device/interaction for the VRPlugin/VRPN 
or some examples of such user created applications I would greatly appreciate 
it!

Thanks,

Travis J. Bueter
--
Missouri University of Science and Technology - Junior
B.S. Computer Engineering/Computer Science
tjb...@mail.mst.edumailto:tjb...@mail.mst.edu
(573)-238-5843

IT Research Support Service
Treasurer - MST Robotics Competition Team
--

___
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the ParaView Wiki at: 
http://paraview.org/Wiki/ParaView

Follow this link to subscribe/unsubscribe:
http://www.paraview.org/mailman/listinfo/paraview


Re: [Paraview] Manipulating Big Data through Python Shell

2012-09-06 Thread Bueter, Travis J. (ST-Student)
Today I uploaded two videos to Youtube, showing the basics of what is 
happening. They can be found via the following links:

1.   http://www.youtube.com/watch?v=68yeT8t0TUcfeature=youtu.be

2.   http://www.youtube.com/watch?v=Linns_iSBrofeature=youtu.be


The init.py file used now uses renView.InteractiveRender() instead of just 
Render(), as suggested by Utkarsh. (Thank you again for that suggestion by 
the way!)

The first video is the mouse-based manipulation of 20MB of earthquake data. As 
shown, LOD is not active and my computer has no problem panning, rotating, etc. 
in near real-time.

Now in the second video you see how ParaView acts when using the Wii Nunchuk. 
The first part, without LOD active, you can see the extreme delay after I let 
go. After turning on LOD, the rendering speed does improve quite a bit but it 
is still not nearly as instantaneous as the mouse is without LOD. Also the data 
doesn't fully re-render after releasing the joystick; a mouse click is still 
required. I think I can remedy that just by sending Render() when the 
joystick is released.

So my current goal is to get the Wii Nunchuk application running the ParaView 
rendering at least at 90% of the capacity of what the mouse can, only using LOD 
if it is required when using the mouse also. I'm clueless as what else I can do 
with sending commands to the Python Shell to speed things up.  Are there any 
ideas of how to reach this goal from where I am now? Whether it be improving 
the current process of sending Python commands or using a completely different 
process of manipulating the rendering from an external application.

Also here is some more insight as to what the Wii application is actually doing 
in terms of interacting with ParaView. Just in case it could be useful 
information:


1.   The application is written in C++. During initialization, it connects 
to the server socket and loads the init.py file through the following commands:

svr.sin_family = AF_INET;
svr.sin_port = htons(9000);
inet_aton(127.0.0.1, svr.sin_addr);
s = socket(AF_INET, SOCK_STREAM, 0);
connect(s, (const sockaddr*)svr, sizeof(sockaddr_in));
write(s, execfile('init.py'), sizeof(execfile('init.py')));


2.   From there, every time the joystick is moved outside of its deadzone 
the following lines are ran:

stringstream ss;
ss.str(std::string());
ss  command(  x_value  ,  y_value  );;
const std::string temp = ss.str();
const char* cstr = temp.c_str();
write(s, cstr, strlen(cstr));


3.   I'm pretty sure that it is not the C++ side of my Wii application 
slowing things down. Using 'printf()'s, all the 'write()'s happen and finish 
without any noticeable delay.

I'm still open to any suggestions out there! All help is very appreciated :)

Thanks,

Travis J. Bueter
--
Missouri University of Science and Technology - Junior
B.S. Computer Engineering/Computer Science
tjb...@mail.mst.edumailto:tjb...@mail.mst.edu
(573)-238-5843

IT RSS
Treasurer - MST Robotics Competition Team
--


___
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the ParaView Wiki at: 
http://paraview.org/Wiki/ParaView

Follow this link to subscribe/unsubscribe:
http://www.paraview.org/mailman/listinfo/paraview


[Paraview] Manipulating Big Data through Python Shell

2012-08-31 Thread Bueter, Travis J. (ST-Student)
Hello,

I am trying to control renderings with a WiiMote instead of a mouse using Pat 
Marion's ParaViewSocketPlugin to send commands  to ParaView's python shell (see 
attached .py file) and running into an issue. When trying to manipulate 20MB of 
point cloud data, ParaView severely lags behind after sending commands and I 
was able to narrow it down to the 'Render()' call. My current fix has been to 
only call 'Render()' every third iteration of commands I send but this doesn't 
necessarily solve the issue as I plan on moving to GB sized data.

Does anyone have a suggestion as to what I can do to speed up rendering through 
the python shell, or another way of manipulating the render data from an 
external program?

Some extra information:

1.   I am running ParaView 3.14.1 64bit from source on Ubuntu 12.04

2.   Quickly rotating 15MB of point-data with the mouse peaks my CPU at 
about 53%. With my Wiimote application, this is just a little higher at 55% 
(rendering on every command).

3.   WiiMotes poll slower than most computer mice at 100Hz. So I'm pretty 
sure not sending commands any faster than a mouse would.

4.   Python commands are based on the python examples included with 
ParaView 3.14.1. They were designed to work as closely as possible to what C++ 
Trackball commands do. (This was my first time working with python or 
visualization manipulation so any advice on general improvements to the 
commands would be greatly appreciated too!)

5.   The Wii application works by utilizing the Nunchuk. Button 
combinations determine what type of manipulation (Panning, Zoom, Rotate, and 
Spin) and then it converts the magnitude and angle of the joystick into x-y 
coordinates.

I have tried to include all the information that I thought would be relevant 
but if there is anything else that you would like to know, I'd be more than 
happy to provide it.

Thanks,

Travis J. Bueter
--
Missouri University of Science and Technology - Junior
B.S. Computer Engineering/Computer Science
tjb...@mail.mst.edumailto:tjb...@mail.mst.edu
(573)-238-5843

IT RSS
Treasurer - MST Robotics Competition Team
--



init.py
Description: init.py
___
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the ParaView Wiki at: 
http://paraview.org/Wiki/ParaView

Follow this link to subscribe/unsubscribe:
http://www.paraview.org/mailman/listinfo/paraview


Re: [Paraview] Manipulating Big Data through Python Shell

2012-08-31 Thread Bueter, Travis J. (ST-Student)
Immediate Mode Rendering is off but I can't seem to utilize the LOD. I have it 
set and it clearly works when I use the mouse but the effects are not present 
when I use the WiiMote. I've yet to figure out how to get it to work with my 
application by using python.

From: Berk Geveci [mailto:berk.gev...@kitware.com]
Sent: Friday, August 31, 2012 3:08 PM
To: Bueter, Travis J. (ST-Student)
Cc: paraview@paraview.org
Subject: Re: [Paraview] Manipulating Big Data through Python Shell

Cool stuff! The performance problem makes me think that ParaView is not using 
display lists. Is Immediate Mode Rendering off? (it should be). When you get to 
GB size data, there will have to be some LOD involved. No graphics card can 
render that many points at interactive rates.
On Fri, Aug 31, 2012 at 3:47 PM, Bueter, Travis J. (ST-Student) 
tjb...@mail.mst.edumailto:tjb...@mail.mst.edu wrote:
Hello,

I am trying to control renderings with a WiiMote instead of a mouse using Pat 
Marion's ParaViewSocketPlugin to send commands  to ParaView's python shell (see 
attached .py file) and running into an issue. When trying to manipulate 20MB of 
point cloud data, ParaView severely lags behind after sending commands and I 
was able to narrow it down to the 'Render()' call. My current fix has been to 
only call 'Render()' every third iteration of commands I send but this doesn't 
necessarily solve the issue as I plan on moving to GB sized data.

Does anyone have a suggestion as to what I can do to speed up rendering through 
the python shell, or another way of manipulating the render data from an 
external program?

Some extra information:

1.   I am running ParaView 3.14.1 64bit from source on Ubuntu 12.04

2.   Quickly rotating 15MB of point-data with the mouse peaks my CPU at 
about 53%. With my Wiimote application, this is just a little higher at 55% 
(rendering on every command).

3.   WiiMotes poll slower than most computer mice at 100Hz. So I'm pretty 
sure not sending commands any faster than a mouse would.

4.   Python commands are based on the python examples included with 
ParaView 3.14.1. They were designed to work as closely as possible to what C++ 
Trackball commands do. (This was my first time working with python or 
visualization manipulation so any advice on general improvements to the 
commands would be greatly appreciated too!)

5.   The Wii application works by utilizing the Nunchuk. Button 
combinations determine what type of manipulation (Panning, Zoom, Rotate, and 
Spin) and then it converts the magnitude and angle of the joystick into x-y 
coordinates.

I have tried to include all the information that I thought would be relevant 
but if there is anything else that you would like to know, I'd be more than 
happy to provide it.

Thanks,

Travis J. Bueter
--
Missouri University of Science and Technology - Junior
B.S. Computer Engineering/Computer Science
tjb...@mail.mst.edumailto:tjb...@mail.mst.edu
(573)-238-5843tel:%28573%29-238-5843

IT RSS
Treasurer - MST Robotics Competition Team
--


___
Powered by www.kitware.comhttp://www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the ParaView Wiki at: 
http://paraview.org/Wiki/ParaView

Follow this link to subscribe/unsubscribe:
http://www.paraview.org/mailman/listinfo/paraview

___
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the ParaView Wiki at: 
http://paraview.org/Wiki/ParaView

Follow this link to subscribe/unsubscribe:
http://www.paraview.org/mailman/listinfo/paraview


Re: [Paraview] Manipulating Big Data through Python Shell

2012-08-31 Thread Bueter, Travis J. (ST-Student)
I would be happy to post a video, but I wouldn't be able to make and then post 
it until later next week. For very small data (such as a simple sphere), the 
WiiMote performs with only the slightest bit of lag in comparison to the mouse. 
But as the data gets larger, the lag increases linearly with the size.

From: Aashish Chaudhary [mailto:aashish.chaudh...@kitware.com]
Sent: Friday, August 31, 2012 3:20 PM
To: Berk Geveci
Cc: Bueter, Travis J. (ST-Student); paraview@paraview.org
Subject: Re: [Paraview] Manipulating Big Data through Python Shell

This is pretty cool!! Would it be possible to create a video of your 
interactions? Just to be sure, so are you saying that when you interact with 
mouse, the performance is much better than when you use wiimote? If performance 
is bad with both devices then it could be what Berk said. If one is better than 
another then there is something else is going on.

Thanks,



On Fri, Aug 31, 2012 at 4:08 PM, Berk Geveci 
berk.gev...@kitware.commailto:berk.gev...@kitware.com wrote:
Cool stuff! The performance problem makes me think that ParaView is not using 
display lists. Is Immediate Mode Rendering off? (it should be). When you get to 
GB size data, there will have to be some LOD involved. No graphics card can 
render that many points at interactive rates.
On Fri, Aug 31, 2012 at 3:47 PM, Bueter, Travis J. (ST-Student) 
tjb...@mail.mst.edumailto:tjb...@mail.mst.edu wrote:
Hello,

I am trying to control renderings with a WiiMote instead of a mouse using Pat 
Marion's ParaViewSocketPlugin to send commands  to ParaView's python shell (see 
attached .py file) and running into an issue. When trying to manipulate 20MB of 
point cloud data, ParaView severely lags behind after sending commands and I 
was able to narrow it down to the 'Render()' call. My current fix has been to 
only call 'Render()' every third iteration of commands I send but this doesn't 
necessarily solve the issue as I plan on moving to GB sized data.

Does anyone have a suggestion as to what I can do to speed up rendering through 
the python shell, or another way of manipulating the render data from an 
external program?

Some extra information:

1.   I am running ParaView 3.14.1 64bit from source on Ubuntu 12.04

2.   Quickly rotating 15MB of point-data with the mouse peaks my CPU at 
about 53%. With my Wiimote application, this is just a little higher at 55% 
(rendering on every command).

3.   WiiMotes poll slower than most computer mice at 100Hz. So I'm pretty 
sure not sending commands any faster than a mouse would.

4.   Python commands are based on the python examples included with 
ParaView 3.14.1. They were designed to work as closely as possible to what C++ 
Trackball commands do. (This was my first time working with python or 
visualization manipulation so any advice on general improvements to the 
commands would be greatly appreciated too!)

5.   The Wii application works by utilizing the Nunchuk. Button 
combinations determine what type of manipulation (Panning, Zoom, Rotate, and 
Spin) and then it converts the magnitude and angle of the joystick into x-y 
coordinates.

I have tried to include all the information that I thought would be relevant 
but if there is anything else that you would like to know, I'd be more than 
happy to provide it.

Thanks,

Travis J. Bueter
--
Missouri University of Science and Technology - Junior
B.S. Computer Engineering/Computer Science
tjb...@mail.mst.edumailto:tjb...@mail.mst.edu
(573)-238-5843tel:%28573%29-238-5843

IT RSS
Treasurer - MST Robotics Competition Team
--


___
Powered by www.kitware.comhttp://www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the ParaView Wiki at: 
http://paraview.org/Wiki/ParaView

Follow this link to subscribe/unsubscribe:
http://www.paraview.org/mailman/listinfo/paraview


___
Powered by www.kitware.comhttp://www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the ParaView Wiki at: 
http://paraview.org/Wiki/ParaView

Follow this link to subscribe/unsubscribe:
http://www.paraview.org/mailman/listinfo/paraview



--
| Aashish Chaudhary
| RD Engineer
| Kitware Inc.
| www.kitware.comhttp://www.kitware.com
___
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the ParaView Wiki at: 
http://paraview.org/Wiki/ParaView

Follow this link to subscribe/unsubscribe:
http://www.paraview.org/mailman/listinfo/paraview