Code as Art, Art as Code. Processing and Ruby are meant for each other.
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
…
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).
See Wiki
See also FAQs, Contributing and Samples
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
NB: you can’t use jdk/jre installed by processing
This gem has been tested with the following ruby implementations
Many processing (convenience) methods make little sense in ruby (and many are no-longer implemented). See ruby alternatives for details.