Processing \ Hacks

There's a tremendous amount that you can do with Processing that extends beyond the officially supported language and environment. Processing Hacks is an effort to document some of the trickier and more advanced topics that Processing users are stumbling across as they gain experience and cross-fertilize their work with other platforms, languages, and libraries.

Processing Hacks is a wiki and contributions are encouraged. You can log-in with your discourse name and password.

Please use the playground to test the wiki, learn its formatting syntax (it's really easy) and read through the style guide before contributing content. If you're creating a new hack, look at the example hack template (with guidelines) to get you started.

Processing In Depth

Graphics

2D techniques

3D techniques

  • Arcball (with and without quaternions?)
  • More primitives - cone, cylinder, regular n-gon (filled and stroked, Processing style), Extrusion object?
  • 'toon rendering
  • P3D Display lists (ties in with Scene Graph somewhat… build the triangle list in world coordinates and then directly copy it to the triangles array?)

OpenGL Stuff

  • pure JOGL 'pure' JOGL in Processing without processing.opengl.*
  • JOGL Display lists, vertex arrays

Over-riding Default Behaviour

  • Frame rate adjustments for sketches with occasional heavy computations

Libraries

There is some overlap with file formats here, since that's what lots of the libraries do.

Import/Export and Working with Data

Security

  • Accessing the camera/video in an applet
  • Loading files from any web server using PHP/Perl/etc. to get around the need to sign
  • OpenGL accelerated applets

Using built-in Java classes

AWT

Swing

Alternative Development Methods

  • Editing with JEdit/Vim/Emacs (syntax highlighting etc)
  • Editing Java in the Processing environment “public class blah extends PApplet” / tab.java / etc.
  • Using core.jar in Swing/AWT apps

General Java/OO Programming

  • Deep copying/shallow copying/copying arrays/expanding arrays/inserting/removing in arrays
  • Inheritance / interfaces / polymorphism
  • Design patterns

Interaction

  • Robustly accepting typed input (catching BACKSPACE/TAB/ENTER etc and not adding it to your String)

Optimisation/Numerical Stuff

  • Verlet integration / Runge-Kutta integration
  • Random number distributions

Web Services

  • HTTP POST/GET - RESTian things
  • XML-RPC and friends

Deployment/Presentation

  • Changing screen resolution for full-screen apps
  • Displaying on multiple monitors
  • Starting applets with keyboard focus

Website Integration

Other Platforms

Converting to and from:

  • Processing (Alpha) (Particularly the loop/draw problem, what constants were renamed, etc.)

And comparisons with these platforms, transition methods to/from those platforms, gotchas, etc.

Mapping

Experimental/Aspirational

  • Using a Processing file as a screensaver (export to applet, use args properly … add a config option? Is a preview possible?) … on Mac/Linux?
  • Using “headless” processing for generating images (in TomCat?)
  • Scene Graph using underlying triangle libraries and caching the matrices (not abstracting on top of exposed functions)

Computer Vision and Image Processing

Communication

Miscellaneous / Things to Sort / What Else?

  • I've said nothing about sound, textures, lighting
  • Has anyone got joysticks working? What about Sony PS2 pads?
  • Capturing video from any source (e.g. DVD) using a Digital Video camera
  • Vector fonts? (Fry was doing stuff for OpenGL, and Java2D already used TT fonts if available… what else?)
  • Threading? Asynchronous operations… posting to a website.
  • Image Processing / Colour Tracking / etc.
  • Gesture recognition (mouse, and… video?)
  • Video manipulation / image compression - is in-memory compression feasible?
  • What else would be needed for games? AI? Pathfinding?
  • Specific stuff on info-vis?
  • Specific stuff on OSC?
  • Read email with Processing (directly open POP/IMAP, or bounce it off a webservice)
  • Receive SMS with Processing (gotta be an extension of the email one really)
  • Mo-cap hardware (ask Chiron?)
  • Make a movie - can the Quicktime libraries, or some other Java libraries, compile a folder of images into a movie?
  • Time-based animation
  • GUI libraries etc.
  • Orthographic/perspective rendering (is that a hack any more?)
  • Vector/Matrix libraries?
  • Convex hulls
  • Marching squares / cubes
  • Particle systems
  • Physics/collision detection
  • RDF vs CSV etc.
  • Other metadata formats (e.g. ID3 for Mp3?)
  • Installable libraries (like JSyn, JOGL perhaps)
  • Glen Murphy's Fasttext?
hacks/contents.txt · Last modified: 2008-10-02 23:07 by reas