The new VTK Examples site is now live

The new VTK Examples site is now live, please use this site: VTKExamples from now on. There have been many changes as outlined below. Special thanks must go to the people who have helped move the examples from Bill Lorensen’s original site to here, in particular @mwestphal, @will.schroeder, @brad.king and @dgobbi.

We recognise the massive effort Bill put into developing the original site with so many VTK examples. It is my hope that this site captures all this and will build on his legacy.

Changes

Over 2600 C++, Markdown and Python files were changed over a period of two months.

All languages

  • New How To pages have been introduced for each language. The aim of these pages is to provide pointers to existing examples that show you how to do something. E.g. using callbacks, camera positioning etc.
  • The column Classes Demonstrated has been removed, the information was never reviewed or updated and caused frequent errors when adding new examples. This was a hangover from the early days before I wrote the script VTKClassesUsedInExamples.py. Now this information is updated whenever the site is updated and is available as a link at the top of each language example page. By removing this column the display on small screens has been improved.

C++ and Python

  • Colors in the code are now referenced using vtkNamedColors this allows users to refer to colors by name or create their own named colors making it easier to color objects. No more … What color is (1.0, 0.4, 0.3)? Answer: “Tomato”.
  • Test images have been reviewed, mostly improving colors and redoing poses to make them more interesting. Once again the two files VTKColorSeriesPatches.html and VTKNamedColorPatches.html in the top level vtk-examples folder proved invaluable in choosing nice color combinations.
  • Some interesting C++ examples were ported to Python and vice versa.
  • Where data files are used in the examples, the names of the files to use have been added to the command line checking in the source code. These data files are all available in vtk-examples/src/Testing/Baseline.

C++

  • Code has been modernised and bought up to current VTK/C++11 standards. There is scope for more changes here.
  • vtkSmartPonter has been replaced by vtkNew in most cases, keeping vtkSmartpointer for when it is really needed.

Python

Testing

The focus here is to make sure that as may tests as possible pass when using the VTK master.

On the same machine, using the VTK master with no remote modules.

Linux

  • 100% tests passed , 0 tests failed out of 994, taking 660s.

Windows

  • 99% tests passed, 2 tests failed out of 994 taking 2005s.

    The following tests FAILED:
        420 - Meshes-InterpolateFieldDataDemo (Failed)
        655 - Rendering-StringToImageDemo (Failed)
    

Scripting

Scripting for generating the web pages has been extensively re-written.

12 Likes

Awesome accomplishment! Thank you for seeing this through.

Now this information is updated whenever the site is updated and is available as a link at the top of each language example page.

Nice. Thanks for this :+1:

This is a great resource, very well done, Thank you for this.
one question, links to the github repo is broken, so like the links to *.tar sources in “Download and Build” part of pages returns 404 error.
As I’m not yet fully aware of which is where, I appreciate if you can update those as well.

Thanks

Beautiful work guys, looking through the examples it’s nice to see new additions and updated graphics.

As the Python wheel is often lagging behind the main branch do you think it’s a good idea to add some form of disclaimer on particularly modern examples (OutlineGlowPass for instance) that just checks version requirements against the latest PyPi source?

Thanks for finding that @SArbabi, I’ll fix in a day or two. In the meantime just replace “master” with “gh-pages”.

Links should be fixed now.

@fraseyboo I have thought about this, however maintaining this information can be quite onerous. Several Python and C++ examples do use versioning e.g. PhysicallyBasedRendering but it would be a pain to introduce it for all new examples. Maybe something for the future.