VTK: Difference between revisions
Line 49: | Line 49: | ||
This says "at 1:00 AM, every day, every month, run the dashboard tests and log verbose output to dashboard.log". The DISPLAY variable is set to allow the tests that need an X server to complete successfully. | This says "at 1:00 AM, every day, every month, run the dashboard tests and log verbose output to dashboard.log". The DISPLAY variable is set to allow the tests that need an X server to complete successfully. | ||
==Administrative Topics== | ==Administrative Topics== |
Revision as of 22:23, 19 November 2009
The Visualization ToolKit (VTK) is an open source, freely available software system for 3D computer graphics, image processing, and visualization used by thousands of researchers and developers around the world. VTK consists of a C++ class library, and several interpreted interface layers including Tcl/Tk, Java, and Python. Professional support and products for VTK are provided by Kitware, Inc. (www.kitware.com) VTK supports a wide variety of visualization algorithms including scalar, vector, tensor, texture, and volumetric methods; and advanced modeling techniques such as implicit modelling, polygon reduction, mesh smoothing, cutting, contouring, and Delaunay triangulation. In addition, dozens of imaging algorithms have been directly integrated to allow the user to mix 2D imaging / 3D graphics algorithms and data.
Open Questions in VTK
- Is there an octree class?
- How do you use vtkHyperOctree?
- How do you find the intersection of two 3D objects?
- How do you fit a quadric surface to a set of points?
Dashboard submissions
Running tests locally
To run all of the tests on your modified source tree, simply type <source lang="text"> ctest </source> in your build directory. This will not submit anything to the dashboard, but it is a good "first test" to simply see, locally, if everything works.
Submitting an experimental build to the dashboard
The idea of this type of submission is simply to have a nice way to view the output of all the tests, and to leave "proof" that you indeed tested the code. This is useful if you then commit your code and it breaks someone else's build - you can then claim you did everything you could :). To run this type of submission, simply type <source lang="text"> make Experimental </source> from your build directory.
Creating a 'Nightly' dashboard submission
It is impossible for developers to test code on every operating system, compiler, and configuration. By creating a dashboard submission, you can help them find bugs that could be affecting many users but are transparent to some developers. The idea is to get the latest source code, compile it, and run a battery of tests - reporting any compile, build, and test errors to a system which very neatly arranges the results (http://www.cdash.org/CDash/index.php?project=VTK).
It is recommended to not use the same build you work with daily for you dashboard submission. If there is a problem with the nightly cvs, your code may not compile the next day!
To get started, create a new directory called /home/username/Dashboards/VTK. It does not actually have to be in this exactly directory, but this path will be used throughout this example to make the ideas concrete. cd to your new directory and run these commands to check out an initial version of VTK and data sets used for testing.
Here is an example cmake dashboard file.
You will probably want to submit a dashboard every night, so you can add a cronjob. Run 'crontab -e' and enter the following command <source lang="text"> 0 1 * * * export DISPLAY=:0.0 ; ctest -S /home/username/Dashboards/VTK/dashboard.cmake -V > /home/username/Dashboards/VTK/dashboard.log 2>&1 </source>
This says "at 1:00 AM, every day, every month, run the dashboard tests and log verbose output to dashboard.log". The DISPLAY variable is set to allow the tests that need an X server to complete successfully.
Administrative Topics
- Where can I find more information about VTK?
- Where can I download VTK?
- Where can I download a tarball of the nightly HTML documentation?
- Where can I get VTK Datasets?
- VTK Patch Procedure -- merge requests for the current release branch
- What are some projects using VTK?
Current Projects
- VTK Graph Layout
- VTK Java Wrapping
- Composite Data Redesign
- VTK Widget Redesign
- Shaders in VTK
- VTK with Matlab
- VTK Time support
- VTK Depth Peeling
- VTK Multi-Pass Rendering
- Using VTK with JRuby
- Painters
- Cray XT3 Compilation
- Statistics
- Array Refactoring
- Multicore and Streaming
- 3DConnexion Devices Support
External Links
- IMTEK Mathematica Supplement (IMS), the Open Source IMTEK Mathematica Supplement (IMS) interfaces VTK and generates ParaView batch scripts
- [1], VTK examples in C# (Visual Studio 5.0 and .NET 2.0)
Development Process
The VTK Community is upgrading its development process. We are doing this in response to the continuing and rapid growth of the toolkit. A VTK Architecture Review Board VTK ARB is being put in place to provide strategic guidance to the community, and individuals are being identified as leaders in various VTK subsystems.
Examples
Developers Corner
Wiki Sandbox