You can (and should) write eloquent code in JRubyArt (cf vanilla processing and p5*js). Say for example you want a test to determine whether three points are collinear, you would probably look up collinear at wolfram math world. And you would see that in two dimensions given three points P1, P2 and P3 they would be collinear if their vectors x1, x2 and x3 satisfied the following equation, where x denotes the cross product.

(x2 - x1)x(x1 - x3) = 0

We can readily translate that test into ruby (JRubyArt/propane) using Vec2D as our vector class (cf processing and PVector class), thanks to the separation of 2D and 3D functionality, and that we can simple subtract one Vec2D instance from another.

# where a, b and c are the Vec2D instances of our points
def collinear(a, b, c)
  (a - b).cross(b - c).zero?

Using the collinear test in a simple sketch

attr_reader :font

def settings
  size 300, 300

def setup
  sketch_title 'Collinearity Test'
  background 0
  @font = create_font('Arial', 16, true)
  a =, 20)
  b =, 120)
  c =, 220)
  d =, 180)
  stroke_weight 3
  stroke 255, 0, 0, 100
  draw_lines a, b, c
  draw_text a, b, c
  stroke 0, 0, 255, 100
  draw_lines a, b, d
  draw_text a, b, d

def collinear(a, b, c)
  (a - b).cross(b - c).zero?

def draw_lines(a, b, c)
  vertex(a.x, a.y)
  vertex(b.x, b.y)
  vertex(c.x, c.y)
  vertex(a.x, a.y)
  end_shape CLOSE

def draw_text(a, b, c)
  text_font(font, 12)
  text("#{collinear(a, b, c)}", c.x, c.y)

Caculating the midpoint between two vectors

def midpoint(a, b)
  (a + b) / 2.0