JES - Jython/Python

JES (the Jython Environment for Students) has been repackaged with integrated Finch software. JES was initially developed to support the media computation approach of teaching introductory Computer Science and has a number of nice built-in features to make it easier for students and teachers to manipulate images and video with python programs. The JES team has graciously allowed us to use their source code and name to create the JES+Finch package. 

Unlike most of our other software package offerings, the JES+Finch package installs everything you need (compiler, IDE, and Finch libraries) in one go. The screencast below takes you through download, installation, and writing and running a Finch program in less than five minutes. Full screen it for the best viewing experience, and note that written installation instructions are below the screencast. 


Installation Instructions

Download the installer for your OS.

Ensure you have a Java Runtime Environment installed.


Double click on JESFinch.msi and follow the default installation instructions. 

To run JES, go to Start->All Programs->JES+Finch->JES.exe


Double click on JES+Finch.dmg to open it. This will create disk image on your desktop. Open that, and then click and drag the JES icon into the Applications Folder.

To run JES, open the Applications Folder and click on JESplusFinch


Before you download JES, do the following:

  • Install libusb-1.0. To do so, run sudo apt-get install libusb-1.0-0-dev in any terminal window.
  • Follow these instructions to make it so non-super users can access the Finch (credit: Meg Richards).
  • Download and and place them in your /usr/lib folder (or any folder which is typically on your Java class path).

Unzip the file and place the contents wherever you keep programs.

Launch JES with You may need to make the shell file executable.

Creating Finch Programs - Use JES Help

Once you've launched JES, take a look at the JES help files. The files are very comprehensive, touching on Python programming, using the media computation tools of JES, and how to write and compile Finch programs. 

Using quit()

One problem with the Finch in JES is that if you stop execution of your program before calling the Finch's quit method, you might have to restart JES. One way to avoid this is to structure your program to have separate Quit and Connect functions, as demonstrated in the example below:

import edu.cmu.ri.createlab.terk.robot.finch.Finch as Finch

snakyFinch = 0

def Connect():
  global snakyFinch
  snakyFinch = Finch()

def Quit():

def yourFunction():