Seam is a GUI-based node graph editor addon for OpenFrameworks 0.12+, designed for protoyping and building data-driven visual systems.
Seam uses C++17 so OpenFrameworks 0.12 is recommended, although it can be used with OF 0.11 if you are able to build with C++17 support. Windows Visual Studio and msys2 library dependencies are pre-built; if you are using Linux or Mac, dependencies will need to be built (see the dependencies section).
See the example_usage
directory for a skeleton app you can use to get started using Seam. The Seam Editor hooks into OpenFrameworks' update()
, draw()
, etc. functions in your ofApp
.
Seam is currently missing many quality of life features and has some annoying bugs. Node creation and connections are functional and node graph files can be saved and loaded, but don't expect a friendly experience yet. See the Known Issues section for more info.
Seam's design goals include:
PinInput
class takes pointers to your data and accounts for stride and offset so you don't have to rearrange your data.The core of Seam is open source because Seam is built using many open source libraries, including:
AudioAnalyzer
Node.FastNoise
Node.Seam's core Node Editor addon for OpenFrameworks is distributed under the MIT License.
If installing for MacOS or Linux, you will need to build additional dependencies yourself (listed below).
Required dependencies are:
These are already compiled for Windows, if you are using Linux or Mac OS you will need to compile them yourself. Please PR your additions!
Optional dependencies are:
BUILD_AUDIO_ANALYSIS
to build Seam with this dependency and add the Audio Analyzer node to your list of available Nodes.I have compiled libessentia for msys2 but can't upload it here because the libraries are too large. If you need a copy of the library, please ask!
Seam has been built and run using UCRT64 msys2 and Visual Studio 2019 using OpenFrameworks 0.12. It should work fine on other platforms, but has not been tested, and dependencies will need to be built (see above).
PinInput
will need to support multiple connections.seamConfig.ini
file now. This file is written to the current working directory on exit.ofxAudioAnalyzer
. Audio analysis can be enabled by defining the macro BUILD_AUDIO_ANALYSIS
.PinType::ANY
for Nodes that want to accept any type as an input.PinInput
so GPU-mapped data is easier to configure using the editor GUI.Initial commit after moving from the original repo; moved Seam code to an ofx addon.