How lightweight can this software be? (Plus few other questions...)

How lightweight can this software be until it loses all main functionality?

For example, if I were to find an implementation of ITK (a library) within an application/software that processes pictures of tree roots to determine small visible differences between just the colour of each tree root shown in each photograph, how much of the ITK library would such an application concern itself with?

In addition, here are a few questions I have:

  1. What file size might I expect the average ITK-based software to be?

  2. Does ITK endorse or maintain any of it’s own applications or is this just a library of code to build on?

  3. How small (file size) are the smallest current applications that implement the ITK library? What might their functions be?

  4. I understand ITK is cross-platform, but surely this is only for those smart enough to know how to either: (a) read/write/develop software, or (b) compile these libraries/code using an IDE?

  5. Can you recommend some fun ITK-based beginners applications to run on macOS? Linux? I doubt that just because an application uses part/whole of the ITK library that it too is then cross-platform… Perhaps such a distinction & separation (from other ITK-based projects) should be made clear on your homepage for newbies like myself?

  6. I saw ITK is hiring, which positions? What might some of the educational requirements be? Is ITK willing to train/educate new employees? Can employees work remotely?

I have a lot of questions, so I’m trying to prevent myself from asking dumb questions.

Thank you.

  1. ITK-SNAP’s executable on Windows is around 30MB. It has ITK statically linked.
  2. ITK is a library. 3D Slicer and ITK-SNAP are built on top of it.
  3. It can be as small as 1MB, depending on how much of ITK’s functionality is being used. In particular support for IO formats increases the executable’s size considerably.
  4. Both 3D Slicer and ITK-SNAP are available on Linux and MacOS in addition to Windows. For an application to be cross-platform, all of its libraries need to be too. And the application writer needs to take care for their application code to be cross-platform too.
  5. 3D Slicer and ITK-SNAP.
  6. See Job opportunities at Kitware.
2 Likes