Skip to main content

VTKStreaming

This module provides classes to encode and stream frames from a VTK OpenGL render window using video codecs. It supports video encoding with VP9 (through libvpx) and H.264/H.265 (through NVENC).

Installation

VTKStreaming is available on PyPi on the following platforms:

  • Linux x86_64 for python 3.10 to 3.13 included.
  • Windows x86_64 for python 3.10 to 3.13 included.
  • MacOSX arm64 for python 3.10 to 3.13 included.

It is currently based on VTK 9.6.0.

pip install vtk-streaming

Building from source

There are two build flows:

  • Development build: an editable install into a local virtual environment, built without build isolation. Rebuilds are fast and the generated compile_commands.json stays valid, so clangd/IDE tooling works.
  • Release build: cibuildwheel produces the exact same distributable wheel as CI, in an isolated environment.

Requirements (both flows):

  • Linux: A C++ compiler (GCC 11.4+ or any other compiler supported by VTK.)
  • Windows: MSVC (Visual Studio Build Tools). (ensure visual studio environment is initialized)
  • macOS: Xcode command line tools. (xcode-select --install should have completed successfully)

We recommend uv; it reads the vtk-sdk package index from pyproject.toml, so no extra index flags are needed.

Development build

The editable install runs with --no-build-isolation, so the build requirements (scikit-build-core, vtk-sdk, vtk-sdk-python-wheel-helper) must be present in the environment first, the dev dependency group installs them along with the test dependencies.

Linux/macOS:

uv venv -p 3.13
. .venv/bin/activate
uv pip install --group dev
uv pip install -e . --no-build-isolation

Windows (open a PowerShell with MSVC initialized, e.g. Visual Studio Developer PowerShell):

uv venv -p 3.13
.venv\Scripts\Activate.ps1
uv pip install --group dev
uv pip install -e . --no-build-isolation

After changing C++ sources, rebuild by re-running the editable install:

uv pip install -e . --no-build-isolation

The CMake build tree persists under build/<wheel_tag>/, which keeps generated module headers on disk and compile_commands.json valid.

Run the tests with:

pytest tests/ -v

Release build (reproduce CI artifacts)

Wheels are built with cibuildwheel in an isolated environment; all configuration lives in [tool.cibuildwheel] in pyproject.toml.

Requirements:

  • Linux: Docker (the build runs in a manylinux container).
  • Windows: MSVC (Visual Studio Build Tools). (ensure visual studio environment is initialized)
  • macOS: Xcode command line tools. (xcode-select --install should have completed successfully)

Build a wheel for one Python/platform target:

# Linux
uvx cibuildwheel --only cp310-manylinux_x86_64

# Windows
uvx cibuildwheel --only cp310-win_amd64

# macOS
uvx cibuildwheel --only cp310-macosx_arm64

uvx comes with uv; alternatively pipx run cibuildwheel or if you use pip:

pip install cibuildwheel

# Linux
cibuildwheel --only cp310-manylinux_x86_64

# Windows
cibuildwheel --only cp310-win_amd64

# macOS
cibuildwheel --only cp310-macosx_arm64

Substitute cp310/cp311/cp312/cp313 to target other Python versions. The wheel is written to wheelhouse/ and can be installed directly:

pip install wheelhouse/vtk_streaming-*.whl

Examples

  1. examples/simple_encoder_decoder.py - Live VP9 encode/decode round-trip with two render windows side by side.
  2. examples/resize_encoder_decoder.py - VP9 encode/decode round-trip that survives window resizes.
  3. examples/simple_nvenc_record.py - Record a render window for later playback using NVENC. This needs ffplay to playback the .h264 file.

Getting help

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

vtk_streaming-0.3.4-cp313-cp313-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.13Windows x86-64

vtk_streaming-0.3.4-cp313-cp313-manylinux_2_28_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

vtk_streaming-0.3.4-cp313-cp313-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

vtk_streaming-0.3.4-cp312-cp312-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.12Windows x86-64

vtk_streaming-0.3.4-cp312-cp312-manylinux_2_28_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

vtk_streaming-0.3.4-cp312-cp312-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

vtk_streaming-0.3.4-cp311-cp311-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.11Windows x86-64

vtk_streaming-0.3.4-cp311-cp311-manylinux_2_28_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

vtk_streaming-0.3.4-cp311-cp311-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

vtk_streaming-0.3.4-cp310-cp310-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.10Windows x86-64

vtk_streaming-0.3.4-cp310-cp310-manylinux_2_28_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

vtk_streaming-0.3.4-cp310-cp310-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file vtk_streaming-0.3.4-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for vtk_streaming-0.3.4-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 19864696ab507c14e1f029a011b26a1d30f265a90a8db034144fef71605848b0
MD5 0ad8493bb9b56ae8013621136e04ba06
BLAKE2b-256 44ec95f290b27b3fd1d4daed46de68b830c7534a9b280b7c755ab594bb4bd633

See more details on using hashes here.

Provenance

The following attestation bundles were made for vtk_streaming-0.3.4-cp313-cp313-win_amd64.whl:

Publisher: release.yml on Kitware/VTKStreaming

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vtk_streaming-0.3.4-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for vtk_streaming-0.3.4-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3bea0d486527df511d82c230a5c596fd870da05412cc83456483c9b40682543c
MD5 c3fac20fe415edc0a654701a1d9b1889
BLAKE2b-256 1cb6b03ef49d56f384cc852faf1accc160d8be258d814e7701d99aecd3c7ed53

See more details on using hashes here.

Provenance

The following attestation bundles were made for vtk_streaming-0.3.4-cp313-cp313-manylinux_2_28_x86_64.whl:

Publisher: release.yml on Kitware/VTKStreaming

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vtk_streaming-0.3.4-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for vtk_streaming-0.3.4-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4a76a60d572c474a5b1617b61ff2efbac357013b721fdaa137b2566e60cfbf5d
MD5 63808c4244f1d1cc1bfed0a3d759f46f
BLAKE2b-256 8207ad6f5a91faa967169d0008fd44c4e765d23525116a99c0b323f27b27017f

See more details on using hashes here.

Provenance

The following attestation bundles were made for vtk_streaming-0.3.4-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release.yml on Kitware/VTKStreaming

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vtk_streaming-0.3.4-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for vtk_streaming-0.3.4-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 d457d1ab586fdac0694656bc673ea6086f365b00acb6dca4ec9464e7751a43c6
MD5 6a9a6d5605fcbae0ddde202b22280fee
BLAKE2b-256 ddb6e59f78b6199b1fcc5003922c2ab9d87108c224f244e6b88b5a9424375524

See more details on using hashes here.

Provenance

The following attestation bundles were made for vtk_streaming-0.3.4-cp312-cp312-win_amd64.whl:

Publisher: release.yml on Kitware/VTKStreaming

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vtk_streaming-0.3.4-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for vtk_streaming-0.3.4-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 de0c530c91120fcb1d7e224122c2058d4a400f863fbd017131425a2b7a37e8b4
MD5 1371f3fe7e8cbaf4ac0f31735c2e08b4
BLAKE2b-256 21dd9b11f53a0123079d251cab3fed69bb9ae73385bcd9de44567564bd7c07e4

See more details on using hashes here.

Provenance

The following attestation bundles were made for vtk_streaming-0.3.4-cp312-cp312-manylinux_2_28_x86_64.whl:

Publisher: release.yml on Kitware/VTKStreaming

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vtk_streaming-0.3.4-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for vtk_streaming-0.3.4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3ea97f3e30919948cf4dcae24caf7fced2c3fb7d87d698277474fcbcf6696b80
MD5 95d4946dcf4f066e09f2129b749f3759
BLAKE2b-256 6a21a0ebc45cf8956ea3d06803f158c24c75d5bb5c059005f07641613530c83b

See more details on using hashes here.

Provenance

The following attestation bundles were made for vtk_streaming-0.3.4-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on Kitware/VTKStreaming

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vtk_streaming-0.3.4-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for vtk_streaming-0.3.4-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 acc5b59aaaa0eec693a8c17522967c377e552fbf6eb0a2d7479da06a614b8203
MD5 499385f52ff915532b7d870b26ab2f81
BLAKE2b-256 422469225b19768089ea9136b9ed198df27ec85fb48bd1510271f6cad7591efc

See more details on using hashes here.

Provenance

The following attestation bundles were made for vtk_streaming-0.3.4-cp311-cp311-win_amd64.whl:

Publisher: release.yml on Kitware/VTKStreaming

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vtk_streaming-0.3.4-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for vtk_streaming-0.3.4-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 37a34b0798c6f714dd7dbab5f4f21a579753af27906bbb77e3dcc731beab2930
MD5 834f67c05937481548643e0e64e33444
BLAKE2b-256 d442276e1dde774e46121ca1094282a18adab7af3453f1e2602a96604c8fdf82

See more details on using hashes here.

Provenance

The following attestation bundles were made for vtk_streaming-0.3.4-cp311-cp311-manylinux_2_28_x86_64.whl:

Publisher: release.yml on Kitware/VTKStreaming

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vtk_streaming-0.3.4-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for vtk_streaming-0.3.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c3d7eaf3a052292f8b3726b98a4f2e151c9d73322de103eb40d79773b02e314f
MD5 a3429785ee25c4e38ac427a0512515a1
BLAKE2b-256 714810cf01990b872c36c9f423a2b9323a94c38f4b74fa42587dc9e7d04e0dd2

See more details on using hashes here.

Provenance

The following attestation bundles were made for vtk_streaming-0.3.4-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release.yml on Kitware/VTKStreaming

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vtk_streaming-0.3.4-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for vtk_streaming-0.3.4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 50ac3bffc8e8c1f6920474a23850ed095d0d2e3207551802cc23271982daa91b
MD5 b90f6e871cab3384b5455eb62bc8328c
BLAKE2b-256 90a9332db49f9425b821faafcca0dce65ad27d835fdda169638dc0728ff11ad5

See more details on using hashes here.

Provenance

The following attestation bundles were made for vtk_streaming-0.3.4-cp310-cp310-win_amd64.whl:

Publisher: release.yml on Kitware/VTKStreaming

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vtk_streaming-0.3.4-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for vtk_streaming-0.3.4-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0d4bed3bef78fbb4eaf0d8d1dc5b43b9abef3832152d98c907afdcf8c17861c7
MD5 a01b3f8b373a50784b04e6fcccfd7d99
BLAKE2b-256 7fe122a9982789ca49039bcd55a2dfafd32b5660447b3a4d890d05ef51a5c53b

See more details on using hashes here.

Provenance

The following attestation bundles were made for vtk_streaming-0.3.4-cp310-cp310-manylinux_2_28_x86_64.whl:

Publisher: release.yml on Kitware/VTKStreaming

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vtk_streaming-0.3.4-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for vtk_streaming-0.3.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 25b948591a2e69e13cbd903642ad7ea0e5d6c4d363f12b764d95584d1248ff26
MD5 cad6af1da4662c62b21363a2d24595ff
BLAKE2b-256 4eb4e818b8b5343cf01f46f0da23ec034c8a01b1edae8afa6aea1113b71f76ed

See more details on using hashes here.

Provenance

The following attestation bundles were made for vtk_streaming-0.3.4-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: release.yml on Kitware/VTKStreaming

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page