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.
The code in this repository is available under the MIT License.
Copyright (c) [04/06/2013] [Emanuele Mazza]
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Last Release - GAmuza 0433 here
Older versions here
Just drag to Application folder.
openFrameworks 0074 with this patch and all the official addons.
- Boost Library & headers
A list here of all the addons needed. Due to a lot of modification applied to most of them, are all included in this repo in src/experimentalAddons/
-
Accelerate.framework
-
AGL.framework
-
AppKit.framework
-
ApplicationServices.framework
-
AudioToolbox.framework
-
AudioUnit.framework
-
Carbon.framework
-
Cocoa.framework
-
CoreAudio.framework
-
CoreAudioKit.framework
-
CoreData.framework
-
CoreFoundation.framework
-
CoreMIDI.framework
-
CoreServices.framework
-
CoreVideo.framework
-
Foundation.framework
-
IOKit.framework
-
OpenAL.framework
-
OpenGL.framework
-
QTKit.framework
-
QuickTime.framework
-
ScriptingBrigde.framework
openFrameworks 0074
Compile with LLVM GCC 4.2 (NOT Apple LLVM Compiler 4.1), for 32-bit architecture using OS X 10.7 base sdk.
- 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)
/*
GAmuza 1.0 examples
---------------------
Basics/emptyExample.ga
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 see the patch
- Compound Assignment Operators see the patch
- Accepts both ~= and != for comparison see the patch
- Lua Bit Operation Module http://bitop.luajit.org/
LUA 5.1 programming environment manual
- 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
- list here
- functions list here
- language reference
- 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
none
Actually GAmuza 1.0 is in development (this repo) and is not finished yet, but this is just a matter of time, the real deal is porting this project to Linux and Windows (just for mac now, compatible from osx 10.7 Lion), so, if anyone interested in join me in this project, is more than welcome!!
- Updated XCode project, now compiling with Apple LLVM Compiler 4.1, goodbye old GCC 4.2!!!
- ofxTwitter fixed & updated to API 1.1, included OAuth and JSON parser addons
- small bug fixing
develop
- Fixed wrapper
- general bug fixing
- Fixed Preview aspect ratio texture scaling
- Added export to HTML (simple script documentation)
- Added Archive sketch (save everything to .zip)
- Cleaning editor interface
- initial version