public
Description: A wrapper for Processing in Clojure.
Homepage:
Clone URL: git://github.com/rosado/clj-processing.git
name age message
file .gitignore Sat Aug 29 14:58:31 -0700 2009 Update example2.clj to use defapplet macro. [technomancy]
file CPL.TXT Mon Sep 08 10:39:56 -0700 2008 Added CPL license file. [rosado]
file README.markdown Mon Aug 03 10:22:43 -0700 2009 Removed mouse-*, pmouse-* functions since they ... [rosado]
file build.xml Mon Jul 20 12:36:13 -0700 2009 Sources now in src/ [rosado]
directory examples/ Thu Sep 17 11:42:18 -0700 2009 renamed simple.clj to with_proxy.clj [rosado]
directory src/ Sat Sep 19 12:21:38 -0700 2009 Fix: wrong handling of mode parameter to applet... [rosado]
README.markdown

Processing for Clojure

This lib is a wrapper for the Processing project. Mixture of Clojure and Processing enables you to do live-coding and experiment easily.

Most of the function are covered; some have a slightly different name than in Java (partly because Clojure is confused by methods of the same arity but different argument types). Most of the constants are accessible.

How To Use It?

Add your core.jar file from the Processing installation to your CLASSPATH.

To use the OpenGL features, you also have to add gluegen-rt.jar, jogl.jar and opengl.jar from the $PROCESSING_DIR/libraries/opengl/library. You also need to pass the argument:

     -Djava.library.path=`$PROCESSING_DIR/libraries/opengl/library

to the JVM.

Then, create a JAR by running ant and also add the resulting file to your CLASSPATH.

Examples

The examples directory contains a simple script to get you going.

COMMON ISSUES

clj-procesing may not work if you're using add-classpath to put the Processing jars into your CLASSPATH. Please, use a "proper" way to set up your CLASSPATH (eg. with a special script like the clj on Clojure Wiki)

If your're using Clojure's proxy macro, you'll have to define the mouse handling methods to take one argument (which is just an instance of java.awt.event.MouseEvent class) and get all needed information (like mouse position etc) from that object. Also, accessing instance fields of the PApplet class from within proxy doesn't work.

TODO

  • docstrings
  • include remaining constants