Note: We are no longer actively developing this project. However, our new middleware project might be interesting to you. Check out


Project Description
NIPO is a general purpose component framework for data processing applications (that follow the IPO-principle). Its plugin-based architecture makes it scalable, flexible and enables a broad range of usage scenarios.
The goal of NIPO is to be able to adapt an application within seconds by just exchanging one or more plugins. A developer should not need to care about data input or output but can just use already existing plugins. Vice versa an already existing plugin for data processing can be used with another datasource by just exchanging the input. Even if no suitable plugins for an application exist (meaning you have to write input, processing and output by yourself), NIPO will make the resulting application much more flexible for later changes. Single parts of the application can just be replaced by advanced versions. This also makes NIPO an ideal platform for prototyping algorithms.
NIPO aims to make all those things easier.

The concept for NIPO comes from a research project at Klagenfurt University on visual sensor networks (networks of smart cameras) where processing is done on network nodes. This nodes must easily be composed for different application scenarios. This led to the idea of a generic framework for IPO-based applications. After a first prototype (presented at Embedded Computer Vision Workshop colocated with ICCV2009, Kyoto [1] ) the framework was reimplemented and extended. This resulted in NIPO in its current state.
NIPO-based applications are constructed by adding plugins to the so called plugin chain (which consists of one or more Input plugins, zero or one Processing plugins and one or more Output Plugins). Its modular structure actively supports code reuse (plugins, once written, can be used in many different application scenarios)

[1] Dieber, B.; Rinner, B.; Viertl, N.; , "Flexible clustering in networks of smart cameras," Computer Vision Workshops (ICCV Workshops), 2009 IEEE 12th International Conference on , vol., no., pp.834-839, Sept. 27 2009-Oct. 4 2009. "Flexible Clustering in Networks of Smart Cameras"


17.02.2011: I'm thinking of reworking the framework. I consider using just attributes to mark classes as certain plugintypes. This would no longer require a user to inherit from the abstract classes. I'm checking if this would be backwards compatible. Stay tuned. This will take a while ;)
14.02.2011: The project is not dead. Since it is an integral part of my PhD-work I will improve it further as soon as I have time. Meanwhile...use it as you like. I'm happy for every feedback. Bernhard
19.07.2010: Most changes for a new release are already in svn. Currently the last tests are running.
05.05.2010: Preparing for a new release. During the last weeks a few bug fixes were made. Additionally, we will change the loading and storing functionality from binary to human readable (so that you can edit the configuration using a text editor). We will try to remain compatible with the current store and load. Some other features will also be included. Hopefully this release will come in the next few weeks.
19/03/2010: First release (V.1.0)
03/01/2010: Most of the code is in the repository. We are currently using the framework within an application server. Whenever we have the first test results and corrected (possible) errors, an official codeplex release will be made available. Meanwhile....there is the documentation and the sourcecode in the repo.
02/23/2010: The NIPO framework is now open source. We are currently migrating the source code to the codeplex repository. Stay tuned for more

Last edited Jun 5, 2013 at 2:43 PM by bedieber, version 21