<rss version="2.0"
 xmlns:dc="http://purl.org/dc/elements/1.1/"
>
<channel>
<title>The Kitware Blog</title>
<link>http://www.kitware.com</link>
<description>News and updates for Scientific Visualization in The Kitware Blog</description>
<copyright>Copyright Kitware Inc.</copyright>
<pubDate>Tue, 06 Dec 2011 14:46:11 -0500</pubDate>
<lastBuildDate>Tue, 06 Dec 2011 14:46:11 -0500</lastBuildDate>
<item>
<title>ParaView 3.12.0 Released</title>
<dc:creator>David Partyka</dc:creator>
<dc:creator>Utkarsh Ayachit</dc:creator>
<dc:creator>David Partyka</dc:creator>
<link>http://www.kitware.com/blog/home/post/201</link>
<description>&lt;div&gt;&lt;span&gt;The ParaView team is pleased to announce the availability of the ParaView 3.12.0 final binaries for download on the ParaView&amp;nbsp;&lt;a title=&quot;Download Page&quot; href=&quot;http://paraview.org/paraview/resources/software.html&quot; target=&quot;_blank&quot;&gt;Download Page&lt;/a&gt;.&amp;nbsp;&lt;/span&gt;ParaView 3.12 can be considered as a bug-fix release with over 190 issues resolved.&amp;nbsp;The detailed list can be found on the &lt;a href=&quot;http://www.paraview.org/Bug/changelog_page.php?version_id=85&quot; target=&quot;_blank&quot;&gt;change-log page&lt;/a&gt;.&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;With Python being one of the preferred means of interacting with ParaView, we've&amp;nbsp;added support to create animation tracks that use Python scripts to build highly&amp;nbsp;customized animations.&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;Plugins support is one of the strong points of ParaView and with this release,&amp;nbsp;we've made it easier to load deployed plugins on the server processes as well.&amp;nbsp;All distributed plugins are now listed on the client as well as the server side.'&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;The release includes updates to LANL's streaming framework. The&amp;nbsp;multiresolution streaming view now automatically adjusts resolution to&amp;nbsp;match the projected image size. Also, VTK filters are now able to&amp;nbsp;modify meta-information which means they can modify the data while&amp;nbsp;still allowing the streaming framework to cull and prioritize pieces.&amp;nbsp;An example is a new spherical warp filter that projects flat data onto&amp;nbsp;the globe while correctly tracking piece bounding boxes.&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;Also, there are updates to support users of the cosmology and&amp;nbsp;windblade formats. For example the MaskPoints filter (used to place&amp;nbsp;glyphs and in other places) was updated with new options that improve&amp;nbsp;random sampling in parallel. Likewise VTK's Gaussian Splatter filter&amp;nbsp;is now exposed in ParaView which makes it easy to visualize point set&amp;nbsp;data with imaging filters. The cosmo and windblade readers have also&amp;nbsp;been revised.&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;This version includes some major changes under the covers.&amp;nbsp;ParaView 3.12 includes improvements to the underpinnings of ParaView&amp;nbsp;ServerManager. The communication layer under the ParaView ServerManager was&amp;nbsp;upgraded to minimize communication as well as making it easier to debug and&amp;nbsp;trace messages being exchanged between client and server. We now use Google&amp;nbsp;Protocol Buffers, for example, to exchange messages between client and server.&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;In addition, there are several small but notable improvements included in this&amp;nbsp;release for example, the views now use caching to avoid re-renders from repaints&amp;nbsp;due to menus and dialogs popup up on the screen; volume rendering of&amp;nbsp;uniform grids now supports shading; ability to enable specular highlights when&amp;nbsp;using scalar coloring and others.&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;The updated userguide can be accessed on the &amp;nbsp;&lt;a href=&quot;http://www.paraview.org/Wiki/ParaView/Users_Guide/Table_Of_Contents&quot; target=&quot;_blank&quot;&gt;ParaView Wiki&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://paraview.org/files/v3.12/ParaView%20Users%20Guide%20v3.12.pdf&quot; target=&quot;_blank&quot;&gt;(pdf)&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;The development team has adopted a git-workflow-based development process that&amp;nbsp;is integrated with the &lt;a href=&quot;http://paraview.org/Bug&quot; target=&quot;_blank&quot;&gt;ParaView Bug Tracker&lt;/a&gt;. The&amp;nbsp;workflow enables us to track every change that goes into ParaView and maintain a&amp;nbsp;stable repository.&lt;/div&gt;
&lt;p&gt;&lt;span&gt;&lt;span style=&quot;color: #222222; font-family: arial, sans-serif;&quot;&gt;We value your feedback.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #222222;&quot;&gt;Please use&amp;nbsp;&lt;a href=&quot;http://paraview.uservoice.com/&quot; target=&quot;_blank&quot;&gt;uservoice&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&amp;nbsp;or click on the &quot;Tell us what you think&quot; link on&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://paraview.org/&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: #3333ff;&quot;&gt;paraview.org&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&amp;nbsp;to leave your feedback and vote for new features.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description>
<pubDate>Tue, 08 Nov 2011 19:10:24 -0500</pubDate>
</item>
<item>
<title>ParaView at the Large-Scale Data Analysis and Visualization (LDAV) Symposium</title>
<dc:creator>Utkarsh Ayachit</dc:creator>
<link>http://www.kitware.com/blog/home/post/199</link>
<description>&lt;p class=&quot;p1&quot;&gt;&lt;span class=&quot;s1&quot;&gt;If you strayed into the corridors of Kitware or one of the ParaView developer meetings, you could not miss hearing talk about ParaView 4.0. As the team actively discusses new features and improvements we want to include in this major release for ParaView, I couldn&amp;rsquo;t help but remember some of the early meetings we had when we were planning for ParaView 3.0. There were many improvements discussed with 3.0, but one of the major ones was the support for customization. Our goal was to make a framework that would allow the development of sophisticated, high-end parallel visualization applications based on the ParaView infrastructure as well as a plugin-based architecture allowing developer add new features and enhancements to ParaView with ease. Through various releases since, this infrastructure has undergone several evolutions, but the underpinnings remain the same. For the longest time, all this seemed hypothetical, until my recent visit to IEEE VisWeek.&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;p3&quot;&gt;&lt;span class=&quot;s2&quot;&gt;I was at the first ever &lt;strong&gt;IEEE Symposium on Large-Scale Data Analysis and Visualization&lt;/strong&gt; (&lt;em&gt;LDAV&lt;/em&gt;) held in conjunction with &lt;em&gt;VisWeek 2011&lt;/em&gt;. The symposium focused on &amp;ldquo;&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&lt;em&gt;bringing together domain scientists, data analytics and visualization researchers, and users, and fostering the needed exchange to develop the next-generation data-intensive analysis and visualization technology&lt;/em&gt;&amp;rdquo;. In a day that was very well attended until the &lt;em&gt;fat lady sang&amp;nbsp;&lt;/em&gt;-- so to speak -- over 14 papers were presented ranging from novel approaches to dealing with visualization challenges for new architectures to understanding how architectural decisions affect visualization and analysis. It was expected to be an interesting day; what was a pleasant surprise, for me at the least, was that several of the presenters mentioned customizations for ParaView! Some demonstrated their capabilities by integrating code into ParaView, a couple discussed how ParaView can be extended using proposed enhancements to a greater benefit. In this article, I give a quick overview of the papers that refer ParaView. Basically, a summary of the cool things the community is doing with ParaView.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;p3&quot;&gt;&lt;span class=&quot;s1&quot;&gt;Joe Insley, in his paper &amp;ldquo;&lt;em&gt;Visualizing Multiscale, Multiphysics Simulation: Brain Blood Flow&lt;/em&gt;&amp;rdquo;, discussed how he and his team developed visualization tools for data from coupled continuum-atomistic simulations. They developed a ParaView reader plugin for processing macro-scale continuum data computed by a high-order spectral element solver. The reader plugin will be distributed with the official 3.12 ParaView binaries.&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;p3&quot;&gt;&lt;span class=&quot;s1&quot;&gt;Venkat Vishwanath presented their work on GLEAN in &amp;ldquo;&lt;em&gt;Toward Simulation-Time Data Analysis and I/O Acceleration on Leadership-class Systems&lt;/em&gt;&amp;rdquo;. GLEAN is a &amp;ldquo;flexible framework for data-analysis and I/O acceleration at extreme scale&amp;rdquo;. In a nutshell, GLEAN provides extensions to the I/O libraries that make it possible to leverage the network topology and other parameters for efficient I/O. At the same time, GLEAN enables in-situ analysis as the data is being streamed out for I/O. They demonstrated GLEAN&amp;rsquo;s co-visualization capabilities by connecting PHASTA (a CFD code) to ParaView through GLEAN.&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;p3&quot;&gt;&lt;span class=&quot;s1&quot;&gt;As data sizes keep growing, fast, interactive visualization and analysis becomes a challenge. John Patchett, presenting the paper by Jon Woodring et. al. titled &amp;ldquo;&lt;em&gt;Revisiting Wavelet Compression for Large-Scale Climate Data using JPEG 2000 and Ensuring Data Precision&lt;/em&gt;&amp;rdquo;, argued that the majority of these bottlenecks are due to data movement and associated bandwidth limitations. Using wavelet compression in JPEG 2000, John presented a mechanism to achieve improved data-transfer times by sacrificing data quality to varying extents. The team, in collaboration with Kitware, developed a working prototype within ParaView that uses reader plugins and new streaming views and enhancements to the VTK pipeline.&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;p3&quot;&gt;&lt;span class=&quot;s1&quot;&gt;Nathan Fabian&amp;rsquo;s &amp;ldquo;&lt;em&gt;The ParaView Coprocessing Library: A Scalable, General Purpose In Situ Visualization Library&lt;/em&gt;&amp;rdquo;, another paper involving contributing from members of the scientific visualization team at Kitware, presented ParaView&amp;rsquo;s coprocessing library. It is a framework for in situ visualization and analysis. The coprocessing algorithms can be directly linked and executed within the simulation code. The paper presented results from integrating the ParaView coprocessing library into various simulation codes such as PHASTA, CTH, S3D.&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;p3&quot;&gt;&lt;span class=&quot;s1&quot;&gt;Oddly enough, it seemed like I was one of the few presenters at the symposium not talking about ParaView at all (I was there presenting the &lt;strong&gt;Dax Toolkit&lt;/strong&gt;)! &amp;nbsp;I suppose after talking ParaView day in and day out, it&amp;rsquo;s refreshing to shut up and listen to what others have to say about ParaView.&lt;/span&gt;&lt;/p&gt;</description>
<pubDate>Mon, 07 Nov 2011 23:21:31 -0500</pubDate>
</item>
<item>
<title>ParaView 3.12.0 RC-3 released</title>
<dc:creator>David Partyka</dc:creator>
<dc:creator>Utkarsh Ayachit</dc:creator>
<dc:creator>David Partyka</dc:creator>
<link>http://www.kitware.com/blog/home/post/195</link>
<description>&lt;p&gt;Kitware is pleased to announce the release of ParaView 3.12 release candidate 3. This release can be considered a bug-fix release that addresses over 180 issues; the full list can be found at &lt;a href=&quot;http://www.paraview.org/Bug/changelog_page.php?version_id=85&quot; target=&quot;_blank&quot;&gt;http://www.paraview.org/Bug/changelog_page.php?version_id=85&lt;/a&gt;. Binaries for Windows, Linux, and Mac operating systems are now available for download on the &lt;a href=&quot;http://paraview.org/paraview/resources/software.html&quot;&gt;ParaView download page&lt;/a&gt; and a revised user guide can be accessed on the &lt;a href=&quot;http://www.paraview.org/Wiki/ParaView/Users_Guide/Table_Of_Contents&quot;&gt;ParaView Wiki&lt;/a&gt;, or in &lt;a href=&quot;http://paraview.org/files/v3.12/ParaView%20Users%20Guide%20v3.12.pdf&quot;&gt;PDF form&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As Python continues to be one of the most preferred means of interacting with ParaView, release candidate 3 contains new support for creating animation tracks that use Python scripts to build highly-customizable animations. We&amp;rsquo;ve also added new capabilities to our plugin support, making it easier to load deployed plugins on server processes. All distributed plugins are now listed on the client side as well as the server side.&lt;/p&gt;
&lt;p&gt;Updates have also been made to the streaming framework at Los Alamos National Laboratory (LANL). The multi-resolution view now adjusts the resolution to match the projected image size. Additionally, VTK filters can now modify meta-information, allowing users to modify data while the streaming framework culls and prioritizes pieces; for example, the new spherical warp filter projects flat data onto a globe while successfully tracking bounding box pieces.&lt;/p&gt;
&lt;p&gt;Additionally, support updates have made for users of the cosmology and windblade formats. For example, the MaskPoints filter for placing glyphs, etc. was updated with new options for improving random sampling in parallel. VTK&amp;rsquo;s Gaussian Splatter filter was likewise exposed in ParaView, making it easier to visualize point set data with imaging filters. The cosmology and windblade readers have also been revised.&lt;/p&gt;
&lt;p&gt;ParaView 3.12 also includes major improvements to the underpinnings of the ParaView ServerManager. The communication layer beneath the ServerManager was upgraded to minimize communication and make it easier to debug and track messages exchanged between the client and server.&lt;/p&gt;
&lt;p&gt;Smaller yet notable improvements included in ParaView 3.12 include views now using caching to avoid re-renders from repairs due to menus and dialog popups on the screen; volume rendering of uniform grids to support shading; and the ability to enable specular highlights when using scalar coloring, etc.&lt;/p&gt;
&lt;p&gt;The following updates have also been addressed since release candidate 2:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;12670 SPTimeseries tests failing&amp;nbsp;&lt;/li&gt;
&lt;li&gt;12636 fix incompatibility with OCCT 6.5.2&amp;nbsp;&lt;/li&gt;
&lt;li&gt;12678 Build issues using external png on OSX&amp;nbsp;&lt;/li&gt;
&lt;li&gt;12667 cross compilation fails&amp;nbsp;&lt;/li&gt;
&lt;li&gt;12671 Prism now working correctly in client-server mode.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;12630 Default PARAVIEW_INSTALL_THIRD_PARTY_LIBRARIES to OFF&amp;nbsp;&lt;/li&gt;
&lt;li&gt;12652 coprocessing writers menu is not enabled after creating a filter and hitting the Apply button&amp;nbsp;&lt;/li&gt;
&lt;li&gt;12650 Multiple file plot over line seg faults&amp;nbsp;&lt;/li&gt;
&lt;li&gt;12651 Crash toggling displayed variables plot over line.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;12638 ServerConfiguration XML (PVSC) not correctly using random default values.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;12626 remove cosmo plugin &amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We value your feedback.&amp;nbsp;Please use&amp;nbsp;&lt;a href=&quot;http://paraview.uservoice.com/&quot; target=&quot;_blank&quot;&gt;http://paraview.uservoice.com&lt;/a&gt;&amp;nbsp;or click on the &quot;Tell us what you think&quot; link on&amp;nbsp;&lt;a href=&quot;http://paraview.org/&quot; target=&quot;_blank&quot;&gt;paraview.org&lt;/a&gt;&amp;nbsp;to leave your feedback and vote for new features.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<pubDate>Thu, 03 Nov 2011 08:05:22 -0400</pubDate>
</item>
<item>
<title>What's New in VES?</title>
<dc:creator>Katie Sharkey</dc:creator>
<dc:creator>Aashish Chaudhary</dc:creator>
<link>http://www.kitware.com/blog/home/post/185</link>
<description>&lt;p&gt;Pat Marion recently posted &lt;a href=&quot;http://www.kitware.com/blog/home/post/180&quot;&gt;VES: Development in Iterations&lt;/a&gt;, which included a demo of VES using KiwiViewer. This post will discuss some of the back-end features that enabled the demo.&lt;/p&gt;
&lt;p&gt;The VES library is the backbone of the KiwiViewer. It provides a framework for developing visualizations on mobile platforms using OpenGL ES 2.0. Recent developments in VES were made with two important considerations in mind:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Performance&lt;/li&gt;
&lt;li&gt;Having a nice API&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Since VES uses OpenGL ES 2.0, it forced us to implement features a bit differently than if we had developed them for desktops. This is so because OpenGL ES 2.0 is a subset of OpenGL for desktops. Still, OpenGL ES 2.0 provides enough capabilities to create a very usable visualization running at interactive frame rates. &amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;So, what's new in VES?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. New Rendering Pipeline:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;VES adopted scene graph early on. Scene graph provides two important features: it allows objects to be put together in relation to each other and provides opportunities for optimizations. &amp;nbsp;In this new version of VES, implementation has been changed to achieve both of these desired features of scene graph. Instead of rendering while traversing earlier, drawable entities are now placed in a render stage. The render stage makes sure to minimize state changes to achieve performance. This particular approach also allowed us to provide a framework for features such as render-to-texture and other multipass rendering techniques.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. Generalized Uniform and Vertex Attribute Support:&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Since OpenGL ES 2.0 follows the core profile of OpenGL, glLoadMatrix, glBegin()/End(), and other GL commands are gone (for better). Now, all matrices (model view, projection, etc) and vertex data (position, normal, color), etc. have to go through shaders via uniform and vertex attributes. We have provided an extensible framework using VES uniform and vertex attribute objects to make it easier to deal with this change. It also allows dynamic updates to uniforms, which can be used for animations.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. Use of VBOs for Performance:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If you want performance, Vertex Buffer Object (VBO) is the way to go and that's exactly what we are doing now. Thanks to Brad Davis, we split our VBO data into smaller chunks to achieve higher rendering performance.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4. Multiple Shader Support:&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The framework now allows for switching shaders, as shown below in a test program (Gouraud shading, Blinn-phong shading, Toon shading).&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;/blog/files/128_1130230877.png&quot; alt=&quot;&quot; width=&quot;187&quot; height=&quot;139&quot; /&gt; &lt;img src=&quot;/blog/files/128_951304761.png&quot; alt=&quot;&quot; width=&quot;188&quot; height=&quot;139&quot; /&gt; &lt;img src=&quot;/blog/files/128_1300340954.png&quot; alt=&quot;&quot; width=&quot;186&quot; height=&quot;140&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;5. Generalized Texture Support:&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;VES now allows the creation of generalized texture objects (textures are material attributes in VES) and use of them wherever required. There is work-in-progress to support different texture environments.&lt;/p&gt;
&lt;p&gt;&lt;img style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; src=&quot;/blog/files/128_1153074298.png&quot; alt=&quot;&quot; width=&quot;292&quot; height=&quot;220&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;6. Render-to-Texture:&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This feature was recently added to allow for rendering a scene to a texture and for later use of the texture for other purposes in the same scene or a different one. We wanted to show this as a part of the demo found in the &lt;a href=&quot;http://www.kitware.com/blog/home/post/180&quot;&gt;Iterations&lt;/a&gt; post, but didn't get enough time.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;7. Color by Scalars:&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Using generalized texture support, it is possible now to create a one-dimensional texture and use it to look-up a table in the shaders. This test uses default values for vtkLookupTable.&lt;/p&gt;
&lt;p&gt;&lt;img style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; src=&quot;/blog/files/128_594037607.png&quot; alt=&quot;&quot; width=&quot;291&quot; height=&quot;218&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;8. Support for Rendering Overlay Objects:&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Using the new VES framework made it quite easy to add support for rendering overlay objects such as screen texts. Thanks Pat!&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; src=&quot;/blog/files/128_135091902.png&quot; alt=&quot;&quot; width=&quot;291&quot; height=&quot;218&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;9. Support for Rendering Transparent Objects:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The framework sorts objects based on their bin property, which natively adds supports for rendering transparent objects. In the future, we will add support for order independent transparency.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;10. Clip Planes and Two-sided Lighting:&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This is all done in shaders.&lt;/p&gt;
&lt;p&gt;&lt;img style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; src=&quot;/blog/files/128_1321248013.png&quot; alt=&quot;&quot; width=&quot;293&quot; height=&quot;220&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;11. Gradient Background:&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Actual algorithm-to-render for gradient backgrounds is straightforward, but supporting different backgrounds for each camera (there could be more than one and or in parent / child relationship) so that we can provide a generalized support for backgrounds (skydome, plane, textured, and gradient) is bit tricky. We implemented this feature based on the work done for the render-to-texture feature.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; src=&quot;/blog/files/128_1647148714.png&quot; alt=&quot;&quot; width=&quot;291&quot; height=&quot;218&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;12. Testing:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We added few tests to ensure software quality and plan to add more in near future.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;We are working towards making a release, but would like to handle one or more issues, add couple of new features, and provide documentation (there is none right now) before then.&lt;/p&gt;</description>
<pubDate>Tue, 25 Oct 2011 13:15:12 -0400</pubDate>
</item>
<item>
<title>VTK, Google Summer of Code and the Mentor Summit</title>
<dc:creator>Marcus Hanwell</dc:creator>
<link>http://www.kitware.com/blog/home/post/182</link>
<description>&lt;p&gt;I have taken part in several &lt;a href=&quot;http://code.google.com/soc/&quot;&gt;Google Summers of Code&lt;/a&gt;, beginning back in 2007 as a student, then a mentor, and this year a mentor and organization admin. We recently published an &lt;a href=&quot;http://www.kitware.com/source/home/post/44&quot;&gt;article in the Source summing up the results of our two student projects&lt;/a&gt;. I would like to thank our students once again, and congratulate them both on completing two successful projects. In about ten minutes I will be heading out to the Googleplex for my first Mentor Summit, where the mentors from the projects that took part gather and share their experiences and arrange sessions to discuss how we might improve things in the future.&lt;/p&gt;
&lt;p&gt;I think for any community to survive it must grow, and encourage new ideas. For me the Google Summer of Code program has been a great catalyst for growth, and I am looking forward to discussing the impact this can have. My own personal opinion is that open source is one very important aspect in the bigger picture of opening up scientific research. Something the &lt;a href=&quot;http://sciencecodemanifesto.org/&quot;&gt;science code manifesto&lt;/a&gt; clearly states, but I think it also relates to the fact that for science to move forward we must all be free to raise ourselves up on the shoulders of giants. As software becomes an increasingly important element of research, we need high quality open codes that we can examine, modify and redistribute.&lt;/p&gt;
&lt;p&gt;If you are at the Mentor Summit and want to talk about open source, or open science, please find me. I am looking forward to a very interesting weekend, after what has been a very busy summer with lots of exciting developments (hopefully I will find time to write about a few more of these later).&lt;/p&gt;</description>
<pubDate>Sat, 22 Oct 2011 11:17:32 -0400</pubDate>
</item>
<item>
<title>VES: Development in Iterations</title>
<dc:creator>Pat Marion</dc:creator>
<link>http://www.kitware.com/blog/home/post/180</link>
<description>&lt;p&gt;My name Is Pat Marion; I&amp;rsquo;m an engineer at Kitware and part of the VES team. VES is the VTK OpenGL ES 2.0 Rendering Toolkit.&amp;nbsp;We&amp;rsquo;ve already released a 0.0.2 version of &lt;a href=&quot;http://kiwiviewer.org/&quot;&gt;KiwiViewer&lt;/a&gt;, the demonstration app for VES, on iPhone and iPad, &lt;a href=&quot;http://itunes.apple.com/us/app/kiwiviewer/id455271681?mt=8&quot;&gt;available in the App store&lt;/a&gt;. We have a lot of things coming soon, including KiwiViewer for the Android market and new demos to show at &lt;a href=&quot;http://visweek.org/&quot;&gt;VisWeek 2011&lt;/a&gt;.&amp;nbsp; Here's a sneak peak at one of the demos-&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;iframe src=&quot;http://player.vimeo.com/video/30924719?title=0&amp;amp;byline=0&amp;amp;portrait=0&quot; frameborder=&quot;0&quot; width=&quot;400&quot; height=&quot;225&quot;&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt; The VES git repo will be released early next month after another round or two of iterations.&amp;nbsp;We&amp;rsquo;ve been doing a lot of iterations (usually just one or two weeks in length) for the past eight weeks to push VES forward as quickly as possible.&lt;br /&gt; &lt;br /&gt; Here&amp;rsquo;s how the iterations proceed in our git repo: a new a topic branch is created and owned by one of the VES team members. Work-in-progress on the topic is staged so that other team members can try the feature, or simply read through the code. &amp;nbsp;Next, iterate (duh!) - the topic is merged to master as soon as we&amp;rsquo;re comfortable so that everyone can base new work on it.&lt;br /&gt; &lt;br /&gt; At this early stage in development, it is to everyone&amp;rsquo;s benefit to merge early. We keep a close eye on valgrind and benchmark the frames-per-second so that we never lose performance. Who cares if the merge comes with a few loose ends; those will be tied up in the next iteration, which starts now!&lt;br /&gt; &lt;br /&gt; And so, here we are, iterating on our code at high speed to prepare demos for VisWeek. Last week I added support for 2D text annotations using &lt;a href=&quot;http://www.vtk.org/doc/nightly/html/classvtkFreeTypeStringToImage.html&quot;&gt;VTK&amp;rsquo;s freetype classes&lt;/a&gt;. The annotations can be anchored to 3D points on a mesh, allowing for updated annotation positions as the camera moves around the scene.&amp;nbsp; This feature was demonstrated in the demo video linked above.&lt;br /&gt; &lt;br /&gt; Another demo in the iteration pipeline is basic animation support. Using &lt;a href=&quot;http://paraview.org/OnlineHelpCurrent/Animation.html&quot;&gt;ParaView&amp;rsquo;s animation controls&lt;/a&gt;, you can export animation geometries for viewing on mobile devices.&amp;nbsp;The animation timeline is controlled with touch interaction, and in the next iteration we want to flex the VES render-to-texture functionality to generate keyframe thumbnails along the timeline.&lt;br /&gt; &lt;br /&gt; We&amp;rsquo;ll be showing these demos and more at VisWeek, including a 3D image slice widget and a mesh clipping widget, so we&amp;rsquo;ll see you there in Rhode Island! Come find us and our iPad and Android tablets at the Kitware table and stay tuned for a source code release announcement. As always, if you are interested in learning more about VES and our mobile visualization capabilities, please contact Kitware for more information.&lt;/p&gt;</description>
<pubDate>Fri, 21 Oct 2011 17:18:55 -0400</pubDate>
</item>
<item>
<title>VTK Google Summer of Code Projects</title>
<dc:creator>Marcus Hanwell</dc:creator>
<link>http://www.kitware.com/blog/home/post/141</link>
<description>&lt;p&gt;This is &lt;a href=&quot;http://www.vtk.org/&quot;&gt;VTK&lt;/a&gt;'s first year as a &lt;a href=&quot;http://www.google-melange.com/&quot;&gt;Google Summer of Code&lt;/a&gt; &lt;a href=&quot;http://www.google-melange.com/gsoc/org/google/gsoc2011/vtk&quot;&gt;mentoring organization&lt;/a&gt;, and we are very pleased to be here. During the application period we received a large number of very high-quality proposals, and I would like to thank all of the students who applied. As it is our first year we were limited to two slots, which made choosing our students even more difficult. After much deliberation we made our decisions and I am very happy to welcome David Lonie and Tharindu De Silva as our first Google Summer of Code students!&lt;/p&gt;
&lt;p&gt;David is working on &lt;a href=&quot;http://www.google-melange.com/gsoc/project/google/gsoc2011/dlonie/4001&quot;&gt;chemistry visualization in VTK&lt;/a&gt;, and Tharindu is working on &lt;a href=&quot;http://www.google-melange.com/gsoc/project/google/gsoc2011/tsameera1/8001&quot;&gt;implementing select algorithms from IEEE VisWeek in VTK&lt;/a&gt;. They were both very quick to start coding, and already have code up for us to review. David was also able to come and visit us at Kitware HQ for a few days, and meet many of the core VTK and &lt;a href=&quot;http://www.paraview.org/&quot;&gt;ParaView&lt;/a&gt; developers. I hope you will welcome David and Tharindu to the VTK community, and I look forward to seeing what they accomplish over the summer. I have seen results from both students, and they are already taking shape after only a few weeks of active development.&lt;/p&gt;
&lt;p&gt;This is a very exciting year for the VTK community with our Google Summer of Code participation, modularization of our source tree and refresh of the build system. There are also lots of great new features going into VTK such as new charts, improved interaction and much more that I will talk about soon.&lt;/p&gt;</description>
<pubDate>Fri, 17 Jun 2011 14:06:05 -0400</pubDate>
</item>
<item>
<title>The Architecture of Open Source Applications</title>
<dc:creator>Bill Hoffman</dc:creator>
<link>http://www.kitware.com/blog/home/post/136</link>
<description>&lt;p&gt;Two of Kitware&amp;rsquo;s open source software packages were featured in a sequel book to O'Reilly's &quot;Beautiful Code&quot;. In the new book &quot;The Architecture of Open Source Applications&quot; there are two chapters by Kitware authors: Berk Geveci and Will Schroeder wrote about VTK, and Bill Hoffman and Ken Martin wrote about CMake.&amp;nbsp; The book is meant to give detailed insight into the development process of some popular open source projects. Readers are given valuable insights into the engineering trade-offs made during development process.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;The book should prove useful to developers of both open and closed source software. The instructional value of the book further demonstrates the power of open source development. The valuable insights given into the development of complicated powerful software systems would not be possible with closed projects. The book content is available for free under a Creative Commons license and the book can be purchased from various online retailers.&lt;br /&gt;&lt;br /&gt;The official press release for the book follows:&lt;br /&gt;&lt;br /&gt;New Book Gives Insight Into How Leading Software Developers Think &lt;br /&gt;&lt;br /&gt;Toronto, ON, May 25, 2011 -- A new book about the design of open source software, released this week under a Creative Commons license, provides unique insight into how leading developers think.&amp;nbsp; Titled &quot;The Architecture&lt;br /&gt;of Open Source Applications&quot;, the book contains chapter-length descriptions of the design of over two dozen significant projects, along with their creators' explanations of why things are the way they are, and what they learned along the way.&lt;br /&gt;&lt;br /&gt;Software developers have long complained about the fact that while architects study thousands of buildings during their training, most programmers only ever get to see a handful of large programs---usually programs they wrote&lt;br /&gt;themselves.&amp;nbsp; As a result, they repeat one another's mistakes rather than building on one another's successes.&amp;nbsp; &quot;The Architecture of Open Source Applications&quot; seeks to change that, and by doing so, help developers at all levels learn more about how to create complex systems well.&lt;br /&gt;&lt;br /&gt;The book is published by Lulu.com, and is available there [1] and through other online retailers.&amp;nbsp; All royalties from sales will be donated to Amnesty International to support their worldwide campaign for basic human rights. The book's content is also available online at its web site [2].&amp;nbsp; For more information, contact Greg Wilson at aosa@aosabook.org&lt;/p&gt;
&lt;p&gt;&lt;br /&gt; &quot;...a wonderful book and a wonderful contribution to the industry.&quot;&lt;br /&gt; - Grady Booch (co-inventor of UML)&lt;br /&gt; &lt;br /&gt; [1] &lt;a href=&quot;http://www.lulu.com/content/paperback-book/the-architecture-of-open-source-applications/10559746&quot; target=&quot;_blank&quot;&gt;http://www.lulu.com/content/paperback-book/the-architecture-of-open-source-applications/10559746&lt;/a&gt;&lt;br /&gt; &lt;br /&gt; [2] &lt;a href=&quot;http://www.aosabook.org/&quot; target=&quot;_blank&quot;&gt;http://www.aosabook.org&lt;/a&gt;&lt;/p&gt;</description>
<pubDate>Fri, 27 May 2011 19:47:42 -0400</pubDate>
</item>
<item>
<title>The Architecture of Open Source Applications</title>
<dc:creator>Bill Hoffman</dc:creator>
<link>http://www.kitware.com/blog/home/post/135</link>
<description>&lt;p&gt;Two of Kitware&amp;rsquo;s open source software packages were featured in a sequel book to the O'Reilly's &quot;Beautiful Code&quot;. In the new book &quot;The Architecture of Open Source Applications&quot; there are two chapters by Kitware authors: Berk Geveci and Will Schroeder wrote about VTK, and Bill Hoffman and Ken Martin wrote about CMake.&amp;nbsp; The book is meant to give detailed insight into the development process of some popular open source projects. Readers are given valuable insights into the engineering trade-offs made during development process.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;The book should prove useful to developers of both open and closed source software. The instructional value of the book further demonstrates the power of open source development. The valuable insights given into the development of complicated powerful software systems would not be possible with closed projects. The book content is available for free under a Creative Commons license and the book can be purchased from various online retailers.&lt;br /&gt;&lt;br /&gt;The press release for the book is as follows:&lt;br /&gt;&lt;br /&gt;New Book Gives Insight Into How Leading Software Developers Think &lt;br /&gt;&lt;br /&gt;Toronto, ON, May 25, 2011 -- A new book about the design of open source software, released this week under a Creative Commons license, provides unique insight into how leading developers think.&amp;nbsp; Titled &quot;The Architecture&lt;br /&gt;of Open Source Applications&quot;, the book contains chapter-length descriptions of the design of over two dozen significant projects, along with their creators' explanations of why things are the way they are, and what they learned along the way.&lt;br /&gt;&lt;br /&gt;Software developers have long complained about the fact that while architects study thousands of buildings during their training, most programmers only ever get to see a handful of large programs---usually programs they wrote&lt;br /&gt;themselves.&amp;nbsp; As a result, they repeat one another's mistakes rather than building on one another's successes.&amp;nbsp; &quot;The Architecture of Open Source Applications&quot; seeks to change that, and by doing so, help developers at all levels learn more about how to create complex systems well.&lt;br /&gt;&lt;br /&gt;The book is published by Lulu.com, and is available there [1] and through other online retailers.&amp;nbsp; All royalties from sales will be donated to Amnesty International to support their worldwide campaign for basic human rights. The book's content is also available online at its web site [2].&amp;nbsp; For more information, contact Greg Wilson at aosa@aosabook.org&lt;/p&gt;
&lt;p&gt;&lt;br /&gt; &quot;...a wonderful book and a wonderful contribution to the industry.&quot;&lt;br /&gt; - Grady Booch (co-inventor of UML)&lt;br /&gt; &lt;br /&gt; [1] &lt;a href=&quot;http://www.lulu.com/content/paperback-book/the-architecture-of-open-source-applications/10559746&quot; target=&quot;_blank&quot;&gt;http://www.lulu.com/content/paperback-book/the-architecture-of-open-source-applications/10559746&lt;/a&gt;&lt;br /&gt; &lt;br /&gt; [2] &lt;a href=&quot;http://www.aosabook.org/&quot; target=&quot;_blank&quot;&gt;http://www.aosabook.org&lt;/a&gt;&lt;br /&gt; &lt;/p&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:WordDocument&gt;
  &lt;w:View&gt;Normal&lt;/w:View&gt;
  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
  &lt;w:TrackMoves/&gt;
  &lt;w:TrackFormatting/&gt;
  &lt;w:PunctuationKerning/&gt;
  &lt;w:ValidateAgainstSchemas/&gt;
  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;
  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;
  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;
  &lt;w:DoNotPromoteQF/&gt;
  &lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt;
  &lt;w:LidThemeAsian&gt;X-NONE&lt;/w:LidThemeAsian&gt;
  &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;
  &lt;w:Compatibility&gt;
   &lt;w:BreakWrappedTables/&gt;
   &lt;w:SnapToGridInCell/&gt;
   &lt;w:WrapTextWithPunct/&gt;
   &lt;w:UseAsianBreakRules/&gt;
   &lt;w:DontGrowAutofit/&gt;
   &lt;w:SplitPgBreakAndParaMark/&gt;
   &lt;w:DontVertAlignCellWithSp/&gt;
   &lt;w:DontBreakConstrainedForcedTables/&gt;
   &lt;w:DontVertAlignInTxbx/&gt;
   &lt;w:Word11KerningPairs/&gt;
   &lt;w:CachedColBalance/&gt;
  &lt;/w:Compatibility&gt;
  &lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;
  &lt;m:mathPr&gt;
   &lt;m:mathFont m:val=&quot;Cambria Math&quot;/&gt;
   &lt;m:brkBin m:val=&quot;before&quot;/&gt;
   &lt;m:brkBinSub m:val=&quot;&amp;#45;-&quot;/&gt;
   &lt;m:smallFrac m:val=&quot;off&quot;/&gt;
   &lt;m:dispDef/&gt;
   &lt;m:lMargin m:val=&quot;0&quot;/&gt;
   &lt;m:rMargin m:val=&quot;0&quot;/&gt;
   &lt;m:defJc m:val=&quot;centerGroup&quot;/&gt;
   &lt;m:wrapIndent m:val=&quot;1440&quot;/&gt;
   &lt;m:intLim m:val=&quot;subSup&quot;/&gt;
   &lt;m:naryLim m:val=&quot;undOvr&quot;/&gt;
  &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:LatentStyles DefLockedState=&quot;false&quot; DefUnhideWhenUsed=&quot;true&quot;
  DefSemiHidden=&quot;true&quot; DefQFormat=&quot;false&quot; DefPriority=&quot;99&quot;
  LatentStyleCount=&quot;267&quot;&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;0&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Normal&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;heading 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 7&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 8&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 9&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 7&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 8&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 9&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;35&quot; QFormat=&quot;true&quot; Name=&quot;caption&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;10&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Title&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;1&quot; Name=&quot;Default Paragraph Font&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;11&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Subtitle&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;22&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Strong&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;20&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Emphasis&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;59&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Table Grid&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; UnhideWhenUsed=&quot;false&quot; Name=&quot;Placeholder Text&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;1&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;No Spacing&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; UnhideWhenUsed=&quot;false&quot; Name=&quot;Revision&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;34&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;List Paragraph&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;29&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Quote&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;30&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Intense Quote&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;19&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Subtle Emphasis&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;21&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Intense Emphasis&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;31&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Subtle Reference&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;32&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Intense Reference&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;33&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Book Title&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;37&quot; Name=&quot;Bibliography&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; QFormat=&quot;true&quot; Name=&quot;TOC Heading&quot;/&gt;
 &lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:&quot;Table Normal&quot;;
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-qformat:yes;
	mso-style-parent:&quot;&quot;;
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin-top:0in;
	mso-para-margin-right:0in;
	mso-para-margin-bottom:10.0pt;
	mso-para-margin-left:0in;
	line-height:115%;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:&quot;Times New Roman&quot;;
	mso-bidi-theme-font:minor-bidi;}
&lt;/style&gt;
&lt;![endif]--&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;Two of Kitware&amp;rsquo;s open source software packages were featured in a sequel book to the &lt;span style=&quot;font-size: 10pt; line-height: 115%;&quot;&gt;O'Reilly's &quot;Beautiful Code&quot;.&lt;/span&gt; In the new book &quot;The Architecture of Open Source Applications&quot; there are two chapters by Kitware authors: Berk Geveci and Will Schroeder wrote about VTK, and Bill Hoffman and Ken Martin wrote about CMake. &lt;span&gt;&amp;nbsp;&lt;/span&gt;The book is meant to give detailed insight into the development process of some popular open source projects. Readers are given valuable insights into the engineering trade-offs made during development process. &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;The book should prove useful to developers of both open and closed source software. The instructional value of the book further demonstrates the power of open source development. The valuable insights given into the development of complicated powerful software systems would not be possible with closed projects. The book content is available for free under a Creative Commons license and the book can be purchased from various online retailers.&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;The web site for the book is here:&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;http://www.aosabook.org/en/index.html&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;The press release for the book is as follows:&lt;/p&gt;
&lt;span style=&quot;font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif';&quot;&gt;New&amp;nbsp;Book&amp;nbsp;Gives&amp;nbsp;Insight&amp;nbsp;Into&amp;nbsp;How&amp;nbsp;Leading&amp;nbsp;Software&amp;nbsp;Developers&amp;nbsp;Think &lt;br /&gt; &lt;br /&gt; Toronto,&amp;nbsp;ON,&amp;nbsp;May&amp;nbsp;25,&amp;nbsp;2011&amp;nbsp;--&amp;nbsp;A&amp;nbsp;new&amp;nbsp;book&amp;nbsp;about&amp;nbsp;the&amp;nbsp;design&amp;nbsp;of&amp;nbsp;open &lt;br /&gt; source&amp;nbsp;software,&amp;nbsp;released&amp;nbsp;this&amp;nbsp;week&amp;nbsp;under&amp;nbsp;a&amp;nbsp;Creative&amp;nbsp;Commons&amp;nbsp;license, &lt;br /&gt; provides&amp;nbsp;unique&amp;nbsp;insight&amp;nbsp;into&amp;nbsp;how&amp;nbsp;leading&amp;nbsp;developers&amp;nbsp;think.&amp;nbsp;&amp;nbsp;Titled &lt;br /&gt; &quot;The&amp;nbsp;Architecture&amp;nbsp;of&amp;nbsp;Open&amp;nbsp;Source&amp;nbsp;Applications&quot;,&amp;nbsp;the&amp;nbsp;book&amp;nbsp;contains &lt;br /&gt; chapter-length&amp;nbsp;descriptions&amp;nbsp;of&amp;nbsp;the&amp;nbsp;design&amp;nbsp;of&amp;nbsp;over&amp;nbsp;two&amp;nbsp;dozen &lt;br /&gt; significant&amp;nbsp;projects,&amp;nbsp;along&amp;nbsp;with&amp;nbsp;their&amp;nbsp;creators'&amp;nbsp;explanations&amp;nbsp;of&amp;nbsp;why &lt;br /&gt; things&amp;nbsp;are&amp;nbsp;the&amp;nbsp;way&amp;nbsp;they&amp;nbsp;are,&amp;nbsp;and&amp;nbsp;what&amp;nbsp;they&amp;nbsp;learned&amp;nbsp;along&amp;nbsp;the&amp;nbsp;way. &lt;br /&gt; &lt;br /&gt; Software&amp;nbsp;developers&amp;nbsp;have&amp;nbsp;long&amp;nbsp;complained&amp;nbsp;about&amp;nbsp;the&amp;nbsp;fact&amp;nbsp;that&amp;nbsp;while &lt;br /&gt; architects&amp;nbsp;study&amp;nbsp;thousands&amp;nbsp;of&amp;nbsp;buildings&amp;nbsp;during&amp;nbsp;their&amp;nbsp;training,&amp;nbsp;most &lt;br /&gt; programmers&amp;nbsp;only&amp;nbsp;ever&amp;nbsp;get&amp;nbsp;to&amp;nbsp;see&amp;nbsp;a&amp;nbsp;handful&amp;nbsp;of&amp;nbsp;large&amp;nbsp;programs---usually &lt;br /&gt; programs&amp;nbsp;they&amp;nbsp;wrote&amp;nbsp;themselves.&amp;nbsp;&amp;nbsp;As&amp;nbsp;a&amp;nbsp;result,&amp;nbsp;they&amp;nbsp;repeat&amp;nbsp;one &lt;br /&gt; another's&amp;nbsp;mistakes&amp;nbsp;rather&amp;nbsp;than&amp;nbsp;building&amp;nbsp;on&amp;nbsp;one&amp;nbsp;another's&amp;nbsp;successes. &lt;br /&gt; &quot;The&amp;nbsp;Architecture&amp;nbsp;of&amp;nbsp;Open&amp;nbsp;Source&amp;nbsp;Applications&quot;&amp;nbsp;seeks&amp;nbsp;to&amp;nbsp;change&amp;nbsp;that, &lt;br /&gt; and&amp;nbsp;by&amp;nbsp;doing&amp;nbsp;so,&amp;nbsp;help&amp;nbsp;developers&amp;nbsp;at&amp;nbsp;all&amp;nbsp;levels&amp;nbsp;learn&amp;nbsp;more&amp;nbsp;about&amp;nbsp;how &lt;br /&gt; to&amp;nbsp;create&amp;nbsp;complex&amp;nbsp;systems&amp;nbsp;well. &lt;br /&gt; &lt;br /&gt; The&amp;nbsp;book&amp;nbsp;is&amp;nbsp;published&amp;nbsp;by&amp;nbsp;Lulu.com,&amp;nbsp;and&amp;nbsp;is&amp;nbsp;available&amp;nbsp;there&amp;nbsp;[1]&amp;nbsp;and &lt;br /&gt; through&amp;nbsp;other&amp;nbsp;online&amp;nbsp;retailers.&amp;nbsp;&amp;nbsp;All&amp;nbsp;royalties&amp;nbsp;from&amp;nbsp;sales&amp;nbsp;will&amp;nbsp;be &lt;br /&gt; donated&amp;nbsp;to&amp;nbsp;Amnesty&amp;nbsp;International&amp;nbsp;to&amp;nbsp;support&amp;nbsp;their&amp;nbsp;worldwide&amp;nbsp;campaign &lt;br /&gt; for&amp;nbsp;basic&amp;nbsp;human&amp;nbsp;rights.&amp;nbsp;&amp;nbsp;The&amp;nbsp;book's&amp;nbsp;content&amp;nbsp;is&amp;nbsp;also&amp;nbsp;available&amp;nbsp;online &lt;br /&gt; at&amp;nbsp;its&amp;nbsp;web&amp;nbsp;site&amp;nbsp;[2].&amp;nbsp;&amp;nbsp;For&amp;nbsp;more&amp;nbsp;information,&amp;nbsp;contact&amp;nbsp;Greg&amp;nbsp;Wilson&amp;nbsp;at &lt;br /&gt; &lt;a href=&quot;mailto:aosa@aosabook.org&quot;&gt;aosa@aosabook.org&lt;/a&gt;&lt;/span&gt;</description>
<pubDate>Fri, 27 May 2011 11:41:27 -0400</pubDate>
</item>
<item>
<title>Open Source Visionaries</title>
<dc:creator>Will Schroeder</dc:creator>
<link>http://www.kitware.com/blog/home/post/125</link>
<description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div id=&quot;_mcePaste&quot; style=&quot;position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;&quot;&gt;Creating, extending and maintaining modern computational tools is really hard. It used to be that a motivated person could envision a solution, knock out some code, and have a useful prototype running in a short time (days or weeks). The resulting code was simple (and short), the build environment was typically a brief makefile (if that), cross-platform issues were ignored, and the narrowly focused solution didn't require much of an architecture. While this approach is still in limitied use today, serious users and developers of computational software are addressing daunting new challenges: algorithmic complexity, cross-platform development, extensive integration requirements, new computing models (distributed, multi-core, GPU) and computing environments (client/server, cloud, web-based, mobile), and a plethora of computing languages. What used to be a relatively quick process to create something useful has now become a focused effort of months or years.&lt;/div&gt;
&lt;div id=&quot;_mcePaste&quot; style=&quot;position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;&quot;&gt;As a result I think we've come to the point where open source approaches are the only viable way to build and sustain large-scale computational tools. Many others have made similar claims arguing along the lines of intellectual freedom and engineering process. For example, it has become increasingly evident that the lofty philosophical roots of open source freedom are absolutely essential to the practice of Open Science (and the resulting innovation). And if you are a pragmatist, there are clear engineering benefits including scalable software development (ref cathedral and the bazaar), agile software processes, and community maintenance. However, there is another critical argument to make in favor of open source -- its power to create, implement and sustain a long term Collaborative Vision -- which I believe is underappreciated yet essential to the future of scientific computing software.&lt;/div&gt;
&lt;div id=&quot;_mcePaste&quot; style=&quot;position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;&quot;&gt;Let me put it this way: How are we going to create and pay for the advanced computational tools of the future? While the long answer is complex, I think there are two key issues that must be addressed in any solution: the need to create and sustain a long-term vision, and the ability to pay for it. In both these areas, I believe that open approaches carry decided advantages.&lt;/div&gt;
&lt;div id=&quot;_mcePaste&quot; style=&quot;position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;&quot;&gt;Take vision for example. Without clear vision a software system is doomed to cluttered, fragmented and clumsy implementations. However with too rigid a vision, or a vision that cannot adapt and change, a system soon becomes obsolete and eventually dies. Large systems often begin with a modest vision and a few developers, but as it succeeds and grows the corresponding vision must also grow (not to mention the community). To accomplish this you can't do it behind closed doors (well maybe you can if you're big enough and rich enough but this is not common). For most of us, the only way to really grow the vision is to mix the visionary technologies and ideas that others have created into our software stew and make it part of the recipe. In other words you need a community to provide its collective intelligence to hold and grow the vision, which of course is a hallmark of open source practices.&lt;/div&gt;
&lt;div id=&quot;_mcePaste&quot; style=&quot;position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;&quot;&gt;Now how to pay to manifest the vision? For example, tools like VTK and ITK are conservatively estimated to have cost tens of millions of dollars to develop over decades [ref]. How many venture firms, angel investors, funding agencies, and companies do you think would have the patience and resources for that kind of effort? Especially when we are talking about complex computational tools whose commercial potential is murky at best (unless you are a company that is smart enough to turn computational infrastructure into a service ;-)). In an open approach, once you have developed the vision, it is possible for thousands of users and developers, for their own particular reasons, to contribute to implementing the vision--some simply volunteering for the intellectual challenge; others committed to building a scientific and engineering infrastructure to avoid reinventing the wheel over and over again; still others joining forces and attacking grand scientific challenges; and even commercial entitites who wish to reduce maintenance costs by contributing code to the community. Whatever the reason, each of these parties contributes time, money and knowledge which inexorably builds towards realization of the vision. Of course, this only works in an open environment.&lt;/div&gt;
&lt;div id=&quot;_mcePaste&quot; style=&quot;position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;&quot;&gt;So I would add to the current list of advantages of open source systems, intellectual freedom and scalable engineering process, Collaborative Vision--the ability to envision and manifest advanced technologies over extended periods while efficiently combining the resources of many people and organizations. I believe it is the ability of open source communities to create, hold, and evolve their combined vision, along with the efficient capture of contributions, that will eventually overtake closed approaches and create an open, sustainable computing infrastructure.&lt;/div&gt;
&lt;p&gt;Creating, extending and maintaining modern computational tools is really hard. It used to be that a motivated person could envision a solution, knock out some code, and have a useful prototype running in a short time (days or weeks). The resulting code was simple (and short), the build environment was typically a brief makefile (if that), cross-platform issues were ignored, and the narrowly focused solution didn't require much of an architecture. While this approach is still in limited use today, serious users and developers of computational software are addressing daunting new challenges: algorithmic complexity, cross-platform development, extensive integration requirements, new computing models (distributed, multi-core, GPU) and computing environments (client/server, cloud, web-based, mobile), and a plethora of computing languages. What used to be a relatively quick process to create something useful has now become a focused effort of months or years.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;As a result I think we've come to the point where open source approaches are the only viable way to build and sustain large-scale computational tools. Many others have made similar claims arguing along the lines of intellectual freedom and engineering process. For example, it has become increasingly evident that the lofty philosophical roots of open source freedom are absolutely essential to the practice of Open Science (and the resulting innovation). And if you are a pragmatist, there are clear engineering benefits including scalable software development (&lt;a href=&quot;http://www.catb.org/~esr/writings/homesteading/cathedral-bazaar/&quot;&gt;The Cathedral and the Bazaar&lt;/a&gt;), agile software processes, and community maintenance. However, there is another critical argument to make in favor of open source -- its power to create, implement and sustain a long term Collaborative Vision -- which I believe is under appreciated yet essential to the future of scientific computing software.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;Let me put it this way: How are we going to create and pay for the advanced computational tools of the future? While the long answer is complex, I think there are two key issues that must be addressed in any solution: the need to create and sustain a long-term vision, and the ability to pay for it. In both these areas, I believe that open approaches carry decided advantages.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;Take vision for example. Without clear vision a software system is doomed to cluttered, fragmented and clumsy implementations. However with too rigid a vision, or a vision that cannot adapt and change, a system soon becomes obsolete and eventually dies. Large systems often begin with a modest vision and a few developers, but as it succeeds and grows the corresponding vision must also grow (not to mention the community). To accomplish this you can't do it behind closed doors (well maybe you can if you're big enough and rich enough but this is not common). For most of us, the only way to really grow the vision is to mix the visionary technologies and ideas that others have created into our software stew and make it part of the recipe. In other words you need a community to provide its collective intelligence to hold and grow the vision, which of course is a hallmark of open source practices.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;Now how to pay to manifest the vision? For example, tools like VTK and ITK are conservatively estimated to have cost tens of millions of dollars to develop over decades (see the bottom of the page describing the &lt;a href=&quot;http://www.na-mic.org/Wiki/index.php/NA-MIC-Kit&quot;&gt;NA-MIC Kit&lt;/a&gt;). How many venture firms, angel investors, funding agencies, and companies do you think would have the patience and resources for that kind of effort? Especially when we are talking about complex computational tools whose commercial potential is murky at best (unless you are a company that is smart enough to turn computational infrastructure into a service ;-)). In an open approach, once you have developed the vision, it is possible for thousands of users and developers, for their own particular reasons, to contribute to implementing the vision--some simply volunteering for the intellectual challenge; others committed to building a scientific and engineering infrastructure to avoid reinventing the wheel over and over again; still others joining forces and attacking grand scientific challenges; and even commercial entitites who wish to reduce maintenance costs by contributing code to the community. Whatever the reason, each of these parties contributes time, money and knowledge which inexorably builds towards realization of the vision. Of course, this only works in an open environment.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;So I would add to the current list of advantages of open source systems, intellectual freedom and scalable engineering process, Collaborative Vision--the ability to envision and manifest advanced technologies over extended periods while efficiently combining the resources of many people and organizations. I believe it is the ability of open source communities to create, hold, and evolve their combined vision, along with the efficient capture of contributions, that will eventually overtake closed approaches and create an open, sustainable computing infrastructure.&lt;/p&gt;</description>
<pubDate>Fri, 20 May 2011 15:24:38 -0400</pubDate>
</item>
</channel>
</rss>

