/GAmuza

GAmuza | Hybrid Live OF Sketching IDE | MAC version

Primary LanguageC

About

GAmuza

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.

Licence

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.

Download

Last Release - GAmuza 0433 here

Older versions here

Installation

Just drag to Application folder.

Dependencies

OF

openFrameworks 0074 with this patch and all the official addons.

Additional Libraries

  • Boost Library & headers

OFXADDONS

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/

Frameworks

  • BWToolkitFramework.framework

  • Sparkle.framework: project page

  • Syphon.framework

  • 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

Compatibilities

openFrameworks 0074

Compilation

Compile with LLVM GCC 4.2 (NOT Apple LLVM Compiler 4.1), for 32-bit architecture using OS X 10.7 base sdk.

Sketching (Live Coding)

These are some of the GAmuza IDE 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)

Language

/* 
   
 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

Bindings

LUA language

LUA 5.1 programming environment manual

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

GAmuza framework

  • functions list here

OPENGL 1.1

Modules

  • ARDUINO

GAmuza

  • AUDIO ANALYSIS

GAmuza

  • COMPUTER VISION from cameras (wrapped within a class and available from code)

ScreenShot

  • COMPUTER VISION from Kinect (wrapped within a class and available from code)

GAmuza

  • TIMELINE

GAmuza

Known issues

none

Contribute

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!!

Version history

<<<<<<< HEAD

v1.0 | Rel. 0433

  • 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

v1.0 | Rel. 0432

  • Fixed wrapper
  • general bug fixing

v1.0 | Rel. 0431

  • Fixed Preview aspect ratio texture scaling
  • Added export to HTML (simple script documentation)
  • Added Archive sketch (save everything to .zip)
  • Cleaning editor interface

v1.0 | Rel. 0426

  • initial version