It is designed to be simple for students to use while learning the languages, and to be portable (goal archieved by using a java back end program and leaving Oracle deal with the gritty details of each platform).
The backend manages the windows and graphics and UI objects, and forwards events, communicating with the program thru a pipe. The SPL provides libraries in C, C++ to interfaces with the Java Back End.
- A Portable Graphics Library for Introductory CS by Eric Roberts and Keith Schwarz.
- SPL repository on github
The system com.informatimago.pgl implements such an interface for Common Lisp. It is bundled with the informatimago library, also available thru quicklisp in the ultralisp distribution.
git clone http://gitlab.com/com-informatimago/com-informatimago cd com-informatimago/pgl/
Note: Currently it only works ccl and clisp, but it should be trivial to adapt it to other implementations, (only not using uiop:run-program apparently, it doesn't seem to be able to make the required stream).
Example:
pgl/examples/ball.lisp produces the following window, with the beach ball bouncing around: