Major changes made since ParaView 6.0.1 are described in this document. The full list of issues addressed by this release is available here.
This change introduces ANARI rendering in ParaView and a dynamic properties feature used to generate a user interface based on a JSON properties description generated by each ANARI renderer.
![]()
ANARI rendering in ParaView.
The current integration uses a simple approach to delegate ray-traced rendering to ANARI. The Properties panel presents you with a choice between the original Enable Ray Tracing (with OSPRay) and Enable Rendering with ANARI.
When that option is checked, the panel presents a list of options dynamically generated for each renderer including:
ANARI_LIBRARY.A USD scene exporter is now available in ParaView. It exports the following:
The USD scene exporter does not export:
vtkWidgetRepresentation. These are usually temporary widgets and not important parts of a scene.Selections are now saved and loaded from both .pvsm and Python state files. This includes all types of selections (ID, frustum, blocks, and so on).
OverlappingAMR and NonOverlappingAMR now can be made of rectilinear grids. The XML reader and writer of .vth/.vthb files support them and they can be displayed in ParaView like any AMR data.
For Partitioned Dataset Collections and Multi-block Datasets, chart representations can now display all selected blocks (as chosen in the MultiBlock Inspector) as a single chart entity such as a line or box plot rather than generating a separate entity for each block. This behavior is controlled by the new Array Selection Mode property, which can be set to Merged Blocks (new default) or Individual Blocks (previous behavior). With this improvement, you no longer need to manually select every block and enable each block array individually — a process that was especially cumbersome when working with hundreds or thousands of blocks that each contain multiple arrays.
![]()
Data from multiple blocks in composite datasets are now merged together by default to simplify plotting.
In addition, ParaView's many chart-related representations now directly support Partitioned Dataset Collections with Partitioned Datasets, as well as Multi-block Datasets with Multi-Piece Datasets. A notable UI update is the relocation of the Composite DataSet Index control to the MultiBlock Inspector. This change was made to enable block selection for Partitioned Dataset Collection and to unify the block selection workflow across the Render View and Spreadsheet View. The Composite DataSet Index property has been replaced by new Assembly and Block Selectors properties, with backward compatibility maintained.
![]()
The MultiBlock Inspector is now used to control which blocks' data are plotted in chart representations.
To work around several shortcomings of the existing statistics filters in VTK and ParaView, we have refactored the filters. The new capabilities are not identical to the old; in some ways there is less functionality because rare use cases are not supported, but in many ways the functionality is more useful. These are discussed below in detail.
The filters impacted by these changes are Contingency Statistics, Descriptive Statistics, K Means, ExtractStatisticalModelTables, and Order Statistics.
Statistics filters previously used multiblock datasets to handle composite input data and produced composite output models. This was problematic when the newer partitioned dataset collection was introduced: since statistical models were each themselves multiblock datasets of tables, it became difficult to understand which portions of a hierarchy corresponded to the input data and which were portions of the output model-table hierarchy.
Now, statistics filters:
These changes make organization of models much simpler to process.
Statistics filters previously operated on composite data by producing a statistical model for each block. This caused issues when some ranks did not have any data present and when input data was split into multiple pieces for parallel processing (since pieces do not usually correspond to a relevant partition of the data for analysis purposes). For example, computing descriptive statistics on the can.e.4.X test data with 8 ranks would hang because the reader does not produce 8 pieces. This same filter run on 4 ranks would succeed but not be useful because each piece had its own model for fields such as acceleration or displacement rather than a single model for each material.
Now, you may select whether composite data yields a single model for the entire data object or a model per data-assembly node. Pieces inside a Partitioned Dataset always have their statistical models merged into a single model for the entire partition.
Previously, each statistical analysis filter provided multiple operational capabilities that had to be selected (learn and derive a model (i.e., train), train on a subset, assess data with an existing model, or train and assess the same data).
Now, we aim to provide a separate filter for creating models, a separate filter for assessing data, and a separate filter for merging models of the same type. This release of ParaView does not provide all of the above, but does include simplified model generation.
The statistics filters that produce models no longer accept an input model; they only accept data from which to produce samples for constructing a model. To our knowledge, this feature (merging new data into an existing model from an upstream filter) was not used and complicated construction of pipelines for simpler use cases.
In the future, we intend to add support for merging statistical models as a filter unto itself.
Assessing data in the face of models is not currently supported. This will be addressed in the future by providing a separate filter to perform assessment of data. (The filter will fail if the input data does not have fields required by the statistical model to perform the assessment.)
The level-of-detail (LOD) computation is now performed once when the data from the pipeline is updated. Moreover, resizing the window does not trigger the LOD to be computed again, which fixes potential crashes when big dataset are loaded.
Data Axes Grid now has an Ignore Display Transform Scale option to bypass the scaling transformation specified in the display options. When activated, the model will be scaled, but the tick values of the Data Axes Grid will still show the non-scaled dimensions.
Several monotonic colormaps imported from matplotlib were using the diverging color space for their interpolation. This was wrong as these colormaps are not diverging, but rather monotonic. They are now properly interpolated in the CIELAB colorspace.
There are enough control points to make the interpolation generally unimportant, so backwards compatibility concerns are few with this change.
Some changes have been made to various annotation grids in ParaView.
The Transform property has better consistency:
When the minimum and maximum angles should be computed (Custom Angles off), we have different cases regarding the pole position:
Finally, different UI parts are now grouped with related properties.
The Polar Grid and Legend Grid annotations are only meaningful when the render view has Parallel Projection enabled. Turning Parallel Projection off now hides these annotations.
Skybox backgrounds now support rotations, which are also applied to the environment lighting of the objects in the scene. The rotation can be set in the background properties when using a skybox background, using three angles in degrees.
ParaView now has an ONNX plugin to compute inference from an ONNX model, thanks to the ONNX Predict filter.
ONNX is a community project supported by the Linux Foundation, working toward interoperability of AI tools (see https://onnx.ai/about.html for more information). Further details are available in the article Enhance your ParaView and VTK pipelines with Artificial Neural Networks.
The slider to select the frequency step now allows selection of the first step with index 0. The display of the current step value has been moved to the location of the frequency step selector for improved readability.
The paraview --plugins command-line argument to specify plugin names can now be used to load XML and Python plugins. For each searched directory, the search procedure looks in order for a library (.dll or .so), a Python (.py) file, and finally an XML (.xml) file. The first match is used.
ParaView plugins can now specify a function that can be called to determine whether it should not be loaded under certain conditions, e.g., some resources are missing.
A new example has also been added to show how to use this feature. This example is in the ParaView source code repository in Examples/Plugins/OnLoadCheckCallback/.
Until now, the Clip filter supported exact box clipping only if the Invert property was on. Now, Clip supports exact box clipping even when Invert is off.
The Points Matching Transform filter transforms any Point Set (Polygon Mesh, Unstructured Grid, etc.) by specifying four pairs of points in space to define a transformation from the source points to the target points.
To interact with this filter, a new InteractiveFourLines widget has been introduced to control the source and the target points of each line. The GUI component of the widget has a button to switch the source point and the target point of a line.
The Plot Global Variables Over Time filter now correctly supports processing empty composite data sets such as Multi-block Datasets and Partitioned Dataset Collections.
The Extrusion Surface representation can now process 3-component vector arrays as input data. If such an input is selected, it will be treated as a displacement on the GPU (see figure below).
A property named Recalculate Normals has also been added that enables recomputation of the surface normals after the extrusion to prevent bad visual results due to the warping of the surface.
![]()
The Extrusion Surface representation warps a surface according to a 3-component vector array represented here by arrow glyphs.
The Calculator filter now supports user-defined multi-component arrays of arbitrary size using syntax of the form {x, y, z, ...} (no text can come before or after the curly braces in such expressions). The number of comma-separated elements inside the braces determines the number of components in the resulting array.
The constants pi and inf are now available to use in Calculator filter expressions. All calculator buttons now have a tooltip.
EAM Project To Sphere is a new filter that projects latitude/longitude data onto a 3D sphere for globe visualization with optional vertical exaggeration.
When running a pvserver on multiple processes with MPI, the Ghost Cells filter now supports having a process that has a null partition/block when others have HyperTree Grids.
The Resample To HyperTreeGrid filter now supports subdivisions using a criterion based on cell data values.
In addition, the user interface for this filter was improved. The properties No Empty Cells, Interpolation Method, Minimum Number Of Points In Subtree and Extrapolate Point Data options has been moved to advanced panel. Furthermore, similar parameters are grouped together and the threshold selection for subdivision is now similar to the Threshold filter.
Lastly, the selection of arrays to interpolate was removed. If an interpolation method is set, all arrays of the same type (point or cell) as the subdivision array are now interpolated.
The properties Pass Point Arrays, Pass Cell Arrays, and Pass Field Arrays of Point Dataset Interpolator filter are available as advanced properties.
The Cell Types property from the Extract Cells By Type filter now only shows the cell types available in its input data to make it easier to select which cells to pass through to the output.
You can use the new Redistribute HyperTreeGrid filter to rebalance trees between distributed ParaView processes.
The Mesh Quality filter has been updated to expose Verdict metrics for non-linear cells. The metrics available are:
Quadratic Triangle: AREA, DISTORTION, NORMALIZED_INRADIUS, SCALED_JACOBIANBi-Quadratic Triangle: AREA, DISTORTIONQuadratic Quad: AREA, DISTORTIONBi-Quadratic Quad: AREA, DISTORTIONQuadratic Tetra: DISTORTION, EQUIVOLUME_SKEW, INRADIUS, JACOBIAN, MEAN_RATIO, NORMALIZED_INRADIUS, SCALED_JACOBIAN, VOLUMEQuadratic Hexahedron: DISTORTION, VOLUMETri-Quadratic Hexahedron: DISTORTION, JACOBIAN, VOLUMEAdditionally, the INRADIUS metric was added also for Tetra.
Moreover, because the point order of Wedge is different between ParaView/VTK and Verdict, the Mesh Quality filter was updated to reorder the points of the Wedge before computing any metric.
Also, the Cell Size filter has been updated to use all the area/volume functions defined in Mesh Quality for the supported cell types, including the non-linear cells mentioned above.
A bug has been fixed in the Cell Quality filter where the metrics RELATIVE_SIZE_SQUARED, SHAPE_AND_SIZE, and SHEAR_AND_SIZE were always generating 0. Correct metrics are now computed.
Previously, the Stream Tracer With Custom Source filter could not be applied to a data set with velocity vectors in a cell-associated data array. Now it can be applied to such datasets without resorting to expensive interpolation from cell data to point data.
The PNG reader has a new property called Data Origin. This 3D coordinate describes the position of the first pixel in the image, thus allowing you to position PNG images in 3D space.
ParaView now includes a Python-based EAM Data Reader for visualizing E3SM/EAM (Energy Exascale Earth System Model / E3SM Atmosphere Model) atmospheric data stored in NetCDF format.
This multi-output reader producing separate outputs for:
The 3D outputs are converted to volumetric data directly in the reader, producing hexahedral cells that span adjacent vertical levels. This enables immediate volume rendering without requiring additional filters. Time series data and automatic detection of hybrid sigma-pressure coordinates are supported.
The PDAL reader now has an Apply Offset property. When enabled, offsets detected in LAS/LAZ metadata are applied to point coordinates when they are read.
![]()
Screenshot of PDAL reader properties, including the new Apply Offset property.
The CDI reader was unusable when reading time series data because it was loading all files all at once. By enabling CDI's lazy load feature, it is now possible to work with large datasets.
In one case, loading a set of 50 files (8 timesteps each) used to take about 15 minutes. Now it takes about 12 seconds.
Longitude coordinates are now normalized in the interval [-pi, pi].
The status of arrays in the Array Selection property is preserved when loading file series.
The SILO reader was experiencing a crash when compiled with the latest version of the SILO library (4.11). This was caused by a metadata load that failed to capture variable names that were later expected to be found. The appropriate metadata is now loaded.
Previously, when multiple writers supported the same file extension, ParaView would always select the first available writer, regardless of your explicit choice in the Save File dialog. This would cause, for example, the IOSS Exodus File writer to be used instead of the Exodus II File writer, even when Exodus II File was explicitly selected in the Files of type popup menu.
Additionally, an issue has been fixed where Exodus II File writer was not being instantiated properly, preventing it from being used even when selected.
The IOSSReader used to have a property Read Global Fields to control whether all global fields available in the file would be read. This property has been deprecated in favor of a more flexible approach using Global Fields to enable selection of specific global fields to read. This is particularly useful when dealing with datasets with a large number of global fields, only a subset of which you want to load, improving performance and reducing memory usage.
Using the new option Group Alphabetic Vector Field Components you can now control whether the IOSSReader groups alphabetic vector field components, such as vel_x, vel_y, vel_z into a single vector field, such as vel, something which was always done before.
The IOSSReader's Read All Files To Determine Structure property is now off by default. This change improves performance in the most common cases, and you will still be notified if the flag needs to be turned on because changes in the mesh topology over time are determined to exist.
Lastly, IOSSReader has a new property named Catalyst Conduit Channel Name for selecting the Catalyst Conduit channel when reading Catalyst data streams.
The XML UniformGrid AMR Reader previously read only the first level of the AMR through the property Default Number Of Levels default value of 1. It now reads all levels as the default value of this property is now 0.
This is a change of behavior and considered a bugfix as previous behavior was incorrect, but it may result in unexpected results for anyone relying on this previous behavior.
When saving PNG files, the Embed ParaView State property is now grouped together with the MetaData property that enables specifying key-value pairs for storing additional information in the PNG files.
![]()
Metadata-related properties are now organized within a Metadata section in the Save Animation Options dialog when saving PNG files.
The VisIt bridge now uses readers from a recent release of VisIt (3.4.2). It had previously been several years since ParaView was updated with the latest reader code from VisIt. This update captures any bug fixes as well as consolidating any build changes imported from the external repository.
The openPMD mesh in-voxel shift (MeshComponent::position) is now taken into account. For vector/tensor fields, the shift of the first component is applied for all components.
The Main Controls toolbar now has a Load State button that lets you quickly load saved states of their projects.
![]()
The Main Controls toolbar has a button to load ParaView state files.
In the Load State dialog, PNG files without state can no longer be selected.
PARAVIEW_LOG_FILE environment variableAdditional log files to be generated can now be listed with the PARAVIEW_LOG_FILE environment variable. Settings for this environment variable are the same as for the -l or --log command-line options and have the same effect.
The UI element that lists available timesteps in the Current Time Controls toolbar (pqAnimationTimeWidget) now repopulates the timesteps combo box only when needed. This change improves ParaView's performance and responsiveness when working with datasets with thousands of timesteps.
Performance has been substantially improved in the MultiBlock Inspector when showing composite datasets with thousands of blocks.
ParaView's file dialog has been enhanced to support case-insensitive matching of file extensions. Previously, files with extensions that did not match the capitalization specified by readers in ParaView would not be available to read, which was an excessive and unintended restriction.
You can now use the abort button to cancel long-running operations in ParaView. The abort button becomes active whenever the progress bar displays ongoing activity. This feature is currently available only when ParaView is connected to a builtin server - aborting filters in remote sessions is not available.
The Main Controls toolbar's palette chooser has been moved to the Active Variable Controls toolbar. In addition, two new buttons have been added to the Active Variable Controls toolbar to 1). enable editing the scalar bar properties (label text size, font, etc.) and 2). choose a preset colormap.
![]()
The new Active Variable Controls toolbar layout with additions circled in red.
The Macros toolbar has been moved to the top row to make space for the increased size of the color toolbar.
ParaView now provides a way to load all favorites directory paths accessible from any local server. This option can be enabled with the Load All Favorites in the General section in the ParaView's settings.
When the Show Save State On Exit setting is enabled and you exit ParaView, you are now able to choose different options for how to proceed:
In the Edit menu, ParaView now has a "Change File..." option to change the path of the file read by a reader source selected in the Pipeline Browser.
The ParaView color opacity editor now has controls to add or remove rows from the color and opacity tables.
![]()
Insert and remove rows in color opacity tables
ParaView now shows indicators for warnings and errors in the right side of the status bar.
![]()
Warning and error indicators in the status bar.
You can click on either of the indicator icons to bring up the Output Messages window to read full details from the warning or error message.
In the ParaView GUI, the Box widget used in some filters now provides a dedicated Matrix tab to directly input or edit 4×4 matrices. The existing field-based editor (Position/**Rotation**/**Scale**) remains under the Fields tab, and values in each tab are synchronized in both directions.
![]()
The new Matrix tab and editor.
Numerical values in tables that are displayed for some properties are now sorted by numerical value, instead of the less useful alphabetical sort (e.g., where 100 would be listed before 4).
The impacted properties are those like the Sets properties of the IOSS reader (known as Array Selection properties). They are displayed as a 2-column table, with one column being a numerical identifier.
The button that removed all points in the Spline Source's points property table now instead resets the list of points to the two default points. The tooltip has been changed accordingly from "Remove all points" to "Reset Points".
SpreadSheetView does not show sorting controls for columns of non-numeric values because sorting them is not currently supported.
--timeout-command execution when using MPIWhen running pvserver with MPI, the command specified by the command-line option --timeout-command now runs only on the first rank.
current_time variable in Python Calculator and Python AnnotationThe current_time variable contains the current time in ParaView's time controls. This is the same value as the Current Time field in the ParaView GUI's Information panel. In contrast to the time_value (t_value) variable already defined, which refers to the current time value of the data source, the current_time value refers to the global current time value set for all of ParaView. Unlike time_value and time_index (t_index), the current_time value is always available in the Python Calculator and Python Annotation filters.
pvbatch saves data from all timesteps in symmetric modepvbatch mode now correctly exports data from all timesteps when saving an animation in symmetric mode (i.e., pvbatch --symmetric).
The TimeManager widget now traces the Number of Frames and Stride property values when they are changed in the ParaView GUI.
Support for Sphinx 4 for documentation generation has been removed.
First Person Camera is a new interaction style that binds the mouse and the keyboard to enable movement like a first person flight by changing the view direction of the camera with the mouse and by using four keys of the keyboard to move it in the space. To function correctly, the controlled proxy must be a Render View and since it only controls the camera, there is no controlled property to set. The input device must return the absolute position of the mouse on the screen as valuators, one for X position and one for Y position (a vrpn_Mouse for example with VRPN). In the CAVE, this interaction style won't have any effect unless the off-axis projection is turned off in the CAVE configuration.
Joystick Camera is a new interaction style that binds a controller to enable movement of the camera with the joysticks. The input device must contain two joysticks with valuators going from -1 to 1 in X and Y to function correctly (a vrpn_Joylin or a vrpn_Joywin32 for example with VRPN). In the CAVE, this interaction style won't have any effect unless the off-axis projection is turned off in the CAVE configuration.
UseOffAxisProjection configuration in .pvx filesThe .pvx configuration file format for CAVE systems now supports the UseOffAxisProjection property for the camera. It is enabled by default and it can be disabled with <UseOffAxisProjection Value="false" />.
You can now set a world Scaling Factor property in the CAVE Interaction Manager panel, and it is immediately applied to the ModelTransformMatrix (aka NavigationMatrix). This new UI field also reflects any scaling done by other interactor styles, thanks to a new navigation event observer that extracts the scale from the ModelTransformMatrix, so that the UI always reflects the correct current scale.
In your interactor styles you can now make use of new static convenience methods that have been added to vtkSMVRInteractorStyleProxy to support extracting/updating the scale factor from/to the ModelTransformMatrix.
You can also experiment with this new scaling functionality using a new custom Python interactor style that performs scaling, SimpleScalingInteractor.py. This new interactor style allows you to observe and verify the connection between scaling with an interactor style and scaling with the panel UI element.
Collaborators using the XRInterface plugin now send their avatar up vector based on their own navigation. For example, using the in-world ParaView menu to select camera presets results in navigation, and previously this caused collaborators to see your avatars head suddenly appear at a 90 or 180 angle to its torso. Now, your avatars head and torso always appear in proper alignment.
To go along with this change, the CAVEInteraction plugin no longer has a field to allow specifying the default avatar up vector for new avatars coming into the session, since this is now controlled on the sending side.
Several improvements have been made to the CAVE Interaction Manager panel.
The list edit control under "VR Connections" in the CAVE Interaction Manager panel took up too much space, given that the vast majority of use cases will define only one or two connections. As a result, this field has been fixed in size at the height needed to display 2.5 list items, making it clear if you need to scroll to see more items. Similarly, the "Interactions" list edit has been fixed in size at the height needed to display 4.5 items. The entire configuration panel is now resizable and lives within a scroll area, so that even when quite small, all the contents are reachable.
The regular expression for connection address validation has been updated several times in the past to be more inclusive of characters that might appear in an address, yet there were still issues with legitimate characters not being allowed in the field. To accommodate any host name, the validation of that field has simply been removed.
Navigation is now shared by default by people using the CAVEInteraction plugin who join a collaboration session, though this behavior can be disabled using the same checkbox as before.
You can now configure any display in your CAVE to show or hide the typical 2D overlays seen on ParaView's desktop. This includes things like the scalar bar and rendering annotations.
By default all displays will show 2D overlays. To disable them on any display, simply add a Show2DOverlays="0" attribute to any Machine element in the .pvx file defining the displays in the CAVE system.
The "process" argument is now deprecated in .pvx files and support for it will be removed in a later release.
Examples have been updated accordingly.
A trivial .pvx file looks like this:
The CAVE interactor styles are now much more performant, usable, and functional.
You can now run multiple interactor styles at the same time with far better performance, as all interactor styles included with ParaView (both Python and C++) have been updated to defer as much computation as possible to the Update() method, rather than doing computation in the event handling methods.
To learn about the key details of the plugin event loop that make this a sensible practice, as well as find out about other best practices for writing interactor styles, see the new guide Incubator/CAVEInteraction/README.md.
You can now more readily experiment with interactor styles, as each style has been given a "Reset" functionality. This allows you to reset the scene and any objects properties to their original values, in case you fly too far away or get turned upside down or faced away from your data.
Interactor styles have been catalogued and renamed to match their functionality. See the new Incubator/CAVEInteraction/README.md for a brief discussion of the features and corresponding nomenclature of the built-in interactor styles.
Additionally, you can now hover over each style in the combo box and see a tooltip describing the behavior and requirements of each interactor style.
You can now be more confident that interactor styles work properly, especially when used in conjunction with each other, as all interactor styles have been thoroughly tested and had bugs fixed. Many interactor styles did not properly account for the fact that other styles might already have updated the ModelTransformMatrix, and these have all been fixed. To read more about best practices for writing interoperable interactor styles, see the new Incubator/CAVEInteraction/README.md.
Whenever you add or edit a connection from the CAVE configuration panel, you can now also view and update the transform associated with the connection. The transform is a 4x4 homogeneous matrix used to pre-multiply all tracker matrices coming from the connection before they are delivered to the interactor styles. These transforms are also saved to and loaded from state along with the rest of the panel configuration elements.
You can now use composite structures as input for Catalyst-ParaView steering extractors.
Conduit nodes returned as catalyst_results for steering by ParaView now correctly follow the Blueprint mesh/multimesh formalism. In practice, this means that all channels store their data in a "data" group, which was not the case previously.
pqAddToFavoritesReaction, the constructor pqAddToFavoritesReaction(QAction* parent, QVector<QString>& filters) has been removed. Favorites are now integrated into Categories, and should be initialized from a pqProxyCategory instead.pqCategoryToolbarsBehavior, the slot void prepareForTest() was removed as it was unused.pqColorMapEditor, the slot void setDataRepresentation(pqDataRepresentation* repr, bool forceUpdate = false) was removed. Use setRepresentation() instead.pqDataAssemblyPropertyWidget, the properties selectorColors, compositeIndexColors, selectorOpacities, and compositeIndexOpacities and their associated accessors and signals have been removed.pqLiveSourceBehavior, the static member functions void pause(), void resume(), and bool isPaused() have been removed. Use functions of the same name in pqLiveSourceManager instead.pqManageFavoritesReaction has been removed. Favorites should be replaced by Categories configuration. See pqConfigureCategories instead.pqProxyGroupMenuManager, vtkSMProxy* getPrototype(QAction* action) const has been removed in favor of static vtkSMProxy* GetProxyPrototype(QAction*), bool hideForTests(const QString&) const and void setEnabled(bool) have been removed because they were mostly unused, void populateFavoritesMenu(), void loadFavoritesItems(), and QAction* getAddToFavoritesAction(const QString& path) have been removed because favorites are now a category configurable like other categories, and the protected Enabled member variable has been removed because it is unused.pqFavoritesDialog and its associated Qt .ui file have been deleted.pqQuickLaunchDialog has been removed. Please use pqQuickLaunchDialogExtended instead.pqWaitCursor has been removed. Please use pqScopedOverrideCursor(Qt::WaitCursor) instead.vtkSMAnimationScene, member function void SetDuration(int) has been removed. Use SetStride(int) instead.vtkInitializationHelper,static bool InitializeMiscellaneous(int) has been removed. Use InitializeSettings() and InitializeOthers() instead.static std::string GetUserSettingsDirectory() has been removed. Use vtkPVStandardPaths::GetUserSettingsDirectory() instead.static std::string GetUserSettingsFilePath() has has been removed. Use vtkPVStandardPaths::GetUserSettingsFilePath() instead.vtkGeometryRepresentation, member function virtual void SetFlipTextures(bool) has been removed. Use SetTextureTransform() instead to flip a texture.vtkPolarAxesRepresentation, accessors for EnableCustomRadius have been removed. Use accessors for EnableCustomMinRadius instead.vtkSMColorMapEditorHelper, member function static vtkSMProxy* GetLUTProxy(vtkSMProxy*, vtkSMProxy*) has been removed and replaced with GetLookupTable(vtkSMProxy*, vtkSMProxy*).vtkSMPVRepresentationProxy,void SetLastLUTProxy(vtkSMProxy*) has been removed and replaced with SetLastLookupTable(vtkSMProxy*).vtkSMProxy* GetLastLUTProxy() has been removed and replaced with vtkSMProxy* GetLastLookupTable().vtkSMProxy* GetLUTProxy(vtkSMProxy*) has been removed and replaced with vtkSMProxy* GetLookupTable() instead.In vtkPVGeometryFilter, the following information keys have been removed because they were not used:
static vtkInformationIntegerVectorKey* POINT_OFFSETS()static vtkInformationIntegerVectorKey* VERTS_OFFSETS()static vtkInformationIntegerVectorKey* LINES_OFFSETS()static vtkInformationIntegerVectorKey* POLYS_OFFSETS()static vtkInformationIntegerVectorKey* STRIPS_OFFSETS().Also in vtkPVGeometryFilter, member function void CleanupOutputData(vtkPolyData* , int) has been replaced with void CleanupOutputData(vtkPolyData*), and member function void ExecuteCellNormals(vtkPolyData* output, int doCommunicate) has been replaced with void ExecuteNormalsComputation(vtkPolyData*).
A number of filter proxies have been removed and replaced:
ParaView has been using a set of either unsafe or slow C/C++ functions to convert numbers to strings and vice versa. The exhaustive list of functions is given below. All of them have been replaced with safer and faster alternatives provided by scnlib, fmt, and fast_float libraries and exposed though the vtk:: namespace.
C/C++ has the following functions to convert one/many chars or strings to a number.
atof, atoi, atol, atollstd::stof, std::stod, std::stold, std::stoi, std::stol, std::stoll, std::stoul, std::stoullstd::strtof, std::strtod, std::strtold, std::strtol, std::strtoll/_strtoi64, std::strtoul, std::strtoullsscanf, sscanf_s, vsscanf, vsscanf_sstd::from_chars (This is slow because it does not use fast_float for conversion.These functions have been replaced by:
vtk::from_chars, vtk::scan_int, vtk::scan_value, where one number needed to be convertedvtk::scan, where one/many numbers needed to be converted (optionally with a specific format)C/C++ has the following functions to scan one/many numbers from stdin or a file:
scanf, scanf_s, vscanf, vscanf_s,fscanf, fscanf_s, vfscanf, vfscanf_sThese functions have been replaced by:
vtk::scan_value, where one number needed to be convertedvtk::input, vtk::scan, where one/many numbers needed to be converted (optionally with a specific format)C/C++ has the following functions to convert one/many numbers to a char or string.
itoa/_itoa, ltoa/_ltoa, lltoa/_i64toa, ultoa/_ultoa, ulltoa/_ulltoa/_ui64toasprintf, sprintf_s, vsprintf, vsprintf_ssnprintf, snprintf_s, vsnprintf, vsnprintf_sstrftimestd::to_chars, std::to_stringThese functions have been replaced by:
vtk::to_chars or vtk::to_string, if one number needed to be convertedvtk::format, vtk::format_to, or vtk::format_to_n, if one/many numbers needed to be converted with a specific formatC/C++ has the following functions to print one/many numbers to stdout or a file:
printf, printf_s, vprintf, vprintf_sfprintf, fprintf_s, vfprintf, vfprintf_s,These functions have been replaced by:
vtk::print, vtk::printlnIt should also be noted that the following functions (including subclasses that use them) need to be provided with strings that use the std::format style format instead of the printf style format:
void vtkAnnotateGlobalDataFilter::SetFormat(const char* formatArg)void vtkCGNSWriter::SetFileNameSuffix(const char* suffix)void vtkContext2DScalarBarActor::SetRangeLabelFormat(const char* formatArg)void vtkCSVWriter::SetFileNameSuffix(const char* suffix)void vtkFileSeriesWriter::SetFileNameSuffix(const char* suffix)void vtkParallelSerialWriter::SetFileNameSuffix(const char* suffix)void vtkParticlePipeline::SetFilename(const char* filename)void SceneImageWriterImageSeries::SetSuffixFormat(const char* suffix)void vtkStringList::AddFormattedString(const char* EventString, T&&... args)Finally, the following string properties now use the std::format style format instead of the printf one:
ScalarBarActor.LabelFormatScalarBarActor.RangeLabelFormatTexturedScalarBarActor.LabelFormatTexturedScalarBarActor.RangeLabelFormatRulerSourceRepresentation.LabelFormatProtractorRepresentation.LabelFormatExodusIIReaderCore.FilePatternPNGWriter.FilePatternTIFFWriter.FilePatternJPEGWriter.FilePatternPolarAxesRepresentation.PolarLabelFormatDateToNumeric.DateFormatXYChartViewBase.TooltipLabelFormatJPEG.SuffixFormatPNG.SuffixFormatTIFF.SuffixFormatBPM.SuffixFormatFileSeriesWriter.FileNameSuffixFileSeriesWriterComposite.FileNameSuffixParallelFileSeriesWriter.FileNameSuffixParallelSerialWriter.FileNameSuffixCGNSWriter.FileNameSuffixCSVWriter.FileNameSuffixUpon changing a reader proxy's file name property, if the name of its proxy is not the name of the previous file (i.e. the user renamed the proxy), the proxy's name is no longer modified.
The vtkPVVersionQuick.h header now provides a PARAVIEW_VERSION_SHORT symbol which is the MAJOR.MINOR as a string literal.
Transformation properties defined in server manager XML should continue to use panel_widget="InteractiveBox". For the Matrix tab to appear in the UI, the proxy must have properties named Position, Rotation, and Scale. The matrix values and Position, Rotation, and Scale are kept synchronized.
pqFileDialog changesA small backwards-incompatible change has been made in pqFileDialog::pqFileDialogFavoriteModelFileInfo to be able to store the Origin. It's necessary as we want to be able to modify an existing favorite from where it's located even when Load All Favorites setting is enabled.
To access, enable the CMake configure time option PARAVIEW_ENABLE_RAYTRACING and PARAVIEW_ENABLE_ANARI. That would automatically enable the vtkRenderingRayTracing and vtkRenderingAnari modules.
To use ONNX with a local build of Paraview, you will have to install an ONNX runtime for C++ API https://onnxruntime.ai/
Note that due to some issue in the ONNX CMake integration with ONNX runtime 1.22.0 on linux you will need to:
vtkCaveSynchronizedRenderersThe vtkCaveSynchronizedRenderers class has been cleaned up. The function ComputeCamera() has been deprecated in favor of InitializeCamera() and the following protected members are now private:
double EyeSeparation;int NumberOfDisplays;double** Displays;double DisplayOrigin[3];double DisplayX[3];double DisplayY[3];int once;The NvPipe support in ParaView was discovered to not compile properly. It has been deprecated pending a decision of its future.
1.8.13 on Tue Mar 31 2026