For ease of use you should install the latest version of Linux Mint 18.2 Sonya, Cinnamon Edition is modern and clean. Otherwise you might find software versions hopelessly out of date, you can get round it but is is more work. In general you want the non-free (as in closed source) graphics drivers for opengl performance (Mint will likely install them for you). You will likely want to customise your desktop to include a gnome-terminal launcher (it is much easier to do things from a terminal, eg sudo apt-get install openjdk-8-jre than struggle with the gui).

Required Dependencies

Use apt or the gui alternative to install openjdk-8 runtime, libopenfx-java and libopenfx-jni (the last two to support FX2D mode). Alternatively install the latest jdk from Oracle (I suggest you unzip the tarball into /opt) then use the excellent update-alternatives tool on debian to provide the symbolic links (and to manage which version is active).

sudo update-alternatives --install /usr/bin/java java /opt/jdk{version}/bin/java 100
sudo update-alternatives --config java

Similarly you should unpack the jruby tarball to /opt then use the excellent update alternative tool to provide symbolic links to jruby, jgem, jirb etc.

sudo update-alternatives --install /usr/bin/jruby jruby /opt/jruby{version}/bin/jruby 100
sudo update-alternatives --config jruby

If you absolutely must use rvm to install ruby/jruby personally I would avoid it like the plague (unless you are doing rails development it is complete overkill and an absolute pain). Unlike JRubyArt and ruby-processing it is not possible to run propane without a system install of jruby. It is highly recommended that you create a symbolic link to /usr/bin/jruby, it is the easiest way to ensure that jruby is on you PATH and you can then make sketches executable with #!/usr/bin/env jruby (and chmod +x). Further you will be able to run sketches from atom using the script plugin (without needing to start atom from the command-line to pick up environmental variables).

You should prefer to install gems locally (no need for sudo). To do that it is convenient on linux Mint to edit your ~/.profile file as follows, the important thing is ensure that the gem bin directory is on your path.

alias jpry="jruby -e \"require 'pry'; binding.pry\""
export JAVA_HOME="/opt/jdk1.8.0_151" # if using oracle java openjdk-8 is fine though
export GEM_HOME="/home/tux/.gem/ruby/2.3.0"
export GEM_PATH="/home/tux/.gem/ruby/2.3.0"
export PATH="${PATH}:${GEM_PATH}/bin"

Note editors with their own launcher may not respect this profile (see script)


jgem install propane # or `jruby -S gem`, use rvm at your own risk...

Install Samples

propane --install Samples

Install Sound library

propane --install Sound

Install Video library the past but stable?

propane --install Video

Install GLVideo library the future but unstable

propane --install glvideo
# experimental, expected to work on Raspberry-Pi debian-linux and MacOS

Optional extra Atom

Even if you’ve been using vim/emacs it might be worth at least giving atom a try, if you are coming from Windows you should probably install it!!! Vim/Emacs might come as bit of a shock.

See website (or scroll to bottom of releases page for downloads on github)

For linux ignore any distro version and download latest version (at least 1.19.3) and:-

sudo dpkg --install atom-amd64.deb # debian, mint, ubuntu

Running examples

To run a bunch of the samples as a demo:-

cd ~/propane_samples
rake # autoruns a bunch of files as a demo
cd ~/propane_samples/contributed # for example
rake # autoruns files in contributed folder
jruby jwishy.rb # run the JWishy sketch, using an installed jruby
cd ~/propane_samples/processing_app/topics/shaders
rake # autoruns shader sketches
jruby monjori.rb # run single shader sketch, since propane-1.0

Creating your own sketch

All we ask is that you obey the ruby filename convention (ie snakecase) and we can create a template sketch for you as follows:-

propane --create fred_sketch 200 200 # creates a propane sketch fred_sketch.rb (see below)
vim fred_sketch.rb
:!jruby % # from vim runs the sketch

other [editors][editors] are available

# frozen_string_literal: true
require 'propane'

class FredSketch
  def setup
  sketch_title 'Fred Sketch'

  def draw


  def settings
  size 200, 200
  # smooth # here


PS: propane -c fred also works with a default size 0