Hi Chris,<br><br>I think Sebastien and I need to talk a bit about this to figure it out since neither of us has enough knowledge on our own to solve this.  <br><br>I cc&#39;ed the paraview mailing list since someone else may have some good input too or may want to follow your path in the future.<br>
<br>Andy<br><br><div class="gmail_quote">On Tue, Nov 29, 2011 at 11:39 PM, Chris Kees <span dir="ltr">&lt;<a href="mailto:cekees@gmail.com">cekees@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div style="word-wrap: break-word;">Hi Sebastien and Randall,<div><br></div><div>I think I&#39;m probably the user Randall mentioned earlier.  I&#39;m responding off list because these seems a bit detailed for a regular post--feel free to post it back to the paraview list if you like.  </div>
<div><br></div><div>Here&#39;s a rough idea of what I&#39;m up to. I&#39;m running the IPython notebook server (<a href="http://ipython.org/ipython-doc/dev/interactive/htmlnotebook.html" target="_blank">http://ipython.org/ipython-doc/dev/interactive/htmlnotebook.html</a>). I&#39;m looking for a way to do interactive 3D graphics inside an IPython &quot;notebook&quot;. I don&#39;t claim to know all the details of how the notebook server works but I think the set of connected services looks something like this:</div>
<div><br></div><div>WebClient (browser) &lt;-&gt; Tornado Web Server &lt;-&gt; IPython Client &lt;-&gt; IPython Kernel/Hub &lt;-1-to-N-&gt; Python Engines</div><div><br></div><div>where &lt;-&gt; is just some abstract connection (e.g. http, zeromq sockets,etc). </div>
<div><br></div><div>This set of processes basically gets started when I start the IPython Kernel on the command line of the server, though I can start &quot;engines&quot; later as well and connect/disconnect browsers without killing anything else.  The kernel starts up a Tornado web server to begin serving up &quot;notebook&quot; pages, which are JSON files containing executable python code and text &quot;cells&quot;. When somebody  points a browser to a notebook (say localhost:8000/some_path/test.pynb). You can then execute and run the python code in the code cells by doing various things on the webpage representing the notebook (push &#39;run cell&#39; etc.). The code cells can be executed either on the client python process, or the code can be sent through the hub to be run on a collection of &quot;engines&quot; also running python (and communicating with each other via MPI in my case).  </div>
<div><br></div><div>If the code cell is run on engines you can pull objects in the engines&#39; namespaces back onto the client.  Now, on the client, if an expression returns an object that implements the interface of an IPython DisplayObject (<a href="http://ipython.org/ipython-doc/dev/api/generated/IPython.core.display.html" target="_blank">http://ipython.org/ipython-doc/dev/api/generated/IPython.core.display.html</a>), then it gets displayed as part of the webpage in an &quot;output&quot; cell. DisplayObject&#39;s can return HTML, JSON, javascirpt, SVG, and range of image formats. I&#39;m attaching a pdf of a simple IPython notebook that has an expression returning a PNG DisplayObject at the very end.</div>
<div><br></div><div>In my case, the python engines are running MPI and solve a PDE in parallel. The data structures for the solution all get attached to VTK objects and a visualization pipeline on the engines.  Also, Andy Bauer helped me get those VTK objects attached to paraview using the servermanager module a few weeks ago so I can do co-processing now as well.   I&#39;m already able to composite, render, and interact with 3D objects using my Qt front end and the python VTK API.  I think it will be fairly simple to have the rank 0 engine generate a PNG of the rendered/composited image that will fulfill the requirements of an IPython PNG DisplayObject. That would give us non-interactive images of the solution in the notebook.</div>
<div><br></div><div>My question is whether there is a way to add ParaViewWeb into this collection of processes so we can generate not only stills but get full interactive 3D visualization in the notebook. I was thinking that a DisplayObject of type HTML, JSON, or Javascript might be able to write a bit of code that would point the browser to the tomcat server running a paraview web service. That service would itself be connected back to the same data sets on the engines. Something like this:</div>
<div><br></div><div>WebClient &lt;-&gt; Tornado &lt;-&gt; IPython Client ....  &lt;-&gt; python engines (with VTK objects and a servermanager) </div><div>                                 ^                                                             ^</div>
<div>                                  |                                                              |</div><div>                            Tomcat &lt;-&gt; ParaViewWS &lt;-&gt;       PW server  </div><div><br></div><div>
Anyway, if this seems like it&#39;s feasible I&#39;d be willing to build all the paraview web components on my laptop where I already have IPython, VTK, and Paraview co-processing working. If that works then we might be able to get some support for something more ambitious where the engines are running on HPC machines.</div>
<div><br></div><div>Thanks,</div><div>Chris</div><div></div></div><br><div style="word-wrap: break-word;"><div><br><div><div><div>On Nov 29, 2011, at 12:26 PM, Sebastien Jourdain wrote:</div><br><blockquote type="cite"><div>
Hi Randall,<br><br>This sounds good, so tomcat can easily be used on any user account<br>with no right outside his home. You can even strip down the default<br>package of tomcat so you get only the minimum required for ParaViewWeb<br>
and you can run it on any port higher than 1024.<br><br>To do that, you will need to download tomcat on your own and<br>unzip/untar it, then deploy ParaViewWeb into it and start tomcat<br>yourself.<br>That&#39;s basically what we are doing for its development.<br>
<br>Hope this help,<br><br>Seb<br><br>On Tue, Nov 29, 2011 at 1:01 PM, Randall Hand &lt;<a href="mailto:randall.hand@gmail.com" target="_blank">randall.hand@gmail.com</a>&gt; wrote:<br><blockquote type="cite">Something I can run entirely without any higher-permissions to the system,<br>
</blockquote><blockquote type="cite">with no access to /etc or /usr folders.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Sebastien Jourdain wrote:<br></blockquote><blockquote type="cite">
<blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Hi Randall,<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote>
<blockquote type="cite"><blockquote type="cite">Can you be more specific by what you mean by &quot;standalone&quot; and by<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">&quot;can&#39;t use Tomcat&quot; ?<br>
</blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Because, for me tomcat can be standalone. Would you think something<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">more embedded such as Jetty or something that does not involved Java<br>
</blockquote></blockquote><blockquote type="cite"><blockquote type="cite">at all ?<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">
Thanks,<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Seb<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">
<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">On Tue, Nov 29, 2011 at 10:00 AM, Randall Hand&lt;<a href="mailto:randall.hand@gmail.com" target="_blank">randall.hand@gmail.com</a>&gt;<br></blockquote>
</blockquote><blockquote type="cite"><blockquote type="cite"> wrote:<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite">
<blockquote type="cite"><blockquote type="cite">I have a user interested in using ParaViewWeb as a front-end to some<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">
visualization tasks, however we can&#39;t use TomCat in our environment.  Is<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">there any kind of &quot;Standalone&quot; service that can be used as a replacement?<br>
</blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">
I know several apps that expose a web interface offer a limited function<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">webserver (trac, ipython, etc) that allows it to work standalone without<br>
</blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">any<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">
external webserver configured.  Does such a setup exist for ParaViewWeb?<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">--<br></blockquote></blockquote></blockquote>
<blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Randall Hand<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><a href="http://www.vizworld.com" target="_blank">http://www.vizworld.com</a><br>
</blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">
_______________________________________________<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
</blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">
Visit other Kitware open-source projects at<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
</blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">
Please keep messages on-topic and check the ParaView Wiki at:<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><a href="http://paraview.org/Wiki/ParaView" target="_blank">http://paraview.org/Wiki/ParaView</a><br>
</blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">
Follow this link to subscribe/unsubscribe:<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><a href="http://www.paraview.org/mailman/listinfo/paraview" target="_blank">http://www.paraview.org/mailman/listinfo/paraview</a><br>
</blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">--<br>
</blockquote><blockquote type="cite">Randall Hand<br></blockquote><blockquote type="cite"><a href="http://www.vizworld.com" target="_blank">http://www.vizworld.com</a><br></blockquote><blockquote type="cite"><br></blockquote>
<blockquote type="cite"><br></blockquote>_______________________________________________<br>Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br><br>Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>Please keep messages on-topic and check the ParaView Wiki at: <a href="http://paraview.org/Wiki/ParaView" target="_blank">http://paraview.org/Wiki/ParaView</a><br><br>Follow this link to subscribe/unsubscribe:<br><a href="http://www.paraview.org/mailman/listinfo/paraview" target="_blank">http://www.paraview.org/mailman/listinfo/paraview</a><br>
</div></blockquote></div><br></div></div></div><br></blockquote></div><br>