a port of the Processing Visualization Language

Processing.js v1.2.3 released

14 Jul 2011

The Processing.js team is pleased to announce the release of Processing.js 1.2.3. This is a maintenance release, which focused primarily on tests, non-core Processing code, and other things we never have time to do--spring cleaning, if you will.

While we mainly worked around the edges of the core Processing code, there are still some notable changes and updates for our users. Specifically:

  1. We have removed init.js, and changed the way that inline Processing code gets loaded by Processing.js. In the past, inline sketches (e.g., those contained within <script type="text/processing">...</script>) were loaded by a helper script called "init.js". This was confusing for users. Starting with 1.2.3, inline Processing scripts need to specify the ID of the canvas in which they should be drawn, by specifying this ID as the value of an attribute called "data-processing-target". For example:
    <script type="text/processing" data-processing-target="targetcanvas">
      /* processing code here */
    <canvas id="targetcanvas"></canvas>
    While the preferred way to load sketches is using the "data-processing-sources" attribute on the canvas element instead of doing inline sketches, sometimes using inline code is desirable, and that's now easier to use. The "example.html" file further demonstrates several ways of getting your Processing sketches shown on a page.
  2. We have removed the @pjs "transparent" directive. In the past we used this in order to give a hint to the canvas that transparency would be happening. Not all browsers implement this hint, and we decided (after doing performance tests) that the confusion it caused for users isn't worth keeping it.

Our next release will be focused on core Processing fixes again, as well as achieving parity with the upcoming Processing 2.0 release of our sister project. If you are using Processing.js and notice compatibility, performance, or other issues, please let us know via IRC (irc.mozilla.org #processing.js) or by filing a bug on our bug tracker.

In the mean time, grab a copy of Processing.js 1.2.3 and go make something awesome! Here are some cool sketches to get you thinking:


  • Added a note to the test suite about Opera failing Cursor
  • Added httpd.py to the distribution in order to run a local http server for testing
  • Added Shiffman's "Nature of Code" into parser test suite
  • Added support for hash/bookmark url from sketch loading
  • Added both inline and external loading samples to the example.html example
  • Add JavaScript event hooks to Sketch
  • Changed Processing.logger back to tinyLogLite
  • Changed the script attribute used to target a canvas from data-target to data-processing-target
  • Converted test suite #113 and #114 to ref tests
  • Converted README to README.md
  • Converted ref tests to have proper draw loops with exit() in them
  • Created SVG ref tests
  • Created curve* ref tests.
  • Created more background() ref tests
  • Created makefile documentation
  • Deleted dead code in processing.js
  • Deleted unused variables and functions
  • Expanded test suite configurations for more OS/browser combos
  • Expanded lerp unit test beyond r/g/b
  • Fixed ArrayList's copy constructor
  • Fixed processing.js header to include type of distribution
  • Fixed processing-helper to work when creating 3D tests after 2D tests
  • Fixed 3D points to take strokeWeight() into account
  • Fixed exit() to properly release events that are bound to sketches
  • Fixed split() so it doesn't scope-conflict with objects that implement their own split function
  • Fixed Test suite blur test to properly load second image
  • Fixed ref test runner so it can re-run without reloading the page
  • Fixed parser so that all classes in a deep class hierarchy get a $base
  • Fixed ref test runner to use epsilonOverride global value when higher than test-specified value
  • Fixed failing ref tests due to pixel diff errors
  • Fixed build system to run make check-lint as part of make check
  • Fixed test suite #56 alpha mask on IE9 and Opera
  • Fixed processing helper preloading in Firefox 4
  • Fixed ref tests that use text
  • Fixed event handler leaks processing.js
  • Fixed error messages when local files cannot be loaded
  • Fixed ref test runner to properly diff images
  • Fixed ref test runner to properly sort completed tests
  • Fixed test suite and ref test runner to use minified vs. full processing.js in test suite
  • Fixed Makefile to be Windows-friendly
  • Fixed @pjs directives to work when multiple directives are specified
  • Fixed build system to add version number and header to minified processing.js
  • Fixed build system so that release target triggers check-release automatically
  • Fixed example.html to use size() instead of canvas width/height
  • Fixed regression from #1363
  • Fixed SVG path "m" statement regression
  • Fixed loadImage() reference to not mention signing applets
  • Fixed SVG regression from failed merge
  • Fixed loadShape()
  • Fixed Makefile so that check-closure does not die mid-way
  • Fixed PVector.set to not set z to undefined (NaN)
  • Fixed is3D regex in ref tester
  • Fixed case-sensitivity in ref test SVG filenames and associated tests
  • Implemented fillStyle
  • Implemented __hashCode function via virtHashCode
  • Investigated the suitability of implementing the A3D Renderer
  • Moved the utility functions (extendClassChain, defineProperty, ...) to defaultScope
  • Refactored rotateZ into 2D and 3D methods
  • Refactored mag() to use function args
  • Refactored vertex() to use function args
  • Refactored line() to use function args
  • Removed fixOperaCreateImageData()
  • Removed fixOperaCreateImageData() in ref test runner
  • Removed delay() from Reference
  • Removed init and loadSketchFromSources from the api version of pjs
  • Removed init.js from repo and /download
  • Removed uses of eval("...")
  • Removed impossible parser tests
  • Removed duplicate loadSketchFromSources and disableInit
  • Removed nop and eval_ from the global closure arg list
  • Removed @pjs transparency directive
  • Restored feature to load inline sketches after accidental deletion
  • Rewrote beginDraw and endDraw comments to better explain their presence
Fork me on GitHub