Nodebox compatibility ===================== Shoebot was originally developed as a rewrite of Nodebox, attempting to follow its behaviour as close as possible. However, the developers eventually wanted some functionality that was not in Nodebox, and there are many aspects of Nodebox that, for one reason or other, were not ported over. Now that the original Nodebox isn't being developed further, we have decided to go on and keep implementing original features whenever appropriate. In this page, you'll find the features and behavior that differs between Nodebox and Shoebot. If you find any difference that isn't documented here, please `file an issue `_. Additional Shoebot features --------------------------- These are features that were created in Shoebot and are not available in Nodebox, or where Shoebot behavior is distinct. New functions ^^^^^^^^^^^^^ - Drawing * :py:func:`rectmode()` and :py:func:`ellipsemode()` are inspired by Processing and cater to the preferences of users who expect alternative ways to draw primitives. These are also useful for specific situations where coordinate calculation would be otherwise necessary. * :py:func:`arc()` is provided by Cairo, so we support it as well. - Others * :py:func:`snapshot()` is a simple way to output to an image in the middle of the script execution. * :py:func:`run()` can execute another script in the current context. This is mostly useful when using Shoebot as a Python module inside another application. Bundled libraries ^^^^^^^^^^^^^^^^^ Nodebox provides a set of external libraries that can be downloaded and added to a project. Shoebot comes with ported versions of those libraries already included and available. - Knowledge: `Database `_, `Graph `_, `Web `_ - Bitmap: `Photobot `_ - Paths: `Bezier `_, `Cornu `_, `SVG `_ `Supershape `_, `Bezier Editor `_ - Systems: `Boids `_, `L-system `_ - Design: `Colors `_ - Tangible: `TUIO `_ New libraries ^^^^^^^^^^^^^ Additional external libraries were developed for Shoebot: * :doc:`libraries/audio` * :doc:`libraries/video` * :doc:`libraries/opencv` Unsupported Nodebox features ---------------------------- These are the Nodebox bits that aren't available in Shoebot. CMYK color ^^^^^^^^^^ Nodebox was implemented using Mac OS X's Cocoa toolkit, which supports CMYK color. Shoebot runs on the `Cairo `_ graphics backend, which does not. Nodebox commands that deal with CMYK color are therefore unsupported: * `outputmode() `_ is not available. * `colormode() `_ is implemented, but ``CMYK`` is not an accepted argument -- only ``RGB`` or ``HSB``. Path operations ^^^^^^^^^^^^^^^ Operations between bézier paths are not supported yet. These are: * ``path.union()`` * ``path.intersect()`` * ``path.difference()`` Fitting a path using ``path.fit()`` isn't supported either. Animation ^^^^^^^^^ While animations work well in a window, Shoebot does not support exporting them to GIF or video formats. .. _unported-libs: Unported libraries ^^^^^^^^^^^^^^^^^^ - Knowledge: `WordNet `_, `Keywords `_, `Linguistics `_ - Bitmap: `Core Image `_, `iSight `_, `Quicktime `_ - Systems: `Ants `_, `Noise `_ - Design: `Grid `_ - Typography: `Pixie `_, `Fatpath `_ - Tangible: `WiiNode `_, `OSC `_ - Other: `Flowerewolf `_, `twyg `_