Skip to content

holdensmagicalunicorn/kiwi

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 !

About

Generic pipeline system working with filters and resources that are connected through ports

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 99.3%
  • Other 0.7%