Many new features, bug fixes, and improvements to our documentation. Most notable new features include:
- A new Jupyter rendering backend powered by [Trame](https://kitware.github.io/trame/index.html)
- Improved volume rendering with support for any 3D data types
- Custom, user-defined themes
- `vtkAlgorithm` support for dynamic plotting
- Wrappings of `vtkCell`
Thank you to all volunteers and contributors that make it possible to continue to develop and support PyVista. A big shout-out to the 5 new contributors to this release!
<!-- Release notes generated using configuration in .github/release.yml at main -->
What's Changed
Breaking Changes
* Remove progressbar from pooch fetch and downloads API by adeak in https://github.com/pyvista/pyvista/pull/3693
* Don't raise on missing iren key events to clear by default by adeak in https://github.com/pyvista/pyvista/pull/3648
* Fix Circle to remove singular edge by GlennWSo in https://github.com/pyvista/pyvista/pull/3710
* Fix two other closed geometric objects. by dcbr in https://github.com/pyvista/pyvista/pull/3723
* Deprecate and remove PlotterITK by banesullivan in https://github.com/pyvista/pyvista/pull/3737
* Improve and correct vtkThreshold usage by banesullivan in https://github.com/pyvista/pyvista/pull/3750
* Define type alias for length-6 tuple of numbers for mesh bounds, rename color_like type by adeak in https://github.com/pyvista/pyvista/pull/3777
New Features
* Expose BandedPolyDataContourFilter by akaszynski in https://github.com/pyvista/pyvista/pull/3606
* Add use_scalar_weights argument by tkoyama010 in https://github.com/pyvista/pyvista/pull/3189
* Add BohemianDome parameters by tkoyama010 in https://github.com/pyvista/pyvista/pull/3677
* Add classmethod to read pvcc paraview by beroda in https://github.com/pyvista/pyvista/pull/3662
* Wrapping vtkCell by beroda in https://github.com/pyvista/pyvista/pull/3715
* Add color cyclers for `add_mesh(..., color=True)` by banesullivan in https://github.com/pyvista/pyvista/pull/3739
* Adds volume wrapper by AlejandroFernandezLuces in https://github.com/pyvista/pyvista/pull/3675
* Redraw ChartMPL on Plotter render by dcbr in https://github.com/pyvista/pyvista/pull/3731
* Add vtkAlgorithm support to `add_mesh` for pipelining by banesullivan in https://github.com/pyvista/pyvista/pull/3318
* Add volume clipper by akaszynski in https://github.com/pyvista/pyvista/pull/3834
* Add a `recompute_normals` parameter to `PolyData.save` by lverret in https://github.com/pyvista/pyvista/pull/3845
* add in rgba volume plotting by akaszynski in https://github.com/pyvista/pyvista/pull/3830
* Improve Charts compatibility with older and upcoming VTK versions. by dcbr in https://github.com/pyvista/pyvista/pull/2868
* Support Actor-based picking by banesullivan in https://github.com/pyvista/pyvista/pull/3863
* Track Actor names better and improve add_actor by banesullivan in https://github.com/pyvista/pyvista/pull/3864
* Trame support and new Jupyter backend by banesullivan in https://github.com/pyvista/pyvista/pull/3385
* Scaled screenshots by banesullivan in https://github.com/pyvista/pyvista/pull/3897
* Support vtkLegendScaleActor with add_legend_scale by banesullivan in https://github.com/pyvista/pyvista/pull/3716
* Use plotter window_size for trame viewer if set by banesullivan in https://github.com/pyvista/pyvista/pull/3909
* Support axes customization by AlejandroFernandezLuces in https://github.com/pyvista/pyvista/pull/3656
* Add hydrogen orbitals example by akaszynski in https://github.com/pyvista/pyvista/pull/3825
* Custom themes and more theme options by banesullivan in https://github.com/pyvista/pyvista/pull/3870
* Fix and improve chart interaction by dcbr in https://github.com/pyvista/pyvista/pull/3756
* UnstructuredGrid volume rendering by akaszynski in https://github.com/pyvista/pyvista/pull/3930
Bug fixes or behavior changes
* change default points_gaussian representation by akaszynski in https://github.com/pyvista/pyvista/pull/3559
* Do not set scalars as active when adding by banesullivan in https://github.com/pyvista/pyvista/pull/3535
* add version check for mpl by akaszynski in https://github.com/pyvista/pyvista/pull/3583
* UnicodeDecodeError by beroda in https://github.com/pyvista/pyvista/pull/3577
* Hotfix: resolve broken deprecated methods by banesullivan in https://github.com/pyvista/pyvista/pull/3601
* Universalize `cast_to_pointset` and add `cast_to_poly_points` by banesullivan in https://github.com/pyvista/pyvista/pull/3243
* Fix nan_opacity issues and above/below annotations by banesullivan in https://github.com/pyvista/pyvista/pull/3556
* Fix the number error of segment in add_lines by tkoyama010 in https://github.com/pyvista/pyvista/pull/3687
* Fix interactive updates by dcbr in https://github.com/pyvista/pyvista/pull/3617
* handle verts in pythreejs by akaszynski in https://github.com/pyvista/pyvista/pull/3102
* Re-reset key events in Plotter.__init__() by adeak in https://github.com/pyvista/pyvista/pull/3622
* Fix builds by akaszynski in https://github.com/pyvista/pyvista/pull/3740
* Resolves return_img for Plotter.show() by beroda in https://github.com/pyvista/pyvista/pull/3761
* Fix link_views() default camera position by banesullivan in https://github.com/pyvista/pyvista/pull/3743
* Ensure bounds properties are immutable by banesullivan in https://github.com/pyvista/pyvista/pull/3747
* Fix PVD reader, allow no part by beroda in https://github.com/pyvista/pyvista/pull/3760
* Fix dataobject repr by akaszynski in https://github.com/pyvista/pyvista/pull/3786
* Improve `add_volume` and support RectilinearGrid by akaszynski in https://github.com/pyvista/pyvista/pull/3794
* Fix doc build encoding issue by dcbr in https://github.com/pyvista/pyvista/pull/3814
* Fix mypy bug on python 3.11 by akaszynski in https://github.com/pyvista/pyvista/pull/3837
* Skip MathText test for VTK and Matplotlib version incompatibilities by akaszynski in https://github.com/pyvista/pyvista/pull/3838
* Fix issues with `contour_banded()` and improve examples by banesullivan in https://github.com/pyvista/pyvista/pull/3842
* Fix inplace filters usage of copy_from by banesullivan in https://github.com/pyvista/pyvista/pull/3865
* Use `interaction_event` instead of `event_type` in two examples. by dcbr in https://github.com/pyvista/pyvista/pull/3878
* Fix show vertices for algorithms by banesullivan in https://github.com/pyvista/pyvista/pull/3890
* Fix a few issues with Plotter.show by banesullivan in https://github.com/pyvista/pyvista/pull/3889
* fix add_silhouette docstring by akaszynski in https://github.com/pyvista/pyvista/pull/3912
* Use 3d text actors by default by akaszynski in https://github.com/pyvista/pyvista/pull/3910
* [HOTFIX] Verify int64 support with trame by banesullivan in https://github.com/pyvista/pyvista/pull/3924
* Ignore BLK100 for flake8-black by akaszynski in https://github.com/pyvista/pyvista/pull/3928
* [HOTFIX] Track is_set on Camera rather than Renderer by banesullivan in https://github.com/pyvista/pyvista/pull/3927
* Add intersection edge case test by akaszynski in https://github.com/pyvista/pyvista/pull/3929
Documentation
* Update install dependencies in installation docs by adeak in https://github.com/pyvista/pyvista/pull/3543
* Add a badge for the supported Python version. by MaxJPRey in https://github.com/pyvista/pyvista/pull/3552
* minor contributing fix by akaszynski in https://github.com/pyvista/pyvista/pull/3561
* Add geovista to external examples by akaszynski in https://github.com/pyvista/pyvista/pull/3558
* Add blog post of IvanNik17 by tkoyama010 in https://github.com/pyvista/pyvista/pull/3553
* Clarify that interpolate only maps point data to point data by adeak in https://github.com/pyvista/pyvista/pull/3621
* Move google_analytics_id to analytics in pydata-sphinx-theme by tkoyama010 in https://github.com/pyvista/pyvista/pull/3634
* Python 3 style using pyupgrade by mwtoews in https://github.com/pyvista/pyvista/pull/3638
* Add support to modulate the tube filter's radius in absolute units by jmargeta in https://github.com/pyvista/pyvista/pull/3649
* Change unresolved BasePlotter intersphinx refs to Plotter by adeak in https://github.com/pyvista/pyvista/pull/3642
* π HAPPY NEW YEAR 2023 π by tkoyama010 in https://github.com/pyvista/pyvista/pull/3765
* Add `show_vertices` for vertex rendering by banesullivan in https://github.com/pyvista/pyvista/pull/3745
* Fix doc builds for main branch by beroda in https://github.com/pyvista/pyvista/pull/3792
* Fix documentation build main by beroda in https://github.com/pyvista/pyvista/pull/3799
* Add volume mapper choice notes by banesullivan in https://github.com/pyvista/pyvista/pull/3824
* Quick fix for docstring of add_volume_clip_plane by akaszynski in https://github.com/pyvista/pyvista/pull/3846
* Add a Magpylib example to external gallery by tkoyama010 in https://github.com/pyvista/pyvista/pull/3848
* HOTFIX: `render_window` docstring notes by banesullivan in https://github.com/pyvista/pyvista/pull/3885
* Fix a small typo by tkoyama010 in https://github.com/pyvista/pyvista/pull/3917
* Ignore inherited members and attributes and switch to the full doc build by akaszynski in https://github.com/pyvista/pyvista/pull/3919
* Force redeploy of docs by banesullivan in https://github.com/pyvista/pyvista/pull/3933
* Document BasePlotter by banesullivan in https://github.com/pyvista/pyvista/pull/3934
Maintenance
* Add requirements-txt-fixer to .pre-commit-config.yaml by tkoyama010 in https://github.com/pyvista/pyvista/pull/3541
* fix startsWith by akaszynski in https://github.com/pyvista/pyvista/pull/3542
* Migrate config files into pyproject.toml by banesullivan in https://github.com/pyvista/pyvista/pull/3328
* Finalize v0.37 deprecations by banesullivan in https://github.com/pyvista/pyvista/pull/3602
* Standardize warnings by banesullivan in https://github.com/pyvista/pyvista/pull/3232
* Move project metadata to pyproject.toml; avoid calling setup.py by mwtoews in https://github.com/pyvista/pyvista/pull/3619
* Rename downlad_download to download by tkoyama010 in https://github.com/pyvista/pyvista/pull/3631
* Remove legacy numpy aliases removed in 1.24.0 by adeak in https://github.com/pyvista/pyvista/pull/3659
* Adapt project to pytest-pyvista plugin by AlejandroFernandezLuces in https://github.com/pyvista/pyvista/pull/3579
* Fix the docstring of composite.py by tkoyama010 in https://github.com/pyvista/pyvista/pull/3694
* Fix the docstring of the parametric object. by tkoyama010 in https://github.com/pyvista/pyvista/pull/3678
* Add pytest-pyvista to Report by banesullivan in https://github.com/pyvista/pyvista/pull/3713
* Fix a test of KochanekSpline. by tkoyama010 in https://github.com/pyvista/pyvista/pull/3657
* Fix the docstring of camera.py by tkoyama010 in https://github.com/pyvista/pyvista/pull/3688
* Fix the docstring of demos.py by tkoyama010 in https://github.com/pyvista/pyvista/pull/3683
* [HOTFIX] VTK 9.0.3 + NumPy<1.24 CI by banesullivan in https://github.com/pyvista/pyvista/pull/3729
* [hotfix] Use latest VTK version for conda tests by banesullivan in https://github.com/pyvista/pyvista/pull/3736
* Bump pytest-pyvista and fix image regression testing by banesullivan in https://github.com/pyvista/pyvista/pull/3748
* Use --fail_extra_image_cache on CI by banesullivan in https://github.com/pyvista/pyvista/pull/3776
* [HOTFIX] Fix docs for copy_meta_from by banesullivan in https://github.com/pyvista/pyvista/pull/3788
* Add LaTeX symbol test by banesullivan in https://github.com/pyvista/pyvista/pull/3781
* Allow building full docs in PR, opt-in by MatthewFlamm in https://github.com/pyvista/pyvista/pull/3800
* pydocstyle using tomli by beroda in https://github.com/pyvista/pyvista/pull/3803
* Test MathText for conda CI by banesullivan in https://github.com/pyvista/pyvista/pull/3795
* Improve silhouette decimate parameter check by banesullivan in https://github.com/pyvista/pyvista/pull/3817
* Update VTK for docs build and limit core requirements by dcbr in https://github.com/pyvista/pyvista/pull/3822
* Fix the docstring of the charts.py by tkoyama010 in https://github.com/pyvista/pyvista/pull/3682
* Make above/below color labels consistent by banesullivan in https://github.com/pyvista/pyvista/pull/3891
* Disable conda CI by banesullivan in https://github.com/pyvista/pyvista/pull/3906
* Improve add_silhouette with kwargs and remove default decimation by banesullivan in https://github.com/pyvista/pyvista/pull/3901
* Deprecate non-Trame Jupyter backends by banesullivan in https://github.com/pyvista/pyvista/pull/3902
* Add BaseVTKReader for custom Reader; Use for PVDReader by MatthewFlamm in https://github.com/pyvista/pyvista/pull/3894
New Contributors
* MaxJPRey made their first contribution in https://github.com/pyvista/pyvista/pull/3552
* beroda made their first contribution in https://github.com/pyvista/pyvista/pull/3577
* mwtoews made their first contribution in https://github.com/pyvista/pyvista/pull/3619
* GlennWSo made their first contribution in https://github.com/pyvista/pyvista/pull/3710
* lverret made their first contribution in https://github.com/pyvista/pyvista/pull/3845
**Full Changelog**: https://github.com/pyvista/pyvista/compare/v0.37.0...v0.38.0