Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Generic pipeline system working with filters and resources that are connected through ports
C++ Other

This branch is 203 commits behind nical:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
doc
src
test
utils
.gitignore
BUILD.sh
CMakeLists.txt
README.md
REBUILD.sh
TEST.sh

README.md

Kiwi

A generic and easy to use node compositor library for C++.

Checkout the wiki !
And also the doxygen class documentation.

Containers and filters

Kiwi features a powerful pipeline system composed of resources and filters :

  • A container (kiwi::core::Container) is an object that holds data and give access to the it by providing readers and writers ports (mostly output ports).
  • A Filter (kiwi::core::Filter) is a resource that can be executed using its process() method. Filters inherit from resources their connecting system.
  • A Pipeline (kiwi::core::Pipeline) is a filter that contains other filters (including eventually pipelines) and is responsible for processing each of its filters in the correct order. This is the composite design pattern applied to the kiwi system.

Kiwi is designed to make the creation of Resources and Filters very easy. Just create a class deriving from kiwi::core::Resource or kiwi::core::Filter and overload a few methods.

The project's advancement

kiwi 0.3.2

Kiwi is still at an early stage, and interfaces are subject to change.

Implemented

  • The Node base class with all the connection system
  • Filter and Container base classes
  • Some generic Containers (ArrayContainer, MultiArrayContainer, cairo::ImageContainer, Value ...)

Currently in development

  • Pipeline classes
  • Imaging filters using cairo

TODO

What kiwi actually needs:

  • Pipeline classes.
  • A set of resources and filters to demonstrate kiwi's potential !
  • A frontend to connect graphically kiwi boxes and see the result in live.
  • Better automated unit tests with reports (right now it's a huge load of use cases with tons of assert(..) everywhere...)

License

Most of Kiwi's source code is under the new BSD License. However some of the plugin sets are under other licenses, like the image::cairo plugin set that is under the LGPL. See the readme.txt file in each sub-project directory for information about which license applies.

Project member(s)

For now the Kiwi project is designed/developed/maintained by Nicolas Silva.

I would be very happy to share this experience with anyone who is motivated to create and/or test filters and resources based on kiwi!

To contact me:

email: nical.silva@gmail.com
twitter: @nicalsilva
my resume (fr)

Recently Thibaut Vuillemin (@semprobe) joined the project as a developer !

Something went wrong with that request. Please try again.