[yt-dev] Fwd: [yt_analysis/yt] Reason GUI Refactor: ExtJS4, Server Architecture, 3D rendering and parallelism (pull request #179)

Matthew Turk matthewturk at gmail.com
Sun Jun 24 04:34:37 PDT 2012

Hi all,

I've just issued a pull request for a major upgrade in Reason
functionality.  Sam, Britton, Nathan and I have been working on this a
bit, and it includes some pretty fun things.  Most of them are
self-documenting, but some of the architecture is documented in my
open PR on yt-doc that describes the new Reason architecture.

If you have the time, I'd very much appreciate it if you could test
this out.  Updating your repository to the state of my yt-extjs4 will
do nearly everything you need (all the changes are in Python and JS,
no Cython/C, so you don't need to recompile).  When you start up "yt
serve" it won't be able to find the one remaining zipfile you need of
the externally developed javascript, so it'll quit and tell you how to
get it.

If you have the time, we'd really appreciate your feedback on
functionality, style, architecture, suggestions, etc etc.  As I noted
in the pull request I'm super happy about where this is taking us.
Two of the more fun things are the "Dataset Information" widget's mesh
statistics view and the "3D Plot" which contains the grid lines and
can get isocontours.



---------- Forwarded message ----------
From: Matthew Turk <pullrequests-noreply at bitbucket.org>
Date: Sun, Jun 24, 2012 at 7:29 AM
Subject: [yt_analysis/yt] Reason GUI Refactor: ExtJS4, Server
Architecture, 3D rendering and parallelism (pull request #179)
To: yt at enzotools.org

A new pull request has been opened by Matthew Turk.

MatthewTurk/yt-extjs4 has changes to be pulled into yt_analysis/yt.


Title: Reason GUI Refactor: ExtJS4, Server Architecture, 3D rendering
and parallelism

This PR contains a number of major improvements to Reason:

* 3D Scene: isocontours, grid lines, and toggleable display of said
items.  Currently limited in scope, but promising for the future.  All
rendered in WebGL with XTK.
* The server infrastructure can use a Pyro4 backend to talk to MPI
tasks, and all parallel tasks will be executed transparently in
* The server infrastructure is completely hot-swappable, as is the
execution engine (for future swapping of engines with, for instance,
* Completely refactored javascript, which better fits the MVC pattern
used in ExtJS4.  This should improve readability, maintainability, and
* New widgets are easy to add, and the process for doing so is
documented.  (Easier in python *and* JavaScript.)
* Parameter file statistics widget!  Now with field source code and
mesh statistics
* Easier plot window widget creation
* Nicer appearance overall
* Camera path editing and viewing in WebGL (BETA sequence -- some
oddities still plague it)
* Better help page
* Directly loading binary files when shipping arrays to the browser,
instead of array->list->JSON->list->array.
* Debugging mode
* All externally-developed JS is now shipped in a small zip file that
does not need to be uncompressed.

Overall I think it's a nice evolutionary step forward in many ways,
and very exciting and awesome step forward in others.  For instance,
we now have a fully 3D scene explorer that requires *no dependencies*.
 I'm really excited about this.  The next step in this (particularly
with the MPI-parallel backend) will be exporting both the viewing
angle and the camera path to the volume renderer.  By using XTK we
gain access to a number of very nice features (goxtk.com has examples
that are quite impressive.)  I'm sure Sam or Nathan have some awesome
images to share from the 3D scene.

Thanks to Britton Smith, Sam Skillman and Nathan Goldbaum for their
gigantic help with this.  Britton, Sam and Nathan might also chime in
with notes about how to test various features.

There are still things to do:

* Beta testing by everyone!
* Integrate editing of colors, opacity and other attributes on
specific objects in the 3D scene.  Right now they're all the same!
* The camera path still has some odd translations/rotation effects
that make it not *quite* ready for prime time
* Screencasts/demos/ideas
* Develop and ExtJS4-based transfer function widget we can use in the browser
* More widgets: clumps, halo finding, cutting plane, 1D profiles, etc etc ...
* Suggestions for improvement

Please direct any feedback to yt-dev -- looking forward to discussing!

Changes to be pulled:

This is an issue notification from bitbucket.org.
You are receiving this either because you are the participating
in a pull request, or you are following it.

More information about the yt-dev mailing list