[Paraview] Manipulating Big Data through Python Shell

Bueter, Travis J. (S&T-Student) tjbxv7 at mail.mst.edu
Thu Sep 6 17:38:18 EDT 2012


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=68yeT8t0TUc&feature=youtu.be

2.       http://www.youtube.com/watch?v=Linns_iSBro&feature=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
tjbxv7 at mail.mst.edu<mailto:tjbxv7 at mail.mst.edu>
(573)-238-5843

IT RSS
Treasurer - MS&T Robotics Competition Team
----------------------------------------------------------------------


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.paraview.org/pipermail/paraview/attachments/20120906/cae271a7/attachment-0001.htm>


More information about the ParaView mailing list