/ruby-processing

Code as Art, Art as Code. Processing and Ruby are meant for each other.

Primary LanguageRubyOtherNOASSERTION

IMPORTANT: Ruby-processing is deprecated and unsupported

Use the updated version JRubyArt or the standalone alternative propane, which target processing-3.5.3 and processing-4.0 (like jdk11+) respectively, and support ruby-2.5+ syntax. Works on same platforms as vanilla processing (windows, mac, linux) for Android see Yuki Morohoshi ruboto-processing2.

Processing provides a tidy API, with a bunch of handy methods you can call from Ruby-Processing. Here's a smattering:

alpha, arc, background, blend, blue, ellipse, frame_rate, hue, lerp, load_image, load_pixels, mouse_pressed, noise, rect, saturation, shape, smooth, text_align, translate, triangle, vertex...

Installation

We assume you have some version of ruby installed if not, there is a guide to installing ruby on various platforms including windows. Or here is an alternative install guide.

MacOSX users please try out this new method or see this japanese guide.

Ideally you should install jruby, at the very least you will have at least ruby-1.9.3 installed. You should download and install vanilla processing-2.2.1 prior to installing this version of ruby-processing. You must also set the PROCESSING_ROOT in the .rp5rc yaml configuration file, the easiest way to do this is by running the SetProcessingRoot.pde sketch in the processing ide.

Then install ruby-processing (from rubygems-org) in the usual way

gem install ruby-processing some systems eg Ubuntu may require sudo access

To install jruby-complete use our built in tool (relies on wget to download jruby-complete-1.7.26)

since ruby-processing-2.5.0 rp5 setup install (was install_jruby_complete)

If you haven't got wget just download jruby-complete-1.7.26 (for ruby-processing-2.7.1) to the vendors folder (then run above tool)

The vendored jruby-complete is only required for application export, and running certain sketches (eg shader sketches see wiki).

Documentation

See Wiki

See also FAQs, Contributing and Samples

Usage Example

rp5 run my_sketch.rb 

or if not using system jruby (and not JRUBY: 'false' in ~/.rp5rc)

rp5 --nojruby run my_sketch.rb

where a simple my_sketch.rb could look like this

def setup
  size 400, 400  
  fill 255
end

def draw
  background 0
  ellipse mouse_x, mouse_y, 100, 100
end

or a simple 3D sketch cube.rb features ArcBall from vecmath library

load_library :vecmath

############################
# Use mouse drag to rotate
# the arcball. Use mousewheel
# to zoom. Hold down x, y, z
# to constrain rotation axis.
############################

def setup
  size(600, 600, P3D)
  smooth(8)
  ArcBall.init(self, 300, 300)
  fill 180
end

def draw
  background(50)
  box(300, 300, 300)
end       

See samples for many more examples


Supported java version

NB: you can't use jdk/jre installed by processing

  • Open jdk8 (latest version preferred, is the default linux install)
  • jdk8 from Oracle (latest version preferred, or required by Mac)
  • jdk7 should also work (typically ubuntu linux or some other linux distro)

Supported ruby version

This gem has been tested with the following ruby implementations

  • Ruby 1.9.3
  • Ruby 2.0.0
  • Ruby 2.1.2
  • Ruby 2.2.1
  • Ruby 2.3.0
  • JRuby preferred use jruby-1.7.XX but also works with jruby-9.1.2.0 release

Supported processing version


Ruby alternatives for processing convenience methods

Many processing (convenience) methods make little sense in ruby (and many are no-longer implemented). See ruby alternatives for details.


License