Table of Contents

Platforms

Frameworks

One AnyCPU assembly per framework: .NET Framework 3.5, 4.5, 4.5.2 and 4.6.2, .NET 6, 8 and 10, and netstandard2.0. AsSpan() needs .NET 6 or later.

Natives

NetVtk depends on one package of natives per platform, NetVtk.runtime.<rid>: VTK's libraries and NetVtk's six (NetVtkCommon, NetVtkFilters, NetVtkIO, NetVtkRendering, NetVtkInteraction, NetVtkRuntime).

RID Needs Tested
win-x64, win-x86 the Visual C++ 2015-2022 runtime every framework, net35 on CLR 2
linux-x64 glibc 2.35 or newer; X11, GL and EGL libraries .NET 10, 8 and 6, in Docker (Ubuntu 24.04)
osx-arm64 macOS 14 or newer .NET 10, 8 and 6 on CI's macOS runners, without the rendering tests (no display)

.NET apps load the natives from runtimes/<rid>/native. .NET Framework apps get them in x64\ and x86\ next to the app, so AnyCPU works; NetVtk picks the folder for the process.

vtkIdType is 64 bits on every platform, win-x86 too: ids and counts are long everywhere.

Rendering

Rendering needs OpenGL 3.2.

  • Windows: the GPU's driver.
  • Linux: the natives are built against X11, GL and EGL (netvtk-core's Dockerfile installs libgl1-mesa-dev, libegl-dev, libx11-dev, libxext-dev, libxi-dev, libxt-dev, libxcursor-dev). Without a display, run under Xvfb: the tests render there with Mesa's llvmpipe.
  • In an application's window: a Win32 child window on Windows, an X11 one on Linux; macOS not yet. See Rendering and hosting.

Package sizes

Package Size
NetVtk: eight assemblies, one per framework, with VTK's documentation for IntelliSense, and the SWIG files 31.5 MB
NetVtk.runtime.win-x64: 77 VTK libraries, NetVtk's six, the notices 29.5 MB
NetVtk.runtime.win-x86 30.0 MB
NetVtk.runtime.linux-x64 76.7 MB

Measured on a local pack of 9.7.1.1; nuget.org takes packages up to 250 MB.