# Possible to create a ParaView plugin for a non-module based VTK library?

**URL:** https://discourse.paraview.org/t/possible-to-create-a-paraview-plugin-for-a-non-module-based-vtk-library/17194
**Category:** Development
**Tags:** vtk
**Created:** [September 19, 2025, 8:07am UTC](https://discourse.paraview.org/t/possible-to-create-a-paraview-plugin-for-a-non-module-based-vtk-library/17194 "2025-09-19T08:07:35Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![CsatiZoltan](https://discourse.paraview.org/user_avatar/discourse.paraview.org/csatizoltan/32/6997_2.png) [@CsatiZoltan](https://discourse.paraview.org/u/CsatiZoltan)
#### Post date: [September 19, 2025, 8:07am UTC](https://discourse.paraview.org/t/possible-to-create-a-paraview-plugin-for-a-non-module-based-vtk-library/17194/1 "2025-09-19T08:07:35Z")

</div>

Hi,

I want to create a new reader in a modular way:

1. usable as a C++ library
2. expose the main functionalities to Python
3. create a ParaView plugin for it

Before implementing the main logic – reading our mesh format into a `vtkUnstructuredGrid` object – I plan to set up the overall project structure.

Until now, step 1 above is done. Since the reader is simple, I opted for the old way of linking with VTK, i.e simply.

```cmake
target_link_libraries(my_lib PUBLIC VTK::CommonDataModel)

```

as demonstrated in the [_UsingVTK_ example](https://gitlab.kitware.com/vtk/vtk/-/blob/d0a0ea53815385a27311c7622d36ba2075748d19/Examples/Modules/UsingVTK/CMakeLists.txt#L20), instead of using the newer [VTK module system](https://docs.vtk.org/en/latest/api/cmake/ModuleSystem.html).

On the other hand, when I want to create a ParaView plugin (step 3 above), I only encountered examples in which the VTK module system is used.

Questions:

1. Can I create a ParaView plugin for a non-module based VTK system?
2. In my specific case, what advantages would the VTK module system bring with respect to the older way of building?

Thank you.

---

<div class="post-metadata">

### Author: ![mwestphal](https://discourse.paraview.org/user_avatar/discourse.paraview.org/mwestphal/32/17_2.png) [@mwestphal](https://discourse.paraview.org/u/mwestphal)
#### Post date: [September 19, 2025, 8:20am UTC](https://discourse.paraview.org/t/possible-to-create-a-paraview-plugin-for-a-non-module-based-vtk-library/17194/2 "2025-09-19T08:20:09Z")

</div>

> [@CsatiZoltan](#):
>
> Can I create a ParaView plugin for a non-module based VTK system?

No

> what advantages would the VTK module system bring with respect to the older way of building?

It would work 🙂

See plugin examples here: [https://gitlab.kitware.com/paraview/paraview/-/tree/master/Examples/Plugins?ref\_type=heads](https://gitlab.kitware.com/paraview/paraview/-/tree/master/Examples/Plugins?ref_type=heads)

---

<div class="post-metadata">

### Author: ![CsatiZoltan](https://discourse.paraview.org/user_avatar/discourse.paraview.org/csatizoltan/32/6997_2.png) [@CsatiZoltan](https://discourse.paraview.org/u/CsatiZoltan)
#### Post date: [September 19, 2025, 8:22am UTC](https://discourse.paraview.org/t/possible-to-create-a-paraview-plugin-for-a-non-module-based-vtk-library/17194/3 "2025-09-19T08:22:24Z")

</div>

OK, thanks. 🙂

> See plugin examples here

Yes, that’s what I was looking at, especially the _ComplexPluginArchitecture_ example.

---

<div class="post-metadata">

### Author: ![mwestphal](https://discourse.paraview.org/user_avatar/discourse.paraview.org/mwestphal/32/17_2.png) [@mwestphal](https://discourse.paraview.org/u/mwestphal)
#### Post date: [September 19, 2025, 8:23am UTC](https://discourse.paraview.org/t/possible-to-create-a-paraview-plugin-for-a-non-module-based-vtk-library/17194/4 "2025-09-19T08:23:27Z")

</div>

> [@CsatiZoltan](#):
>
> _ComplexPluginArchitecture_

Well, as its name indicate, you dont want to do that unless you have a complex architecture, specifically where you have a VTK module which multiple plugins depends on.

I suggest ElevationFilter for a simpler example.

---

<div class="post-metadata">

### Author: ![ben.boeckel](https://discourse.paraview.org/letter_avatar_proxy/v4/letter/b/ea5d25/32.png) [@ben.boeckel](https://discourse.paraview.org/u/ben.boeckel)
#### Post date: [September 19, 2025, 12:50pm UTC](https://discourse.paraview.org/t/possible-to-create-a-paraview-plugin-for-a-non-module-based-vtk-library/17194/5 "2025-09-19T12:50:48Z")

</div>

You _could_ have a module-less plugin if you only add Qt widgets or the like. But anything that needs ClientServer wrapping needs a module as the module system provides a lot of extra metadata about how to properly wrap it (including, but not limited to, things like other dependencies that may need loaded and which headers to wrap).
