https://github.com/d3cod3/GAmuza
http://www.gamuza.cc/
I’m happy to announce the last release (0432) of GAmuza, now a complete “Processing like” OF sketching IDE.
The original idea was to make creative coding easier; then, usually jumping from Processing to OF, always trying new libraries/addons, the desire was, having OF with a Processing like IDE, + a bunch of GUI modules to avoid the technical programming stuff like Computer Vision, Audio Analysis, Arduino communication, etc…
So, this is it, this is GAmuza, made with OF, inspired by Processing, binding the (almost) entire OF language v.0.7.4 with his official addons included, the entire OpenGL 1.1 language, a bunch of other addons (list here), and the small GAmuza framework of functions and GUI modules to make creative coding a lot more easier, all of it embedded into a slight modified Lua scripting environment.
MAIN FUTURES
-
Line Numbering
-
Syntax Coloring
-
Code Completion
-
Multi Tab sketch editor (Processing like)
-
Live Coding
-
Various GUI Modules (Audio Analysis, Computer Vision, Arduino, Timeline)
-
Various tools (RGB/HSV Color selector, Custom Console)
-
AU Audio Unit plugins (FX only) host
-
libPD integrated (ofxPd addon)
-
Auto Updating system using Sparkle Framework (http://sparkle.andymatuschak.org/)
LANGUAGE
An example code:
/*
GAmuza 0432 examples
Draw a flicking circle over mouse position.
created by n3m3da | www.d3cod3.org
*/
function setup()
ofSetCircleResolution(50)
end
function update()
end
function draw()
gaBackground(0.0,1.0)
ofSetColor(255)
ofCircle(gaMouseX(),gaMouseY(),ofRandom(20,200))
end
GAmuza scripting language is based on LUA, integrated in OF with a modified version of ofxLua addon; a patched version of LUA 5.1 is compiled as a static library, and the entire binding of OF 0.7.4 with all the ofxAddons is made through LUABIND, while the binding of OpenGL 1.1 is coded directly from LUA using luaglut.
These are the most important LUA 5.1 patches
-
C/C++ style comments
-
Compound Assignment Operators
-
Accepts both ~= and != for comparison
-
Lua Bit Operation Module http://bitop.luajit.org/
BINDINGS
LUA language
LUA 5.1 programming environment reference here: http://www.lua.org/manual/5.1/manual.html
OF 0.7.4 language EXCLUDING:
-
ofArduino --> managed from Arduino GUI module + GAmuza framework related functions
-
ofSoundStream – managed from AudioAnalysis GUI module + GAmuza framework related functions
-
ofLog, ofLogFatalError, ofLogError, ofLogVerbose, ofLogWarning, ofLogNotice --> covered by GAmuza console panel
-
ofPoint --> use ofVec3f instead
-
ofRendererCollection
-
ofEvents
-
ofPtr
OF 0.7.4 official addons
others OFXADDONS, a list here: https://github.com/d3cod3/GAmuza/blob/master/bindedAddons
GAmuza framework, details here: https://github.com/d3cod3/GAmuza/blob/master/gaFunctionsList
OPENGL 1.1, language reference here: http://www.talisman.org/opengl-1.1/Reference.html
MODULES
ARDUINO
AUDIO ANALYSIS
COMPUTER VISION from cameras (wrapped within a class and available from code)
COMPUTER VISION from Kinect (wrapped within a class and available from code)
TIMELINE
REFERENCE AND CODE EXAMPLES
GAmuza comes with more than 200 examples included in the software (the same structure as Processing, in file->examples you’ll find examples ordered by topic)
Reference is available in the project page www.gamuza.cc, i’m on the process of updating all the new reference from the older release
For a detailed information about the entire binding available inside Lua scripting system you can take a look here: https://github.com/d3cod3/GAmuza/blob/master/src/GAmuza/gamuzaWrapper.h
COMPATIBILITY
This last release of GAmuza is available only for OSX, starting from 10.7
THANKS TO
The Entire OF community, the forum, the ofxAddons creators and all the people on internet that use to share their ideas & their code, thanks everyone.