A generic and easy to use node compositor library for D2 and C++.
Checkout the wiki !
Doxygen qnd ddoc documentation will be available soon.
- The simplest one is to connect nodes within a node group and let the NodeGroup object resolve dependencies, optimize, amd update each node in the correct order.
- Let nodes manage themselves and trigger their update on input signals
- Just use the structure of the graph to generate code or any kind of content (like shaders)
The backend is not dependent to any frontend, though optional Qt based widgets will be developed.
Kiwi is still at an early stage, and interfaces are subject to change. Right now the library is mostly developed in D, and the C++ port will follow. There are old versions of the C++ implementation available in this repository's history, but they dont reflect the architecture of the current version of the library.
- The core interfaces and the port connection system. - The "dynamic" backend implementing the core interfaces for nodes and ports. - Runtime data type descriptor and manager. - Node groups (dynamic backend) - Generic graph algorithms to help with node management, ordonnancing, etc. - C++ port of the core API and dynamic backend. - Add serialization (certainly using the orange library for D). - Script integration (starting with Lua) to expose the library to the script and also make serializable nodes running lua code. - Network layer to allow remote manipulation of nodes (in a separate and optional library). - Qt widgets as an optional frontend. - Fun nodes to show kiwi's featues. - Experiment with shader generators and visual scripting using kiwi.Kiwi's source code is under the new BSD License or the Lesser Gnu Public License.
For now the Kiwi project is designed/developed/maintained by Nicolas Silva.
I would be very happy to share this experience with anyone willing to contribute! To contact me:
email: [email protected]
twitter: @nicalsilva
my resume (fr)