# Backward compatibility

**URL:** https://discourse.vtk.org/t/backward-compatibility/4512
**Category:** Development
**Created:** [October 28, 2020, 7:40pm UTC](https://discourse.vtk.org/t/backward-compatibility/4512 "2020-10-28T19:40:34Z")
**Posts on this page:** 11
**Page:** 1

<div class="post-metadata">

### Author: ![Frank\_Gao](https://discourse.vtk.org/user_avatar/discourse.vtk.org/frank_gao/32/2538_2.png) [@Frank\_Gao](https://discourse.vtk.org/u/Frank_Gao)
#### Post date: [October 28, 2020, 7:40pm UTC](https://discourse.vtk.org/t/backward-compatibility/4512/1 "2020-10-28T19:40:34Z")

</div>

Hello VTk experts,

I have been using VTK V5 for years, wondering if the latest version is backward compatible to V5.2. Any suggestions for upgrade?

Your reply is highly appreciated.

Thanks,  
Frank

---

<div class="post-metadata">

### Author: ![danlipsa](https://discourse.vtk.org/user_avatar/discourse.vtk.org/danlipsa/32/390_2.png) [@danlipsa](https://discourse.vtk.org/u/danlipsa)
#### Post date: [October 28, 2020, 7:58pm UTC](https://discourse.vtk.org/t/backward-compatibility/4512/2 "2020-10-28T19:58:31Z")

</div>

See  
[https://discourse.vtk.org/t/use-vtk8-2-0-for-the-project-which-was-developed-based-on-vtk5-8-before/1983](https://discourse.vtk.org/t/use-vtk8-2-0-for-the-project-which-was-developed-based-on-vtk5-8-before/1983)

for a suggestion on how to upgrade.

---

<div class="post-metadata">

### Author: ![lassoan](https://discourse.vtk.org/user_avatar/discourse.vtk.org/lassoan/32/50_2.png) [@lassoan](https://discourse.vtk.org/u/lassoan)
#### Post date: [October 28, 2020, 8:47pm UTC](https://discourse.vtk.org/t/backward-compatibility/4512/3 "2020-10-28T20:47:12Z")

</div>

Backward compatibility is maintained between minor versions. You need to do manual changes if you upgrade a major version.

Jumping 4 major versions will require sweeping changes in your code , but you’ll get tons of improvements and you don’t really have any easier solution if you want to keep your application running on modern operating systems, graphics hardware, use modern compilers, etc.

---

<div class="post-metadata">

### Author: ![Frank\_Gao](https://discourse.vtk.org/user_avatar/discourse.vtk.org/frank_gao/32/2538_2.png) [@Frank\_Gao](https://discourse.vtk.org/u/Frank_Gao)
#### Post date: [October 28, 2020, 9:26pm UTC](https://discourse.vtk.org/t/backward-compatibility/4512/4 "2020-10-28T21:26:06Z")

</div>

Thank you Andras. Wondering if the overall data pipeline remain the same. It is okay to change code massively, but quite a bit issue if we have to change architecture fundamentally.  
Best,  
Frank

---

<div class="post-metadata">

### Author: ![Frank\_Gao](https://discourse.vtk.org/user_avatar/discourse.vtk.org/frank_gao/32/2538_2.png) [@Frank\_Gao](https://discourse.vtk.org/u/Frank_Gao)
#### Post date: [October 28, 2020, 9:28pm UTC](https://discourse.vtk.org/t/backward-compatibility/4512/5 "2020-10-28T21:28:26Z")

</div>

Thanks a lot for the suggestion. We are a bit too far or too behind.  
Best,  
Frank

---

<div class="post-metadata">

### Author: ![lassoan](https://discourse.vtk.org/user_avatar/discourse.vtk.org/lassoan/32/50_2.png) [@lassoan](https://discourse.vtk.org/u/lassoan)
#### Post date: [October 28, 2020, 10:21pm UTC](https://discourse.vtk.org/t/backward-compatibility/4512/6 "2020-10-28T22:21:47Z")

</div>

> [@Frank\_Gao](#):
>
> Wondering if the overall data pipeline remain the same

The VTK pipeline was [redesigned](https://vtk.org/Wiki/VTK/Tutorials/New_Pipeline) but if you have not implemented your own filters then the impact is mostly changed syntax, such as rename all `SetInput` by `SetInputData`, how scalars are allocated, tuples are accessed. The most painful parts will be the build system update, GUI toolkit integration update (if you use one), and and fixing all things that just don’t work anymore due to slight VTK behavior changes.

---

<div class="post-metadata">

### Author: ![Frank\_Gao](https://discourse.vtk.org/user_avatar/discourse.vtk.org/frank_gao/32/2538_2.png) [@Frank\_Gao](https://discourse.vtk.org/u/Frank_Gao)
#### Post date: [October 28, 2020, 11:08pm UTC](https://discourse.vtk.org/t/backward-compatibility/4512/7 "2020-10-28T23:08:37Z")

</div>

Thank you Andras. I have more than 100 K lines of code heavily using 3D widgets, so I assume it is going to be painful.

---

<div class="post-metadata">

### Author: ![lassoan](https://discourse.vtk.org/user_avatar/discourse.vtk.org/lassoan/32/50_2.png) [@lassoan](https://discourse.vtk.org/u/lassoan)
#### Post date: [October 28, 2020, 11:31pm UTC](https://discourse.vtk.org/t/backward-compatibility/4512/8 "2020-10-28T23:31:17Z")

</div>

100k lines of code is significant and VTK’s 3D widgets are terrible. Maybe you can have a look what VTK-based open-source platforms emerged in the last decade that may server as a better foundation of your application. What does your application do?

---

<div class="post-metadata">

### Author: ![Frank\_Gao](https://discourse.vtk.org/user_avatar/discourse.vtk.org/frank_gao/32/2538_2.png) [@Frank\_Gao](https://discourse.vtk.org/u/Frank_Gao)
#### Post date: [October 28, 2020, 11:46pm UTC](https://discourse.vtk.org/t/backward-compatibility/4512/9 "2020-10-28T23:46:37Z")

</div>

I agree about the 3D widgets. Have made quite a bit changes to the code. We are doing medical and dental applications.

---

<div class="post-metadata">

### Author: ![Frank\_Gao](https://discourse.vtk.org/user_avatar/discourse.vtk.org/frank_gao/32/2538_2.png) [@Frank\_Gao](https://discourse.vtk.org/u/Frank_Gao)
#### Post date: [October 28, 2020, 11:49pm UTC](https://discourse.vtk.org/t/backward-compatibility/4512/10 "2020-10-28T23:49:00Z")

</div>

Was trying to keep pace with VTK in earlier years then realized we have gone too far. Will take serious look at where we are.

---

<div class="post-metadata">

### Author: ![lassoan](https://discourse.vtk.org/user_avatar/discourse.vtk.org/lassoan/32/50_2.png) [@lassoan](https://discourse.vtk.org/u/lassoan)
#### Post date: [October 29, 2020, 12:44am UTC](https://discourse.vtk.org/t/backward-compatibility/4512/11 "2020-10-29T00:44:05Z")

</div>

> [@Frank\_Gao](#):
>
> We are doing medical and dental applications.

Then the obvious choices would be to rebuild the application based on 3D Slicer or MITK. Both have been used successfully in building commercial medical applications. See some more info about this [here](https://blog.kitware.com/slicercat-creating-custom-applications-based-on-3d-slicer/).
