← Back

ofxVisualProgramming

github.com/d3cod3/ofxVisualProgramming · @d3cod3
OF 0.12 Releases GUI

A visual programming patching environment for OF

170 19 Last commit 11mo ago Created 8y ago

README

ofxVisualProgramming - A visual-programming patching addon for OF



A collection of visual interactive objects to create/develop in a dataflow+live-coding patching environment. Embedded with Lua scripting interpreter, plus live compile of GLSL Shaders from version 150 to 410, and live editing/execute Bash scripts(macOS & linux) capabilities.
Mosaic 0.6.9 Screenshot from project Mosaic, embedding ofxVisualProgramming

Table of Contents



OF_COMPATIBLE_RELEASE REFERENCE DESCRIPTION DEPENDENCIES COMPILING INSTALLING USAGE CONTRIBUTING COLLECTIONS OBJECTS LIST LICENSE CREDITS

OF COMPATIBLE RELEASE



0.12.0 STABLE (official download from OF site)

Compiled/tested with QTCreator on osx/linux
If you want to build ofxVisualProgramming, just download OF0.12.0 for your OS (osx, linux, windows) and follow the setup guide for qtcreator IDE.

REFERENCE



ofxVisualProgramming came directly from the idea behind the ofxComposer addon by patriciogonzalezvivo and James George, and obviously from the various commercial and no-commercial existing visual programming softwares, the open source option Pure Data, the commercial options Max/Msp and TouchDesigner, etc..., to talk of the latest ones, and without forgetting probably the first one from 1968,

<a href="http://www.youtube.com/watch?feature=player_embedded&v=QQhVQ1UG6aM" target="_blank"><img src="http://img.youtube.com/vi/QQhVQ1UG6aM/0.jpg" alt="GRAIL" width="240" height="180" border="0" /></a>

GRAIL RM-599-ARPA from the RAND Corporation.

So special thanks to all the precursors of this ideas, and more thanks to the ofxComposer developers for their code, it has been a great reference for start working on this ofxaddon.

DESCRIPTION



This addon is the core code of the project MosaicMosaic logo, maintained isolated in order to obtain a better modularized code structure, encourage contributions, simplify bug fixing and enhance code quality.

This project deals with the idea of integrate/amplify man-machine communication, offering a real-time flowchart based visual interface for high level creative coding. As live-coding scripting languages offer a high level coding environment, ofxVisualProgramming and the Mosaic Project as his parent layer container, aim at a high level visual-programming environment, with embedded multi scripting languages availability (Lua, GLSL, and BASH(macOS & linux) ).

As this project is based on openFrameworks, one of the goals is to offer as more objects as possible, using the pre-defined OF classes for trans-media manipulation (audio, text, image, video, electronics, computer vision), plus all the gigantic ofxaddons ecosystem actually available (machine learning, protocols, web, hardware interface, among a lot more).

While the described characteristics could potentially offer an extremely high complex result (OF and OFXADDONS ecosystem is really huge, and the possibility of multiple scripting languages could lead every unexperienced user to confusion), the idea behind the interface design aim at avoiding the "high complex" situation, embodying a direct and natural drag&drop connect/disconnect interface (mouse/trackpad) on the most basic level of interaction, adding text editing (keyboard) on a intermediate level of interaction (script editing), following most advanced level of interaction for experienced users (external devices communication, automated interaction, etc...)

KEYWORDS

mosaic, ofxVisualProgramming, openframeworks, linux, macOS, windows, creative-coding, live-coding, cyber-coding, physical-computing, visual-computing, scripting, transmedia, programming, visual-programming, cyber-programming

DEPENDENCIES



In order to build ofxVisualProgramming, you'll need this addons:

ofxAudioFile



ofxBTrack



ofxCv



ofxEasing



ofxFFmpegRecorder



ofxGLEditor



ofxImGui



ofxInfiniteCanvas



ofxLua



ofxMidi



ofxMtlMapping2D



ofxNDI



ofxOpenDHT



ofxPd



ofxPDSP



ofxScheme



ofxSyphon



ofxTimeline



ofxWarp



Some addons are forks of the original, due to some mods, compatibility with OF0.12.0 and the intention of cross-platform compiling (osx,linux)

COMPILING



MACOS/LINUX compiling with qtcreator 4.6.1

INSTALLING



Clone this addon repository into your <your_openframeworks_release_folder>/addons together with all the others addons listed:

``bash cd <your_openframeworks_release_folder>/addons

git clone https://github.com/npisanti/ofxAudioFile git clone https://github.com/d3cod3/ofxBTrack git clone https://github.com/kylemcdonald/ofxCv git clone https://github.com/arturoc/ofxEasing git clone https://github.com/d3cod3/ofxFFmpegRecorder git clone https://github.com/Akira-Hayasaka/ofxGLEditor git clone https://github.com/d3cod3/ofxImGui git clone https://github.com/d3cod3/ofxInfiniteCanvas git clone https://github.com/danomatika/ofxLua git clone https://github.com/danomatika/ofxMidi git clone https://github.com/d3cod3/ofxMtlMapping2D git clone --branch=NDI5 https://github.com/d3cod3/ofxNDI git clone https://github.com/d3cod3/ofxOpenDHT git clone https://github.com/danomatika/ofxPd git clone https://github.com/d3cod3/ofxPDSP git clone https://github.com/d3cod3/ofxScheme git clone https://github.com/d3cod3/ofxSyphon git clone https://github.com/d3cod3/ofxTimeline git clone https://github.com/d3cod3/ofxWarp git clone https://github.com/d3cod3/ofxVisualProgramming
``

USAGE



Check Mosaic project to look at a ofxVisualProgramming addon usage and implementation

CONTRIBUTING



Contributing to the project adding new objects is relatively easy, as ofxVisualProgramming is at the core of Mosaic software, i've implemented a plugin mechanism based on Pugg, in order to facilitate the extension and the creation of new objects/nodes to add at the ofxVisualProgramming/Mosaic default objects/nodes library. (see objects/nodes list below)

You can find the repo of the plugin template here: ofxMosaicPlugin, with some generic objects templates and more detailed info in the readme.

COLLECTIONS



A list of contributed collections of new objects

OBJECTS LIST



Audio AnalysisReady
audio analyzerX
bpm extractorX
fft extractorX
mel bands extractorX
pitch extractorX
rms extractorX
CommunicationsReady
arduino serialX
key pressedX
key releasedX
midi keyX
midi knobX
midi padX
midi receiverX
midi senderX
osc receiverX
osc senderX
Computer VisionReady
background subtractionX
color trackingX
contour trackingX
haar trackingX
motion detectionX
optical flowX
DataReady
bang multiplexerX
bang to floatX
color paletteX
data to fileX
data to textureX
file to dataX
float multiplexerX
floats to vectorX
receiverX
senderX
texture to dataX
vector atX
vector concatX
vector extractX
vector gateX
vector operatorX
GenerativeReady
strange attractorsX
GraphicsReady
image loaderX
image exporterX
color paletteX
GUIReady
2D padX
bangX
commentX
data viewerX
messageX
multisliderX
multitoggleX
piano keyboardX
player controlsX
signal viewerX
sliderX
sonogramX
timelineX
triggerX
value plotterX
video viewerX
vu meterX
LogicReady
boolean operatorX
conditional operatorX
counterX
delay bangX
delay floatX
gateX
inverterX
loadbangX
spigotX
timed semaphoreX
MathReady
1D noiseX
clampX
cosine generatorX
mapX
metronomeX
numberX
operatorX
simple randomX
sine generatorX
smoothX
ScriptingReady
bash scriptX
glsl shaderX
lua scriptX
scheme live codingX


SoundReady
ADSR envelopeX
AHR envelopeX
amplifierX
address sequencerX
audio exporterX
bit cruncherX
bit noiseX
comb filterX
compressorX
crossfaderX
data oscillatorX
decimatorX
delayX
dimension chorusX
frequency to noteX
high passX
kickX
lfoX
low passX
mixerX
note to frequencyX
oscillatorX
pannerX
parametric EQX
pd patchX
polyphonic oscillatorX
quad pannerX
quantizerX
resonant filterX
reverbX
sample and holdX
sample playerX
saturatorX
sequencerX
sidechain compressorX
signal gateX
signal operatorX
signal triggerX
soundfile playerX
summing mixerX
StringReady
random stringX
string atX
string concatX
string extractX
string gateX
string multiplexerX
SurfaceIn process
fbo composer
fbo effect
fbo particle
TextureReady
image exporterX
image loaderX
kinect grabberX
pixels to textureX
texture cropX
texture gateX
texture informationX
texture mixerX
texture to pixelsX
texture transformX
to grayscale textureX
syphon sender ( osx only )X
syphon receiver ( osx only )X
video exporterX
video feedbackX
video grabberX
video playerX
video receiver ( osx only )X
video sender ( osx only )X
video streamingX
video timedelayX
WindowingReady
live patchingX
output windowX
projection mappingX

LICENSE



license

All contributions are made under the MIT License. See LICENSE.

CREDITS



ofxAudioFile, ofxPDSP original addons by Nicola Pisanti

ofxBTrack original addon by Nao Tokui

ofxCv original addons by Kyle McDonald

ofxEasing original addon by Arturo Castro

ofxFFmpegRecorder original addon by Furkan Üzümcü

ofxGLEditor original addon by Akira Hayasaka

ofxImGui original addon by Jason Van Cleave

ofxInfiniteCanvas original addon by Roy Macdonald

ofxLua, ofxMidi, ofxPd original addons by Dan Wilcox

ofxMtlMapping2D original addon by morethanlogic

ofxNDI original addon by Thomas Geissl

ofxSyphon original addon by Anthony Stellato

ofxTimeline original addon by James George and YCAM Interlab

ofxWarp original addon by Elie Zananiri

Get this addon

HTTPS
SSH

Latest release

0.6.7 Release for Mosaic 0.6.7 published 2y ago