Skip to content

Releases: pyvista/cvista

9.6.2.3

Choose a tag to compare

@akaszynski akaszynski released this 06 Jul 00:25
75b4742

First tiered cvista release: three stackable PyPI wheels sharing the cvista/ namespace — cvista (core: Common/Filters/Imaging + native IO, rendering-free), cvista-rendering, and cvista-io — published via OIDC trusted publishing (#172).

SMP threading correctness

The STDThread-default SMP backend is now validated byte-exact across the full SMP-using filter set by the parity validator (#174, 65 cases), and the three real defects it surfaced are fixed:

  • vtkDiscreteFlyingEdgesClipper2D — garbage output coords from counted-but-unwritten NewPoints slots; zero-init fix (#175).
  • vtkSurfaceNets3D — uninitialized BoundaryLabels cell-data; zero-init the padded scalar buffer (#176).
  • vtkLengthDistribution — unseeded RNG; vtkReservoirSampler is now opt-in seedable and the filter seeds it (Seed, default 0) for reproducible, byte-identical serial-vs-parallel output (#176).

Drop-in bit-exact parity with stock VTK 9.6.2 is preserved (bit-exact + pixel-exact gates green).

9.6.2.2

Choose a tag to compare

@akaszynski akaszynski released this 25 Jun 03:21
3cf90e5

fvtk 9.6.2.2 — bit-exact drop-in for VTK 9.6.2.

Highlights

  • In-process coexistence with stock VTK (#161). Shipped libraries now carry
    fvtk-distinct SONAMEs (lib…-fvtk.so / .dylib / .dll), so import vtk
    (stock) and import fvtk can both load in the same process without symbol
    collisions. C++ class names are unchanged — this is a build-suffix change only,
    drop-in parity preserved.
  • Legacy cp310/cp311 wheels (#160). Python 3.10 and 3.11 now get
    version-specific (non-abi3) wheels for Linux, macOS, and Windows. Built and
    shipped at release time (six wheels) alongside the cp312-abi3 wheel.
  • All wheels attached to the Release (#159). The release publish job uploads
    every shipped wheel to the GitHub Release in addition to PyPI.

Performance (byte-exact, default-on unless noted)

  • Parallel EnableFast orientation kernel for vtkOrientPolyData (#150)
  • Threaded structured cell→point interpolation in cd2pd (#149)
  • Parallel block compression in vtkXMLWriter (#156)
  • Deferred vtkParallelCore import — ~10–15 ms off import pyvista (#153)
  • auditwheel repair targets the wheel's own arch (#147)

Full diff: 9.6.2.1...9.6.2.2

fvtk 9.6.2.1

Choose a tag to compare

@banesullivan banesullivan released this 22 Jun 17:14
5abe1fa

fvtk 9.6.2.1 is a maintenance release on the frozen VTK 9.6.2 base. It is a bit-exact drop-in for stock VTK 9.6.2 by default. This release fixes wrapped-class construction and Delaunay3D cell storage, ships the missing Qt subpackage, and tightens the parity gates to test the built wheel.

Fixes

  • Delaunay3D output parity (#143, backport of VTK !114): pin the working mesh to stock int64 cell storage so triangulation output matches stock VTK 9.6.2 byte for byte.
  • abi3 wrapped-class constructors (#144, backport of VTK !120): apply the object-factory override retype so factory-overridden classes construct with the correct concrete type under the abi3 wrapper.
  • pyvistaqt imports (#145): ship the fvtk.qt subpackage in the wheel so pyvistaqt can import it.

CI

  • Every parity gate now installs and tests the wheel built in the same run, not the last published PyPI release (#146).

Docs

  • Recorded that PyVista issue #117 is a by-design int32-default compression-ratio artifact, not an fvtk regression (#141).

Tooling

  • Added the fvtk Claude Code plugin for maintenance workflows (#139).

fvtk 9.6.2.0

Choose a tag to compare

@banesullivan banesullivan released this 22 Jun 05:20
2127e6d

First stable release. fvtk is a community fork of VTK 9.6.2, maintained by the PyVista project as a fast, trimmed, drop-in graphics backend. See the README for the full overview; these notes cover how fvtk relates to stock VTK and where it currently diverges.

Parity model

By default fvtk is byte-for-byte identical to stock VTK 9.6.2 (maxULP = 0). Positions and values are never altered. Optimizations that would reorder output are opt-in behind fvtk.EnableFast(). Three gates enforce this on every change: bit-exact (array output vs stock), render-exact (offscreen framebuffers), and PyVista's own test suite run against the built wheel.

Divergences from stock VTK 9.6.2

fvtk is a drop-in, but deliberately differs in three ways:

  • Trimmed to PyVista's module closure. Only the VTK modules and classes PyVista uses are built; the rest are dropped (notably the XDMF reader, whose vendored sources no longer compile on modern libc++). Code outside that closure is not importable.
  • Single abi3 wheel. One cp312-abi3 wheel loads on CPython 3.12 and newer. Wrapped types are heap types rather than stock's static types, so a few Python introspection details differ (for example vars(SomeVTKType) exposing __module__). Behavior and values are unchanged.
  • int32 width-relaxation. Cell-array connectivity, original-id arrays, and reader output use 32-bit storage where the index range fits, instead of stock's 64-bit. The values are identical; only the container width narrows. This trades some interop for memory: zero-copy hand-off to libraries that require int64 (such as trimesh) falls back to a copy, and 32-bit connectivity compresses slightly less.

Known PyVista gaps

The PyVista parity suite runs against every build. A small set of tests is currently deselected and tracked for follow-up: vtkDelaunay3D degenerate output (#114), the two int32 interop cases above (#117, #118), and the vtkSkybox OpenGL override (#120). The rest of PyVista's suite passes against fvtk.

fVTK 9.6.2.0rc4

fVTK 9.6.2.0rc4 Pre-release
Pre-release

Choose a tag to compare

@banesullivan banesullivan released this 22 Jun 03:55
a757817

What's Changed

  • Enable IOImage explicitly instead of transitively by @banesullivan in #123
  • ci: trigger PyVista gate on deselect/harness edits and label add by @banesullivan in #129
  • fix(verdict): emit boundary mesh quality output arrays by @banesullivan in #122
  • fix(gltf): WriteValues fallback for AOS types not in trimmed dispatch list by @banesullivan in #127
  • CI: build + Python-wrap an example out-of-tree module against the fvtk-sdk by @banesullivan in #124
  • fix: pass through original point/cell ids in surface extraction by @banesullivan in #130

Full Changelog: 9.6.2.0rc3...9.6.2.0rc4

fvtk 9.6.2.0rc3

fvtk 9.6.2.0rc3 Pre-release
Pre-release

Choose a tag to compare

@banesullivan banesullivan released this 22 Jun 02:13
455bb1f

Pre-release to confirm both fvtk and fvtk-sdk publish to PyPI in lockstep. 9.6.2.0rc2 published fvtk but skipped fvtk-sdk because the release event skipped publish-sdk through the changes job; this validates the fix.

CI

  • publish-sdk no longer skips on release when the PR-only changes job is skipped (#121).

Carries the same packaging and fixes as 9.6.2.0rc2: full-platform fvtk-sdk (Linux x86_64 + aarch64, macOS, Windows), aarch64 wheels for both projects, and the SDK gate required check.

fvtk 9.6.2.0rc2

fvtk 9.6.2.0rc2 Pre-release
Pre-release

Choose a tag to compare

@banesullivan banesullivan released this 22 Jun 01:38
c0af2ba

Pre-release to validate PyPI publishing for both fvtk and fvtk-sdk across every platform after the SDK build fixes. 9.6.2.0rc1 published fvtk but the fvtk-sdk upload failed; this confirms both land at the same version.

Packaging

  • fvtk-sdk now builds and publishes for Linux x86_64, Linux aarch64, macOS arm64, and Windows x64 (#108, #110).
  • Linux aarch64 (manylinux_2_28_aarch64) wheels added for both fvtk and fvtk-sdk (#111).
  • SDK wheels are tagged py3-none-manylinux_2_28_*, so one wheel per platform serves CPython 3.12+ (#108).

CI

  • The SDK build runs behind a single required SDK gate check (#113).
  • The Windows release wheel sets up MSVC vcvars (#107).

Fixes

  • Honor depth-format changes when reallocating vtkTextureObject depth (#105).
  • FVTK_KEEP_CLASSES re-includes trimmed classes on demand (#106).

9.6.2.0rc1

9.6.2.0rc1 Pre-release
Pre-release

Choose a tag to compare

@banesullivan banesullivan released this 21 Jun 22:13
641c5ca

Pre-release to validate the PyPI publish pipeline for fvtk + fvtk-sdk. Builds from main; not a feature release.