>D)*q.iw;q.v2=I((q.srcYOffset>>
+D)+1,q.ih1)*q.iw;for(a=0;a>D,q.ll=q.ifU*q.fracV>>D,q.ur=q.fracU*q.ifV>>D,q.lr=q.fracU*q.fracV>>D,q.u1=q.sX>>D,q.u2=I(q.u1+1,q.iw1),u=4*(q.v1+q.u1),x=4*(q.v1+q.u2),y=4*(q.v2+q.u1),C=4*(q.v2+q.u2),q.cUL=E[u+3]<<24&m|E[u]<<16&n|E[u+1]<<8&A|E[u+2]&B,q.cUR=E[x+3]<<24&m|E[x]<<16&n|E[x+1]<<8&A|E[x+2]&B,q.cLL=E[y+3]<<24&m|E[y]<<16&n|E[y+1]<<8&A|E[y+2]&B,q.cLR=E[C+3]<<24&m|E[C]<<16&n|E[C+1]<<8&A|
+E[C+2]&B,q.r=q.ul*((q.cUL&n)>>16)+q.ll*((q.cLL&n)>>16)+q.ur*((q.cUR&n)>>16)+q.lr*((q.cLR&n)>>16)<>>D&A,q.b=q.ul*(q.cUL&B)+q.ll*(q.cLL&B)+q.ur*(q.cUR&B)+q.lr*(q.cLR&B)>>>D,q.a=q.ul*((q.cUL&m)>>>24)+q.ll*((q.cLL&m)>>>24)+q.ur*((q.cUR&m)>>>24)+q.lr*((q.cLR&m)>>>24)<>>16,h[l+1]=(v&A)>>>8,h[l+2]=v&B,h[l+3]=(v&m)>>>24,q.sX+=f;b+=k;q.srcYOffset+=g}}};e.loadFont=function(a,b){if(a===h)throw"font name required in loadFont.";
+if(-1===a.indexOf(".svg"))return b===h&&(b=ba.size),PFont.get(a,b);var c=e.loadGlyphs(a);return{name:a,css:"12px sans-serif",glyph:!0,units_per_em:c.units_per_em,horiz_adv_x:1/c.units_per_em*c.horiz_adv_x,ascent:c.ascent,descent:c.descent,width:function(b){for(var c=0,d=b.length,f=0;f":return a.greater;case "?":return a.question;case "@":return a.at;case "[":return a.bracketleft;case "\\":return a.backslash;case "]":return a.bracketright;case "^":return a.asciicircum;case "`":return a.grave;case "{":return a.braceleft;case "|":return a.bar;case "}":return a.braceright;case "~":return a.asciitilde;default:return a[b]}}catch(c){M.debug(c)}};E.prototype.text$line=function(a,b,d,f,h){f=f=0;if(ba.glyph){f=
+e.glyphTable[zb];g.save();g.translate(b,d+Na);h!==c.RIGHT&&h!==c.CENTER||f.width(a);b=1/f.units_per_em*Na;g.scale(b,b);b=0;for(d=a.length;b
Date: Fri, 28 Mar 2014 12:24:29 -0400
Subject: [PATCH 07/31] Make sync script executable
---
sync.sh | 0
1 file changed, 0 insertions(+), 0 deletions(-)
mode change 100644 => 100755 sync.sh
diff --git a/sync.sh b/sync.sh
old mode 100644
new mode 100755
From 8f9a478c30213723bbc69ad46286347f74370fd2 Mon Sep 17 00:00:00 2001
From: Pomax
Date: Thu, 17 Apr 2014 14:03:40 -0700
Subject: [PATCH 08/31] 1.4.8 dl
---
download/_posts/2014-03-25-v1.4.8.html | 8 ++++++++
1 file changed, 8 insertions(+)
create mode 100644 download/_posts/2014-03-25-v1.4.8.html
diff --git a/download/_posts/2014-03-25-v1.4.8.html b/download/_posts/2014-03-25-v1.4.8.html
new file mode 100644
index 0000000..773fb72
--- /dev/null
+++ b/download/_posts/2014-03-25-v1.4.8.html
@@ -0,0 +1,8 @@
+---
+title: Processing.js v1.4.8
+---
+
+ Development - processing.js v1.4.8
+ Production - processing.min.js v1.4.8
+Alternatively, install through Bower by using bower install Processing.js
From ea7371d1c4e5e08b46f9c5beb2f5f8667b194c96 Mon Sep 17 00:00:00 2001
From: Pomax
Date: Thu, 17 Apr 2014 14:05:09 -0700
Subject: [PATCH 09/31] date correct for blog
---
blog/_posts/2014-04-17-processing-js-v1-4-8.html | 9 +++++++++
sync.sh | 0
2 files changed, 9 insertions(+)
create mode 100644 blog/_posts/2014-04-17-processing-js-v1-4-8.html
mode change 100755 => 100644 sync.sh
diff --git a/blog/_posts/2014-04-17-processing-js-v1-4-8.html b/blog/_posts/2014-04-17-processing-js-v1-4-8.html
new file mode 100644
index 0000000..c6b33c1
--- /dev/null
+++ b/blog/_posts/2014-04-17-processing-js-v1-4-8.html
@@ -0,0 +1,9 @@
+---
+layout: post
+title: Processing.js v1.4.8 released
+---
+It's been a few weeks and PRocessing.js got a few PRs merge in, so it's time for a new
+release: say hello to 1.4.8! This version has some fixes to PVector's rotate, support for
+randomGaussian(), and several unit tests to make sure those fixes pass muster. You
+can download the new version of Processing.js over on the download
+section, and let us know what's still missing!
diff --git a/sync.sh b/sync.sh
old mode 100755
new mode 100644
From 6f2a38712eb46656f48a865ba1a7d8d25c1cb8c6 Mon Sep 17 00:00:00 2001
From: Jon Buckley
Date: Fri, 28 Mar 2014 12:24:29 -0400
Subject: [PATCH 10/31] Make sync script executable
---
sync.sh | 0
1 file changed, 0 insertions(+), 0 deletions(-)
mode change 100644 => 100755 sync.sh
diff --git a/sync.sh b/sync.sh
old mode 100644
new mode 100755
From ab6ee002476bfd5780be56718fdef79c1d4cfb19 Mon Sep 17 00:00:00 2001
From: Jon Buckley
Date: Thu, 17 Apr 2014 17:35:46 -0400
Subject: [PATCH 11/31] Something to test PRs before they get merged
---
.travis.yml | 5 +++++
1 file changed, 5 insertions(+)
create mode 100644 .travis.yml
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..33b1554
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,5 @@
+language: ruby
+rvm:
+- 2.1.0
+install: bundle install
+script: bundle exec jekyll build
From c8e189127a3ddf53517203cd17ae3c289d023707 Mon Sep 17 00:00:00 2001
From: Jon Buckley
Date: Thu, 17 Apr 2014 17:37:05 -0400
Subject: [PATCH 12/31] Add CNAME for processingjs.org
---
CNAME | 1 +
1 file changed, 1 insertion(+)
create mode 100644 CNAME
diff --git a/CNAME b/CNAME
new file mode 100644
index 0000000..1c989db
--- /dev/null
+++ b/CNAME
@@ -0,0 +1 @@
+processingjs.org
From d0f6d1c21e9aafa41f573c642838e10a74f4c605 Mon Sep 17 00:00:00 2001
From: Jon Buckley
Date: Thu, 17 Apr 2014 18:04:58 -0400
Subject: [PATCH 13/31] sync files errrr day
---
.travis.yml | 6 ++++++
sync.sh | 3 ---
2 files changed, 6 insertions(+), 3 deletions(-)
delete mode 100755 sync.sh
diff --git a/.travis.yml b/.travis.yml
index 33b1554..5f34faa 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -3,3 +3,9 @@ rvm:
- 2.1.0
install: bundle install
script: bundle exec jekyll build
+script: bundle exec jekyll build
+after_success:
+- if [[ "$TRAVIS_PULL_REQUEST" != "false" ]]; then echo "Deployments are only done for branches. "; exit 0; fi
+- if [[ "$TRAVIS_BRANCH" != "master" ]]; then echo "Deployments are only done for the gh-pages branch. "; exit 0; fi
+- echo "Deploying commit $TRAVIS_COMMIT"
+- rsync -vaz _site/ -e ssh processingjs@ftp.processingjs.org:~/processingjs.org
diff --git a/sync.sh b/sync.sh
deleted file mode 100755
index 3085bbe..0000000
--- a/sync.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-rsync -vaz _site/ -e ssh processingjs@ftp.processingjs.org:~/processingjs.org
From 3087897a1257f378316fe05cb7d643b82d086b79 Mon Sep 17 00:00:00 2001
From: Jon Buckley
Date: Thu, 17 Apr 2014 18:31:34 -0400
Subject: [PATCH 14/31] Add ftp.processingjs.org to known_hosts
---
.travis.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.travis.yml b/.travis.yml
index 5f34faa..fbdc810 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -8,4 +8,5 @@ after_success:
- if [[ "$TRAVIS_PULL_REQUEST" != "false" ]]; then echo "Deployments are only done for branches. "; exit 0; fi
- if [[ "$TRAVIS_BRANCH" != "master" ]]; then echo "Deployments are only done for the gh-pages branch. "; exit 0; fi
- echo "Deploying commit $TRAVIS_COMMIT"
+- echo "ftp.processingjs.org,66.33.221.248 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDeGEiJ87RtUCZHAy3iJloLvcIJZnCA0k0naJJl9wYYr9wcIp9hqtsTK5SBKb/2omWYaOaIrlfKP2K2kI76BgIYydxlnyYrDTmeNiPiipR7KbSQeQQ6PUzlJfOjcxfSWBTQJUp5O+fSIW3y+P/iqzlaY5q9HRyyP47QrpwLV1C0eBpRJgaYj/WJ2nzR5JTXV2aPXPupygk5oyZq22TLkmrIEb+u+q+0iuKLZpMgUFeHcuMJF/XofZBoS/L5c2CpW/FsVMZr1GUXhFM7U8oGeQAmL0mrY2UwbwOz8cy4wlUbshFuPKEOHT29q2z5ZqpR2Svzhu4ljLl1cIJMk1L2FjCx" >> .ssh/known_hosts
- rsync -vaz _site/ -e ssh processingjs@ftp.processingjs.org:~/processingjs.org
From 4cfa4bebea22a844563b9ed81e7de02e41cb13f8 Mon Sep 17 00:00:00 2001
From: Jon Buckley
Date: Thu, 17 Apr 2014 18:56:18 -0400
Subject: [PATCH 15/31] ugh
---
.travis.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.travis.yml b/.travis.yml
index fbdc810..acd249e 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -8,5 +8,5 @@ after_success:
- if [[ "$TRAVIS_PULL_REQUEST" != "false" ]]; then echo "Deployments are only done for branches. "; exit 0; fi
- if [[ "$TRAVIS_BRANCH" != "master" ]]; then echo "Deployments are only done for the gh-pages branch. "; exit 0; fi
- echo "Deploying commit $TRAVIS_COMMIT"
-- echo "ftp.processingjs.org,66.33.221.248 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDeGEiJ87RtUCZHAy3iJloLvcIJZnCA0k0naJJl9wYYr9wcIp9hqtsTK5SBKb/2omWYaOaIrlfKP2K2kI76BgIYydxlnyYrDTmeNiPiipR7KbSQeQQ6PUzlJfOjcxfSWBTQJUp5O+fSIW3y+P/iqzlaY5q9HRyyP47QrpwLV1C0eBpRJgaYj/WJ2nzR5JTXV2aPXPupygk5oyZq22TLkmrIEb+u+q+0iuKLZpMgUFeHcuMJF/XofZBoS/L5c2CpW/FsVMZr1GUXhFM7U8oGeQAmL0mrY2UwbwOz8cy4wlUbshFuPKEOHT29q2z5ZqpR2Svzhu4ljLl1cIJMk1L2FjCx" >> .ssh/known_hosts
+- echo "ftp.processingjs.org,66.33.221.248 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDeGEiJ87RtUCZHAy3iJloLvcIJZnCA0k0naJJl9wYYr9wcIp9hqtsTK5SBKb/2omWYaOaIrlfKP2K2kI76BgIYydxlnyYrDTmeNiPiipR7KbSQeQQ6PUzlJfOjcxfSWBTQJUp5O+fSIW3y+P/iqzlaY5q9HRyyP47QrpwLV1C0eBpRJgaYj/WJ2nzR5JTXV2aPXPupygk5oyZq22TLkmrIEb+u+q+0iuKLZpMgUFeHcuMJF/XofZBoS/L5c2CpW/FsVMZr1GUXhFM7U8oGeQAmL0mrY2UwbwOz8cy4wlUbshFuPKEOHT29q2z5ZqpR2Svzhu4ljLl1cIJMk1L2FjCx" >> ~/.ssh/known_hosts
- rsync -vaz _site/ -e ssh processingjs@ftp.processingjs.org:~/processingjs.org
From c8b777cd2bf0f4e9b69bc0c536494ec921531791 Mon Sep 17 00:00:00 2001
From: Jon Buckley
Date: Thu, 17 Apr 2014 19:47:30 -0400
Subject: [PATCH 16/31] nope
---
.travis.yml | 6 ------
1 file changed, 6 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index acd249e..318436a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -4,9 +4,3 @@ rvm:
install: bundle install
script: bundle exec jekyll build
script: bundle exec jekyll build
-after_success:
-- if [[ "$TRAVIS_PULL_REQUEST" != "false" ]]; then echo "Deployments are only done for branches. "; exit 0; fi
-- if [[ "$TRAVIS_BRANCH" != "master" ]]; then echo "Deployments are only done for the gh-pages branch. "; exit 0; fi
-- echo "Deploying commit $TRAVIS_COMMIT"
-- echo "ftp.processingjs.org,66.33.221.248 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDeGEiJ87RtUCZHAy3iJloLvcIJZnCA0k0naJJl9wYYr9wcIp9hqtsTK5SBKb/2omWYaOaIrlfKP2K2kI76BgIYydxlnyYrDTmeNiPiipR7KbSQeQQ6PUzlJfOjcxfSWBTQJUp5O+fSIW3y+P/iqzlaY5q9HRyyP47QrpwLV1C0eBpRJgaYj/WJ2nzR5JTXV2aPXPupygk5oyZq22TLkmrIEb+u+q+0iuKLZpMgUFeHcuMJF/XofZBoS/L5c2CpW/FsVMZr1GUXhFM7U8oGeQAmL0mrY2UwbwOz8cy4wlUbshFuPKEOHT29q2z5ZqpR2Svzhu4ljLl1cIJMk1L2FjCx" >> ~/.ssh/known_hosts
-- rsync -vaz _site/ -e ssh processingjs@ftp.processingjs.org:~/processingjs.org
From f8924bb2f974bf475defa224921dae7f8f24857e Mon Sep 17 00:00:00 2001
From: Mike Kamermans
Date: Tue, 3 Feb 2015 12:01:32 -0800
Subject: [PATCH 17/31] Update index.html
---
community/index.html | 15 ++++-----------
1 file changed, 4 insertions(+), 11 deletions(-)
diff --git a/community/index.html b/community/index.html
index 53ddbb6..ffc5136 100644
--- a/community/index.html
+++ b/community/index.html
@@ -13,17 +13,6 @@ Community
-
-
-
- Bug Tracking with LightHouse
- The development team have chosen to go with LightHouse as the bug tracking system
- for Processing.js. If you think you may have stumbled accross a bug, or you are
- interested in joining in the development, visit
- Processing.js at Lighthouse .
-
-
-
@@ -31,6 +20,10 @@ Community
The current fork of the Processing.js repo at GitHub. Developers wishing to contribute
to Processing.js should sign-up at GitHub and pull the code to their local machines.
Then any changes you make can be easily integrated into the master version.
+ The development team have also chosen to go with Github as the bug tracking system
+ for Processing.js. If you think you may have stumbled accross a bug, or you are
+ interested in joining in the development, visit
+ Processing.js on Github .
From f0efeced622164099544525cfbe11ec5c307ebf7 Mon Sep 17 00:00:00 2001
From: Pomax
Date: Sat, 14 Feb 2015 21:44:52 -0800
Subject: [PATCH 18/31] old issues link
---
reference/index.html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/reference/index.html b/reference/index.html
index 68d83dd..9590788 100644
--- a/reference/index.html
+++ b/reference/index.html
@@ -8,7 +8,7 @@ Reference
The Processing.js community is working towards a 100% compatible API, allowing all native Java code to run in Javascript.
Items highlighted in red are not yet implemented .
The original Processing reference can be found on the Processing website
-If you encounter any problems with these commands or their documentation please file a bug
+
If you encounter any problems with these commands or their documentation please file a bug
From d37229f9ee34a8ad14e98516d99ba5f3cff2557e Mon Sep 17 00:00:00 2001
From: Mike Kamermans
Date: Thu, 19 Mar 2015 18:17:15 -0700
Subject: [PATCH 19/31] Internal container is called "processingInstances"
---
articles/_posts/2011-12-04-jsQuickStart.html | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/articles/_posts/2011-12-04-jsQuickStart.html b/articles/_posts/2011-12-04-jsQuickStart.html
index 58a5704..d7d9882 100644
--- a/articles/_posts/2011-12-04-jsQuickStart.html
+++ b/articles/_posts/2011-12-04-jsQuickStart.html
@@ -348,12 +348,12 @@
Reaching out from the Processing code to JavaScript is easier than going the other
way, since the JavaScript created by the Processing.js parser is not exposed directly
- on the global object. Instead, you gain access using the Processing.instances property.
+ on the global object. Instead, you gain access using the Processing.processingInstances property.
The Processing constructor keeps track of instances it creates, and makes them available
using the getInstanceById() method. By default, when a <canvas> has a data-processing-sources
attribute, its id is used as a unique identifier for the Processing instance. If
- no id attribute is provided, you can use Processing.instances[0].
+ no id attribute is provided, you can use Processing.processingInstances[0].
After you have a reference to the appropriate Processing instance, you can call
into it like so:
@@ -414,7 +414,7 @@
- Each Processing instance (i.e., Processing.instances) has an externals property,
+ Each Processing instance (i.e., Processing.processingInstances) has an externals property,
which is an object containing references to various non-Processing DOM/JavaScript
objects that can be useful. For example:
From 81d2732154ddb87fd6b7f2c6350260ee646b9ab2 Mon Sep 17 00:00:00 2001
From: Mike Kamermans
Date: Thu, 19 Mar 2015 18:35:52 -0700
Subject: [PATCH 20/31] revert - var is .instances
---
articles/_posts/2011-12-04-jsQuickStart.html | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/articles/_posts/2011-12-04-jsQuickStart.html b/articles/_posts/2011-12-04-jsQuickStart.html
index d7d9882..58a5704 100644
--- a/articles/_posts/2011-12-04-jsQuickStart.html
+++ b/articles/_posts/2011-12-04-jsQuickStart.html
@@ -348,12 +348,12 @@
Reaching out from the Processing code to JavaScript is easier than going the other
way, since the JavaScript created by the Processing.js parser is not exposed directly
- on the global object. Instead, you gain access using the Processing.processingInstances property.
+ on the global object. Instead, you gain access using the Processing.instances property.
The Processing constructor keeps track of instances it creates, and makes them available
using the getInstanceById() method. By default, when a <canvas> has a data-processing-sources
attribute, its id is used as a unique identifier for the Processing instance. If
- no id attribute is provided, you can use Processing.processingInstances[0].
+ no id attribute is provided, you can use Processing.instances[0].
After you have a reference to the appropriate Processing instance, you can call
into it like so:
@@ -414,7 +414,7 @@
- Each Processing instance (i.e., Processing.processingInstances) has an externals property,
+ Each Processing instance (i.e., Processing.instances) has an externals property,
which is an object containing references to various non-Processing DOM/JavaScript
objects that can be useful. For example:
From c99b2e92d682a73bdae936acaf65a7e5334872a8 Mon Sep 17 00:00:00 2001
From: Mike Kamermans
Date: Tue, 31 May 2016 14:14:10 -0700
Subject: [PATCH 21/31] Create ISSUE_TEMPLATE.md
---
ISSUE_TEMPLATE.md | 7 +++++++
1 file changed, 7 insertions(+)
create mode 100644 ISSUE_TEMPLATE.md
diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md
new file mode 100644
index 0000000..666a153
--- /dev/null
+++ b/ISSUE_TEMPLATE.md
@@ -0,0 +1,7 @@
+Thank you for finding a bug on the Processing.js website, or having a change request you'd like to see implemented.
+
+The Processing.js website is not under active maintenance at the moment, lacking developers that have
+the time to work on it. As such, any bug you find might take a long time to get a fix. However, if
+you're interested in fixing things yourself, I (Pomax) will be more than happy to review your suggested
+changes and merge them in if they fix the problem you were having without introducing problems
+due to side effects your code might have.
From 70f79da6d4c4d8804b9e442bfa1b5dbb8cbb2778 Mon Sep 17 00:00:00 2001
From: Mike Kamermans
Date: Mon, 1 Aug 2016 12:17:02 -0700
Subject: [PATCH 22/31] Update 2011-11-20-virion.html
---
exhibition/_posts/2011-11-20-virion.html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/exhibition/_posts/2011-11-20-virion.html b/exhibition/_posts/2011-11-20-virion.html
index 15f5a1e..6982596 100644
--- a/exhibition/_posts/2011-11-20-virion.html
+++ b/exhibition/_posts/2011-11-20-virion.html
@@ -3,7 +3,7 @@
- Virion
+ Virion
by Jonah Kagan, Varun Singh, Jonathan Koh, Charis Loke
A game written in Processing.js. Winner of Zynga's Hidden Agenda Facebook Game
Competition
From 0dbd4f915aa5d7909ad04f476a4f482837294c6e Mon Sep 17 00:00:00 2001
From: Mike Kamermans
Date: Mon, 1 Aug 2016 12:22:00 -0700
Subject: [PATCH 23/31] Update index.html
---
index.html | 28 +++++++++++++++-------------
1 file changed, 15 insertions(+), 13 deletions(-)
diff --git a/index.html b/index.html
index e5f0aa3..a19ccdf 100644
--- a/index.html
+++ b/index.html
@@ -3,8 +3,8 @@
---
-
- Virion
+
+ Virion
by Jonah Kagan, Varun Singh, Jonathan Koh, Charis Loke
@@ -19,13 +19,14 @@
-Processing.js 1.4.8 released!
+
-It's been a few weeks and PRocessing.js got a few PRs merge in, so it's time for a new
-release: say hello to 1.4.8! This version has some fixes to PVector's rotate, support for
-randomGaussian(), and several unit tests to make sure those fixes pass muster. You
-can download the new version of Processing.js over on the download
-section, and let us know what's still missing!
+Updates have been trickling in over the last few releases, and while the original dev team for Processing.js
+moved on, there are a number of enthusiastic users who have been finding problems with the library and have been
+willing to help fix them. As such, the current version has quite a few improvements compared to the version of
+Processing.js you might find bundled with some processing bundles, but: if there are things it doesn't do that
+you rely on, do head over to the Processing.js issue
+tracker and let people know.
Want to help out?
@@ -38,11 +39,12 @@ Want to help out?
About Processing.js
-Processing.js is the sister project of the popular Processing
-visual programming language, designed for the web. Processing.js makes your data visualizations,
-digital art, interactive animations, educational graphs, video games, etc. work using web standards
-and without any plug-ins. You write code using the Processing language, include it in your web
-page, and Processing.js does the rest. It's not magic, but almost.
+Processing.js is a project based on the popular Processing
+visual programming language, designed to bring Processing sketches to the web without a need for
+special browser plugins. Processing.js makes your data visualizations, digital art, interactive
+animations, educational graphs, video games, etc. work using web standards and without any plug-ins.
+You write code using the Processing language, include it in your web page, and Processing.js does
+the rest. It's not magic, but it's close.
Originally developed by Ben Fry and
Casey Reas , Processing started as an open source programming language based on Java to help
From 52d99f8670b1e8ed5a5ceee3be4b3275b8bd0450 Mon Sep 17 00:00:00 2001
From: Mike Kamermans
Date: Mon, 1 Aug 2016 12:22:57 -0700
Subject: [PATCH 24/31] Update 2011-07-14-processing-js-v1-2-3-released.html
---
blog/_posts/2011-07-14-processing-js-v1-2-3-released.html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/blog/_posts/2011-07-14-processing-js-v1-2-3-released.html b/blog/_posts/2011-07-14-processing-js-v1-2-3-released.html
index 79fbd62..55affa6 100644
--- a/blog/_posts/2011-07-14-processing-js-v1-2-3-released.html
+++ b/blog/_posts/2011-07-14-processing-js-v1-2-3-released.html
@@ -46,7 +46,7 @@
you thinking:
- Virion , winner of Zynga's Hidden Agenda Facebook Game Competition
+ Virion , winner of Zynga's Hidden Agenda Facebook Game Competition
Visualizing foursquare checkins with Processing.js
Beautiful Processing.js experiments
Processing.js WebGL 3D demo
From 4f0f5df6710b665d0c29ef29c74900f7712f5e97 Mon Sep 17 00:00:00 2001
From: Mike Kamermans
Date: Mon, 1 Aug 2016 12:24:46 -0700
Subject: [PATCH 25/31] Update index.html
---
download/index.html | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/download/index.html b/download/index.html
index b7dd35f..c68c4fe 100644
--- a/download/index.html
+++ b/download/index.html
@@ -4,8 +4,10 @@
{% assign current = site.categories.download.first %}
Download {{ current.title }}
-Download the latest Processing.js, including full and minified versions, examples,
-an API-only version without the Processing parser, or a complete zip file of everything.
+
Download the latest Processing.js from NPM .
+
+Alternatively, download it directly from the Github code repository.
+
Released {{ current.date | date_to_long_string }}
{{ current.content }}
From a15dcec9d3a08f49d7256005c3e6d26082a7f490 Mon Sep 17 00:00:00 2001
From: Mike Kamermans
Date: Mon, 1 Aug 2016 12:28:53 -0700
Subject: [PATCH 26/31] Create 2016-08-01-v0.6.0.html
---
"download/_posts/ \t2016-08-01-v0.6.0.html" | 8 ++++++++
1 file changed, 8 insertions(+)
create mode 100644 "download/_posts/ \t2016-08-01-v0.6.0.html"
diff --git "a/download/_posts/ \t2016-08-01-v0.6.0.html" "b/download/_posts/ \t2016-08-01-v0.6.0.html"
new file mode 100644
index 0000000..96f6228
--- /dev/null
+++ "b/download/_posts/ \t2016-08-01-v0.6.0.html"
@@ -0,0 +1,8 @@
+---
+title: Processing.js v1.6.0
+---
+
+ Development - processing.js v1.6.0
+ Production - processing.min.js v1.6.0
+Alternatively, install through NPM by using npom install processing-js
From 918076805b682f1f416f770caa330f7804509f3a Mon Sep 17 00:00:00 2001
From: Mike Kamermans
Date: Mon, 1 Aug 2016 12:29:19 -0700
Subject: [PATCH 27/31] Rename 2016-08-01-v0.6.0.html to
2016-08-01-v1.6.0.html
---
.../_posts/2016-08-01-v1.6.0.html | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename "download/_posts/ \t2016-08-01-v0.6.0.html" => download/_posts/2016-08-01-v1.6.0.html (100%)
diff --git "a/download/_posts/ \t2016-08-01-v0.6.0.html" b/download/_posts/2016-08-01-v1.6.0.html
similarity index 100%
rename from "download/_posts/ \t2016-08-01-v0.6.0.html"
rename to download/_posts/2016-08-01-v1.6.0.html
From 65da6262c4ecf5181a55b8e11a5d1cea9682aa3e Mon Sep 17 00:00:00 2001
From: Mike Kamermans
Date: Mon, 1 Aug 2016 12:30:18 -0700
Subject: [PATCH 28/31] Update _config.yml
---
_config.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/_config.yml b/_config.yml
index d5303c9..2931de2 100644
--- a/_config.yml
+++ b/_config.yml
@@ -1,4 +1,4 @@
# Github defaults
safe: true
lsi: false
-pygments: true
+highlighter: true
From 01bc4020ac7b9c7791ada75bfe19c75c29beefbb Mon Sep 17 00:00:00 2001
From: Mike Kamermans
Date: Mon, 1 Aug 2016 12:32:02 -0700
Subject: [PATCH 29/31] Update _config.yml
---
_config.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/_config.yml b/_config.yml
index 2931de2..93a2530 100644
--- a/_config.yml
+++ b/_config.yml
@@ -1,4 +1,4 @@
# Github defaults
safe: true
lsi: false
-highlighter: true
+highlighter: rouge
From 3533bb017221253de30a9a88d18d7f3f609fd6a8 Mon Sep 17 00:00:00 2001
From: Pomax
Date: Fri, 5 Jun 2020 15:05:55 -0700
Subject: [PATCH 30/31] This project is done
---
.gitignore | 6 -
.htaccess | 1 -
.rvmrc | 1 -
.travis.yml | 6 -
404.html | 5 -
CNAME | 1 -
Gemfile | 2 -
ISSUE_TEMPLATE.md | 7 -
README.md | 142 +-
_config.yml | 4 -
_layouts/default.html | 101 --
_layouts/post.html | 8 -
_layouts/withcc.html | 10 -
articles/_posts/2011-12-01-PomaxGuide.html | 1486 -----------------
.../_posts/2011-12-02-RenderingModes.html | 278 ---
articles/_posts/2011-12-03-p5QuickStart.html | 471 ------
articles/_posts/2011-12-04-jsQuickStart.html | 595 -------
articles/_posts/template.html | 7 -
articles/index.html | 12 -
.../2010-02-03-processingjs-04-released.html | 92 -
...2010-02-17-processingjs-v050-released.html | 89 -
...2010-02-26-processingjs-v060-released.html | 56 -
...2010-03-24-processingjs-v070-released.html | 73 -
...2010-03-26-processingjs-v071-released.html | 24 -
.../2010-04-09-processingjs-v08-released.html | 71 -
.../2010-05-11-processingjs-v09-released.html | 100 --
...2010-05-20-processingjs-v091-released.html | 29 -
...2010-06-16-processingjs-v094-released.html | 86 -
...2010-07-26-processingjs-v096-released.html | 66 -
...2010-08-16-processingjs-v097-released.html | 66 -
.../2010-11-18-processingjs-v10-released.html | 73 -
.../2011-03-01-processingjs-v11-released.html | 78 -
.../2011-05-31-processingjs-v12-released.html | 168 --
...2011-06-02-processingjs-v121-released.html | 22 -
...1-07-14-processing-js-v1-2-3-released.html | 137 --
...011-08-02-processing-js-siggraph-2011.html | 24 -
...1-08-24-processing-js-v1-3-0-released.html | 164 --
...011-09-05-meet-the-processing-js-team.html | 20 -
...1-10-06-processing-js-v1-3-5-released.html | 67 -
...1-10-13-processing-js-v1-3-6-released.html | 23 -
.../2011-10-25-processing-js-workshops.html | 37 -
...2-07-31-processing-js-v1-4-0-released.html | 77 -
...012-08-08-processing-js-v1-4-1-hotfix.html | 19 -
.../2014-03-25-processing-js-v1-4-7.html | 22 -
.../2014-03-25-processing-js-v1-4-8.html | 9 -
.../2014-04-17-processing-js-v1-4-8.html | 9 -
blog/_posts/template.html | 10 -
blog/index.html | 19 -
community/index.html | 57 -
css/bootstrap.css | 356 ----
css/processing-js.css | 239 ---
css/syntax.css | 60 -
download/_posts/2008-05-08-v0.0.0.html | 6 -
download/_posts/2010-01-02-v0.0.0.html | 6 -
download/_posts/2010-02-02-v0.4.0.html | 8 -
download/_posts/2010-02-17-v0.5.0.html | 9 -
download/_posts/2010-02-26-v0.6.0.html | 9 -
download/_posts/2010-03-24-v0.7.0.html | 9 -
download/_posts/2010-03-25-v0.7.1.html | 9 -
download/_posts/2010-04-08-v0.8.0.html | 9 -
download/_posts/2010-05-11-v0.9.0.html | 9 -
download/_posts/2010-05-20-v0.9.1.html | 9 -
download/_posts/2010-06-15-v0.9.3.html | 9 -
download/_posts/2010-06-16-v0.9.4.html | 9 -
download/_posts/2010-07-26-v0.9.6.html | 9 -
download/_posts/2010-08-14-v0.9.7.html | 9 -
download/_posts/2010-11-28-v1.0.0.html | 9 -
download/_posts/2011-02-27-v1.1.0.html | 9 -
download/_posts/2011-06-02-v1.2.1.html | 11 -
download/_posts/2011-07-14-v1.2.3.html | 11 -
download/_posts/2011-08-23-v1.3.0.html | 11 -
download/_posts/2011-10-13-v1.3.6.html | 11 -
download/_posts/2012-07-31-v1.4.0.html | 11 -
download/_posts/2012-08-09-v1.4.1.html | 11 -
download/_posts/2014-03-25-v1.4.7.html | 8 -
download/_posts/2014-03-25-v1.4.8.html | 8 -
download/_posts/2016-08-01-v1.6.0.html | 8 -
download/_posts/template.html | 11 -
download/archived.html | 14 -
download/index.html | 18 -
exhibition/_posts/2011-11-01-ui-dial.html | 8 -
exhibition/_posts/2011-11-02-sparklines.html | 8 -
.../_posts/2011-11-03-tower-of-defense.html | 8 -
exhibition/_posts/2011-11-04-mouse.html | 8 -
exhibition/_posts/2011-11-05-wiki.html | 8 -
.../_posts/2011-11-06-balldroppings.html | 8 -
exhibition/_posts/2011-11-07-twitch.html | 8 -
exhibition/_posts/2011-11-08-bittorrent.html | 8 -
exhibition/_posts/2011-11-09-askken.html | 8 -
exhibition/_posts/2011-11-10-abstract.html | 8 -
exhibition/_posts/2011-11-11-facebook.html | 8 -
exhibition/_posts/2011-11-12-inbox.html | 8 -
exhibition/_posts/2011-11-13-wordpress.html | 8 -
exhibition/_posts/2011-11-14-drupal.html | 8 -
exhibition/_posts/2011-11-15-asteroids.html | 8 -
exhibition/_posts/2011-11-16-jsnake.html | 8 -
.../_posts/2011-11-17-gif-tower-defense.html | 8 -
exhibition/_posts/2011-11-18-letters.html | 10 -
exhibition/_posts/2011-11-19-fizz-bloom.html | 9 -
exhibition/_posts/2011-11-20-virion.html | 10 -
exhibition/_posts/2011-11-21-kanji.html | 8 -
.../_posts/2011-11-22-clearcongress.html | 8 -
exhibition/_posts/2011-11-23-bezierinfo.html | 8 -
exhibition/_posts/2011-11-24-tunealiser.html | 8 -
exhibition/_posts/2011-11-25-toxiclibs.html | 8 -
exhibition/_posts/2011-11-26-p5p.html | 8 -
.../2011-11-27-animated-background.html | 8 -
exhibition/_posts/2011-11-28-afl-flags.html | 8 -
.../_posts/2011-11-29-twitter-flow.html | 8 -
exhibition/_posts/2011-11-30-coaltrace.html | 9 -
exhibition/_posts/2011-12-01-flocking.html | 8 -
exhibition/_posts/2011-12-02-pewpew.html | 8 -
exhibition/_posts/2011-12-03-fotn.html | 8 -
.../_posts/2011-12-04-coffeescript.html | 8 -
exhibition/_posts/2011-12-15-andor.html | 8 -
exhibition/_posts/2011-12-24-advent-2011.html | 8 -
.../_posts/2011-12-25-circle-of-fifths.html | 8 -
.../_posts/2012-07-13-mylifeaquatic.html | 10 -
exhibition/_posts/2013-04-26-delaunay.html | 8 -
exhibition/_posts/template.html | 8 -
exhibition/index.html | 10 -
favicon.ico | Bin 1150 -> 0 bytes
images/exhibition/abstract.jpg | Bin 43710 -> 0 bytes
images/exhibition/advent-2011.png | Bin 16027 -> 0 bytes
images/exhibition/afl-flags.png | Bin 22753 -> 0 bytes
images/exhibition/andor.png | Bin 6275 -> 0 bytes
images/exhibition/ask.png | Bin 14695 -> 0 bytes
images/exhibition/astroid.jpg | Bin 2592 -> 0 bytes
images/exhibition/balldroppings.gif | Bin 1044 -> 0 bytes
images/exhibition/bezier.png | Bin 5541 -> 0 bytes
images/exhibition/bittorrent.jpg | Bin 50042 -> 0 bytes
images/exhibition/cecinestpasparis.png | Bin 33119 -> 0 bytes
images/exhibition/circle-of-fifths.png | Bin 14839 -> 0 bytes
images/exhibition/clearcongress.png | Bin 15834 -> 0 bytes
images/exhibition/coaltrace.png | Bin 6940 -> 0 bytes
images/exhibition/delaunay.png | Bin 40786 -> 0 bytes
images/exhibition/drupal.png | Bin 8225 -> 0 bytes
images/exhibition/dryly.png | Bin 21290 -> 0 bytes
images/exhibition/facebook.png | Bin 16567 -> 0 bytes
images/exhibition/fizz-processingjs.png | Bin 18667 -> 0 bytes
images/exhibition/fotn.png | Bin 20568 -> 0 bytes
images/exhibition/gmail.png | Bin 16658 -> 0 bytes
images/exhibition/harry-flocking.png | Bin 6364 -> 0 bytes
images/exhibition/kanji.png | Bin 19229 -> 0 bytes
images/exhibition/letters.jpg | Bin 4325 -> 0 bytes
.../mousedrivengraphicequalizer.gif | Bin 1283 -> 0 bytes
images/exhibition/mylifeaquatic.png | Bin 14904 -> 0 bytes
images/exhibition/pewpew.png | Bin 4698 -> 0 bytes
images/exhibition/snake.jpg | Bin 5613 -> 0 bytes
images/exhibition/sparklines.gif | Bin 1488 -> 0 bytes
images/exhibition/towerOfDefense2.jpeg | Bin 4113 -> 0 bytes
images/exhibition/towerofdefense.gif | Bin 2543 -> 0 bytes
images/exhibition/toxiclibs.png | Bin 11876 -> 0 bytes
images/exhibition/tunealiser.png | Bin 6656 -> 0 bytes
images/exhibition/twitch.gif | Bin 2634 -> 0 bytes
images/exhibition/twitterflow.png | Bin 2008 -> 0 bytes
images/exhibition/uidial.gif | Bin 1501 -> 0 bytes
images/exhibition/virion.png | Bin 22526 -> 0 bytes
images/exhibition/wikivisualizations.gif | Bin 1670 -> 0 bytes
.../exhibition/wordpress-logo-stacked-rgb.png | Bin 10774 -> 0 bytes
images/exhibition/zepadovani.png | Bin 10640 -> 0 bytes
images/forkme-right-orange.png | Bin 9267 -> 0 bytes
images/github-v04.png | Bin 19407 -> 0 bytes
images/github.gif | Bin 704 -> 0 bytes
images/google-group.png | Bin 3584 -> 0 bytes
images/header.png | Bin 1340 -> 0 bytes
images/irc.gif | Bin 1047 -> 0 bytes
images/jmartinho_tr-lines_2011.png | Bin 6218 -> 0 bytes
images/lighthouseapp-logo.png | Bin 2142 -> 0 bytes
images/processingjs.gif | Bin 950 -> 0 bytes
images/seneca-logo.png | Bin 5031 -> 0 bytes
images/somerights20.gif | Bin 1082 -> 0 bytes
index.html | 90 -
js/buzz.js | 855 ----------
js/jquery.tweet.min.js | 3 -
js/processing.min.js | 431 -----
js/tabselector.js | 33 -
learning/basic/additivewave/index.html | 277 ---
learning/basic/alphamask/data/mask.jpg | Bin 2825 -> 0 bytes
learning/basic/alphamask/data/test.jpg | Bin 2792 -> 0 bytes
learning/basic/alphamask/index.html | 117 --
learning/basic/arctangent/index.html | 269 ---
learning/basic/arm/index.html | 155 --
learning/basic/array/index.html | 133 --
learning/basic/array2d/index.html | 115 --
learning/basic/arrayobjects/index.html | 293 ----
.../backgroundimage/data/milan_rubbish.jpg | Bin 19754 -> 0 bytes
learning/basic/backgroundimage/index.html | 133 --
learning/basic/bezier/index.html | 71 -
learning/basic/bezierellipse/index.html | 411 -----
learning/basic/brightness/index.html | 127 --
.../charactersstrings/data/rathausFrog.jpg | Bin 8342 -> 0 bytes
learning/basic/charactersstrings/index.html | 293 ----
learning/basic/clock/index.html | 127 --
learning/basic/colorwheel/index.html | 303 ----
learning/basic/compositeobjects/index.html | 421 -----
learning/basic/conditionals1/index.html | 97 --
learning/basic/conditionals2/index.html | 103 --
learning/basic/constrain/index.html | 163 --
learning/basic/coordinates/index.html | 163 --
learning/basic/creategraphics/data/mask.jpg | Bin 2825 -> 0 bytes
learning/basic/creategraphics/data/test.jpg | Bin 2792 -> 0 bytes
learning/basic/creategraphics/index.html | 129 --
learning/basic/createimage/data/mask.jpg | Bin 2825 -> 0 bytes
learning/basic/createimage/data/test.jpg | Bin 2792 -> 0 bytes
learning/basic/createimage/index.html | 99 --
learning/basic/creating/index.html | 107 --
learning/basic/datatypeconversion/index.html | 111 --
learning/basic/displaying/data/arch.jpg | Bin 23957 -> 0 bytes
learning/basic/displaying/index.html | 83 -
learning/basic/distance1d/index.html | 201 ---
learning/basic/distance2d/index.html | 119 --
learning/basic/doublerandom/index.html | 79 -
learning/basic/easing/index.html | 159 --
learning/basic/embeddediteration/index.html | 97 --
learning/basic/embeddedlinks/index.html | 283 ----
learning/basic/functions/index.html | 133 --
learning/basic/graphing2dequation/index.html | 157 --
learning/basic/hue/index.html | 125 --
learning/basic/incrementdecrement/index.html | 187 ---
learning/basic/index.html | 154 --
learning/basic/inheritance/index.html | 311 ----
learning/basic/integersfloats/index.html | 141 --
learning/basic/iteration/index.html | 185 --
learning/basic/keyboard/data/brugges.jpg | Bin 34371 -> 0 bytes
learning/basic/keyboard/index.html | 159 --
learning/basic/keyboardfunctions/index.html | 353 ----
learning/basic/letters/index.html | 243 ---
learning/basic/lineargradient/index.html | 289 ----
learning/basic/loadingimages/index.html | 55 -
learning/basic/logicaloperators/index.html | 169 --
learning/basic/loop/index.html | 157 --
learning/basic/milliseconds/index.html | 103 --
learning/basic/modulo/index.html | 125 --
learning/basic/mouse1d/index.html | 201 ---
learning/basic/mouse2d/index.html | 93 --
learning/basic/mousefunctions/index.html | 273 ---
learning/basic/mousepress/index.html | 91 -
learning/basic/mousesignals/index.html | 215 ---
.../basic/multipleconstructors/index.html | 187 ---
learning/basic/neighborhood/index.html | 1199 -------------
learning/basic/noise1d/index.html | 145 --
learning/basic/noise2d/index.html | 181 --
learning/basic/noise3d/index.html | 207 ---
learning/basic/noisewave/index.html | 241 ---
learning/basic/noloop/index.html | 125 --
learning/basic/objects/index.html | 287 ----
learning/basic/operatorprecedence/index.html | 213 ---
learning/basic/piechart/index.html | 91 -
learning/basic/pointillism/data/eames.jpg | Bin 44496 -> 0 bytes
learning/basic/pointillism/data/sunflower.jpg | Bin 36656 -> 0 bytes
learning/basic/pointillism/index.html | 129 --
learning/basic/pointslines/index.html | 129 --
learning/basic/polartocartesian/index.html | 193 ---
learning/basic/radialgradient/index.html | 231 ---
learning/basic/random/index.html | 75 -
learning/basic/reading/data/cait.jpg | Bin 7920 -> 0 bytes
learning/basic/reading/index.html | 177 --
learning/basic/recursion/index.html | 129 --
learning/basic/recursion2/index.html | 129 --
learning/basic/redraw/index.html | 141 --
learning/basic/relativity/index.html | 145 --
learning/basic/rotate/index.html | 147 --
learning/basic/saturation/index.html | 127 --
learning/basic/scale/index.html | 151 --
learning/basic/setupdraw/index.html | 119 --
learning/basic/shapeprimitives/index.html | 77 -
learning/basic/simplecurves/index.html | 323 ----
learning/basic/sine/index.html | 185 --
learning/basic/sinecosine/index.html | 231 ---
learning/basic/sinewave/index.html | 221 ---
learning/basic/sprite/data/sky.jpg | Bin 3766 -> 0 bytes
learning/basic/sprite/data/teddy.gif | Bin 746 -> 0 bytes
learning/basic/sprite/index.html | 185 --
learning/basic/statementscomments/index.html | 77 -
learning/basic/storinginput/index.html | 157 --
learning/basic/translate/index.html | 163 --
.../basic/transparency/data/construct.jpg | Bin 34699 -> 0 bytes
learning/basic/transparency/data/wash.jpg | Bin 34685 -> 0 bytes
learning/basic/transparency/index.html | 117 --
learning/basic/triangleflower/index.html | 183 --
learning/basic/trianglestrip/index.html | 137 --
learning/basic/truefalse/index.html | 133 --
learning/basic/variables/index.html | 95 --
learning/basic/variablescope/index.html | 233 ---
learning/basic/vertices/index.html | 179 --
learning/basic/wavegradient/index.html | 141 --
learning/basic/widthheight/index.html | 67 -
learning/basic/words/index.html | 121 --
learning/custom/index.html | 18 -
learning/custom/intersect/index.html | 244 ---
learning/custom/molten/index.html | 292 ----
learning/custom/snake/data/dirt.jpg | Bin 34606 -> 0 bytes
learning/custom/snake/index.html | 159 --
learning/index.html | 388 -----
learning/screens/Picture-14.png | Bin 18978 -> 0 bytes
learning/screens/Picture-15.png | Bin 29282 -> 0 bytes
learning/screens/Picture-16.png | Bin 1367 -> 0 bytes
learning/screens/Picture-17.png | Bin 2821 -> 0 bytes
learning/screens/Picture-18.png | Bin 4099 -> 0 bytes
learning/screens/Picture-19.png | Bin 2647 -> 0 bytes
learning/screens/Picture-20.png | Bin 8807 -> 0 bytes
learning/screens/Picture-21.png | Bin 1323 -> 0 bytes
learning/screens/Picture-22.png | Bin 8423 -> 0 bytes
learning/screens/Picture-23.png | Bin 2916 -> 0 bytes
learning/screens/Picture-24.png | Bin 855 -> 0 bytes
learning/screens/Picture-25.png | Bin 3673 -> 0 bytes
learning/screens/Picture-26.png | Bin 887 -> 0 bytes
learning/screens/Picture-27.png | Bin 698 -> 0 bytes
learning/screens/Picture-28.png | Bin 1415 -> 0 bytes
learning/screens/Picture-29.png | Bin 1823 -> 0 bytes
learning/screens/Picture-30.png | Bin 1336 -> 0 bytes
learning/screens/Picture-31.png | Bin 1982 -> 0 bytes
learning/screens/Picture-32.png | Bin 1858 -> 0 bytes
learning/screens/Picture-33.png | Bin 1381 -> 0 bytes
learning/screens/Picture-34.png | Bin 6815 -> 0 bytes
learning/screens/Picture-35.png | Bin 8575 -> 0 bytes
learning/screens/Picture-36.png | Bin 842 -> 0 bytes
learning/screens/Picture-37.png | Bin 916 -> 0 bytes
learning/screens/Picture-38.png | Bin 5586 -> 0 bytes
learning/screens/Picture-39.png | Bin 7204 -> 0 bytes
learning/screens/Picture-40.png | Bin 1831 -> 0 bytes
learning/screens/Picture-41.png | Bin 779 -> 0 bytes
learning/screens/Picture-42.png | Bin 2964 -> 0 bytes
learning/screens/Picture-43.png | Bin 1603 -> 0 bytes
learning/screens/Picture-44.png | Bin 781 -> 0 bytes
learning/screens/Picture-45.png | Bin 1756 -> 0 bytes
learning/screens/Picture-46.png | Bin 1468 -> 0 bytes
learning/screens/Picture-47.png | Bin 2955 -> 0 bytes
learning/screens/Picture-48.png | Bin 1426 -> 0 bytes
learning/screens/Picture-49.png | Bin 1559 -> 0 bytes
learning/screens/Picture-50.png | Bin 3669 -> 0 bytes
learning/screens/Picture-51.png | Bin 3288 -> 0 bytes
learning/screens/Picture-52.png | Bin 2220 -> 0 bytes
learning/screens/molten2.png | Bin 7532 -> 0 bytes
.../animatedsprite/data/PT_Shifty_0000.gif | Bin 314 -> 0 bytes
.../animatedsprite/data/PT_Shifty_0001.gif | Bin 314 -> 0 bytes
.../animatedsprite/data/PT_Shifty_0002.gif | Bin 318 -> 0 bytes
.../animatedsprite/data/PT_Shifty_0003.gif | Bin 328 -> 0 bytes
.../animatedsprite/data/PT_Shifty_0004.gif | Bin 343 -> 0 bytes
.../animatedsprite/data/PT_Shifty_0005.gif | Bin 379 -> 0 bytes
.../animatedsprite/data/PT_Shifty_0006.gif | Bin 420 -> 0 bytes
.../animatedsprite/data/PT_Shifty_0007.gif | Bin 501 -> 0 bytes
.../animatedsprite/data/PT_Shifty_0008.gif | Bin 615 -> 0 bytes
.../animatedsprite/data/PT_Shifty_0009.gif | Bin 733 -> 0 bytes
.../animatedsprite/data/PT_Shifty_0010.gif | Bin 806 -> 0 bytes
.../animatedsprite/data/PT_Shifty_0011.gif | Bin 842 -> 0 bytes
.../animatedsprite/data/PT_Shifty_0012.gif | Bin 877 -> 0 bytes
.../animatedsprite/data/PT_Shifty_0013.gif | Bin 877 -> 0 bytes
.../animatedsprite/data/PT_Shifty_0014.gif | Bin 951 -> 0 bytes
.../animatedsprite/data/PT_Shifty_0015.gif | Bin 934 -> 0 bytes
.../animatedsprite/data/PT_Shifty_0016.gif | Bin 917 -> 0 bytes
.../animatedsprite/data/PT_Shifty_0017.gif | Bin 907 -> 0 bytes
.../animatedsprite/data/PT_Shifty_0018.gif | Bin 907 -> 0 bytes
.../animatedsprite/data/PT_Shifty_0019.gif | Bin 892 -> 0 bytes
.../animatedsprite/data/PT_Shifty_0020.gif | Bin 854 -> 0 bytes
.../animatedsprite/data/PT_Shifty_0021.gif | Bin 841 -> 0 bytes
.../animatedsprite/data/PT_Shifty_0022.gif | Bin 886 -> 0 bytes
.../animatedsprite/data/PT_Shifty_0023.gif | Bin 805 -> 0 bytes
.../animatedsprite/data/PT_Shifty_0024.gif | Bin 733 -> 0 bytes
.../animatedsprite/data/PT_Shifty_0025.gif | Bin 667 -> 0 bytes
.../animatedsprite/data/PT_Shifty_0026.gif | Bin 596 -> 0 bytes
.../animatedsprite/data/PT_Shifty_0027.gif | Bin 539 -> 0 bytes
.../animatedsprite/data/PT_Shifty_0028.gif | Bin 503 -> 0 bytes
.../animatedsprite/data/PT_Shifty_0029.gif | Bin 451 -> 0 bytes
.../animatedsprite/data/PT_Shifty_0030.gif | Bin 392 -> 0 bytes
.../animatedsprite/data/PT_Shifty_0031.gif | Bin 351 -> 0 bytes
.../animatedsprite/data/PT_Shifty_0032.gif | Bin 333 -> 0 bytes
.../animatedsprite/data/PT_Shifty_0033.gif | Bin 323 -> 0 bytes
.../animatedsprite/data/PT_Shifty_0034.gif | Bin 316 -> 0 bytes
.../animatedsprite/data/PT_Shifty_0035.gif | Bin 316 -> 0 bytes
.../animatedsprite/data/PT_Shifty_0036.gif | Bin 315 -> 0 bytes
.../animatedsprite/data/PT_Shifty_0037.gif | Bin 312 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0000.gif | Bin 305 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0001.gif | Bin 309 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0002.gif | Bin 310 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0003.gif | Bin 310 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0004.gif | Bin 315 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0005.gif | Bin 329 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0006.gif | Bin 339 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0007.gif | Bin 354 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0008.gif | Bin 390 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0009.gif | Bin 415 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0010.gif | Bin 451 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0011.gif | Bin 482 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0012.gif | Bin 546 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0013.gif | Bin 566 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0014.gif | Bin 607 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0015.gif | Bin 692 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0016.gif | Bin 778 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0017.gif | Bin 853 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0018.gif | Bin 914 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0019.gif | Bin 936 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0020.gif | Bin 968 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0021.gif | Bin 971 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0022.gif | Bin 987 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0023.gif | Bin 1013 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0024.gif | Bin 1014 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0025.gif | Bin 1002 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0026.gif | Bin 976 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0027.gif | Bin 984 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0028.gif | Bin 936 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0029.gif | Bin 891 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0030.gif | Bin 826 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0031.gif | Bin 717 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0032.gif | Bin 625 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0033.gif | Bin 543 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0034.gif | Bin 486 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0035.gif | Bin 468 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0036.gif | Bin 453 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0037.gif | Bin 440 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0038.gif | Bin 428 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0039.gif | Bin 410 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0040.gif | Bin 387 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0041.gif | Bin 351 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0042.gif | Bin 329 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0043.gif | Bin 322 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0044.gif | Bin 318 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0045.gif | Bin 315 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0046.gif | Bin 310 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0047.gif | Bin 311 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0048.gif | Bin 311 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0049.gif | Bin 312 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0050.gif | Bin 312 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0051.gif | Bin 311 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0052.gif | Bin 308 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0053.gif | Bin 306 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0054.gif | Bin 303 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0055.gif | Bin 303 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0056.gif | Bin 306 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0057.gif | Bin 308 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0058.gif | Bin 306 -> 0 bytes
.../animatedsprite/data/PT_Teddy_0059.gif | Bin 306 -> 0 bytes
learning/topic/animatedsprite/index.html | 407 -----
learning/topic/animator/index.html | 183 --
learning/topic/blur/data/trees.jpg | Bin 34820 -> 0 bytes
learning/topic/blur/index.html | 181 --
learning/topic/bounce/index.html | 193 ---
learning/topic/bouncybubbles/index.html | 385 -----
learning/topic/brightness/data/wires.jpg | Bin 12813 -> 0 bytes
learning/topic/brightness/index.html | 189 ---
learning/topic/brownian/index.html | 197 ---
learning/topic/button/index.html | 401 -----
learning/topic/buttons/index.html | 877 ----------
learning/topic/chain/index.html | 269 ---
learning/topic/circlecollision/index.html | 659 --------
learning/topic/collision/index.html | 321 ----
learning/topic/continuouslines/index.html | 73 -
learning/topic/convolution/data/end.jpg | Bin 36399 -> 0 bytes
learning/topic/convolution/index.html | 301 ----
learning/topic/conway/index.html | 317 ----
learning/topic/customtool/data/milan.jpg | Bin 8729 -> 0 bytes
learning/topic/customtool/data/paris.jpg | Bin 67866 -> 0 bytes
learning/topic/customtool/index.html | 345 ----
learning/topic/edgedetection/data/house.jpg | Bin 26723 -> 0 bytes
learning/topic/edgedetection/index.html | 167 --
learning/topic/flocking/index.html | 1445 ----------------
learning/topic/fluid/index.html | 829 ---------
learning/topic/follow1/index.html | 161 --
learning/topic/follow2/index.html | 169 --
learning/topic/follow3/index.html | 177 --
learning/topic/handles/index.html | 561 -------
learning/topic/histogram/data/cdi01_g.jpg | Bin 26047 -> 0 bytes
learning/topic/histogram/index.html | 185 --
learning/topic/imagebutton/data/base.gif | Bin 774 -> 0 bytes
learning/topic/imagebutton/data/down.gif | Bin 656 -> 0 bytes
learning/topic/imagebutton/data/roll.gif | Bin 774 -> 0 bytes
learning/topic/imagebutton/index.html | 419 -----
learning/topic/index.html | 97 --
learning/topic/koch/index.html | 699 --------
learning/topic/linear/index.html | 107 --
.../topic/linearimage/data/florence03.jpg | Bin 58018 -> 0 bytes
learning/topic/linearimage/index.html | 231 ---
learning/topic/loadfile1/data/positions.txt | 206 ---
learning/topic/loadfile1/index.html | 123 --
learning/topic/loadfile2/data/cars2.tsv | 1 -
learning/topic/loadfile2/index.html | 287 ----
learning/topic/mandelbrot/index.html | 281 ----
learning/topic/movingoncurves/index.html | 203 ---
.../topic/multipleparticlesystems/index.html | 1323 ---------------
learning/topic/pattern/index.html | 139 --
learning/topic/penrosesnowflake/index.html | 825 ---------
learning/topic/penrosetile/index.html | 933 -----------
learning/topic/pentigree/index.html | 717 --------
learning/topic/pixelarray/data/ystone08.jpg | Bin 56999 -> 0 bytes
learning/topic/pixelarray/index.html | 185 --
learning/topic/puff/index.html | 353 ----
learning/topic/pulses/index.html | 141 --
learning/topic/reach1/index.html | 191 ---
learning/topic/reach2/index.html | 243 ---
learning/topic/reach3/index.html | 311 ----
learning/topic/reflection1/index.html | 513 ------
learning/topic/reflection2/index.html | 701 --------
learning/topic/rollover/index.html | 355 ----
learning/topic/scribbleplotter/index.html | 367 ----
learning/topic/scrollbar/data/seedBottom.jpg | Bin 13319 -> 0 bytes
learning/topic/scrollbar/data/seedTop.jpg | Bin 15044 -> 0 bytes
learning/topic/scrollbar/index.html | 495 ------
.../topic/sequential/data/PT_anim0000.gif | Bin 3840 -> 0 bytes
.../topic/sequential/data/PT_anim0001.gif | Bin 3819 -> 0 bytes
.../topic/sequential/data/PT_anim0002.gif | Bin 3910 -> 0 bytes
.../topic/sequential/data/PT_anim0003.gif | Bin 3750 -> 0 bytes
.../topic/sequential/data/PT_anim0004.gif | Bin 3681 -> 0 bytes
.../topic/sequential/data/PT_anim0005.gif | Bin 3657 -> 0 bytes
.../topic/sequential/data/PT_anim0006.gif | Bin 3437 -> 0 bytes
.../topic/sequential/data/PT_anim0007.gif | Bin 3547 -> 0 bytes
.../topic/sequential/data/PT_anim0008.gif | Bin 3631 -> 0 bytes
.../topic/sequential/data/PT_anim0009.gif | Bin 3651 -> 0 bytes
.../topic/sequential/data/PT_anim0010.gif | Bin 3695 -> 0 bytes
.../topic/sequential/data/PT_anim0011.gif | Bin 3827 -> 0 bytes
learning/topic/sequential/index.html | 100 --
.../topic/simpleparticlesystem/index.html | 1055 ------------
learning/topic/smoke/index.html | 1063 ------------
.../smokeparticlesystem/data/texture.gif | Bin 1829 -> 0 bytes
learning/topic/smokeparticlesystem/index.html | 1299 --------------
learning/topic/softbody/index.html | 397 -----
learning/topic/spore1/index.html | 525 ------
learning/topic/spore2/index.html | 689 --------
learning/topic/spring/index.html | 393 -----
learning/topic/springs/index.html | 645 -------
learning/topic/tickle/index.html | 131 --
learning/topic/tileimages/index.html | 159 --
learning/topic/tree/index.html | 227 ---
learning/topic/wolfram/index.html | 521 ------
reference/Array/index.html | 142 --
reference/ArrayList/index.html | 166 --
reference/HALF_PI.gif | Bin 2296 -> 0 bytes
reference/HALF_PI/index.html | 110 --
reference/HashMap/index.html | 74 -
reference/Object/index.html | 164 --
reference/PFont.gif | Bin 646 -> 0 bytes
reference/PFont/index.html | 76 -
reference/PFont_list_/index.html | 59 -
reference/PGraphics/index.html | 95 --
reference/PGraphics_beginDraw_/index.html | 62 -
reference/PGraphics_endDraw_/index.html | 61 -
reference/PI.gif | Bin 2451 -> 0 bytes
reference/PI/index.html | 112 --
reference/PImage.jpg | Bin 10095 -> 0 bytes
reference/PImage/index.html | 147 --
reference/PImage_blend_/index.html | 144 --
reference/PImage_blend_add.jpg | Bin 7988 -> 0 bytes
reference/PImage_blend_darkest.jpg | Bin 9234 -> 0 bytes
reference/PImage_blend_lightest.jpg | Bin 8760 -> 0 bytes
reference/PImage_blend_subtract.jpg | Bin 8754 -> 0 bytes
reference/PImage_copy.jpg | Bin 11455 -> 0 bytes
reference/PImage_copy_/index.html | 101 --
reference/PImage_filter_/index.html | 85 -
reference/PImage_get.jpg | Bin 7336 -> 0 bytes
reference/PImage_get2.jpg | Bin 11455 -> 0 bytes
reference/PImage_get_/index.html | 95 --
reference/PImage_height.jpg | Bin 5084 -> 0 bytes
reference/PImage_height/index.html | 48 -
reference/PImage_loadPixels_/index.html | 62 -
reference/PImage_mask_/index.html | 73 -
reference/PImage_pixels.jpg | Bin 9799 -> 0 bytes
reference/PImage_pixels/index.html | 70 -
reference/PImage_resize.jpg | Bin 28170 -> 0 bytes
reference/PImage_resize_/index.html | 74 -
reference/PImage_resize_2.jpg | Bin 28546 -> 0 bytes
reference/PImage_save_/index.html | 70 -
reference/PImage_set.jpg | Bin 8815 -> 0 bytes
reference/PImage_set_/index.html | 81 -
reference/PImage_updatePixels_/index.html | 81 -
reference/PImage_width.jpg | Bin 5084 -> 0 bytes
reference/PImage_width/index.html | 48 -
reference/PShape/index.html | 123 --
reference/PShape_disableStyle.jpg | Bin 6894 -> 0 bytes
reference/PShape_disableStyle_/index.html | 59 -
reference/PShape_enableStyle.jpg | Bin 7193 -> 0 bytes
reference/PShape_enableStyle_/index.html | 60 -
reference/PShape_getChild.jpg | Bin 3919 -> 0 bytes
reference/PShape_getChild_/index.html | 67 -
reference/PShape_height/index.html | 53 -
reference/PShape_isVisible_/index.html | 64 -
reference/PShape_rotateX_/index.html | 76 -
reference/PShape_rotateY_/index.html | 76 -
reference/PShape_rotateZ_/index.html | 76 -
reference/PShape_rotate_/index.html | 78 -
reference/PShape_scale_/index.html | 92 -
reference/PShape_setVisible_/index.html | 68 -
reference/PShape_translate_/index.html | 84 -
reference/PShape_visible.jpg | Bin 7629 -> 0 bytes
reference/PShape_width/index.html | 53 -
reference/PVector/index.html | 165 --
reference/PVector_add_/index.html | 126 --
reference/PVector_angleBetween_/index.html | 63 -
reference/PVector_array_/index.html | 57 -
reference/PVector_cross_/index.html | 57 -
reference/PVector_dist_/index.html | 73 -
reference/PVector_div_/index.html | 130 --
reference/PVector_dot_/index.html | 86 -
reference/PVector_get_/index.html | 63 -
reference/PVector_limit_/index.html | 56 -
reference/PVector_mag_/index.html | 60 -
reference/PVector_mult_/index.html | 130 --
reference/PVector_normalize_/index.html | 52 -
reference/PVector_set_/index.html | 103 --
reference/PVector_sub_/index.html | 125 --
reference/PVector_x/index.html | 58 -
reference/PVector_y/index.html | 59 -
reference/PVector_z/index.html | 58 -
reference/QUARTER_PI/index.html | 82 -
reference/String/index.html | 246 ---
reference/String_charAt_/index.html | 64 -
reference/String_equals_/index.html | 67 -
reference/String_indexOf_/index.html | 69 -
reference/String_length_/index.html | 59 -
reference/String_substring_/index.html | 69 -
reference/String_toLowerCase_/index.html | 58 -
reference/String_toUpperCase_/index.html | 58 -
reference/TWO_PI.gif | Bin 2631 -> 0 bytes
reference/TWO_PI/index.html | 110 --
reference/XMLElement/index.html | 122 --
.../XMLElement_getChildCount_/index.html | 69 -
reference/XMLElement_getChild_/index.html | 95 --
reference/XMLElement_getChildren_/index.html | 91 -
reference/XMLElement_getContent_/index.html | 73 -
.../XMLElement_getFloatAttribute_/index.html | 86 -
.../XMLElement_getIntAttribute_/index.html | 85 -
reference/XMLElement_getName_/index.html | 71 -
.../XMLElement_getStringAttribute_/index.html | 86 -
reference/abs_/index.html | 90 -
reference/acos_/index.html | 66 -
reference/add assign/index.html | 118 --
reference/addition/index.html | 128 --
reference/alpha_.gif | Bin 2433 -> 0 bytes
reference/alpha_/index.html | 120 --
reference/ambientLight_.gif | Bin 317 -> 0 bytes
reference/ambientLight_/index.html | 95 --
reference/ambient_.jpg | Bin 3158 -> 0 bytes
reference/ambient_/index.html | 85 -
reference/append_/index.html | 62 -
reference/applyMatrix_.gif | Bin 713 -> 0 bytes
reference/applyMatrix_/index.html | 76 -
reference/arc_.gif | Bin 2410 -> 0 bytes
reference/arc_/index.html | 170 --
reference/array access/index.html | 128 --
reference/arrayCopy_/index.html | 78 -
reference/asin_/index.html | 68 -
reference/assign/index.html | 108 --
reference/atan2_/index.html | 120 --
reference/atan_/index.html | 68 -
reference/background_.gif | Bin 1771 -> 0 bytes
reference/background_/index.html | 202 ---
reference/background_2.gif | Bin 2249 -> 0 bytes
reference/background_3.jpg | Bin 3706 -> 0 bytes
reference/beginCamera_.gif | Bin 314 -> 0 bytes
reference/beginCamera_/index.html | 68 -
reference/beginShape_.gif | Bin 2160 -> 0 bytes
reference/beginShape_/index.html | 252 ---
reference/beginShape_0.gif | Bin 2477 -> 0 bytes
reference/beginShape_2.gif | Bin 2138 -> 0 bytes
reference/beginShape_3.gif | Bin 2242 -> 0 bytes
reference/beginShape_4.gif | Bin 2276 -> 0 bytes
reference/beginShape_5.gif | Bin 2511 -> 0 bytes
reference/beginShape_6.gif | Bin 2777 -> 0 bytes
reference/beginShape_65.gif | Bin 2565 -> 0 bytes
reference/beginShape_7.gif | Bin 2541 -> 0 bytes
reference/beginShape_8.gif | Bin 2636 -> 0 bytes
reference/beginShape_9.gif | Bin 2272 -> 0 bytes
reference/bezierDetail_.gif | Bin 386 -> 0 bytes
reference/bezierDetail_/index.html | 73 -
reference/bezierPoint_.gif | Bin 295 -> 0 bytes
reference/bezierPoint_/index.html | 83 -
reference/bezierTangent_.gif | Bin 407 -> 0 bytes
reference/bezierTangent_/index.html | 104 --
reference/bezierTangent_2.gif | Bin 355 -> 0 bytes
reference/bezierVertex_.gif | Bin 2224 -> 0 bytes
reference/bezierVertex_/index.html | 212 ---
reference/bezierVertex_2.gif | Bin 2312 -> 0 bytes
reference/bezier_.gif | Bin 2319 -> 0 bytes
reference/bezier_/index.html | 156 --
reference/bezier_2.gif | Bin 2300 -> 0 bytes
reference/binary_/index.html | 65 -
reference/bitwise AND/index.html | 150 --
reference/bitwise OR/index.html | 128 --
reference/blendColor_/index.html | 77 -
reference/blend_/index.html | 136 --
reference/blend_add.jpg | Bin 7988 -> 0 bytes
reference/blend_color.gif | Bin 561 -> 0 bytes
reference/blend_darkest.jpg | Bin 9234 -> 0 bytes
reference/blend_lightest.jpg | Bin 8760 -> 0 bytes
reference/blend_subtract.jpg | Bin 8754 -> 0 bytes
reference/blue_.gif | Bin 2500 -> 0 bytes
reference/blue_/index.html | 122 --
reference/boolean.gif | Bin 2565 -> 0 bytes
reference/boolean/index.html | 128 --
reference/boolean_/index.html | 115 --
reference/box_.gif | Bin 451 -> 0 bytes
reference/box_/index.html | 72 -
reference/box_2.gif | Bin 344 -> 0 bytes
reference/break/index.html | 88 -
reference/brightness_.gif | Bin 362 -> 0 bytes
reference/brightness_/index.html | 67 -
reference/byte/index.html | 118 --
reference/byte_/index.html | 118 --
reference/camera_/index.html | 103 --
reference/case/index.html | 132 --
reference/ceil_/index.html | 98 --
reference/char/index.html | 114 --
reference/char_/index.html | 124 --
reference/class/index.html | 170 --
reference/color datatype/index.html | 158 --
reference/color.gif | Bin 2484 -> 0 bytes
reference/colorMode_.jpg | Bin 1528 -> 0 bytes
reference/colorMode_/index.html | 186 ---
reference/colorMode_2.jpg | Bin 1713 -> 0 bytes
reference/color_.gif | Bin 2358 -> 0 bytes
reference/color_/index.html | 168 --
reference/comma/index.html | 100 --
reference/comment/index.html | 112 --
reference/concat_/index.html | 61 -
reference/conditional/index.html | 160 --
reference/constrain_/index.html | 138 --
reference/continue/index.html | 82 -
reference/copy_.jpg | Bin 11147 -> 0 bytes
reference/copy_/index.html | 96 --
reference/cos_.gif | Bin 2496 -> 0 bytes
reference/cos_/index.html | 110 --
reference/createFont_/index.html | 96 --
reference/createGraphics_/index.html | 170 --
reference/createImage.jpg | Bin 1535 -> 0 bytes
reference/createImage_/index.html | 142 --
reference/createImage_2.jpg | Bin 1570 -> 0 bytes
reference/crisp/index.html | 145 --
reference/curly braces/index.html | 128 --
reference/cursor_/index.html | 83 -
reference/curveDetail_.gif | Bin 399 -> 0 bytes
reference/curveDetail_/index.html | 80 -
reference/curvePoint_.gif | Bin 301 -> 0 bytes
reference/curvePoint_/index.html | 81 -
reference/curveTangent_.gif | Bin 246 -> 0 bytes
reference/curveTangent_/index.html | 82 -
reference/curveTightness_.gif | Bin 2436 -> 0 bytes
reference/curveTightness_/index.html | 166 --
reference/curveVertex_.gif | Bin 2400 -> 0 bytes
reference/curveVertex_/index.html | 148 --
reference/curve_.gif | Bin 2253 -> 0 bytes
reference/curve_/index.html | 146 --
reference/day_/index.html | 146 --
reference/decrement/index.html | 104 --
reference/default/index.html | 126 --
reference/degrees_/index.html | 100 --
reference/directionalLight_.jpg | Bin 2634 -> 0 bytes
reference/directionalLight_/index.html | 92 -
reference/directionalLight_2.jpg | Bin 2325 -> 0 bytes
reference/directional_ambient_.jpg | Bin 3171 -> 0 bytes
reference/dist_/index.html | 170 --
reference/divide assign/index.html | 112 --
reference/divide/index.html | 110 --
reference/doc comment/index.html | 110 --
reference/dot/index.html | 170 --
reference/double/index.html | 118 --
reference/draw_/index.html | 156 --
reference/ellipseMode_.gif | Bin 2432 -> 0 bytes
reference/ellipseMode_/index.html | 104 --
reference/ellipse_.gif | Bin 2406 -> 0 bytes
reference/ellipse_/index.html | 142 --
reference/else.gif | Bin 2171 -> 0 bytes
reference/else2.gif | Bin 2201 -> 0 bytes
reference/else_/index.html | 162 --
reference/emissive_.jpg | Bin 3484 -> 0 bytes
reference/emissive_/index.html | 83 -
reference/endCamera_/index.html | 58 -
reference/endShape_.gif | Bin 2375 -> 0 bytes
reference/endShape_/index.html | 122 --
reference/equality/index.html | 134 --
reference/exit_/index.html | 96 --
reference/exp_/index.html | 46 -
reference/expand_/index.html | 72 -
reference/extends/index.html | 108 --
reference/false/index.html | 74 -
reference/fill_.gif | Bin 369 -> 0 bytes
reference/fill_/index.html | 202 ---
reference/fill_2.gif | Bin 369 -> 0 bytes
reference/filter_.jpg | Bin 9151 -> 0 bytes
reference/filter_/index.html | 93 --
reference/filter_2.gif | Bin 853 -> 0 bytes
reference/filter_blur.jpg | Bin 2656 -> 0 bytes
reference/filter_gray.jpg | Bin 8769 -> 0 bytes
reference/filter_invert.jpg | Bin 12807 -> 0 bytes
reference/filter_posterize.jpg | Bin 9496 -> 0 bytes
reference/filter_threshold.jpg | Bin 10116 -> 0 bytes
reference/final/index.html | 58 -
reference/float/index.html | 116 --
reference/float_/index.html | 122 --
reference/floor_/index.html | 102 --
reference/focused/index.html | 37 -
reference/font/index.html | 97 --
reference/for_.gif | Bin 2253 -> 0 bytes
reference/for_/index.html | 154 --
reference/for_2.gif | Bin 2190 -> 0 bytes
reference/for_3.gif | Bin 2159 -> 0 bytes
reference/for_4.gif | Bin 2270 -> 0 bytes
reference/frameCount/index.html | 90 -
reference/frameRate/index.html | 78 -
reference/frameRate_/index.html | 128 --
reference/frustum_.gif | Bin 413 -> 0 bytes
reference/frustum_/index.html | 83 -
reference/get_.jpg | Bin 3704 -> 0 bytes
reference/get_/index.html | 158 --
reference/get_2.jpg | Bin 3623 -> 0 bytes
reference/globalKeyEvents/index.html | 126 --
reference/greater than or equal to/index.html | 130 --
reference/greater than/index.html | 130 --
reference/green_.gif | Bin 1356 -> 0 bytes
reference/green_/index.html | 118 --
reference/height.gif | Bin 1972 -> 0 bytes
reference/height/index.html | 70 -
reference/hex_/index.html | 70 -
reference/hint_/index.html | 74 -
reference/hour_/index.html | 126 --
reference/hue_.gif | Bin 362 -> 0 bytes
reference/hue_/index.html | 66 -
reference/if_.gif | Bin 2241 -> 0 bytes
reference/if_/index.html | 122 --
reference/imageMode_.jpg | Bin 8158 -> 0 bytes
reference/imageMode_/index.html | 68 -
reference/image_.jpg | Bin 24126 -> 0 bytes
reference/image_/index.html | 192 ---
reference/image_2.jpg | Bin 3917 -> 0 bytes
reference/implements/index.html | 40 -
reference/import/index.html | 57 -
reference/increment/index.html | 104 --
reference/index.html | 472 ------
reference/inequality/index.html | 130 --
reference/int/index.html | 110 --
reference/int_/index.html | 118 --
reference/join_/index.html | 76 -
reference/key/index.html | 134 --
reference/keyCode/index.html | 162 --
reference/keyPressed/index.html | 136 --
reference/keyPressed_/index.html | 146 --
reference/keyReleased_/index.html | 144 --
reference/keyTyped_/index.html | 138 --
reference/left shift/index.html | 144 --
reference/lerpColor.jpg | Bin 1984 -> 0 bytes
reference/lerpColor_/index.html | 146 --
reference/lerp_.gif | Bin 2160 -> 0 bytes
reference/lerp_/index.html | 164 --
reference/lerp_2.gif | Bin 2253 -> 0 bytes
reference/less than or equal to/index.html | 132 --
reference/less than/index.html | 132 --
reference/lightFalloff_/index.html | 64 -
reference/lightSpecular_.jpg | Bin 3397 -> 0 bytes
reference/lightSpecular_/index.html | 78 -
reference/lights_.jpg | Bin 3609 -> 0 bytes
reference/lights_/index.html | 73 -
reference/lights_2.jpg | Bin 3609 -> 0 bytes
reference/line_.gif | Bin 2175 -> 0 bytes
reference/line_/index.html | 182 --
reference/line_2.gif | Bin 2242 -> 0 bytes
reference/line_3.gif | Bin 2282 -> 0 bytes
reference/link_/index.html | 122 --
reference/loadBytes_/index.html | 74 -
reference/loadFont_.gif | Bin 2606 -> 0 bytes
reference/loadFont_/index.html | 123 --
reference/loadImage_.jpg | Bin 24134 -> 0 bytes
reference/loadImage_/index.html | 176 --
reference/loadPixels_.jpg | Bin 4751 -> 0 bytes
reference/loadPixels_/index.html | 120 --
reference/loadShape_/index.html | 77 -
reference/loadStrings_/index.html | 122 --
reference/log_/index.html | 54 -
reference/logical AND/index.html | 126 --
reference/logical NOT/index.html | 120 --
reference/logical OR/index.html | 124 --
reference/logicalAND.gif | Bin 2237 -> 0 bytes
reference/logicalNOT.gif | Bin 2565 -> 0 bytes
reference/logicalOR.gif | Bin 2146 -> 0 bytes
reference/long/index.html | 64 -
reference/lookat_.gif | Bin 380 -> 0 bytes
reference/loop_/index.html | 132 --
reference/mag_.gif | Bin 381 -> 0 bytes
reference/mag_/index.html | 77 -
reference/map_/index.html | 76 -
reference/mask_.jpg | Bin 5680 -> 0 bytes
reference/matchAll_/index.html | 64 -
reference/match_/index.html | 86 -
reference/max_/index.html | 142 --
reference/millis_/index.html | 116 --
reference/min_/index.html | 142 --
reference/minus/index.html | 118 --
reference/minute_/index.html | 126 --
reference/modelX_/index.html | 105 --
reference/modelY_/index.html | 105 --
reference/modelZ_/index.html | 105 --
reference/modulo/index.html | 122 --
reference/month_/index.html | 144 --
reference/mouseButton/index.html | 152 --
reference/mouseClicked_/index.html | 146 --
reference/mouseDragged_/index.html | 144 --
reference/mouseMoved_/index.html | 140 --
reference/mouseOut_/index.html | 150 --
reference/mouseOver_/index.html | 150 --
reference/mousePressed/index.html | 120 --
reference/mousePressed_/index.html | 150 --
reference/mouseReleased_/index.html | 144 --
reference/mouseX/index.html | 118 --
reference/mouseY/index.html | 120 --
reference/multiline comment/index.html | 110 --
reference/multiply assign/index.html | 112 --
reference/multiply/index.html | 110 --
reference/new/index.html | 98 --
reference/nf_/index.html | 182 --
reference/nfc_/index.html | 76 -
reference/nfp_/index.html | 96 --
reference/nfs_/index.html | 94 --
reference/noCursor_/index.html | 51 -
reference/noFill_.gif | Bin 2504 -> 0 bytes
reference/noFill_/index.html | 100 --
reference/noLights_/index.html | 37 -
reference/noLoop_/index.html | 156 --
reference/noSmooth_.gif | Bin 640 -> 0 bytes
reference/noSmooth_/index.html | 53 -
reference/noStroke_.gif | Bin 2351 -> 0 bytes
reference/noStroke_/index.html | 98 --
reference/noTint_.jpg | Bin 8027 -> 0 bytes
reference/noTint_/index.html | 51 -
reference/noiseDetail_/index.html | 82 -
reference/noiseSeed_/index.html | 68 -
reference/noise_/index.html | 162 --
reference/norm_/index.html | 134 --
reference/normal_/index.html | 60 -
reference/null/index.html | 42 -
reference/online/index.html | 39 -
reference/ortho_.gif | Bin 454 -> 0 bytes
reference/ortho_/index.html | 80 -
reference/parentheses/index.html | 140 --
reference/pauseOnBlur/index.html | 92 -
reference/perspective_.gif | Bin 471 -> 0 bytes
reference/perspective_/index.html | 76 -
reference/pgraphics.jpg | Bin 1414 -> 0 bytes
reference/pixels.gif | Bin 2090 -> 0 bytes
reference/pixels_/index.html | 118 --
reference/pjs directive/index.html | 97 --
reference/pmouseX/index.html | 122 --
reference/pmouseY/index.html | 122 --
reference/pointLight_.jpg | Bin 2470 -> 0 bytes
reference/pointLight_/index.html | 85 -
reference/point_.gif | Bin 2160 -> 0 bytes
reference/point_/index.html | 134 --
reference/point_2.gif | Bin 2149 -> 0 bytes
reference/popMatrix_/index.html | 110 --
reference/popStyle_/index.html | 69 -
reference/pop_.gif | Bin 2375 -> 0 bytes
reference/pow_/index.html | 114 --
reference/preload/index.html | 88 -
reference/printCamera_/index.html | 50 -
reference/printMatrix_/index.html | 61 -
reference/printProjection_/index.html | 48 -
reference/print_/index.html | 118 --
reference/println_/index.html | 126 --
reference/private/index.html | 40 -
reference/public/index.html | 54 -
reference/pushMatrix_.gif | Bin 2375 -> 0 bytes
reference/pushMatrix_/index.html | 128 --
reference/pushStyle-2.gif | Bin 1925 -> 0 bytes
reference/pushStyle.gif | Bin 1285 -> 0 bytes
reference/pushStyle_/index.html | 70 -
reference/quad_.gif | Bin 2432 -> 0 bytes
reference/quad_/index.html | 169 --
reference/radians_/index.html | 98 --
reference/randomSeed_/index.html | 62 -
reference/random_/index.html | 126 --
reference/rect()/index.html | 136 --
reference/rectMode_.gif | Bin 2425 -> 0 bytes
reference/rectMode_/index.html | 104 --
reference/rect_.gif | Bin 2477 -> 0 bytes
reference/rect_/index.html | 182 --
reference/red_.gif | Bin 2481 -> 0 bytes
reference/red_/index.html | 124 --
reference/redraw_/index.html | 126 --
reference/requestImage_/index.html | 82 -
reference/resetMatrix_.gif | Bin 440 -> 0 bytes
reference/resetMatrix_/index.html | 63 -
reference/return/index.html | 186 ---
reference/reverse_/index.html | 57 -
reference/right shift/index.html | 132 --
reference/rotateX_.gif | Bin 288 -> 0 bytes
reference/rotateX_/index.html | 72 -
reference/rotateY_.gif | Bin 347 -> 0 bytes
reference/rotateY_/index.html | 72 -
reference/rotateZ_.gif | Bin 396 -> 0 bytes
reference/rotateZ_/index.html | 72 -
reference/rotate_.gif | Bin 2491 -> 0 bytes
reference/rotate_/index.html | 114 --
reference/round_/index.html | 116 --
reference/saturation_.gif | Bin 362 -> 0 bytes
reference/saturation_/index.html | 66 -
reference/saveFrame_/index.html | 91 -
reference/saveStrings_/index.html | 65 -
reference/save_/index.html | 60 -
reference/scale_.gif | Bin 2473 -> 0 bytes
reference/scale_/index.html | 170 --
reference/scale_2.gif | Bin 2585 -> 0 bytes
reference/scale_3.gif | Bin 2656 -> 0 bytes
reference/screen/index.html | 39 -
reference/screenX_/index.html | 90 -
reference/screenY_/index.html | 90 -
reference/screenZ_/index.html | 58 -
reference/second_/index.html | 128 --
reference/semi colon/index.html | 98 --
reference/set_.gif | Bin 2160 -> 0 bytes
reference/set_/index.html | 162 --
reference/set_2.jpg | Bin 1730 -> 0 bytes
reference/set_3.jpg | Bin 4588 -> 0 bytes
reference/setup_/index.html | 132 --
reference/shapeMode.jpg | Bin 6150 -> 0 bytes
reference/shapeMode_/index.html | 67 -
reference/shape_/index.html | 94 --
reference/shininess_.jpg | Bin 3981 -> 0 bytes
reference/shininess_/index.html | 71 -
reference/shorten_/index.html | 60 -
reference/sin_.gif | Bin 1835 -> 0 bytes
reference/sin_/index.html | 116 --
reference/size_/index.html | 132 --
reference/smooth_.gif | Bin 2062 -> 0 bytes
reference/smooth_/index.html | 116 --
reference/sort_/index.html | 71 -
reference/specular_.jpg | Bin 4419 -> 0 bytes
reference/specular_/index.html | 90 -
reference/sphereDetail_/index.html | 82 -
reference/sphere_.gif | Bin 2034 -> 0 bytes
reference/sphere_/index.html | 58 -
reference/splice_/index.html | 79 -
reference/splitTokens_/index.html | 74 -
reference/split_/index.html | 71 -
reference/spotLight_.jpg | Bin 2300 -> 0 bytes
reference/spotLight_/index.html | 103 --
reference/spotLight_2.jpg | Bin 2154 -> 0 bytes
reference/sq_.gif | Bin 2180 -> 0 bytes
reference/sq_/index.html | 108 --
reference/sqrt_.gif | Bin 2206 -> 0 bytes
reference/sqrt_/index.html | 116 --
reference/static/index.html | 91 -
reference/status_/index.html | 59 -
reference/str_/index.html | 124 --
reference/strokeCap_.gif | Bin 393 -> 0 bytes
reference/strokeCap_/index.html | 63 -
reference/strokeJoin_.gif | Bin 267 -> 0 bytes
reference/strokeJoin_/index.html | 87 -
reference/strokeJoin_2.gif | Bin 267 -> 0 bytes
reference/strokeJoin_3.gif | Bin 268 -> 0 bytes
reference/strokeWeight_.gif | Bin 2204 -> 0 bytes
reference/strokeWeight_/index.html | 112 --
reference/stroke_.gif | Bin 2414 -> 0 bytes
reference/stroke_/index.html | 196 ---
reference/stroke_2.gif | Bin 2508 -> 0 bytes
reference/subset_/index.html | 73 -
reference/subtract assign/index.html | 112 --
reference/super/index.html | 100 --
reference/svg.jpg | Bin 6937 -> 0 bytes
reference/switch_/index.html | 214 ---
reference/tan_.gif | Bin 330 -> 0 bytes
reference/tan_/index.html | 64 -
reference/textAlign_.gif | Bin 633 -> 0 bytes
reference/textAlign_/index.html | 91 -
reference/textAscent_.gif | Bin 1400 -> 0 bytes
reference/textAscent_/index.html | 67 -
reference/textDescent_.gif | Bin 1403 -> 0 bytes
reference/textDescent_/index.html | 67 -
reference/textFont_.gif | Bin 2606 -> 0 bytes
reference/textFont_/index.html | 146 --
reference/textLeading_.gif | Bin 1419 -> 0 bytes
reference/textLeading_/index.html | 84 -
reference/textMode_.gif | Bin 1241 -> 0 bytes
reference/textMode_/index.html | 88 -
reference/textSize_.gif | Bin 748 -> 0 bytes
reference/textSize_/index.html | 76 -
reference/textWidth_.gif | Bin 1154 -> 0 bytes
reference/textWidth_/index.html | 81 -
reference/text_.gif | Bin 3283 -> 0 bytes
reference/text_/index.html | 230 ---
reference/text_3.gif | Bin 3142 -> 0 bytes
reference/text_X.gif | Bin 2756 -> 0 bytes
reference/textureMode_.gif | Bin 6853 -> 0 bytes
reference/textureMode_/index.html | 75 -
reference/textureMode_2.gif | Bin 6853 -> 0 bytes
reference/texture_.gif | Bin 6853 -> 0 bytes
reference/texture_/index.html | 68 -
reference/this/index.html | 102 --
reference/tint_.jpg | Bin 24403 -> 0 bytes
reference/tint_/index.html | 226 ---
reference/tint_2.jpg | Bin 24063 -> 0 bytes
reference/translate_.gif | Bin 2477 -> 0 bytes
reference/translate_/index.html | 152 --
reference/translate_2.gif | Bin 2272 -> 0 bytes
reference/translate_3.gif | Bin 2561 -> 0 bytes
reference/transparent/index.html | 192 ---
reference/triangle_.gif | Bin 2451 -> 0 bytes
reference/triangle_/index.html | 148 --
reference/trim_/index.html | 68 -
reference/true/index.html | 78 -
reference/unbinary_/index.html | 62 -
reference/unhex_/index.html | 60 -
reference/updatePixels_.jpg | Bin 4751 -> 0 bytes
reference/updatePixels_/index.html | 112 --
reference/updatePixels_2.jpg | Bin 2582 -> 0 bytes
reference/vertex_.gif | Bin 2160 -> 0 bytes
reference/vertex_/index.html | 208 ---
reference/vertex_2.gif | Bin 5220 -> 0 bytes
reference/vertex_3.gif | Bin 2149 -> 0 bytes
reference/void/index.html | 112 --
reference/while_.gif | Bin 2190 -> 0 bytes
reference/while_/index.html | 124 --
reference/width.gif | Bin 1980 -> 0 bytes
reference/width/index.html | 68 -
reference/year_/index.html | 146 --
sketches/2d1.pde | 17 -
sketches/bannerSketch.pde | 132 --
sketches/basic-example.pde | 53 -
sketches/jmartinho_tr-lines_2011.pde | 166 --
sketches/my-life-aquatic/Boid.pde | 134 --
sketches/my-life-aquatic/Bubble.pde | 27 -
sketches/my-life-aquatic/Fish.pde | 400 -----
sketches/my-life-aquatic/Flagellum.pde | 79 -
sketches/my-life-aquatic/Food.pde | 105 --
sketches/my-life-aquatic/explosion.mp3 | Bin 17308 -> 0 bytes
sketches/my-life-aquatic/explosion.ogg | Bin 14286 -> 0 bytes
sketches/my-life-aquatic/gulp.mp3 | Bin 9613 -> 0 bytes
sketches/my-life-aquatic/gulp.ogg | Bin 10240 -> 0 bytes
sketches/my-life-aquatic/pond.pde | 103 --
sketches/mysketch.pde | 268 ---
sketches/mysketch2.pde | 36 -
sketches/mysketch3.pde | 46 -
sketches/mysketch4.pde | 56 -
sketches/mysketch5.pde | 56 -
sketches/mysketch6.pde | 60 -
sketches/mysketch7.pde | 76 -
sketches/mysketch8.pde | 118 --
sketches/sketch1.pde | 80 -
sketches/sketch2.pde | 110 --
sketches/sketch3.pde | 112 --
sketches/sketch4.pde | 158 --
sketches/sketch5.pde | 212 ---
sketches/webgl1.pde | 10 -
sketches/webgl2.pde | 47 -
tools/jsbeautify.js | 974 -----------
tools/processing-helper.html | 35 -
tools/processing-helper.js | 99 --
1142 files changed, 7 insertions(+), 96725 deletions(-)
delete mode 100644 .gitignore
delete mode 100644 .htaccess
delete mode 100644 .rvmrc
delete mode 100644 .travis.yml
delete mode 100644 404.html
delete mode 100644 CNAME
delete mode 100644 Gemfile
delete mode 100644 ISSUE_TEMPLATE.md
delete mode 100644 _config.yml
delete mode 100644 _layouts/default.html
delete mode 100644 _layouts/post.html
delete mode 100644 _layouts/withcc.html
delete mode 100644 articles/_posts/2011-12-01-PomaxGuide.html
delete mode 100644 articles/_posts/2011-12-02-RenderingModes.html
delete mode 100644 articles/_posts/2011-12-03-p5QuickStart.html
delete mode 100644 articles/_posts/2011-12-04-jsQuickStart.html
delete mode 100644 articles/_posts/template.html
delete mode 100644 articles/index.html
delete mode 100644 blog/_posts/2010-02-03-processingjs-04-released.html
delete mode 100644 blog/_posts/2010-02-17-processingjs-v050-released.html
delete mode 100644 blog/_posts/2010-02-26-processingjs-v060-released.html
delete mode 100644 blog/_posts/2010-03-24-processingjs-v070-released.html
delete mode 100644 blog/_posts/2010-03-26-processingjs-v071-released.html
delete mode 100644 blog/_posts/2010-04-09-processingjs-v08-released.html
delete mode 100644 blog/_posts/2010-05-11-processingjs-v09-released.html
delete mode 100644 blog/_posts/2010-05-20-processingjs-v091-released.html
delete mode 100644 blog/_posts/2010-06-16-processingjs-v094-released.html
delete mode 100644 blog/_posts/2010-07-26-processingjs-v096-released.html
delete mode 100644 blog/_posts/2010-08-16-processingjs-v097-released.html
delete mode 100644 blog/_posts/2010-11-18-processingjs-v10-released.html
delete mode 100644 blog/_posts/2011-03-01-processingjs-v11-released.html
delete mode 100644 blog/_posts/2011-05-31-processingjs-v12-released.html
delete mode 100644 blog/_posts/2011-06-02-processingjs-v121-released.html
delete mode 100644 blog/_posts/2011-07-14-processing-js-v1-2-3-released.html
delete mode 100644 blog/_posts/2011-08-02-processing-js-siggraph-2011.html
delete mode 100644 blog/_posts/2011-08-24-processing-js-v1-3-0-released.html
delete mode 100644 blog/_posts/2011-09-05-meet-the-processing-js-team.html
delete mode 100644 blog/_posts/2011-10-06-processing-js-v1-3-5-released.html
delete mode 100644 blog/_posts/2011-10-13-processing-js-v1-3-6-released.html
delete mode 100644 blog/_posts/2011-10-25-processing-js-workshops.html
delete mode 100644 blog/_posts/2012-07-31-processing-js-v1-4-0-released.html
delete mode 100644 blog/_posts/2012-08-08-processing-js-v1-4-1-hotfix.html
delete mode 100644 blog/_posts/2014-03-25-processing-js-v1-4-7.html
delete mode 100644 blog/_posts/2014-03-25-processing-js-v1-4-8.html
delete mode 100644 blog/_posts/2014-04-17-processing-js-v1-4-8.html
delete mode 100644 blog/_posts/template.html
delete mode 100644 blog/index.html
delete mode 100644 community/index.html
delete mode 100644 css/bootstrap.css
delete mode 100644 css/processing-js.css
delete mode 100644 css/syntax.css
delete mode 100644 download/_posts/2008-05-08-v0.0.0.html
delete mode 100644 download/_posts/2010-01-02-v0.0.0.html
delete mode 100644 download/_posts/2010-02-02-v0.4.0.html
delete mode 100644 download/_posts/2010-02-17-v0.5.0.html
delete mode 100644 download/_posts/2010-02-26-v0.6.0.html
delete mode 100644 download/_posts/2010-03-24-v0.7.0.html
delete mode 100644 download/_posts/2010-03-25-v0.7.1.html
delete mode 100644 download/_posts/2010-04-08-v0.8.0.html
delete mode 100644 download/_posts/2010-05-11-v0.9.0.html
delete mode 100644 download/_posts/2010-05-20-v0.9.1.html
delete mode 100644 download/_posts/2010-06-15-v0.9.3.html
delete mode 100644 download/_posts/2010-06-16-v0.9.4.html
delete mode 100644 download/_posts/2010-07-26-v0.9.6.html
delete mode 100644 download/_posts/2010-08-14-v0.9.7.html
delete mode 100644 download/_posts/2010-11-28-v1.0.0.html
delete mode 100644 download/_posts/2011-02-27-v1.1.0.html
delete mode 100644 download/_posts/2011-06-02-v1.2.1.html
delete mode 100644 download/_posts/2011-07-14-v1.2.3.html
delete mode 100644 download/_posts/2011-08-23-v1.3.0.html
delete mode 100644 download/_posts/2011-10-13-v1.3.6.html
delete mode 100644 download/_posts/2012-07-31-v1.4.0.html
delete mode 100644 download/_posts/2012-08-09-v1.4.1.html
delete mode 100644 download/_posts/2014-03-25-v1.4.7.html
delete mode 100644 download/_posts/2014-03-25-v1.4.8.html
delete mode 100644 download/_posts/2016-08-01-v1.6.0.html
delete mode 100644 download/_posts/template.html
delete mode 100644 download/archived.html
delete mode 100644 download/index.html
delete mode 100644 exhibition/_posts/2011-11-01-ui-dial.html
delete mode 100644 exhibition/_posts/2011-11-02-sparklines.html
delete mode 100644 exhibition/_posts/2011-11-03-tower-of-defense.html
delete mode 100644 exhibition/_posts/2011-11-04-mouse.html
delete mode 100644 exhibition/_posts/2011-11-05-wiki.html
delete mode 100644 exhibition/_posts/2011-11-06-balldroppings.html
delete mode 100644 exhibition/_posts/2011-11-07-twitch.html
delete mode 100644 exhibition/_posts/2011-11-08-bittorrent.html
delete mode 100644 exhibition/_posts/2011-11-09-askken.html
delete mode 100644 exhibition/_posts/2011-11-10-abstract.html
delete mode 100644 exhibition/_posts/2011-11-11-facebook.html
delete mode 100644 exhibition/_posts/2011-11-12-inbox.html
delete mode 100644 exhibition/_posts/2011-11-13-wordpress.html
delete mode 100644 exhibition/_posts/2011-11-14-drupal.html
delete mode 100644 exhibition/_posts/2011-11-15-asteroids.html
delete mode 100644 exhibition/_posts/2011-11-16-jsnake.html
delete mode 100644 exhibition/_posts/2011-11-17-gif-tower-defense.html
delete mode 100644 exhibition/_posts/2011-11-18-letters.html
delete mode 100644 exhibition/_posts/2011-11-19-fizz-bloom.html
delete mode 100644 exhibition/_posts/2011-11-20-virion.html
delete mode 100644 exhibition/_posts/2011-11-21-kanji.html
delete mode 100644 exhibition/_posts/2011-11-22-clearcongress.html
delete mode 100644 exhibition/_posts/2011-11-23-bezierinfo.html
delete mode 100644 exhibition/_posts/2011-11-24-tunealiser.html
delete mode 100644 exhibition/_posts/2011-11-25-toxiclibs.html
delete mode 100644 exhibition/_posts/2011-11-26-p5p.html
delete mode 100644 exhibition/_posts/2011-11-27-animated-background.html
delete mode 100644 exhibition/_posts/2011-11-28-afl-flags.html
delete mode 100644 exhibition/_posts/2011-11-29-twitter-flow.html
delete mode 100644 exhibition/_posts/2011-11-30-coaltrace.html
delete mode 100644 exhibition/_posts/2011-12-01-flocking.html
delete mode 100644 exhibition/_posts/2011-12-02-pewpew.html
delete mode 100644 exhibition/_posts/2011-12-03-fotn.html
delete mode 100644 exhibition/_posts/2011-12-04-coffeescript.html
delete mode 100644 exhibition/_posts/2011-12-15-andor.html
delete mode 100644 exhibition/_posts/2011-12-24-advent-2011.html
delete mode 100644 exhibition/_posts/2011-12-25-circle-of-fifths.html
delete mode 100644 exhibition/_posts/2012-07-13-mylifeaquatic.html
delete mode 100644 exhibition/_posts/2013-04-26-delaunay.html
delete mode 100644 exhibition/_posts/template.html
delete mode 100644 exhibition/index.html
delete mode 100644 favicon.ico
delete mode 100644 images/exhibition/abstract.jpg
delete mode 100644 images/exhibition/advent-2011.png
delete mode 100644 images/exhibition/afl-flags.png
delete mode 100644 images/exhibition/andor.png
delete mode 100644 images/exhibition/ask.png
delete mode 100644 images/exhibition/astroid.jpg
delete mode 100644 images/exhibition/balldroppings.gif
delete mode 100644 images/exhibition/bezier.png
delete mode 100644 images/exhibition/bittorrent.jpg
delete mode 100644 images/exhibition/cecinestpasparis.png
delete mode 100644 images/exhibition/circle-of-fifths.png
delete mode 100644 images/exhibition/clearcongress.png
delete mode 100644 images/exhibition/coaltrace.png
delete mode 100644 images/exhibition/delaunay.png
delete mode 100644 images/exhibition/drupal.png
delete mode 100644 images/exhibition/dryly.png
delete mode 100644 images/exhibition/facebook.png
delete mode 100644 images/exhibition/fizz-processingjs.png
delete mode 100644 images/exhibition/fotn.png
delete mode 100644 images/exhibition/gmail.png
delete mode 100644 images/exhibition/harry-flocking.png
delete mode 100644 images/exhibition/kanji.png
delete mode 100644 images/exhibition/letters.jpg
delete mode 100644 images/exhibition/mousedrivengraphicequalizer.gif
delete mode 100644 images/exhibition/mylifeaquatic.png
delete mode 100644 images/exhibition/pewpew.png
delete mode 100644 images/exhibition/snake.jpg
delete mode 100644 images/exhibition/sparklines.gif
delete mode 100644 images/exhibition/towerOfDefense2.jpeg
delete mode 100644 images/exhibition/towerofdefense.gif
delete mode 100644 images/exhibition/toxiclibs.png
delete mode 100644 images/exhibition/tunealiser.png
delete mode 100644 images/exhibition/twitch.gif
delete mode 100644 images/exhibition/twitterflow.png
delete mode 100644 images/exhibition/uidial.gif
delete mode 100644 images/exhibition/virion.png
delete mode 100644 images/exhibition/wikivisualizations.gif
delete mode 100644 images/exhibition/wordpress-logo-stacked-rgb.png
delete mode 100644 images/exhibition/zepadovani.png
delete mode 100644 images/forkme-right-orange.png
delete mode 100644 images/github-v04.png
delete mode 100644 images/github.gif
delete mode 100644 images/google-group.png
delete mode 100644 images/header.png
delete mode 100644 images/irc.gif
delete mode 100644 images/jmartinho_tr-lines_2011.png
delete mode 100644 images/lighthouseapp-logo.png
delete mode 100644 images/processingjs.gif
delete mode 100644 images/seneca-logo.png
delete mode 100644 images/somerights20.gif
delete mode 100644 index.html
delete mode 100644 js/buzz.js
delete mode 100644 js/jquery.tweet.min.js
delete mode 100644 js/processing.min.js
delete mode 100644 js/tabselector.js
delete mode 100644 learning/basic/additivewave/index.html
delete mode 100644 learning/basic/alphamask/data/mask.jpg
delete mode 100644 learning/basic/alphamask/data/test.jpg
delete mode 100644 learning/basic/alphamask/index.html
delete mode 100644 learning/basic/arctangent/index.html
delete mode 100644 learning/basic/arm/index.html
delete mode 100644 learning/basic/array/index.html
delete mode 100644 learning/basic/array2d/index.html
delete mode 100644 learning/basic/arrayobjects/index.html
delete mode 100644 learning/basic/backgroundimage/data/milan_rubbish.jpg
delete mode 100644 learning/basic/backgroundimage/index.html
delete mode 100644 learning/basic/bezier/index.html
delete mode 100644 learning/basic/bezierellipse/index.html
delete mode 100644 learning/basic/brightness/index.html
delete mode 100644 learning/basic/charactersstrings/data/rathausFrog.jpg
delete mode 100644 learning/basic/charactersstrings/index.html
delete mode 100644 learning/basic/clock/index.html
delete mode 100644 learning/basic/colorwheel/index.html
delete mode 100644 learning/basic/compositeobjects/index.html
delete mode 100644 learning/basic/conditionals1/index.html
delete mode 100644 learning/basic/conditionals2/index.html
delete mode 100644 learning/basic/constrain/index.html
delete mode 100644 learning/basic/coordinates/index.html
delete mode 100644 learning/basic/creategraphics/data/mask.jpg
delete mode 100644 learning/basic/creategraphics/data/test.jpg
delete mode 100644 learning/basic/creategraphics/index.html
delete mode 100644 learning/basic/createimage/data/mask.jpg
delete mode 100644 learning/basic/createimage/data/test.jpg
delete mode 100644 learning/basic/createimage/index.html
delete mode 100644 learning/basic/creating/index.html
delete mode 100644 learning/basic/datatypeconversion/index.html
delete mode 100644 learning/basic/displaying/data/arch.jpg
delete mode 100644 learning/basic/displaying/index.html
delete mode 100644 learning/basic/distance1d/index.html
delete mode 100644 learning/basic/distance2d/index.html
delete mode 100644 learning/basic/doublerandom/index.html
delete mode 100644 learning/basic/easing/index.html
delete mode 100644 learning/basic/embeddediteration/index.html
delete mode 100644 learning/basic/embeddedlinks/index.html
delete mode 100644 learning/basic/functions/index.html
delete mode 100644 learning/basic/graphing2dequation/index.html
delete mode 100644 learning/basic/hue/index.html
delete mode 100644 learning/basic/incrementdecrement/index.html
delete mode 100644 learning/basic/index.html
delete mode 100644 learning/basic/inheritance/index.html
delete mode 100644 learning/basic/integersfloats/index.html
delete mode 100644 learning/basic/iteration/index.html
delete mode 100644 learning/basic/keyboard/data/brugges.jpg
delete mode 100644 learning/basic/keyboard/index.html
delete mode 100644 learning/basic/keyboardfunctions/index.html
delete mode 100644 learning/basic/letters/index.html
delete mode 100644 learning/basic/lineargradient/index.html
delete mode 100644 learning/basic/loadingimages/index.html
delete mode 100644 learning/basic/logicaloperators/index.html
delete mode 100644 learning/basic/loop/index.html
delete mode 100644 learning/basic/milliseconds/index.html
delete mode 100644 learning/basic/modulo/index.html
delete mode 100644 learning/basic/mouse1d/index.html
delete mode 100644 learning/basic/mouse2d/index.html
delete mode 100644 learning/basic/mousefunctions/index.html
delete mode 100644 learning/basic/mousepress/index.html
delete mode 100644 learning/basic/mousesignals/index.html
delete mode 100644 learning/basic/multipleconstructors/index.html
delete mode 100644 learning/basic/neighborhood/index.html
delete mode 100644 learning/basic/noise1d/index.html
delete mode 100644 learning/basic/noise2d/index.html
delete mode 100644 learning/basic/noise3d/index.html
delete mode 100644 learning/basic/noisewave/index.html
delete mode 100644 learning/basic/noloop/index.html
delete mode 100644 learning/basic/objects/index.html
delete mode 100644 learning/basic/operatorprecedence/index.html
delete mode 100644 learning/basic/piechart/index.html
delete mode 100644 learning/basic/pointillism/data/eames.jpg
delete mode 100644 learning/basic/pointillism/data/sunflower.jpg
delete mode 100644 learning/basic/pointillism/index.html
delete mode 100644 learning/basic/pointslines/index.html
delete mode 100644 learning/basic/polartocartesian/index.html
delete mode 100644 learning/basic/radialgradient/index.html
delete mode 100644 learning/basic/random/index.html
delete mode 100644 learning/basic/reading/data/cait.jpg
delete mode 100644 learning/basic/reading/index.html
delete mode 100644 learning/basic/recursion/index.html
delete mode 100644 learning/basic/recursion2/index.html
delete mode 100644 learning/basic/redraw/index.html
delete mode 100644 learning/basic/relativity/index.html
delete mode 100644 learning/basic/rotate/index.html
delete mode 100644 learning/basic/saturation/index.html
delete mode 100644 learning/basic/scale/index.html
delete mode 100644 learning/basic/setupdraw/index.html
delete mode 100644 learning/basic/shapeprimitives/index.html
delete mode 100644 learning/basic/simplecurves/index.html
delete mode 100644 learning/basic/sine/index.html
delete mode 100644 learning/basic/sinecosine/index.html
delete mode 100644 learning/basic/sinewave/index.html
delete mode 100644 learning/basic/sprite/data/sky.jpg
delete mode 100644 learning/basic/sprite/data/teddy.gif
delete mode 100644 learning/basic/sprite/index.html
delete mode 100644 learning/basic/statementscomments/index.html
delete mode 100644 learning/basic/storinginput/index.html
delete mode 100644 learning/basic/translate/index.html
delete mode 100644 learning/basic/transparency/data/construct.jpg
delete mode 100644 learning/basic/transparency/data/wash.jpg
delete mode 100644 learning/basic/transparency/index.html
delete mode 100644 learning/basic/triangleflower/index.html
delete mode 100644 learning/basic/trianglestrip/index.html
delete mode 100644 learning/basic/truefalse/index.html
delete mode 100644 learning/basic/variables/index.html
delete mode 100644 learning/basic/variablescope/index.html
delete mode 100644 learning/basic/vertices/index.html
delete mode 100644 learning/basic/wavegradient/index.html
delete mode 100644 learning/basic/widthheight/index.html
delete mode 100644 learning/basic/words/index.html
delete mode 100644 learning/custom/index.html
delete mode 100644 learning/custom/intersect/index.html
delete mode 100644 learning/custom/molten/index.html
delete mode 100644 learning/custom/snake/data/dirt.jpg
delete mode 100644 learning/custom/snake/index.html
delete mode 100644 learning/index.html
delete mode 100644 learning/screens/Picture-14.png
delete mode 100644 learning/screens/Picture-15.png
delete mode 100644 learning/screens/Picture-16.png
delete mode 100644 learning/screens/Picture-17.png
delete mode 100644 learning/screens/Picture-18.png
delete mode 100644 learning/screens/Picture-19.png
delete mode 100644 learning/screens/Picture-20.png
delete mode 100644 learning/screens/Picture-21.png
delete mode 100644 learning/screens/Picture-22.png
delete mode 100644 learning/screens/Picture-23.png
delete mode 100644 learning/screens/Picture-24.png
delete mode 100644 learning/screens/Picture-25.png
delete mode 100644 learning/screens/Picture-26.png
delete mode 100644 learning/screens/Picture-27.png
delete mode 100644 learning/screens/Picture-28.png
delete mode 100644 learning/screens/Picture-29.png
delete mode 100644 learning/screens/Picture-30.png
delete mode 100644 learning/screens/Picture-31.png
delete mode 100644 learning/screens/Picture-32.png
delete mode 100644 learning/screens/Picture-33.png
delete mode 100644 learning/screens/Picture-34.png
delete mode 100644 learning/screens/Picture-35.png
delete mode 100644 learning/screens/Picture-36.png
delete mode 100644 learning/screens/Picture-37.png
delete mode 100644 learning/screens/Picture-38.png
delete mode 100644 learning/screens/Picture-39.png
delete mode 100644 learning/screens/Picture-40.png
delete mode 100644 learning/screens/Picture-41.png
delete mode 100644 learning/screens/Picture-42.png
delete mode 100644 learning/screens/Picture-43.png
delete mode 100644 learning/screens/Picture-44.png
delete mode 100644 learning/screens/Picture-45.png
delete mode 100644 learning/screens/Picture-46.png
delete mode 100644 learning/screens/Picture-47.png
delete mode 100644 learning/screens/Picture-48.png
delete mode 100644 learning/screens/Picture-49.png
delete mode 100644 learning/screens/Picture-50.png
delete mode 100644 learning/screens/Picture-51.png
delete mode 100644 learning/screens/Picture-52.png
delete mode 100644 learning/screens/molten2.png
delete mode 100644 learning/topic/animatedsprite/data/PT_Shifty_0000.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Shifty_0001.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Shifty_0002.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Shifty_0003.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Shifty_0004.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Shifty_0005.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Shifty_0006.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Shifty_0007.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Shifty_0008.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Shifty_0009.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Shifty_0010.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Shifty_0011.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Shifty_0012.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Shifty_0013.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Shifty_0014.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Shifty_0015.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Shifty_0016.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Shifty_0017.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Shifty_0018.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Shifty_0019.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Shifty_0020.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Shifty_0021.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Shifty_0022.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Shifty_0023.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Shifty_0024.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Shifty_0025.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Shifty_0026.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Shifty_0027.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Shifty_0028.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Shifty_0029.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Shifty_0030.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Shifty_0031.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Shifty_0032.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Shifty_0033.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Shifty_0034.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Shifty_0035.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Shifty_0036.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Shifty_0037.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0000.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0001.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0002.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0003.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0004.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0005.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0006.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0007.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0008.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0009.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0010.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0011.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0012.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0013.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0014.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0015.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0016.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0017.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0018.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0019.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0020.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0021.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0022.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0023.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0024.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0025.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0026.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0027.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0028.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0029.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0030.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0031.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0032.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0033.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0034.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0035.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0036.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0037.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0038.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0039.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0040.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0041.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0042.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0043.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0044.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0045.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0046.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0047.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0048.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0049.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0050.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0051.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0052.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0053.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0054.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0055.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0056.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0057.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0058.gif
delete mode 100644 learning/topic/animatedsprite/data/PT_Teddy_0059.gif
delete mode 100644 learning/topic/animatedsprite/index.html
delete mode 100644 learning/topic/animator/index.html
delete mode 100644 learning/topic/blur/data/trees.jpg
delete mode 100644 learning/topic/blur/index.html
delete mode 100644 learning/topic/bounce/index.html
delete mode 100644 learning/topic/bouncybubbles/index.html
delete mode 100644 learning/topic/brightness/data/wires.jpg
delete mode 100644 learning/topic/brightness/index.html
delete mode 100644 learning/topic/brownian/index.html
delete mode 100644 learning/topic/button/index.html
delete mode 100644 learning/topic/buttons/index.html
delete mode 100644 learning/topic/chain/index.html
delete mode 100644 learning/topic/circlecollision/index.html
delete mode 100644 learning/topic/collision/index.html
delete mode 100644 learning/topic/continuouslines/index.html
delete mode 100644 learning/topic/convolution/data/end.jpg
delete mode 100644 learning/topic/convolution/index.html
delete mode 100644 learning/topic/conway/index.html
delete mode 100644 learning/topic/customtool/data/milan.jpg
delete mode 100644 learning/topic/customtool/data/paris.jpg
delete mode 100644 learning/topic/customtool/index.html
delete mode 100644 learning/topic/edgedetection/data/house.jpg
delete mode 100644 learning/topic/edgedetection/index.html
delete mode 100644 learning/topic/flocking/index.html
delete mode 100644 learning/topic/fluid/index.html
delete mode 100644 learning/topic/follow1/index.html
delete mode 100644 learning/topic/follow2/index.html
delete mode 100644 learning/topic/follow3/index.html
delete mode 100644 learning/topic/handles/index.html
delete mode 100644 learning/topic/histogram/data/cdi01_g.jpg
delete mode 100644 learning/topic/histogram/index.html
delete mode 100644 learning/topic/imagebutton/data/base.gif
delete mode 100644 learning/topic/imagebutton/data/down.gif
delete mode 100644 learning/topic/imagebutton/data/roll.gif
delete mode 100644 learning/topic/imagebutton/index.html
delete mode 100644 learning/topic/index.html
delete mode 100644 learning/topic/koch/index.html
delete mode 100644 learning/topic/linear/index.html
delete mode 100644 learning/topic/linearimage/data/florence03.jpg
delete mode 100644 learning/topic/linearimage/index.html
delete mode 100644 learning/topic/loadfile1/data/positions.txt
delete mode 100644 learning/topic/loadfile1/index.html
delete mode 100644 learning/topic/loadfile2/data/cars2.tsv
delete mode 100644 learning/topic/loadfile2/index.html
delete mode 100644 learning/topic/mandelbrot/index.html
delete mode 100644 learning/topic/movingoncurves/index.html
delete mode 100644 learning/topic/multipleparticlesystems/index.html
delete mode 100644 learning/topic/pattern/index.html
delete mode 100644 learning/topic/penrosesnowflake/index.html
delete mode 100644 learning/topic/penrosetile/index.html
delete mode 100644 learning/topic/pentigree/index.html
delete mode 100644 learning/topic/pixelarray/data/ystone08.jpg
delete mode 100644 learning/topic/pixelarray/index.html
delete mode 100644 learning/topic/puff/index.html
delete mode 100644 learning/topic/pulses/index.html
delete mode 100644 learning/topic/reach1/index.html
delete mode 100644 learning/topic/reach2/index.html
delete mode 100644 learning/topic/reach3/index.html
delete mode 100644 learning/topic/reflection1/index.html
delete mode 100644 learning/topic/reflection2/index.html
delete mode 100644 learning/topic/rollover/index.html
delete mode 100644 learning/topic/scribbleplotter/index.html
delete mode 100644 learning/topic/scrollbar/data/seedBottom.jpg
delete mode 100644 learning/topic/scrollbar/data/seedTop.jpg
delete mode 100644 learning/topic/scrollbar/index.html
delete mode 100644 learning/topic/sequential/data/PT_anim0000.gif
delete mode 100644 learning/topic/sequential/data/PT_anim0001.gif
delete mode 100644 learning/topic/sequential/data/PT_anim0002.gif
delete mode 100644 learning/topic/sequential/data/PT_anim0003.gif
delete mode 100644 learning/topic/sequential/data/PT_anim0004.gif
delete mode 100644 learning/topic/sequential/data/PT_anim0005.gif
delete mode 100644 learning/topic/sequential/data/PT_anim0006.gif
delete mode 100644 learning/topic/sequential/data/PT_anim0007.gif
delete mode 100644 learning/topic/sequential/data/PT_anim0008.gif
delete mode 100644 learning/topic/sequential/data/PT_anim0009.gif
delete mode 100644 learning/topic/sequential/data/PT_anim0010.gif
delete mode 100644 learning/topic/sequential/data/PT_anim0011.gif
delete mode 100644 learning/topic/sequential/index.html
delete mode 100644 learning/topic/simpleparticlesystem/index.html
delete mode 100644 learning/topic/smoke/index.html
delete mode 100644 learning/topic/smokeparticlesystem/data/texture.gif
delete mode 100644 learning/topic/smokeparticlesystem/index.html
delete mode 100644 learning/topic/softbody/index.html
delete mode 100644 learning/topic/spore1/index.html
delete mode 100644 learning/topic/spore2/index.html
delete mode 100644 learning/topic/spring/index.html
delete mode 100644 learning/topic/springs/index.html
delete mode 100644 learning/topic/tickle/index.html
delete mode 100644 learning/topic/tileimages/index.html
delete mode 100644 learning/topic/tree/index.html
delete mode 100644 learning/topic/wolfram/index.html
delete mode 100644 reference/Array/index.html
delete mode 100644 reference/ArrayList/index.html
delete mode 100644 reference/HALF_PI.gif
delete mode 100644 reference/HALF_PI/index.html
delete mode 100644 reference/HashMap/index.html
delete mode 100644 reference/Object/index.html
delete mode 100644 reference/PFont.gif
delete mode 100644 reference/PFont/index.html
delete mode 100644 reference/PFont_list_/index.html
delete mode 100644 reference/PGraphics/index.html
delete mode 100644 reference/PGraphics_beginDraw_/index.html
delete mode 100644 reference/PGraphics_endDraw_/index.html
delete mode 100644 reference/PI.gif
delete mode 100644 reference/PI/index.html
delete mode 100644 reference/PImage.jpg
delete mode 100644 reference/PImage/index.html
delete mode 100644 reference/PImage_blend_/index.html
delete mode 100644 reference/PImage_blend_add.jpg
delete mode 100644 reference/PImage_blend_darkest.jpg
delete mode 100644 reference/PImage_blend_lightest.jpg
delete mode 100644 reference/PImage_blend_subtract.jpg
delete mode 100644 reference/PImage_copy.jpg
delete mode 100644 reference/PImage_copy_/index.html
delete mode 100644 reference/PImage_filter_/index.html
delete mode 100644 reference/PImage_get.jpg
delete mode 100644 reference/PImage_get2.jpg
delete mode 100644 reference/PImage_get_/index.html
delete mode 100644 reference/PImage_height.jpg
delete mode 100644 reference/PImage_height/index.html
delete mode 100644 reference/PImage_loadPixels_/index.html
delete mode 100644 reference/PImage_mask_/index.html
delete mode 100644 reference/PImage_pixels.jpg
delete mode 100644 reference/PImage_pixels/index.html
delete mode 100644 reference/PImage_resize.jpg
delete mode 100644 reference/PImage_resize_/index.html
delete mode 100644 reference/PImage_resize_2.jpg
delete mode 100644 reference/PImage_save_/index.html
delete mode 100644 reference/PImage_set.jpg
delete mode 100644 reference/PImage_set_/index.html
delete mode 100644 reference/PImage_updatePixels_/index.html
delete mode 100644 reference/PImage_width.jpg
delete mode 100644 reference/PImage_width/index.html
delete mode 100644 reference/PShape/index.html
delete mode 100644 reference/PShape_disableStyle.jpg
delete mode 100644 reference/PShape_disableStyle_/index.html
delete mode 100644 reference/PShape_enableStyle.jpg
delete mode 100644 reference/PShape_enableStyle_/index.html
delete mode 100644 reference/PShape_getChild.jpg
delete mode 100644 reference/PShape_getChild_/index.html
delete mode 100644 reference/PShape_height/index.html
delete mode 100644 reference/PShape_isVisible_/index.html
delete mode 100644 reference/PShape_rotateX_/index.html
delete mode 100644 reference/PShape_rotateY_/index.html
delete mode 100644 reference/PShape_rotateZ_/index.html
delete mode 100644 reference/PShape_rotate_/index.html
delete mode 100644 reference/PShape_scale_/index.html
delete mode 100644 reference/PShape_setVisible_/index.html
delete mode 100644 reference/PShape_translate_/index.html
delete mode 100644 reference/PShape_visible.jpg
delete mode 100644 reference/PShape_width/index.html
delete mode 100644 reference/PVector/index.html
delete mode 100644 reference/PVector_add_/index.html
delete mode 100644 reference/PVector_angleBetween_/index.html
delete mode 100644 reference/PVector_array_/index.html
delete mode 100644 reference/PVector_cross_/index.html
delete mode 100644 reference/PVector_dist_/index.html
delete mode 100644 reference/PVector_div_/index.html
delete mode 100644 reference/PVector_dot_/index.html
delete mode 100644 reference/PVector_get_/index.html
delete mode 100644 reference/PVector_limit_/index.html
delete mode 100644 reference/PVector_mag_/index.html
delete mode 100644 reference/PVector_mult_/index.html
delete mode 100644 reference/PVector_normalize_/index.html
delete mode 100644 reference/PVector_set_/index.html
delete mode 100644 reference/PVector_sub_/index.html
delete mode 100644 reference/PVector_x/index.html
delete mode 100644 reference/PVector_y/index.html
delete mode 100644 reference/PVector_z/index.html
delete mode 100644 reference/QUARTER_PI/index.html
delete mode 100644 reference/String/index.html
delete mode 100644 reference/String_charAt_/index.html
delete mode 100644 reference/String_equals_/index.html
delete mode 100644 reference/String_indexOf_/index.html
delete mode 100644 reference/String_length_/index.html
delete mode 100644 reference/String_substring_/index.html
delete mode 100644 reference/String_toLowerCase_/index.html
delete mode 100644 reference/String_toUpperCase_/index.html
delete mode 100644 reference/TWO_PI.gif
delete mode 100644 reference/TWO_PI/index.html
delete mode 100644 reference/XMLElement/index.html
delete mode 100644 reference/XMLElement_getChildCount_/index.html
delete mode 100644 reference/XMLElement_getChild_/index.html
delete mode 100644 reference/XMLElement_getChildren_/index.html
delete mode 100644 reference/XMLElement_getContent_/index.html
delete mode 100644 reference/XMLElement_getFloatAttribute_/index.html
delete mode 100644 reference/XMLElement_getIntAttribute_/index.html
delete mode 100644 reference/XMLElement_getName_/index.html
delete mode 100644 reference/XMLElement_getStringAttribute_/index.html
delete mode 100644 reference/abs_/index.html
delete mode 100644 reference/acos_/index.html
delete mode 100644 reference/add assign/index.html
delete mode 100644 reference/addition/index.html
delete mode 100644 reference/alpha_.gif
delete mode 100644 reference/alpha_/index.html
delete mode 100644 reference/ambientLight_.gif
delete mode 100644 reference/ambientLight_/index.html
delete mode 100644 reference/ambient_.jpg
delete mode 100644 reference/ambient_/index.html
delete mode 100644 reference/append_/index.html
delete mode 100644 reference/applyMatrix_.gif
delete mode 100644 reference/applyMatrix_/index.html
delete mode 100644 reference/arc_.gif
delete mode 100644 reference/arc_/index.html
delete mode 100644 reference/array access/index.html
delete mode 100644 reference/arrayCopy_/index.html
delete mode 100644 reference/asin_/index.html
delete mode 100644 reference/assign/index.html
delete mode 100644 reference/atan2_/index.html
delete mode 100644 reference/atan_/index.html
delete mode 100644 reference/background_.gif
delete mode 100644 reference/background_/index.html
delete mode 100644 reference/background_2.gif
delete mode 100644 reference/background_3.jpg
delete mode 100644 reference/beginCamera_.gif
delete mode 100644 reference/beginCamera_/index.html
delete mode 100644 reference/beginShape_.gif
delete mode 100644 reference/beginShape_/index.html
delete mode 100644 reference/beginShape_0.gif
delete mode 100644 reference/beginShape_2.gif
delete mode 100644 reference/beginShape_3.gif
delete mode 100644 reference/beginShape_4.gif
delete mode 100644 reference/beginShape_5.gif
delete mode 100644 reference/beginShape_6.gif
delete mode 100644 reference/beginShape_65.gif
delete mode 100644 reference/beginShape_7.gif
delete mode 100644 reference/beginShape_8.gif
delete mode 100644 reference/beginShape_9.gif
delete mode 100644 reference/bezierDetail_.gif
delete mode 100644 reference/bezierDetail_/index.html
delete mode 100644 reference/bezierPoint_.gif
delete mode 100644 reference/bezierPoint_/index.html
delete mode 100644 reference/bezierTangent_.gif
delete mode 100644 reference/bezierTangent_/index.html
delete mode 100644 reference/bezierTangent_2.gif
delete mode 100644 reference/bezierVertex_.gif
delete mode 100644 reference/bezierVertex_/index.html
delete mode 100644 reference/bezierVertex_2.gif
delete mode 100644 reference/bezier_.gif
delete mode 100644 reference/bezier_/index.html
delete mode 100644 reference/bezier_2.gif
delete mode 100644 reference/binary_/index.html
delete mode 100644 reference/bitwise AND/index.html
delete mode 100644 reference/bitwise OR/index.html
delete mode 100644 reference/blendColor_/index.html
delete mode 100644 reference/blend_/index.html
delete mode 100644 reference/blend_add.jpg
delete mode 100644 reference/blend_color.gif
delete mode 100644 reference/blend_darkest.jpg
delete mode 100644 reference/blend_lightest.jpg
delete mode 100644 reference/blend_subtract.jpg
delete mode 100644 reference/blue_.gif
delete mode 100644 reference/blue_/index.html
delete mode 100644 reference/boolean.gif
delete mode 100644 reference/boolean/index.html
delete mode 100644 reference/boolean_/index.html
delete mode 100644 reference/box_.gif
delete mode 100644 reference/box_/index.html
delete mode 100644 reference/box_2.gif
delete mode 100644 reference/break/index.html
delete mode 100644 reference/brightness_.gif
delete mode 100644 reference/brightness_/index.html
delete mode 100644 reference/byte/index.html
delete mode 100644 reference/byte_/index.html
delete mode 100644 reference/camera_/index.html
delete mode 100644 reference/case/index.html
delete mode 100644 reference/ceil_/index.html
delete mode 100644 reference/char/index.html
delete mode 100644 reference/char_/index.html
delete mode 100644 reference/class/index.html
delete mode 100644 reference/color datatype/index.html
delete mode 100644 reference/color.gif
delete mode 100644 reference/colorMode_.jpg
delete mode 100644 reference/colorMode_/index.html
delete mode 100644 reference/colorMode_2.jpg
delete mode 100644 reference/color_.gif
delete mode 100644 reference/color_/index.html
delete mode 100644 reference/comma/index.html
delete mode 100644 reference/comment/index.html
delete mode 100644 reference/concat_/index.html
delete mode 100644 reference/conditional/index.html
delete mode 100644 reference/constrain_/index.html
delete mode 100644 reference/continue/index.html
delete mode 100644 reference/copy_.jpg
delete mode 100644 reference/copy_/index.html
delete mode 100644 reference/cos_.gif
delete mode 100644 reference/cos_/index.html
delete mode 100644 reference/createFont_/index.html
delete mode 100644 reference/createGraphics_/index.html
delete mode 100644 reference/createImage.jpg
delete mode 100644 reference/createImage_/index.html
delete mode 100644 reference/createImage_2.jpg
delete mode 100644 reference/crisp/index.html
delete mode 100644 reference/curly braces/index.html
delete mode 100644 reference/cursor_/index.html
delete mode 100644 reference/curveDetail_.gif
delete mode 100644 reference/curveDetail_/index.html
delete mode 100644 reference/curvePoint_.gif
delete mode 100644 reference/curvePoint_/index.html
delete mode 100644 reference/curveTangent_.gif
delete mode 100644 reference/curveTangent_/index.html
delete mode 100644 reference/curveTightness_.gif
delete mode 100644 reference/curveTightness_/index.html
delete mode 100644 reference/curveVertex_.gif
delete mode 100644 reference/curveVertex_/index.html
delete mode 100644 reference/curve_.gif
delete mode 100644 reference/curve_/index.html
delete mode 100644 reference/day_/index.html
delete mode 100644 reference/decrement/index.html
delete mode 100644 reference/default/index.html
delete mode 100644 reference/degrees_/index.html
delete mode 100644 reference/directionalLight_.jpg
delete mode 100644 reference/directionalLight_/index.html
delete mode 100644 reference/directionalLight_2.jpg
delete mode 100644 reference/directional_ambient_.jpg
delete mode 100644 reference/dist_/index.html
delete mode 100644 reference/divide assign/index.html
delete mode 100644 reference/divide/index.html
delete mode 100644 reference/doc comment/index.html
delete mode 100644 reference/dot/index.html
delete mode 100644 reference/double/index.html
delete mode 100644 reference/draw_/index.html
delete mode 100644 reference/ellipseMode_.gif
delete mode 100644 reference/ellipseMode_/index.html
delete mode 100644 reference/ellipse_.gif
delete mode 100644 reference/ellipse_/index.html
delete mode 100644 reference/else.gif
delete mode 100644 reference/else2.gif
delete mode 100644 reference/else_/index.html
delete mode 100644 reference/emissive_.jpg
delete mode 100644 reference/emissive_/index.html
delete mode 100644 reference/endCamera_/index.html
delete mode 100644 reference/endShape_.gif
delete mode 100644 reference/endShape_/index.html
delete mode 100644 reference/equality/index.html
delete mode 100644 reference/exit_/index.html
delete mode 100644 reference/exp_/index.html
delete mode 100644 reference/expand_/index.html
delete mode 100644 reference/extends/index.html
delete mode 100644 reference/false/index.html
delete mode 100644 reference/fill_.gif
delete mode 100644 reference/fill_/index.html
delete mode 100644 reference/fill_2.gif
delete mode 100644 reference/filter_.jpg
delete mode 100644 reference/filter_/index.html
delete mode 100644 reference/filter_2.gif
delete mode 100644 reference/filter_blur.jpg
delete mode 100644 reference/filter_gray.jpg
delete mode 100644 reference/filter_invert.jpg
delete mode 100644 reference/filter_posterize.jpg
delete mode 100644 reference/filter_threshold.jpg
delete mode 100644 reference/final/index.html
delete mode 100644 reference/float/index.html
delete mode 100644 reference/float_/index.html
delete mode 100644 reference/floor_/index.html
delete mode 100644 reference/focused/index.html
delete mode 100644 reference/font/index.html
delete mode 100644 reference/for_.gif
delete mode 100644 reference/for_/index.html
delete mode 100644 reference/for_2.gif
delete mode 100644 reference/for_3.gif
delete mode 100644 reference/for_4.gif
delete mode 100644 reference/frameCount/index.html
delete mode 100644 reference/frameRate/index.html
delete mode 100644 reference/frameRate_/index.html
delete mode 100644 reference/frustum_.gif
delete mode 100644 reference/frustum_/index.html
delete mode 100644 reference/get_.jpg
delete mode 100644 reference/get_/index.html
delete mode 100644 reference/get_2.jpg
delete mode 100644 reference/globalKeyEvents/index.html
delete mode 100644 reference/greater than or equal to/index.html
delete mode 100644 reference/greater than/index.html
delete mode 100644 reference/green_.gif
delete mode 100644 reference/green_/index.html
delete mode 100644 reference/height.gif
delete mode 100644 reference/height/index.html
delete mode 100644 reference/hex_/index.html
delete mode 100644 reference/hint_/index.html
delete mode 100644 reference/hour_/index.html
delete mode 100644 reference/hue_.gif
delete mode 100644 reference/hue_/index.html
delete mode 100644 reference/if_.gif
delete mode 100644 reference/if_/index.html
delete mode 100644 reference/imageMode_.jpg
delete mode 100644 reference/imageMode_/index.html
delete mode 100644 reference/image_.jpg
delete mode 100644 reference/image_/index.html
delete mode 100644 reference/image_2.jpg
delete mode 100644 reference/implements/index.html
delete mode 100644 reference/import/index.html
delete mode 100644 reference/increment/index.html
delete mode 100644 reference/index.html
delete mode 100644 reference/inequality/index.html
delete mode 100644 reference/int/index.html
delete mode 100644 reference/int_/index.html
delete mode 100644 reference/join_/index.html
delete mode 100644 reference/key/index.html
delete mode 100644 reference/keyCode/index.html
delete mode 100644 reference/keyPressed/index.html
delete mode 100644 reference/keyPressed_/index.html
delete mode 100644 reference/keyReleased_/index.html
delete mode 100644 reference/keyTyped_/index.html
delete mode 100644 reference/left shift/index.html
delete mode 100644 reference/lerpColor.jpg
delete mode 100644 reference/lerpColor_/index.html
delete mode 100644 reference/lerp_.gif
delete mode 100644 reference/lerp_/index.html
delete mode 100644 reference/lerp_2.gif
delete mode 100644 reference/less than or equal to/index.html
delete mode 100644 reference/less than/index.html
delete mode 100644 reference/lightFalloff_/index.html
delete mode 100644 reference/lightSpecular_.jpg
delete mode 100644 reference/lightSpecular_/index.html
delete mode 100644 reference/lights_.jpg
delete mode 100644 reference/lights_/index.html
delete mode 100644 reference/lights_2.jpg
delete mode 100644 reference/line_.gif
delete mode 100644 reference/line_/index.html
delete mode 100644 reference/line_2.gif
delete mode 100644 reference/line_3.gif
delete mode 100644 reference/link_/index.html
delete mode 100644 reference/loadBytes_/index.html
delete mode 100644 reference/loadFont_.gif
delete mode 100644 reference/loadFont_/index.html
delete mode 100644 reference/loadImage_.jpg
delete mode 100644 reference/loadImage_/index.html
delete mode 100644 reference/loadPixels_.jpg
delete mode 100644 reference/loadPixels_/index.html
delete mode 100644 reference/loadShape_/index.html
delete mode 100644 reference/loadStrings_/index.html
delete mode 100644 reference/log_/index.html
delete mode 100644 reference/logical AND/index.html
delete mode 100644 reference/logical NOT/index.html
delete mode 100644 reference/logical OR/index.html
delete mode 100644 reference/logicalAND.gif
delete mode 100644 reference/logicalNOT.gif
delete mode 100644 reference/logicalOR.gif
delete mode 100644 reference/long/index.html
delete mode 100644 reference/lookat_.gif
delete mode 100644 reference/loop_/index.html
delete mode 100644 reference/mag_.gif
delete mode 100644 reference/mag_/index.html
delete mode 100644 reference/map_/index.html
delete mode 100644 reference/mask_.jpg
delete mode 100644 reference/matchAll_/index.html
delete mode 100644 reference/match_/index.html
delete mode 100644 reference/max_/index.html
delete mode 100644 reference/millis_/index.html
delete mode 100644 reference/min_/index.html
delete mode 100644 reference/minus/index.html
delete mode 100644 reference/minute_/index.html
delete mode 100644 reference/modelX_/index.html
delete mode 100644 reference/modelY_/index.html
delete mode 100644 reference/modelZ_/index.html
delete mode 100644 reference/modulo/index.html
delete mode 100644 reference/month_/index.html
delete mode 100644 reference/mouseButton/index.html
delete mode 100644 reference/mouseClicked_/index.html
delete mode 100644 reference/mouseDragged_/index.html
delete mode 100644 reference/mouseMoved_/index.html
delete mode 100644 reference/mouseOut_/index.html
delete mode 100644 reference/mouseOver_/index.html
delete mode 100644 reference/mousePressed/index.html
delete mode 100644 reference/mousePressed_/index.html
delete mode 100644 reference/mouseReleased_/index.html
delete mode 100644 reference/mouseX/index.html
delete mode 100644 reference/mouseY/index.html
delete mode 100644 reference/multiline comment/index.html
delete mode 100644 reference/multiply assign/index.html
delete mode 100644 reference/multiply/index.html
delete mode 100644 reference/new/index.html
delete mode 100644 reference/nf_/index.html
delete mode 100644 reference/nfc_/index.html
delete mode 100644 reference/nfp_/index.html
delete mode 100644 reference/nfs_/index.html
delete mode 100644 reference/noCursor_/index.html
delete mode 100644 reference/noFill_.gif
delete mode 100644 reference/noFill_/index.html
delete mode 100644 reference/noLights_/index.html
delete mode 100644 reference/noLoop_/index.html
delete mode 100644 reference/noSmooth_.gif
delete mode 100644 reference/noSmooth_/index.html
delete mode 100644 reference/noStroke_.gif
delete mode 100644 reference/noStroke_/index.html
delete mode 100644 reference/noTint_.jpg
delete mode 100644 reference/noTint_/index.html
delete mode 100644 reference/noiseDetail_/index.html
delete mode 100644 reference/noiseSeed_/index.html
delete mode 100644 reference/noise_/index.html
delete mode 100644 reference/norm_/index.html
delete mode 100644 reference/normal_/index.html
delete mode 100644 reference/null/index.html
delete mode 100644 reference/online/index.html
delete mode 100644 reference/ortho_.gif
delete mode 100644 reference/ortho_/index.html
delete mode 100644 reference/parentheses/index.html
delete mode 100644 reference/pauseOnBlur/index.html
delete mode 100644 reference/perspective_.gif
delete mode 100644 reference/perspective_/index.html
delete mode 100644 reference/pgraphics.jpg
delete mode 100644 reference/pixels.gif
delete mode 100644 reference/pixels_/index.html
delete mode 100644 reference/pjs directive/index.html
delete mode 100644 reference/pmouseX/index.html
delete mode 100644 reference/pmouseY/index.html
delete mode 100644 reference/pointLight_.jpg
delete mode 100644 reference/pointLight_/index.html
delete mode 100644 reference/point_.gif
delete mode 100644 reference/point_/index.html
delete mode 100644 reference/point_2.gif
delete mode 100644 reference/popMatrix_/index.html
delete mode 100644 reference/popStyle_/index.html
delete mode 100644 reference/pop_.gif
delete mode 100644 reference/pow_/index.html
delete mode 100644 reference/preload/index.html
delete mode 100644 reference/printCamera_/index.html
delete mode 100644 reference/printMatrix_/index.html
delete mode 100644 reference/printProjection_/index.html
delete mode 100644 reference/print_/index.html
delete mode 100644 reference/println_/index.html
delete mode 100644 reference/private/index.html
delete mode 100644 reference/public/index.html
delete mode 100644 reference/pushMatrix_.gif
delete mode 100644 reference/pushMatrix_/index.html
delete mode 100644 reference/pushStyle-2.gif
delete mode 100644 reference/pushStyle.gif
delete mode 100644 reference/pushStyle_/index.html
delete mode 100644 reference/quad_.gif
delete mode 100644 reference/quad_/index.html
delete mode 100644 reference/radians_/index.html
delete mode 100644 reference/randomSeed_/index.html
delete mode 100644 reference/random_/index.html
delete mode 100644 reference/rect()/index.html
delete mode 100644 reference/rectMode_.gif
delete mode 100644 reference/rectMode_/index.html
delete mode 100644 reference/rect_.gif
delete mode 100644 reference/rect_/index.html
delete mode 100644 reference/red_.gif
delete mode 100644 reference/red_/index.html
delete mode 100644 reference/redraw_/index.html
delete mode 100644 reference/requestImage_/index.html
delete mode 100644 reference/resetMatrix_.gif
delete mode 100644 reference/resetMatrix_/index.html
delete mode 100644 reference/return/index.html
delete mode 100644 reference/reverse_/index.html
delete mode 100644 reference/right shift/index.html
delete mode 100644 reference/rotateX_.gif
delete mode 100644 reference/rotateX_/index.html
delete mode 100644 reference/rotateY_.gif
delete mode 100644 reference/rotateY_/index.html
delete mode 100644 reference/rotateZ_.gif
delete mode 100644 reference/rotateZ_/index.html
delete mode 100644 reference/rotate_.gif
delete mode 100644 reference/rotate_/index.html
delete mode 100644 reference/round_/index.html
delete mode 100644 reference/saturation_.gif
delete mode 100644 reference/saturation_/index.html
delete mode 100644 reference/saveFrame_/index.html
delete mode 100644 reference/saveStrings_/index.html
delete mode 100644 reference/save_/index.html
delete mode 100644 reference/scale_.gif
delete mode 100644 reference/scale_/index.html
delete mode 100644 reference/scale_2.gif
delete mode 100644 reference/scale_3.gif
delete mode 100644 reference/screen/index.html
delete mode 100644 reference/screenX_/index.html
delete mode 100644 reference/screenY_/index.html
delete mode 100644 reference/screenZ_/index.html
delete mode 100644 reference/second_/index.html
delete mode 100644 reference/semi colon/index.html
delete mode 100644 reference/set_.gif
delete mode 100644 reference/set_/index.html
delete mode 100644 reference/set_2.jpg
delete mode 100644 reference/set_3.jpg
delete mode 100644 reference/setup_/index.html
delete mode 100644 reference/shapeMode.jpg
delete mode 100644 reference/shapeMode_/index.html
delete mode 100644 reference/shape_/index.html
delete mode 100644 reference/shininess_.jpg
delete mode 100644 reference/shininess_/index.html
delete mode 100644 reference/shorten_/index.html
delete mode 100644 reference/sin_.gif
delete mode 100644 reference/sin_/index.html
delete mode 100644 reference/size_/index.html
delete mode 100644 reference/smooth_.gif
delete mode 100644 reference/smooth_/index.html
delete mode 100644 reference/sort_/index.html
delete mode 100644 reference/specular_.jpg
delete mode 100644 reference/specular_/index.html
delete mode 100644 reference/sphereDetail_/index.html
delete mode 100644 reference/sphere_.gif
delete mode 100644 reference/sphere_/index.html
delete mode 100644 reference/splice_/index.html
delete mode 100644 reference/splitTokens_/index.html
delete mode 100644 reference/split_/index.html
delete mode 100644 reference/spotLight_.jpg
delete mode 100644 reference/spotLight_/index.html
delete mode 100644 reference/spotLight_2.jpg
delete mode 100644 reference/sq_.gif
delete mode 100644 reference/sq_/index.html
delete mode 100644 reference/sqrt_.gif
delete mode 100644 reference/sqrt_/index.html
delete mode 100644 reference/static/index.html
delete mode 100644 reference/status_/index.html
delete mode 100644 reference/str_/index.html
delete mode 100644 reference/strokeCap_.gif
delete mode 100644 reference/strokeCap_/index.html
delete mode 100644 reference/strokeJoin_.gif
delete mode 100644 reference/strokeJoin_/index.html
delete mode 100644 reference/strokeJoin_2.gif
delete mode 100644 reference/strokeJoin_3.gif
delete mode 100644 reference/strokeWeight_.gif
delete mode 100644 reference/strokeWeight_/index.html
delete mode 100644 reference/stroke_.gif
delete mode 100644 reference/stroke_/index.html
delete mode 100644 reference/stroke_2.gif
delete mode 100644 reference/subset_/index.html
delete mode 100644 reference/subtract assign/index.html
delete mode 100644 reference/super/index.html
delete mode 100644 reference/svg.jpg
delete mode 100644 reference/switch_/index.html
delete mode 100644 reference/tan_.gif
delete mode 100644 reference/tan_/index.html
delete mode 100644 reference/textAlign_.gif
delete mode 100644 reference/textAlign_/index.html
delete mode 100644 reference/textAscent_.gif
delete mode 100644 reference/textAscent_/index.html
delete mode 100644 reference/textDescent_.gif
delete mode 100644 reference/textDescent_/index.html
delete mode 100644 reference/textFont_.gif
delete mode 100644 reference/textFont_/index.html
delete mode 100644 reference/textLeading_.gif
delete mode 100644 reference/textLeading_/index.html
delete mode 100644 reference/textMode_.gif
delete mode 100644 reference/textMode_/index.html
delete mode 100644 reference/textSize_.gif
delete mode 100644 reference/textSize_/index.html
delete mode 100644 reference/textWidth_.gif
delete mode 100644 reference/textWidth_/index.html
delete mode 100644 reference/text_.gif
delete mode 100644 reference/text_/index.html
delete mode 100644 reference/text_3.gif
delete mode 100644 reference/text_X.gif
delete mode 100644 reference/textureMode_.gif
delete mode 100644 reference/textureMode_/index.html
delete mode 100644 reference/textureMode_2.gif
delete mode 100644 reference/texture_.gif
delete mode 100644 reference/texture_/index.html
delete mode 100644 reference/this/index.html
delete mode 100644 reference/tint_.jpg
delete mode 100644 reference/tint_/index.html
delete mode 100644 reference/tint_2.jpg
delete mode 100644 reference/translate_.gif
delete mode 100644 reference/translate_/index.html
delete mode 100644 reference/translate_2.gif
delete mode 100644 reference/translate_3.gif
delete mode 100644 reference/transparent/index.html
delete mode 100644 reference/triangle_.gif
delete mode 100644 reference/triangle_/index.html
delete mode 100644 reference/trim_/index.html
delete mode 100644 reference/true/index.html
delete mode 100644 reference/unbinary_/index.html
delete mode 100644 reference/unhex_/index.html
delete mode 100644 reference/updatePixels_.jpg
delete mode 100644 reference/updatePixels_/index.html
delete mode 100644 reference/updatePixels_2.jpg
delete mode 100644 reference/vertex_.gif
delete mode 100644 reference/vertex_/index.html
delete mode 100644 reference/vertex_2.gif
delete mode 100644 reference/vertex_3.gif
delete mode 100644 reference/void/index.html
delete mode 100644 reference/while_.gif
delete mode 100644 reference/while_/index.html
delete mode 100644 reference/width.gif
delete mode 100644 reference/width/index.html
delete mode 100644 reference/year_/index.html
delete mode 100644 sketches/2d1.pde
delete mode 100644 sketches/bannerSketch.pde
delete mode 100644 sketches/basic-example.pde
delete mode 100644 sketches/jmartinho_tr-lines_2011.pde
delete mode 100644 sketches/my-life-aquatic/Boid.pde
delete mode 100644 sketches/my-life-aquatic/Bubble.pde
delete mode 100644 sketches/my-life-aquatic/Fish.pde
delete mode 100644 sketches/my-life-aquatic/Flagellum.pde
delete mode 100644 sketches/my-life-aquatic/Food.pde
delete mode 100644 sketches/my-life-aquatic/explosion.mp3
delete mode 100644 sketches/my-life-aquatic/explosion.ogg
delete mode 100644 sketches/my-life-aquatic/gulp.mp3
delete mode 100644 sketches/my-life-aquatic/gulp.ogg
delete mode 100644 sketches/my-life-aquatic/pond.pde
delete mode 100644 sketches/mysketch.pde
delete mode 100644 sketches/mysketch2.pde
delete mode 100644 sketches/mysketch3.pde
delete mode 100644 sketches/mysketch4.pde
delete mode 100644 sketches/mysketch5.pde
delete mode 100644 sketches/mysketch6.pde
delete mode 100644 sketches/mysketch7.pde
delete mode 100644 sketches/mysketch8.pde
delete mode 100644 sketches/sketch1.pde
delete mode 100644 sketches/sketch2.pde
delete mode 100644 sketches/sketch3.pde
delete mode 100644 sketches/sketch4.pde
delete mode 100644 sketches/sketch5.pde
delete mode 100644 sketches/webgl1.pde
delete mode 100644 sketches/webgl2.pde
delete mode 100644 tools/jsbeautify.js
delete mode 100644 tools/processing-helper.html
delete mode 100644 tools/processing-helper.js
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 5499180..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,6 +0,0 @@
-# OS X ignores
-.DS_Store
-
-# Jekyll ignores
-_site
-Gemfile.lock
diff --git a/.htaccess b/.htaccess
deleted file mode 100644
index 91c358e..0000000
--- a/.htaccess
+++ /dev/null
@@ -1 +0,0 @@
-ErrorDocument 404 /404.html
diff --git a/.rvmrc b/.rvmrc
deleted file mode 100644
index 1ef2bfa..0000000
--- a/.rvmrc
+++ /dev/null
@@ -1 +0,0 @@
-rvm use ruby-1.9.3-p194@processing.js --create
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 318436a..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-language: ruby
-rvm:
-- 2.1.0
-install: bundle install
-script: bundle exec jekyll build
-script: bundle exec jekyll build
diff --git a/404.html b/404.html
deleted file mode 100644
index 02cda41..0000000
--- a/404.html
+++ /dev/null
@@ -1,5 +0,0 @@
----
-layout: default
----
-Page not found
-The page you requested could not be found. Click here to return home.
diff --git a/CNAME b/CNAME
deleted file mode 100644
index 1c989db..0000000
--- a/CNAME
+++ /dev/null
@@ -1 +0,0 @@
-processingjs.org
diff --git a/Gemfile b/Gemfile
deleted file mode 100644
index 053c27d..0000000
--- a/Gemfile
+++ /dev/null
@@ -1,2 +0,0 @@
-source 'https://rubygems.org'
-gem 'github-pages'
diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md
deleted file mode 100644
index 666a153..0000000
--- a/ISSUE_TEMPLATE.md
+++ /dev/null
@@ -1,7 +0,0 @@
-Thank you for finding a bug on the Processing.js website, or having a change request you'd like to see implemented.
-
-The Processing.js website is not under active maintenance at the moment, lacking developers that have
-the time to work on it. As such, any bug you find might take a long time to get a fix. However, if
-you're interested in fixing things yourself, I (Pomax) will be more than happy to review your suggested
-changes and merge them in if they fix the problem you were having without introducing problems
-due to side effects your code might have.
diff --git a/README.md b/README.md
index 9d4455c..1b77ae5 100644
--- a/README.md
+++ b/README.md
@@ -1,140 +1,12 @@
-The Processing.js website
-=========================
+Processing.js
+=============
-This is our website, in all its glory.
+Processing.js was a port of the [Processing](https://processing.org) programming language for the web, and was maintained from November 2011 to December 2018, having been unofficially retired in March of 2017.
-Testing the website locally
----------------------------
+If you're looking for the last version of Processing.js before the project was officially discontinued, you're looking for [v1.6.6](https://github.com/processing-js/processing-js/tree/v1.6.6).
-Install [Jekyll](https://github.com/mojombo/jekyll/wiki/Install) on your computer,
-clone this repository, and run `jekyll` inside the root of the repository.
+If you want to use Processing on the web today, please have a look at the newer [P5.js](https://p5js.org) project, which was a reimagining of Processing "if it had been designed for use on the web from the get-go".
-To match Github Pages, you'll need to install Jekyll v0.11.0, uninstall Liquid v2.3.0
-(`gem uninstall liquid`), then install Liquid v2.2.2 (`gem install liquid -v 2.2.2`). For this
-combination to work, you'll need to be running ruby 1.8.7; ruby 1.9.x fails with an "invalid byte
-sequence in UTF-8" ArgumentError.
+Thank you to everyone who used Processing.js in the past, and of course: everyone who worked on the project over the years.
-Jekyll will compile (yes, seriously) the website into the _site directory, and start a
-localhost web server running on port 4000. Jekyll will automatically recompile the site
-if you make any changes.
-
-Updating the blog
------------------
-
-The blog index is `/blog/index.html`, and all of the individual blog posts are located in
-`/blog/_posts/`. I've created a template blog post in `/blog/_posts/template.html`, but for
-posterity, here it is:
-
- ---
- layout: post
- title: Template blog title
- ---
- Write your blog post here
-
-Once you've changed the title to something appropriate and written something useful for the
-blog post, you need to save the blog post with a specific filename within the _posts
-directory to have Jekyll pick it up as a blog post. The format is `yyyy-mm-dd-title-with-dashes.ext`,
-where ext can be html, md, or textile.
-
-Updating the downloads
-----------------------
-
-The downloads index is `/downloads/index.html`, and all of the files for download are located
-at [https://github.com/processing-js/processing-js/downloads](https://github.com/processing-js/processing-js/downloads).
-Each release of Processing.js gets a post in the `/downloads/_posts/` directory which contains
-links for each download.
-Everyone with the right access (see below) should upload the files to the Github Downloads
-page, then update the Processing.js Downloads page to point to the new files.
-
-Updating the exhibitions
-------------------------
-
-The exhibitions index is `/exhibition/index.html`, and all of the individual exhibitions are
-located in `/exhibition/_posts/`. I've created a template exhibition in
-`/exhibition/_posts/template.html`, but it's here too:
-
-
-
-
-
- Demoname by
- Authors
- Description
-
-
-You'll need a make a 180x75 screenshot of the exhibition in question, and put that in
-`/images/exhibition/`. Once you done that, fill out the rest of the information in the
-template. Like blog posts, you'll need to name the exhibition in a specific format so
-that it's picked up by Jekyll: `yyyy-mm-dd-title-with-dashes.ext`, where ext can be html,
-md, or textile. To preserve the order of exhibitions on the index page, I just incremented
-the date by one day for each exhibition.
-
-Updating the articles
----------------------
-
-The articles index is `/articles/index.html`, and all of the individual articles are located
-in `/articles/_posts/`. The template is at `/articles/_posts/template.html`, but let's look
-at it anyways:
-
- ---
- layout: default
- desc: Jon's Guide to ASDF
- title: ASDF Guide
- permalink: /articles/ASDFGuide.html
- ---
- This is my lovely article about ASDF
-
-The desc is a short description of the article that's shown on the Articles index page. The
-title is the actual title of the article. The permalink is where the article should actually
-be placed when compiled; by default it gets a URL with the publish date, which is something
-we don't care about. Like blog posts and exhibitions, you'll need to name the exhibition in
-a specific format so that it's picked up by Jekyll: `yyyy-mm-dd-title-with-dashes.ext`, where
-ext can be html, md, or textile.
-
-If you want to update the list of articles that appears on the front page, you'll need to edit
-the default layout in `/_layouts/default.html`.
-
-Updating the front page
------------------------
-
-The front page index is `/index.html`. If you're editing the front page text or exhibitions,
-this is the place to do it.
-
-Updating anything else
-----------------------
-
-Everything else is static content. Go to the exact file you're looking for, and make whatever
-changes you need to make!
-
-Layouts
--------
-
-On almost every single page you see, there's a few lines of text that looks like this:
-
- ---
- layout: default
- ---
-
-This YAML front matter tells Jekyll to use the layout in `_layouts` named `default`. In this
-case, `_layouts/default.html`. There's another layout for blog posts called `post` which
-inherits from `default`. Be careful about making changes to these layouts, as it affects
-pretty much every other page. Everything that you link to from this page must be linked in
-an absolute fashion, with a `/` at the front.
-
-Access controls
----------------
-
-Who is allowed to update the git repository is controlled by the Processing.js
-[organization settings](https://github.com/organizations/processing-js/teams) on Github.
-
-Hosting considerations
-----------------------
-
-The Processing.js site will work on any hosting service that serves content with the
-correct MIME type. The only content on the website that is not stored within the
-repository is the various Processing.js releases on our Downloads page. Those are
-currently stored in the [Github Downloads page](https://github.com/processing-js/processing-js/downloads)
-for Processing.js. If we had to move from Github Pages hosting to somewhere else, we'd
-need to update the download links on our Downloads page. We'd also need to figure out
-access controls for new hosting; the access controls for Github are everyone added to
-the [Processing.js organization](https://github.com/processing-js).
+- The Processing.js Team
diff --git a/_config.yml b/_config.yml
deleted file mode 100644
index 93a2530..0000000
--- a/_config.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-# Github defaults
-safe: true
-lsi: false
-highlighter: rouge
diff --git a/_layouts/default.html b/_layouts/default.html
deleted file mode 100644
index 38c85c6..0000000
--- a/_layouts/default.html
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
-
- {% if page.title %}{{ page.title }} | {% endif %}Processing.js
-
-
-
-
-
-
-
-
-
-
-
-
-
-
a port of the Processing Visualization Language
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/_layouts/post.html b/_layouts/post.html
deleted file mode 100644
index 71278da..0000000
--- a/_layouts/post.html
+++ /dev/null
@@ -1,8 +0,0 @@
----
-layout: default
----
-
-
-
{{ page.date | date_to_string }}
-{{ content }}
-
diff --git a/_layouts/withcc.html b/_layouts/withcc.html
deleted file mode 100644
index fe6c216..0000000
--- a/_layouts/withcc.html
+++ /dev/null
@@ -1,10 +0,0 @@
----
-layout: default
----
-{{ content }}
-
-
This reference is licensed under the CC BY-NC-SA 2.0 license:
-
-
-
-
\ No newline at end of file
diff --git a/articles/_posts/2011-12-01-PomaxGuide.html b/articles/_posts/2011-12-01-PomaxGuide.html
deleted file mode 100644
index 96b91b6..0000000
--- a/articles/_posts/2011-12-01-PomaxGuide.html
+++ /dev/null
@@ -1,1486 +0,0 @@
----
-layout: default
-desc: Pomax's guide to Processing.js
-title: Pomax Guide
-permalink: /articles/PomaxGuide.html
----
-
-
-
-
Pomax's guide to Processing.js
-
-
-
-
This page tries to explain how to quickly and (as) correctly (as possible) use
- Processing sketches on webpages. The information is based on the work done by
- the processing.js group.
-
-
This information on this page reflects the best of my knowledge anno November
- 2010, and processing.js becomes more and more complete, so it is possible that the
- information on this page changes over time. Should you spot any incompletenesses
- or blatant mistakes, please contact me at
-
-
- pomax at
- nihongoresources.com,
-
- with the obvious substitutions in place to make it a legal email address.
-
-
What is Processing?
-
-
The "Processing" language (also referred to as "P5") is a programming language
- with a focus on data visualisation. Of course, "data" is a loose concept, and
- Processing can be used for anything from drawing a few lines and circles on a
- screen, to full blown interactive animations. In fact, a basic Processing program
- is two lines of code, and will already play an animation:
-
- {% highlight java linenos %}
- void setup() { size(..., ...); }
- void draw() {}{% endhighlight %}
-
-
Of course this program doesn't show you anything, because all it does is set up
- the visual context to have a certain width and height (indicated in the setup
- method as the size(...,...) instruction) and then calls draw() every few milliseconds.
- Of course, draw() is empty, so it won't actually show you anything. A more useful
- minimal program would be a "hello world" program, but I hate those because they only
- show a programming language can write text, and that's pretty much the least interesting
- feature of any programming language. Instead let's look at a minimal program that makes
- sense for a data visualisation language:
-
- {% highlight java linenos %}
- float framerate = 24; // our "sketch" will have a framerate of 24 frames per second.
-
- int ball_x; // ball administration: x coordinate
- int ball_y; // ball administration: y coordinate
- int ball_radius = 20; // ball administration: ball radius
-
- void setup() {
- size(200,200); // set draw area size
- frameRate(framerate); // set animation framerate
- ball_x = width/2; // set the initial ball coordinates
- ball_y = ball_radius; // set the initial ball coordinates
- stroke(#003300); // set the default shape outline colour
- fill(#0000FF); // set the default shape fill colour
- }
-
- void draw() {
- // compute the ball height for this frame
- float bounce_height = height/2 * abs(sin(PI*frameCount/framerate));
- // because the top of the screen is 0, and the bottom is "height",
- float ball_height = height - (bounce_height+ball_radius);
- // clear the drawing area
- background(#FFFFEE);
- // set the new ball y position
- ball_y = (int) (ball_height);
- // draw the ball
- ellipse(ball_x,ball_y,ball_radius,ball_radius);
- }{% endhighlight %}
-
-
-
-
- play controls:
- ■
- ▶
-
-
-
This looks a bit long for a minimal program, but then again, this actually does
- something: it shows us a ball that bounces up and down, taking one second for each
- bounce. It shows a few aspects of Processing too: every variable is strongly typed.
- So you have to indicate what you'll be using a variable for, and you can choose from:
-
-
- boolean, a binary value that can be either true or false
- byte, an 8-bit value
- char, a byte representing an ascii character
- color, a type specific to Processing, representing an on-screen color
- int, a 32 bit signed integer number
- long, a 64 bit signed integer number
- float, a 32 bit signed decimal number
- double, a 64 bit signed decimal number
-
-
-
And of course there are also the typical complex data types:
-
-
- Object, a catch-all data type for things that are complex data types.
- String, a text string (stored as UTF-16).
- ArrayList, a list structure for arbitrary values with add/remove functionality.
- HashMap, a structure that can store {, } pairs.
- XMLElement, a convenient XML-mirroring object.
-
-
-
You'll see why this last one turns out to be really useful later on.
-
-
Coming back to the minimally functional example of a Processing program, or "sketch",
- there are also some examples of Processing' own API at work. The following methods are
- native Processing calls:
-
-
- size(int, int), sets the drawing area dimensions, and the global "width" and "height" values.
- frameRate(int), sets the refresh rate for the drawing area, and the frameRate value.
- stroke(color), sets the shape outline color.
- fill(color), sets the shape fill color.
- abs(number), computes the absolute value of any number.
- sin(number), computes the sinoid value based on any number (treated as radians).
- background(color), sets every pixel of the drawing area to the specified color.
- ellipse(int, int, int, int), draws an ellipse on the drawing area.
-
-
-
The Processing API is in fact quite expansive (See
- http://processing.org/reference for the full
- list), but it can't cover everything. Luckily it supports object oriented programming, so
- that our previous example can also be written as an object oriented sketch:
-
- {% highlight java linenos %}
- Bouncer bouncer;
-
- void setup() {
- size(200,200);
- frameRate(24);
- stroke(#003300);
- fill(#0000FF);
- bouncer = new Ball(width/2,20,20);
- }
-
- void draw() {
- bouncer.computeNextStep(width, height, frameRate);
- background(#FFFFEE);
- bouncer.draw();
- }
-
- interface Bouncer {
- void computeNextStep(int width, int height, float framerate);
- void draw();
- }
-
- class Ball implements Bouncer
- {
- int x,y,radius;
- int step = 0;
-
- Ball(int x, int y, int r) {
- this.x = x;
- this.y = y;
- this.radius = r;
- }
-
- void computeNextStep(int sketch_width, int sketch_height, float frame_rate) {
- step++;
- float sin_value = abs(sin(PI*step/(float)frame_rate));
- float bounce_height = sketch_height/2 * sin_value;
- float ball_height = sketch_height - (bounce_height + radius);
- y = (int) (ball_height);
- }
-
- void draw() {
- ellipse(x,y,radius,radius);
- }
- }{% endhighlight %}
-
-
-
-
- play controls:
- ■
- ▶
-
-
-
Instead of doing everything in the draw() function, the object oriented approach
- tucks all the code that relates to computing the ball's position in the definition
- for what we consider a "Ball". To be good object oriented programmers, we've also said
- that things that are a Ball are also a Bouncer, and this lets us extend our sketch very
- easily to instead of a bouncing ball, have a bouncing box by keeping almost everything
- the same, and adding a new class Box that's a Bouncer:
-
- {% highlight java linenos %}
- void setup() {
- ...
- bouncer = new Box(width/2,20,20,20);
- }
-
- class Box implements Bouncer
- {
- int x,y,w,h;
- int step=0;
-
- Box(int x, int y, int w, int h) {
- this.x = x;
- this.y = y;
- this.w = w;
- this.h = h;
- }
-
- void computeNextStep(int sketch_width, int sketch_height, float frame_rate) {
- step++;
- float sin_value = abs(sin(PI/2.0 + (PI*step/(float)frame_rate)));
- float bounce_height = sketch_height/2 * sin_value;
- float ball_height = sketch_height - (bounce_height + h);
- y = (int) (ball_height);
- }
-
- void draw() {
- rect(x,y,w,h);
- }{% endhighlight %}
-
-
-
-
- play controls:
- ■
- ▶
-
-
-
All of a sudden we have a bouncing box, that starts from a falling position instead
- of from the ground, and we didn't have to modify the master draw() function for it!
- In fact, let's just use a group of bouncing things:
-
- {% highlight java linenos %}
- Bouncer[] bouncer = new Bouncer[3];
-
- void setup() {
- ...
- bouncer[0] = new Ball(width/3-20,20,20);
- bouncer[1] = new Box(width/2-10,20,20,20);
- bouncer[2] = new Ball((2*width/3)+20,20,20);
- }
-
- void draw() {
- for(int b=0, end=bouncer.length; b
-
-
- play controls:
- ■
- ▶
-
-
- Fantastic, two bouncing balls and a bouncing box, bouncing counter-point to each
- other. But it's not very interactive yet. Let's change it so that we can "hang on"
- to bouncing things until we let go of them again. Processing allows interaction with
- the keyboard and mouse, using what are known as "event handlers", methods that Processing
- automatically calls for you when you use the keyboard or mouse. In this case we care
- about mouse interaction, so we'll look at mousePressed and mouseReleased events:
-
- {% highlight java linenos %}
- void mousePressed() {
- for(int b=0, end=bouncer.length; b
-
-
- play controls:
- ■
- ▶
-
-
- Because the Ball and Box classes will do the same thing on mouse interaction,
- the interface Bouncer has been changed to an actual class too, to take care of some of
- the shared functionality. Now if you click on anything that's a Bouncer it'll stop
- moving until you let it go. Let's go one step further an just allow us to move the
- bouncing things around, too.
-
- {% highlight java linenos %}
- Bouncer[] bouncer = new Bouncer[3];
-
- void setup() {
- size(200,200);
- frameRate(24);
- stroke(#003300);
- fill(#0000FF);
- bouncer[0] = new Ball(width/3-20,20,20);
- bouncer[1] = new Box(width/2-10,20,20,20);
- bouncer[2] = new Ball((2*width/3)+20,20,20);
- }
-
- void draw() {
- for(int b=0, end=bouncer.length; b
-
-
- play controls:
- ■
- ▶
-
-
- And with that, on to the original topic of this article: using Processing on web pages
-
- Putting a sketch on the page
-
- The great thing about Processing is that it can be used on webpages. Traditionally,
- you would convert your sketch to a java applet, and embed that on a page, but the
- processing.js project has changed this: you can now use your sketches directly without
- turning it into an applet at all. In the same way that you include a javascript file,
- or a CSS stylesheet, you can simply link to your sketch and magic happens.
-
- Let's say we save the previous sketch, with the bouncing and the mouse interaction,
- as "mysketch.pde", and we want to show this on a webpage. Using processing.js, this is
- a trivially simple trick:
-
- {% highlight html linenos %}
-
-
-
-
- My Processing Page
-
-
-
-
-
- {% endhighlight %}
-
-
-
-
- play controls:
- ■
- ▶
-
-
- And we're done. In fact, I went ahead and made sure this page already uses processing.js,
- and that there is a mysketch.pde to load. If you click on the play control for the sketch
- above, it will start running, and do exactly what you would expect it to do based on what
- it does when you run it from the Processing environment.
-
- Putting a sketch inline on the page
-
- While not recommended, you can also put your sketch directly on a page, much like how
- you can put javascript or CSS styles directly on a page. However, in order for processing.js
- to properly load your code, you'll need some extra help in the form of the "init.js" file
- that is included with the processing.js examples archive from the processing.js downloads page
-
- {% highlight html linenos %}
-
-
-
-
- My Processing Page
-
-
-
-
-
-
- {% endhighlight %}
-
- There are several reasons for why this is not a very good practice, but the most important
- one is that this way you can't be sure whether or not you've written a bug-free sketch. By
- writing it directly on the page, you might in fact have written some buggy code, which you
- will then find is terribly hard to debug because the browser is not equiped with a debugger
- for Processing code. In fact, processing.js rewrites your sketch into pure javascript (using
- some terribly clever tricks that we won't go into), so even if when it tells you where the
- error is in a javascript debugger, it will tell you where it went wrong in the converted
- javascript object, not the actual place in your source code. So keep it as a separate file,
- and make sure to test your code in the Processing IDE!
-
- Making your sketch and your page see each other
-
- Just running a sketch on a page is fine, but the benefit of a webpage is that it offers
- the kind of user interaction that you can't get from within the sketch itself. Pretty buttons,
- text areas that fold away, pop up, etc. make it very attractive to have your sketch do all
- the animation graphicsy work, but have all the information about the sketch, as well as
- controls for it, on the webpage. This is entirely possible - in fact, the "stop" and "play"
- buttons for the sketch above are examples of javascript telling the sketch what to do. Because
- a webpage offers more than a plain sketch can, processing.js has a few special tricks up its
- sleeve, so that you can get the most out of your creative work. Arguably the most important of
- these is the "get the sketch" function:
-
- {% highlight javascript linenos %}
- var mysketch = Processing.getInstanceById('mysketchid');{% endhighlight %}
-
- This is the pivotal function on the javascript side of things. It gives you a direct reference
- to your sketch, and everything in it, so that you can call any function and examine and modify
- any variable that is in the sketch.
-
- Making javascript see your sketch
-
- Let's say we have the following sketch:
-
- {% highlight java linenos %}
- void setup() {
- size(200,200);
- noLoop(); // turn off animation, since we won't need it
- stroke(#FFEE88);
- fill(#FFEE88);
- background(#000033);
- text("",0,0); // force Processing to load a font
- textSize(24); // set the font size to something big
- }
-
- void draw() { }
-
- void drawText(String t)
- {
- background(#000033);
- // get the width for the text
- float twidth = textWidth(t);
- // place the text centered on the drawing area
- text(t, (width - twidth)/2, height/2);
- }{% endhighlight %}
-
-
We can make this sketch draw a different text based on some text we have on our webpage,
- using javascript. This is in fact really easy: first, let's save this processing code as
- mysketch2.pde, and load it onto a page in the same way as earlier in the article. Then, we
- use javascript to ask for our sketch instance, after which we call the "drawText" function
- with some text that we get from the web page that the sketch is running on:
-
- {% highlight html linenos %}
-
-
-
-
- My Processing Page
-
-
-
-
-
-
- place
-
- {% endhighlight %}
-
- This has the same effect as the sketch that's running below. Simply fill in a bit
- of text, and hit the ▶ button to see the sketch render it on the drawing area.
-
-
-
-
- set text:
-
- ▶
-
-
- So far so good, but what if we also want to make Processing code call javascript?
- In order for us to so, while making sure the sketch keeps running both on your page an
- in the Processing environment, we have to do a bit more work
-
- Making your sketch "see" javascript
-
- You can't just stick plain javascript in your sketch and hope everything goes well
- because it's "on a web page". A better approach is to neatly separate your sketch and
- your on-page javascript, and ensure that whatever you want to do on your page runs
- through a javascript function. How do we do that? Let's say we have the following page:
-
- {% highlight html linenos %}
-
-
-
-
- My Processing Page
-
-
-
-
-
- x/y: /
-
-
- {% endhighlight %}
-
- And say we have the following sketch, which we'll save as mysketch3.pde:
-
- {% highlight java linenos %}
- void setup() {
- size(200,200);
- stroke(255);
- background(0);
- noLoop();
- }
-
- void draw() {
- fill(0,0,0,40);
- rect(-1,-1,width+2,height+2);
- }
- void mouseMoved() {
- line(mouseX,0,mouseX,height);
- line(0,mouseY,width,mouseY);
- redraw();
- }{% endhighlight %}
-
- As an exercise, let's try to get the mouse coordinates from that mouseMoved event
- onto the page. This means we'll need to define a javascript function that will do this for us:
-
- {% highlight javascript linenos %}
- function showXYCoordinates(x, y) {
- document.getElementById('xcoord').value = x;
- document.getElementById('ycoord').value = x;
- }{% endhighlight %}
-
- And we'll need to make the sketch know that there is such a thing as javascript,
- and that it has this function:
-
- {% highlight java linenos %}
- interface JavaScript {
- void showXYCoordinates(int x, int y);
- }
-
- void bindJavascript(JavaScript js) {
- javascript = js;
- }
-
- JavaScript javascript;
-
- void setup() { ...}
- void draw() { ... }
- void mouseMoved() {
- ...
- if(javascript!=null){
- javascript.showXYCoordinates(mouseX, mouseY);
- }
- }{% endhighlight %}
-
- What we've done is we've told Processing: "There are things that follow the
- JavaScript interface. This means that whatever else they can do, they'll have a
- function called "showXYCoordinates" and that function takes two arguments, both of type int."
- - of course, the sketch will not magically know our on-page javascript, so we also
- define a function that lets us tell the sketch what actually counts as javascript,
- which is what the bindJavascript(...) function is for.
-
- This leaves us with needing to make sure that we really do tell the sketch what
- Javascript is, which we'll do as follows on the page:
-
- {% highlight javascript linenos %}
- var bound = false;
-
- function bindJavascript() {
- var pjs = Processing.getInstanceById('mysketch3');
- if(pjs!=null) {
- pjs.bindJavascript(this);
- bound = true;
- }
- if(!bound) setTimeout(bindJavascript, 250);
- }
-
- bindJavascript();{% endhighlight %}
-
- This defines a function that checks whether processing.js has loaded our sketch yet.
- If not, it tries again 250ms later. If the sketch is loaded, the reference to the sketch
- is used to tell it what "javascript" should be. This is achieved by virtue of processing.js
- trusting that you wrote valid code. As such, as long as you're on the javascript side of
- things, you can pass the sketch whatever you like, and the sketch will trust that it conforms
- to what the method says the type should be. In this case we pass the javascript "this" value
- (which refers to the global javascript environment for the current window), and tell processing
- "this thing conforms to your JavaScript interface, so it has loads of things but the only
- thing you need to be concerned about is whether or not it has a showXYCoordinates(int, int)
- function, which it does."
-
- So, our final sketch behaves like the sketch below, and our final page source looks like the following:
-
- {% highlight html linenos %}
-
-
-
-
- My Processing Page
-
-
-
-
-
-
- x/y: /
-
-
- {% endhighlight %}
-
-
-
-
- x/y coordinates: /
-
-
- Passing complex objects from javascript to your sketch
-
- This leaves us with one last topic that we need to cover, simply because it's so common:
- using an AJAX approach to get some data, and then passing that data, properly formatted, to your sketch.
-
- Actually using Processing objects
-
- One interesting thing that processing.js allows us to do is to create objects as we defined them in
- our sketch, in javascript, and then hand them over to the sketch to deal with. To give an example, let's
- use the following sketch, which lets you draw points by clicking with the mouse, and links up all the
- points with lines:
-
- {% highlight java linenos %}
- ArrayList points;
-
- ArrayList getPoints() { return points; }
-
- void setup() {
- size(200,200);
- points = new ArrayList();
- noLoop();
- stroke(255,0,0);
- fill(255);
- }
-
- void draw() {
- background(200,200,255);
- for(int p=0, end=points.size(); p < end; p++) {
- Point pt = (Point) points.get(p);
- if(p < end-1) {
- Point next = (Point) points.get(p+1);
- line(pt.x,pt.y,next.x,next.y); }
- pt.draw(); }
- }
-
- void mouseClicked() {
- points.add(new Point(mouseX,mouseY));
- redraw();
- }
-
- class Point {
- int x,y;
- Point(int x, int y) { this.x=x; this.y=y; }
- void draw() { ellipse(x,y,10,10); }
- }{% endhighlight %}
-
-
-
- click to place points
-
- We can also make javascript place some points for us, automatically, by using the following javascript:
-
- {% highlight javascript linenos %}
- function loadPoints(id, button) {
- var pjs = Processing.getInstanceById(id);
- var points = pjs.getPoints();
- points.add(new pjs.Point(10,10));
- points.add(new pjs.Point(10,190));
- points.add(new pjs.Point(190,190));
- points.add(new pjs.Point(190,10));
- pjs.draw();
- }{% endhighlight %}
-
-
-
- load points: load
-
- Because processing.js turns the sketch into actual javascript, every class we defined in it
- can be created using new pjs.ClassName(arguments,...) .
-
- JSON
-
- Another way to get data from javascript into a sketch is by way of a JSON description. JSON
- is particulary interesting because javascript can read a JSON text string and immediately turn
- it into a full-fledged javascript object. Let's look at our point-drawing sketch again, this
- time with a dedicated "addPoint" method:
-
- {% highlight java linenos %}
- ArrayList points;
-
- void setup() {
- size(200,200);
- points = new ArrayList();
- }
-
- void draw() {
- background(200,200,255);
- for(int p=0, end=points.size(); pNow what if -- instead of using mouse clicks, or predetermined javascript -- we want to
- load points based on some data on a remote server? We change our web page so that it can deal
- with JSON data from a remote server, and then make our javascript tell the sketch what to do:
-
- {% highlight html linenos %}
-
-
-
-
- My Processing Page
-
-
-
-
-
-
-
-
- {% endhighlight %}
-
-
-
- load points: load
-
- The JSON that gets loaded in the example sketch in this section is the following:
-
- { 'points' : [ {'x': 10 , 'y': 10},
- {'x': 190 , 'y': 10},
- {'x': 190 , 'y': 190},
- {'x': 10, 'y': 190} ] }
-
- XML
-
- Another favourite is the XML document. This is where the Processing data type "XMLElement"
- comes into play. Rather than trying to use javascript to parse the XML, we pass the xml data
- straight on to our sketch, which will know exactly what to do with it:
-
-
-
- load points: load
-
- {% highlight javascript linenos %}
- function loadPoints(id, button) {
- button.disabled = "disabled";
- var pjs = Processing.getInstanceById(id);
- var xml = $.get("http://thatfunkysite.com/serving/getxml.php");
- pjs.buildFromXML(xml);
- }{% endhighlight %}
-
- And the handling in our sketch will look like this:
-
- {% highlight java linenos %}
- void buildFromXML(String xml) {
- XMLElement data = new XMLElement(xml);
- XMLElement[] xmlpoints = data.getChildren();
- for(int p=0, end=xmlpoints.length; pIf the xml thus loaded looks like the following snippet, the sketch will behave in
- the way the sketch below does:
-
- {% highlight xml linenos %}
-
-
-
-
-
-
- {% endhighlight %}
-
- SVG
-
- A special kind of XML document is the SVG Scalable Vector Graphics document. What's
- special about it is that it already represents visual data, and Processing can load SVG
- XML natively.
-
-
-
- drawing with SVG
-
- {% highlight java linenos %}
- XMLElement svgxml;
- PShape ps;
- int x=0;
- int y=0;
- int xoffset=0;
- int yoffset=0;
- int xmark=0;
- int ymark=0;
-
- void setup() {
- size(200,200);
- noLoop();
- }
-
- void draw() {
- background(255);
- stroke(0);
- for(int px=0; pxThis sketch will load the following SVG code, and allows you to click on the shape to
- change its color, or click-drag it to move it around:
-
- {% highlight xml linenos %}
-
-
- {% endhighlight %}
-
- Javascript Objects
-
- One last thing you may want to pass to a sketch is a real javascript object. Say we have
- a physics library that we want to take advantage of in our sketch, and for Processing it's a
- .jar file, but there's a javascript version too. This thing lets us create a javascript "Physics"
- object that we can call functions on for computing momentum and force transfer when we make
- two things hit each other. Since processing.js does not support .jar libraries (because it's
- precompiled binary java class code, and pjs cannot unpack a jar file, reverse engineer the
- .java source, transform it to Processing API calls, then confirm all calls are supported) we'll
- use this convenient javascript library. But how to do this cleanly?
-
- We have to do three things:
-
-
- Write an interface for the object we're using, so our sketch will know what it even is,
- use a javascript binding so that we can ask javascript to make these objects for us, and
- write a javascript function to make these objects for us.
-
-
- So let's get cracking! First we determine which functions in the javascript Physics object
- we actually make use of. We could write an interface that has correct method signatures for
- every function in the library, but this would be overkill. After reviewing our code we see
- that we actually only make use of three of the objects functions: collide_objects(forcevector1,
- forcevector2, collisionangle), get_force_vector(startpoint, distancevector, accelleration) and
- get_trajectory(startpoint, objectmass, initialvector, gravityvector, gravitystrength).
- Let's build our interface:
-
- {% highlight java linenos %}
- interface Physics
- {
- // collision modifies the two force vectors in place. Nothing is returned.
- void collide_objects(float[] forcevector1, float[] forcevector2, float collisionangle);
-
- // get force vector returns a force vector
- float[] get_force_vector(float[] startpoint, float[] distancevector, float accelleration);
-
- // trajectory calculation returns a curve, represented as a lest of 2D coordinates
- float[][] get_trajectory(float[] startpoint, float objectmass, float[] initialvector, float[] gravityvector, float gravitystrength);
- }{% endhighlight %}
-
- First job done. Now to bind javascript. We've already looked at how to do this, so just follow
- the standard procedure and job's a good'n. In addition to whatever javascript functions you want
- to expose, however, we must add one more:
-
- {% highlight java linenos %}
- interface JavaScript {
- ...
- Physics buildPhysicsObject([properly typed variables to match the javascript constructor]);
- ...
- }{% endhighlight %}
-
- Finally, we now make use of our purely javascript library in our js file(s):
-
- {% highlight java linenos %}
- function buildPhysicsObject(x, y, someothervar)
- {
- return new Physics(x,y,someothervar);
- }{% endhighlight %}
-
- This last step seems silly, but we have to delegate the task of building a javascript object
- to javascript. If we tried to do this inside our sketch, processing.js will not complain, but
- Processing will. To make matters worse, it also obscures the point of failure: if something
- goes wrong in the sketch, did it go wrong because processing.js has a bug, or because you were
- sloppy with javascript inside a Processing sketch? Golden rule: keep the different languages
- separated as much as possible.
-
- We're almost set to use our javascript library for Processing purposes now. The only thing
- left is to create these objects and then use them in our sketch:
-
- {% highlight java linenos %}
- class MassBody
- {
- // a class for bodies with mass that travel with some speed and are located at some x/y position
- float[] forceVector = new float[2]; // 2 dimensional vector;
- int XDIM = 0; // index constant
- int YDIM = 1; // index constant
- float x = 0; // position
- float y = 0; // position
- MassBody(float x, float y) { forceVector[XDIM] = 0; forceVector[YDIM] = 0; this.x=x; this.y=y; }
- void draw() { /* draws the body */ }
- float[] getForce() { return forceVector; }
- void impartForce(float[] stimulus) { forceVector[XDIM] += stimulus[XDIM]; forceVector[YDIM] += stimulus[YDIM]; }
- void updatePosition() { x+=...; y+=...; }
- }
-
- MassBody body1 = new MassBody(...);
- MassBody body2 = new MassBody(...);
-
- Phsyics physicsObject
-
- void bindJavascript(JavaScript js) {
- javascript = js;
- int x = 0;
- float y = 9;
- String[] somevalues = {"scalar", "vector", "tensor"};
- physicsObject = javascript.buildPhysicsObject(x,y,somevalues);
- }
-
- void setup()
- {
- ...
- }
-
- void draw()
- {
- // if the two bodies collide, compute the resultant forces
- if(body1.collides(body2))
- {
- // forces are recomputed in place
- float angle_12 = body1.getAngleTo(body2);
- physicsObject.collide_objects(body1.getForce(), body2.getForce(), angle_12);
- body1.updatePosition();
- body2.updatePosition();
- }
- body1.draw();
- body2.draw();
- }{% endhighlight %}
-
- And we're done!
-
- Processing.js as javascript graphics library
-
- As last point of business, you can of course also use Processing.js as a pure graphics
- library, by invoking it for some canvas and then calling Processing API calls directly. Let's
- jump right in! The following code is what you would write on-page, although of course as ever
- it's far better practice to link to your source files, so you should really place what's in
- the script tags in a file myPjsSketch.js and link to it using src="..." instead.
-
- The following code is split up into multiple (numbered) sections.
-
-
-
- First, bind a new Processing instance to the indicated canvas.
-
- {% highlight html linenos %}
-
- {% endhighlight %}
-
-
-
- So let's see that in action - the code that we just ran through is supposed to draw
- a sinewave, with an amplitude that depends on where the mouse is on the canvas. If all
- went well, it will look like this:
-
-
-
-
-
- More information
-
- This guide was brought to you by Mike "Pomax" Kamermans.
-
-
For more information, you can visit the following websites, or visit us in the
- #processing.js IRC channel on irc.mozilla.org.
-
-
-
-
diff --git a/articles/_posts/2011-12-02-RenderingModes.html b/articles/_posts/2011-12-02-RenderingModes.html
deleted file mode 100644
index 30fa0c9..0000000
--- a/articles/_posts/2011-12-02-RenderingModes.html
+++ /dev/null
@@ -1,278 +0,0 @@
----
-layout: default
-desc: The different rendering modes available in Processing.js
-title: Rendering Modes
-permalink: /articles/RenderingModes.html
----
-
- Understanding Rendering Modes in Processing.js
-
- Introduction
-
- The Processing language enables complex 2D and 3D graphics programming without having
- to understand the details of the underlying graphics system. It is designed to be
- easily learned, yet allows one's skills to grow and evolve without ever feeling
- limited.
-
- Processing can be used to work with both 2D and 3D graphics. It achieves this through
- a number of different rendering engines, which affect how it works. For example,
- one might choose to render a 2D sketch using the JAVA2D and P2D renderers or create
- 3D sketches with the P3D and OPENGL renderers. There are also renderers for creating
- PDFs. Processing allows developers to choose renderers based on tradeoffs of speed
- and quality.
-
- A renderer is chosen through the use of Processing's
- size() function. For example, to create a 2D sketch that is 200 by 200 pixels
- in size:
-{% highlight java linenos %}
-size(200, 200, P2D);
-{% endhighlight %}
-
-
- The 2D Rendering Context
-
- Processing.js uses the HTML canvas element to provide 2D and WebGL rendering contexts.
- The canvas 2D API is used to implement Processing's JAVA2D and P2D renderers (see
- the canvas API for
- details on canvas). You can create a 2D Processing.js sketch using any of the following:
-
-
-{% highlight java linenos %}
-size(200, 200, P2D);
-{% endhighlight %}
-
-
-{% highlight java linenos %}
-size(200, 200, JAVA2D);
-{% endhighlight %}
-
-
-{% highlight java linenos %}
-size(200, 200); // default is 2D
-{% endhighlight %}
-
-
-
-
-
- Here is a simple 2D Processing.js sketch:
-
-
-
-
-{% highlight java linenos %}
-int i = 0;
-void setup() {
- size(200, 200);
- background(255);
- smooth();
- strokeWeight(15);
- frameRate(24);
-}
-void draw() {
- stroke(random(50), random(255), random(255), 100);
- line(i, 0, random(0, width), height);
- if (i < width) {
- i++;
- } else {
- i = 0;
- }
-}
-{% endhighlight %}
-
-
-
- The WebGL (3D) Rendering Context
-
- Processing.js 3D renderers (P3D and OPENGL) are implemented using WebGL. The Web-based
- Graphics Library (WebGL) is a canvas rendering context that provides a JavaScript
- based 3D drawing API for the web (see
- https://developer.mozilla.org/en/WebGL ). WebGL is based on OpenGL ES 2.0,
- a subset of OpenGL designed to be used in embedded devices. Many modern browsers
- support WebGL, but not all. You can confirm that your browser and computer/operating
- system support WebGL here .
- You can download a WebGL enabled browser
- here .
-
- Just as Processing relies on OpenGL for its 3D graphics (OPENGL renderer), Processing.js
- uses OpenGL via WebGL, allowing Processing.js sketches to work just like their Processing
- equivalent.
-
- In order to create a 3D OpenGL sketch in Processing, two things are necessary. First,
- the OpenGL library must be imported. Second, the OpenGL rendered must be specified:
-
-{% highlight java linenos %}
-import processing.opengl.*
-...
-size(200, 200, OPENGL);
-{% endhighlight %}
-
-
-
- Since Processing.js is actually JavaScript, it does not support importing Java-based
- libraries. However, in order to enable sketches written in Processing to work in
- Processing.js, the import line can be safely included—Processing.js will simply
- ignore it. The following methods of creating a 3D Processing.js sketch are equivalent:
-
-
- import processing.opengl.* ... size(200, 200, OPENGL);
-
-
- size(200, 200, P3D);
-
-
-
-
- Here is a simple Processing.js 3D sketch:
-
-
-
-{% highlight java linenos %}
-size(200, 200, OPENGL);
-noStroke();
-background(50);
-lights();
-translate(width/2+30, height/2, 0);
-rotateX(-PI/6);
-rotateY(PI/3 + 210/float(height) * PI);
-box(45);
-translate(0, 0, -50);
-box(30);
-{% endhighlight %}
-
-
-
-
- Here's another more complex one:
-
-
-
-{% highlight java linenos %}
-float ang = 0, ang2 = 0, ang3 = 0, ang4 = 0;
-float px = 0, py = 0, pz = 0;
-float flapSpeed = 0.2;
-
-void setup() {
- size(200, 200, OPENGL);
- frameRate(50);
- noStroke();
-}
-
-void draw() {
- background(0);
- camera();
- // Flight
- px = sin(radians(ang3)) * 170;
- py = cos(radians(ang3)) * 300;
- pz = sin(radians(ang4)) * 500;
- translate(width/2 + px, height/2 + py, -700+pz);
- rotateX(sin(radians(ang2)) * 120);
- rotateY(sin(radians(ang2)) * 50);
- rotateZ(sin(radians(ang2)) * 65);
-
- // Body
- fill(153);
- box(20, 100, 20);
- // Left wing
- fill(204);
- pushMatrix();
- rotateY(sin(radians(ang)) * -20);
- rect(-75, -50, 75, 100);
- popMatrix();
- // Right wing
- pushMatrix();
- rotateY(sin(radians(ang)) * 20);
- rect(0, -50, 75, 100);
- popMatrix();
- // Wing flap
- ang += flapSpeed;
- if (ang > 3) {
- flapSpeed *= -1;
- }
- if (ang < -3) {
- flapSpeed *= -1;
- }
- // Increment angles
- ang2 += 0.01;
- ang3 += 2.0;
- ang4 += 0.75;
-}
-{% endhighlight %}
-
-
-
- Once you have a 3D enabled browser installed you can try out some example 2D and
- 3D sketches here .
-
-
- Processing.js as a Simplified Web Drawing API
-
- Once a 3D sketch has been created, all of the normal Processing drawing operations
- can be done. Most Processing functions have 2D and 3D versions (e.g., you provide
- different arguments for points in 2D or 3D space). By learning the Processing syntax,
- it's easy to create complex 2D and WebGL graphics without ever touching the underlying
- graphics APIs. This is true of Processing and Java, and also of Processing.js and
- canvas/WebGL. The Processing langauge provides a powerful and beginner friendly
- on-ramp to canvas 2D and WebGL. Consult the
- Processing.js Langauge Reference for specific details on how to use each
- function.
-
- Using the Processing.js API in JavaScript
-
- In addition to running standard Processing sketches, Processing.js can also be used
- in so-called API mode. This is the Processing language API which is accessbile to
- JavaScript without any Processing code. The Processing.js API is available if you
- download the complete Processing.js zip file instead of just the .js file from the
- Downloads page (for example: processing.js-version.zip vs processing.min.js) (http://processingjs.org/download ).
- It is essentially the same as Processing.js, but without the code parser (i.e.,
- you can use the API either way, but the Processing.js API is a somewhat smaller
- file). See
- Writing JavaScript-only Processing.js Code for more details.
-
- Accessing the Raw Canvas Context - Advanced:
-
- It's also possible to work with the raw canvas context, both 2D and WebGL, from
- Processing.js, JavaScript, or both. This is not a recommended method, since it will
- make your Processing.js sketch harder to use in Processing; however, sometimes it's
- useful to know how to control the canvas context from outside the sketch in JavaScript,
- or to do something that Processing doesn't allow, which the canvas or WebGL APIs
- do.
-
- All Processing.js sketches have an externals property, accessible from within the
- Processing code as a global variable. This object is meant to allow for accessing
- and sharing external but related data between the sketch code and the web page.
- The externals object has a number of useful properties, including:
-
- sketch: the current sketch object
- canvas: the canvas element associated with a sketch
-
- context: the canvas rendering context being used by the sketch
-
-
-
- From JavaScript, these can be accessed via a Processing.js sketch's instance:
-
-{% highlight javascript linenos %}
-var p = Processing.instances[0];
-var context = p.externals.context;
-var p2 = Processing.getInstanceById('canvas-id');
-var p2Canvas = p2.externals.canvas;
-{% endhighlight %}
-
-
-
- The same thing can be done from within Processing code, where the externals object
- is available as a global variable:
-
-{% highlight javascript linenos %}
-// Processing.js allows you to mix JavaScript, so using var is fine here:
-var currentContext = externals.context;
-{% endhighlight %}
-
-
-Once you have a reference to the context, you can use any valid canvas API call,
-including raw WebGL functions if using a 3D sketch.
diff --git a/articles/_posts/2011-12-03-p5QuickStart.html b/articles/_posts/2011-12-03-p5QuickStart.html
deleted file mode 100644
index 0ad2abf..0000000
--- a/articles/_posts/2011-12-03-p5QuickStart.html
+++ /dev/null
@@ -1,471 +0,0 @@
----
-layout: default
-desc: A guide to Processing.js for Processing developers
-title: Processing Quick Start
-permalink: /articles/p5QuickStart.html
----
-
-
- Processing.js Quick Start - Processing Developer Edition
-
- Introduction
-
- This quick start guide is written from the standpoint of a Processing developer.
- No HTML or JavaScript knowledge is assumed, and only basic Processing knowledge
- is necessary.
-
- Index
-
- For the Impatient
- Why Processing.js?
-
- The Web: from Java to JavaScript
- Processing.js uses Modern Web Standards
-
-
- Writing a Processing.js Sketch
- Obtaining Processing.js
- Creating a Processing.js Web Page
- Running your Processing.js Web Page
- Things to Know as a Processing Developer using Processing.js
-
- Processing.js has no data directory
- Processing.js implements Processing, but not all of Java
- Processing.js only has two rendering modes
- Division which is expected to produce an integer might need explicit casting
- JavaScript, and as such Processing.js, has no "char" datatype
- Processing.js has to cheat to simulate Processing's synchronous I/O
- Processing.js requires more care with variable naming than Processing
- Processing.js needs your help when overriding overloaded superclass methods
- Calling color() with out-of-range values produces unpredictable colors
-
-
- It is possible to put Processing code directly in your web page
- Whatever you can do with the web, you can do with Processing.js
-
-
For the Impatient
-
If you're in a rush, here's what you need to know:
-
- Processing.js is written in JavaScript, and uses HTML5's <canvas> element.
- It converts your Processing code to JavaScript and runs it.
- To use it, download Processing.js here:
- downloads
- Make your Processing *.pde files as you normally would, for example hello-web.pde
- Create a web page that includes Processing.js as well as a <canvas> with info
- about where to get your sketch file (you can specify multiple *.pde files, separating
- them with spaces):
-
-
-{% highlight html linenos %}
-
-
-{% endhighlight %}
-
-
- Load your web page, and it will parse, translate, and run your sketch in the browser.
-
Why Processing.js?
-
The Web: from Java to JavaScript
-
- Processing is built using Java. It was created at much the same time that the web
- was starting. At this time the choice of the Java language, and Java Runtime, as
- implementation targets for Processing made a lot of sense. In the mid-1990s, Java
- was poised to become the language of the web, with Applets and other Java technologies
- being used broadly on the client-side. Even Netscape, who created the language which
- would eventually become the lingua franca of the web with JavaScript, named their
- language so as to align themselves with the growing hype around Java.
-
- In the end, Java became an important server side technology, receding from the client-side
- and browser. Today, most web browsers still support Java Applets, by means of a
- binary plugin. However, few web developers deploy Java-based web applications now,
- due to long load and startup times and difficulties relying on Java (or compatible
- Java versions) being installed. This trend is not isolated to Java, but is happening
- to all browser plugins (e.g., Flash), which are becoming less popular as issues
- of security, installation, deployment, etc. make them inconvenient or risky.
-
- Another reason that plugins like Java and Flash have fallen out of favour is that
- recent advances in standard web technologies, specifically HTML5 and JavaScript,
- have made it possible to do things that previously depended on native (i.e., faster,
- compiled) code. Companies like Google, with GMail and Google Docs, or Scribd (see
- Scribd-in-HTML5 )
- have shown that HTML, CSS, and JavaScript alone are enough to build fast, full featured
- web applications.
-
Processing.js uses Modern Web Standards
-
- Processing.js is built using JavaScript and HTML5. Processing.js is really two things:
- a Processing-to-JavaScript translator; and an implementation of the Processing API
- (e.g., functions like line(), stroke(), etc.) written in JavaScript instead of Java.
- It might seem odd at first to imagine your Processing sketches running in a browser,
- usually without modification. But this is exactly what Processing.js enables.
-
- Processing.js automatically converts your Processing code to JavaScript. This means
- that you don't have to learn JavaScript in order to run your code in a browser.
- You can, quite literally, write your code using the Processing IDE like you always
- have, and follow the steps below to get it running on the web. There's nothing new
- to learn, beyond getting a simple web page created.
-
- Under the hood, Processing.js uses the new HTML5 canvas element to create your sketch's
- graphics. The canvas element is a new feature of the web, and is either implemented
- or will be implemented by all major web browsers. All Processing drawing features
- have been reimplemented in Processing.js to use canvas, so any browser that supports
- canvas will also support Processing.js.
-
- Here's a sample of a Processing.js sketch running in the browser. If you can see
- it working, your browser supports everything you need already, and you can move
- on to instructions below.
-
-
Writing a Processing.js Sketch
-
- There's nothing you should do differently to write sketches for Processing.js: you
- write your Processing.js code exactly like Processing. For most people, this will
- mean using the Processing IDE, which has the nice benefit of letting you write,
- run, and test your code all in once place. Remember, any valid Processing sketch
- should also be a valid Processing.js sketch.
-
- If you want to experiment with web-based Processing.js code editors, you can also
- try these:
-
-
- Let's make a simple sketch that is 200 by 200 in size, sets the background to gray,
- draws a small white circle, and prints a message to the debug console:
-
-{% highlight java linenos %}
-void setup() {
- size(200, 200);
- background(100);
- stroke(255);
- ellipse(50, 50, 25, 25);
- println("hello web!");
-}
-{% endhighlight %}
-
-
- I'll assume below that you saved this to a file called hello-web.pde
-
-
Obtaining Processing.js
-
- Processing.js is a JavaScript library that is meant to be included in a web page.
- You don't have to compile it, tell your web server about it, etc. It simply has
- to be included in a web page, and the browser will do the rest.
-
- You can download Processing.js at the download
- page . The library comes in a number of forms, for example:
-
- processing-1.0.0.js (note that 1.0.0 is just the version, the number might be higher
- when you look at this)
- processing-1.0.0.min.js
-
-
- The version numbers may be different as you read this, but note the file extensions.
- Both end in .js, but one also has .min. The .min version is Processing.js in a minified
- form, which means it will be smaller to download (minified JavaScript uses tricks
- like removing whitespace and renaming long variable names to single letters). File
- sizes, and download times, matter on the web in a way they don't with normal Processing
- sketches.
-
Creating a Processing.js Web Page
-
- It's easy to get overwhelmed with the amount there is to learn about modern web
- technologies. But there's a secret: you can ignore 95% of it as you start, and add
- more later as you have time and interest. Unlike compilers or programming languages,
- web browsers are designed to accept almost any input you throw at them, whether
- valid or not, whether complete or not. Here's your first Processing.js web page:
-
-{% highlight html linenos %}
-
-
-{% endhighlight %}
-
-
- That's it! No <html> or <body> tags, no title, no CSS, just the processing.js
- script, and a canvas. While there isn't much here, it's important to understand
- what is. First, the script tag has a src attribute, which is the file to
- load. This could be a full url or a relative path. In this case the browser is going
- to look for a file named processing-1.0.0.min.js in the same directory as
- your web page.
-
- The second thing in this web page is a <canvas> tag. Notice that it too has
- an attribute, data-processing-sources . This is a list of filenames (or just
- one filename if you only have 1 file) separated by spaces (filenames and URLs on
- the web can't include spaces, so space is a safe choice for separating lists). In
- this case, the browser is going to look for a file named hello-web.pde located
- in the same directory as your page page.
-
- How does the browser know how to load a Processing *.pde file? Processing.js takes
- care of this, and will download, parse (i.e., translate to JavaScript), then run
- it automatically when the page is loaded.
-
- And that's it! Save this file to the same directory as hello-web.pde and
- processing-1.0.0.min.js and call it hello-web.html .
-
- If you're the kind of person who doesn't like taking shortcuts, here's what a more
- complete web page might look like:
-
-{% highlight html linenos %}
-
-
-
-
Hello Web - Processing.js Test
-
-
-
-
Processing.js Test
-
This is my first Processing.js web-based sketch:
-
-
-
-{% endhighlight %}
-
-
- Both ways work, and you shouldn't let yourself get burdened by HTML and other web
- syntax until you feel you want to do other things with your web pages.
-
Running your Processing.js Web Page
-
- In case it isn't obvious, you run your hello-web.pde sketch by loading your
- hello-web.html web page in a compatible browser. Web browsers will provide
- you a way to load a local file, usually using the File menu and then Open File....
- If you've saved the files above on a web server, you can use the remote URL instead.
-
Things to Know as a Processing Developer using Processing.js
-
- While Processing.js is compatible with Processing, Java is not JavaScript, and canvas
- has some differences from Java's graphics classes. Here are some tricks and tips
- as you start working on more complex sketches in Processing.js.
-
Processing.js has no data directory
-
- Processing uses the concept of a data directory, where images and other resources
- are located. Processing.js does not include this. As a result, you should always
- provide file pages (e.g., images) that are relative to your web page, which is the
- norm on the web.
-
Processing.js implements Processing, but not all of Java
-
- Processing.js is compatible with Processing, but is not, and will never be, fully
- compatible with Java. If your sketch uses functions or classes not defined as part
- of Processing, they are unlikely to work with Processing.js. Similarly, libraries
- that are written for Processing, which are written in Java instead of Processing,
- will most likely not work.
-
Processing.js only has two rendering modes
-
- Processing has many rendering modes to choose from, depending on the desired quality
- and speed for graphics (e.g., OPENGL, P3D, JAVA2D, etc.). Processing.js uses <canvas>
- which provides either a 2D drawing context or a 3D context based on WebGL (a version
- of OpenGL for the web). Therefore, whatever you choose, you will end-up with either
- the 2D or 3D context.
-
Division which is expected to produce an integer might need explicit casting
-
- There are a class of bugs that arise when converting Processing code to Processing.js
- that involve integer vs. floating point division. What was straight-up integer division
- in Processing code, when converted to Processing.js, can sometimes become problematic,
- as numbers become doubles, and introduce a fractional part. The fix is to explicitly
- cast any division to an integer that exhibits this behaviour:
-
-{% highlight java linenos %}
-// before
-int g = mouseX / i;
-
-// after
-int g = (int)(mouseX / i);
-{% endhighlight %}
-
-
- See
- lighthouse bug
-
-
JavaScript, and as such Processing.js, has no "char" datatype
-
JavaScript only knows about numbers, and strings, unlike Java, which also knows about "char"
- data types. The char is a 16 bit unsigned integer value, that can also pretend to be a letter
- (from the ISO8859-1 codepage for the first 256 numbers, and basically magic after that).
- Unfortunately, as JavaScript has no equivalent, relying on char comparisons to be either numbers
- or letters is quite likely to cause problems. If you have Processing code where you're comparing
- chars, you will either have to perform int casting, or string casting, using the int()
- and str() functions, so that you know you're explicitly comparing datatypes that
- JavaScript can deal with.
-
-
Processing.js has to cheat to simulate Processing's synchronous I/O
-
- Processing uses a synchronous I/O model, which means that functions like loadImage()
- take time to execute, and while they are running, nothing else happens: the program
- waits until loadImage() is done before moving on to the next statement. This
- means that you can count on the value returned by a function like loadImage()
- being usable in the next line of code.
-
- Web browsers don't work like this. The web uses an asynchronous I/O model, which
- means that functions which load external resources can't make the program wait until
- they finish. In order to replicate Processing's load* functions, you have to use
- a special Processing.js Directive.
-
- The Processing.js Directives are hints to the browser that are written in comments
- rather than in the Processing code itself. Here's a typical Processing sketch that
- loads an image synchronously and then draws it:
-
-{% highlight java linenos %}
-PImage img;
-
-void setup() {
- img = loadImage("picture.jpg");
- image(img, 0, 0);
-}
-{% endhighlight %}
-
-
- This code will not work in the browser with Processing.js, because the call to image()
- will happen before the file picture.jpg has been downloaded. The fix is to
- ask Processing.js to download the image before the sketch starts, and cache it--a
- technique known as preloading. Here is the modified code:
-
-{% highlight java linenos %}
-/* @pjs preload="picture.jpg"; */
-PImage img;
-
-void setup() {
- img = loadImage("picture.jpg");
- image(img, 0, 0);
-}
-{% endhighlight %}
-
-
- Notice the extra comment line at the top of the code. The @pjs directive
- is for Processing.js, and not the developer. Think of it as an extra line of code
- that will be executed before the program begins.
-
- If you have multiple images to load, use a list like so:
-
-{% highlight java linenos%}
-/* @pjs preload="picture.jpg,picture2.jpg,picture3.png"; */
-{% endhighlight %}
-
-
Processing.js requires more care with variable naming than Processing
-
- One of the powerful features of JavaScript is its dynamic, typeless nature. Where
- typed languages like Java, and therefore Processing, can reuse names without fear
- of ambiguity (e.g., method overloading), Processing.js cannot. Without getting into
- the inner-workings of JavaScript, the best advice for Processing developers is to
- not use function/class/etc. names from Processing as variable names. For example,
- a variable named line might seem reasonable, but it will cause issues with
- the similarly named line() function built-into Processing and Processing.js.
- This is equally true for built-in functions and functions you create. A good rule-
- of-thumb is: avoid having a variable foo in the same sketch as a function
- foo(); .
-
-
Processing.js needs your help when overriding overloaded superclass methods
-
- If your code uses subclasses that override one or more overloaded methods in the superclass, you
- will need "dummy" overrides for every method signature that you'd normally leave untouched:
-
-{% highlight java linenos %}
-class X
-{
- void doSomething()
- {
- ...
- }
-
- void doSomething(float x, float y)
- {
- ...
- }
-}
-
-class Y extends X
-{
- void doSomething()
- {
- // different code from compared to the super class
- }
-
- // even though we don't override this method,
- // its signature must be added to prevent Pjs
- // from getting the method chain wrong:
- void doSomething(float x, float y)
- {
- super.doSomething(x,y);
- }
-}
-{% endhighlight %}
-
-
- Even though in Processing you will not need to implement the fallthrough method for doSomethign with a
- (float,float) signature, doing so is almost always necessary to make sure Processing.js doesn't get
- confused about which class's method to call.
-
-
Calling color() with out-of-range values produces unpredictable colors
-
- Also in the class of integer vs. floating point issues, color(number) and color(number, number)
- may not behave quite as expected. In native Processing, color(int) and color(float) behave
- differently in that the first is used for full color integers. Calling color(#FF0000) and
- color(16711680) are the same call, so they produce a red color. However, when using float
- values the color()/1 function treats the input as gray values, between 0 and the max indicated
- value (255, by default). Any value lower than 0 or higher than max is simply capped. Because of
- the integer vs. floating point issues with JavaScript, Processing.js does not perform any capping,
- and so even though the following code will show a black and a white line in Processing, it will
- show a yellow line, and an "invisible" line in Processing.js instead.
-
-{% highlight java linenos %}
-void setup()
-{
- size(100,100);
- noLoop();
-}
-
-void draw()
-{
- background(127);
- stroke(-200.0);
- line(0,25,width,25);
- stroke(600.0);
- line(0,75,width,75);
-}
-{% endhighlight %}
-
-
We recommend you always sanitize your inputs for color if you need colors to be "in range", and only use hex colors, using color(#RRGGBB), or rgb/rgba colors, using color(r,g,b) and color(r,g,b,a)
-
It is possible to put Processing code directly in your web page
-
- Using the data-processing-sources attribute on the canvas, and having Processing.js
- load an external file is the preferred and recommended way to include scripts in
- a web page. However, it is also possible to write in-line Processing code.
-
- A few changes are necessary to make the example above work with inline Processing
- code:
-
-{% highlight html linenos %}
-
-
-
-{% endhighlight %}
-
-
- This code is more complex because it has to figure out which canvas goes with which
- script (i.e., you can have multiple Processing sketches living in the same page,
- and therefore, multiple canvases). Also note that the scripts include a type
- attribute, which distinguishes between JavaScript and Processing code (the browser
- will ignore Processing scripts). Finally, note the use of the id and target
- attributes to connect the Processing script with the associated canvas.
-
Whatever you can do with the web, you can do with Processing.js
-
- Now that your sketch is working, and you have a basic web page, you'll probably
- start getting ideas about how to make this look more beautiful, how to better integrate
- your sketch with the surrounding web page or site, and how to mix data from various
- web services and APIs. Is it possible to mix images on Flickr and a Processing.js
- sketch? Yes. Is it possible to link Twitter to Processing.js? Yes. Anything the
- web can do, your Processing.js sketch can do.
-
- This is an important idea, and is worth restating: Processing.js turned your once
- Java-based code into JavaScript, and your graphics into <canvas>. As a result,
- anything you read on the web about dynamic web programming, AJAX, other JavaScript
- libraries or APIs, all of it applies to your sketch now. You aren't running code
- in a box, cut-off from the rest of the web. Your code is a first-class member of
- the web, even though you didn't write it that way.
-
- If you're feeling adventurous and want to go learn more about how to do other thing
- with HTML, JavaScript, CSS, etc. remember that everything they say applies to you
- and your sketches.
-
diff --git a/articles/_posts/2011-12-04-jsQuickStart.html b/articles/_posts/2011-12-04-jsQuickStart.html
deleted file mode 100644
index 58a5704..0000000
--- a/articles/_posts/2011-12-04-jsQuickStart.html
+++ /dev/null
@@ -1,595 +0,0 @@
----
-layout: default
-desc: A guide to Processing.js for JavaScript developers
-title: JavaScript Quick Start
-permalink: /articles/jsQuickStart.html
----
-
-
- Processing.js Quick Start - JavaScript Developer Edition
-
- Introduction
-
- This quick start guide is written from the standpoint of a JavaScript developer.
- The document assumes you know JavaScript and web programming, but only very basic
- Processing knowledge is assumed.
-
- Index
-
- For the Impatient
- Why Processing.js?
-
- What is Processing?
- What does Processing bring to the web?
- How much work is it to learn Processing?
-
-
- Ways to use Processing.js
-
- Writing Pure Processing Code
- Pre-compiling Processing code to JavaScript
- Writing JavaScript-only Processing.js code
- Writing Documents that Combine Processing and JavaScript Code
-
- Accessing JavaScript Objects from Processing
- Mixing JavaScript and Processing
- Accessing Processing from JavaScript
-
-
-
-
- Things to Know as a JavaScript Developer using Processing.js
-
- Processing.js provides access to various DOM/JavaScript objects via the externals property
- Division which is expected to produce an integer might need explicit casting
- JavaScript, and as such Processing.js, has no "char" datatype
- Processing.js has to cheat to simulate Processing's synchronous I/O
- Processing.js requires more care with variable naming than Processing
- Processing.js needs your help when overriding overloaded superclass methods
- It is possible to put Processing code directly in your web page
-
-
-
-
-
- If you're in a rush, here's what you need to know:
-
- Processing.js converts Processing code to JavaScript and runs it in the browser,
- using <canvas> for a drawing surface.
- To use it, download Processing.js here:
- downloads
- Make your Processing *.pde files as you normally would, for example hello-web.pde
- Create a web page that includes Processing.js as well as a <canvas> with info
- about where to get your sketch file (you can specify multiple *.pde files, separating
- them with spaces):
-
-
-{% highlight html linenos %}
-
-
-{% endhighlight %}
-
-
- Load your web page, and it will parse, translate, and run your sketch in the browser.
-
-
-
- The Processing language was originally created at MIT as part of the Media lab and
- Aesthetics and Computation group. They needed a way to bridge the gap between software
- developers, artists, data visualizers, etc., and to do so in a way that allowed
- new programmers (or non-programmers) to do complex visual work easily. Processing
- was built using Java, and can be thought of as a simplified Java, with a simplified
- Java API for drawing and graphics.
-
-
- Processing has a large and vibrant community, who are good at creating 2D and 3D
- graphics, visualizing data sets, audio, video, etc. With HTML5 the web gained canvas,
- audio, and video--things which had previously only been available via plugins like
- Flash or Java. At the same time, advances in JavaScript engines have made it possible
- to do things in script that were previously too slow.
-
- By porting the Processing language to the web, both the Processing and web communities
- benefit. For Processing, this means that code which used to only work on the desktop
- now "just works" in the browser. For the web, this means that a new but mature and
- full-featured approach to graphics programming becomes available. The <canvas>
- element is too low-level for most developers to use directly--JavaScript libraries
- are necessary. Processing.js can be thought of as just such a library, simplifying
- the use of the 2D and 3D canvas operations.
-
-
- The Processing language was designed to be small but complete, and easy to learn.
- This document does not attempt to teach you Processing, and you are encouraged to
- seek out Processing specific tutorials, books, and examples. Any Processing code
- or concepts should map to Processing.js (the exceptions are listed below). You can
- also use pure JavaScript to work with the Processing drawing API, skipping the Java
- syntax of Processing in favour of JavaScript.
-
-
- Processing.js was originally created in order to allow existing Processing developers
- and existing Processing code (often referred to as sketches ) to work unmodified
- on the web. As a result, the recommend way to use Processing.js is to write Processing
- code, and have Processing.js convert it to JavaScript before running it.
-
- Over time, many web developers have begun using Processing.js, and asked that we
- design a way for the API to be used separate from the Processing language itself.
- Therefore, we have provided a way for JavaScript developers to write pure JavaScript
- code and still use the Processing.js functions and objects. NOTE: Processing.js
- is first and foremost a port of Processing to the open web, with design decisions
- favouring compatibility with Processing. It was not designed as a general purpose
- HTML drawing library. Having said that, it can be used as a high-level drawing API
- for canvas.
-
- Below we discuss the various methods for using Processing.js in your web pages.
-
-
- This is the preferred method for using Processing.js, and has been dealt with at
- length in the Processing.js
- for Processing Devs quick start guide . To summarize:
-
- Download Processing.js from here
- Create a separate Processing file or files, naming them whatever you want, as long as they have a
- *.pde extension.
- Create a web page that includes Processing.js as well as a <canvas> with info
- about where to get your sketch file(s), and include Processing filenames as a space-separated
- list in a data-processing-sources attribute on the canvas:
-
-
-{% highlight html linenos %}
-
-
-
-
Hello Web - Processing.js Test
-
-
-
-
Processing.js Test
-
This is my first Processing.js web-based sketch:
-
-
-
-{% endhighlight %}
-
-
- Processing.js will automatically scan the document on page load for <canvas>
- elements with data-processing-sources attributes, download the files using
- XMLHTTPRequest, and feed them to the Processing-to-JavaScript translator. The resulting
- JavaScript is run using eval.
-
-
- Processing.js automatically downloads and converts any Processing code to JavaScript.
- It does this using the Processing.compile() method, and those interested in building
- tools or utilities for Processing.js can do the same.
-
- In order to obtain "compiled" code (i.e., JavaScript suitable for use by the Processing.js
- runtime) from Processing code, do the following:
-
-{% highlight javascript linenos %}
-// hard-coded Processing code, text from an HTML widget, downloaded text, etc.
-var processingCode = "...";
-var jsCode = Processing.compile(processingCode).sourceCode;
-{% endhighlight %}
-
-
- For example, converting the following Processing code produces the "compiled" JavaScript
- underneath:
-
-{% highlight javascript linenos %}
-// Processing code
-void setup() {
- size(200, 200);
- background(100);
- stroke(255);
- ellipse(50, 50, 25, 25);
- println("hello web!");
-}
-
-// "Comiled" JavaScript code
-// this code was autogenerated from PJS
-(function(processing, $constants) {
- function setup() {
- processing.size(200, 200);
- processing.background(100);
- processing.stroke(255);
- processing.ellipse(50, 50, 25, 25);
- processing.println("hello web!");
- }
- processing.setup = setup;
-})
-{% endhighlight %}
-
-
-
- The previous method produced JavaScript code from Processing, but you can also write
- JavaScript on its own. The Processing.js parser turns Processing code into a JavaScript
- function, then runs it. As a result, it's possible to skip the Processing code altogether,
- and simply write a JavaScript function, passing this to your Processing instance.
- Here's an example:
-
-{% highlight javascript linenos %}
-function sketchProc(processing) {
- // Override draw function, by default it will be called 60 times per second
- processing.draw = function() {
- // determine center and max clock arm length
- var centerX = processing.width / 2, centerY = processing.height / 2;
- var maxArmLength = Math.min(centerX, centerY);
-
- function drawArm(position, lengthScale, weight) {
- processing.strokeWeight(weight);
- processing.line(centerX, centerY,
- centerX + Math.sin(position * 2 * Math.PI) * lengthScale * maxArmLength,
- centerY - Math.cos(position * 2 * Math.PI) * lengthScale * maxArmLength);
- }
-
- // erase background
- processing.background(224);
-
- var now = new Date();
-
- // Moving hours arm by small increments
- var hoursPosition = (now.getHours() % 12 + now.getMinutes() / 60) / 12;
- drawArm(hoursPosition, 0.5, 5);
-
- // Moving minutes arm by small increments
- var minutesPosition = (now.getMinutes() + now.getSeconds() / 60) / 60;
- drawArm(minutesPosition, 0.80, 3);
-
- // Moving hour arm by second increments
- var secondsPosition = now.getSeconds() / 60;
- drawArm(secondsPosition, 0.90, 1);
- };
-}
-
-var canvas = document.getElementById("canvas1");
-// attaching the sketchProc function to the canvas
-var processingInstance = new Processing(canvas, sketchProc);
-{% endhighlight %}
-
-
- Here a sketch function is created, similar to what the parser would produce. This
- function should take 1 argument, a reference to a processing object (i.e., the Processing
- runtime), which will be created by the Processing constructor. Any Processing functions
- or objects are accessible as properties of this object.
-
- Once that function is complete, pass it, along with a reference to a canvas, to
- the Processing constructor (remember to use new ).
-
-
- One of the first questions people ask with Processing.js is whether they can read
- values from the document in which the Processing sketch is running, or vice versa.
- The answer is yes.
-
- Processing.js converts Processing code into JavaScript contained in a function closure.
- The variables and functions you create are not attached to the global object (i.e.,
- window). However, you can still get access to them.
-
-
- Since Processing code gets converted to JavaScript and run like any other function,
- all Processing code has access to the global object. This means that if you create
- a variable or function in a global script block, they are automatically accessible
- to Processing. Consider this example:
-
- First the Processing file, mixing.pde:
-
-{% highlight java linenos %}
-String processingString = "Hello from Processing!";
-
-void setup() {
- printMessage(jsString + " " + processingString);
-}
-{% endhighlight %}
-
-
- Next the web page:
-
-{% highlight html linenos %}
-
-
-
-
Hello Web - Accessing JavaScript from Processing
-
-
-
-
-
-
-
-
-
-{% endhighlight %}
-
-
- Here Processing.js allows the use of a variable and function declared outside the
- Processing code.
-
-
- The previous example kept a clean separation between the JavaScript and Processing
- code, while loosening the boundary between the two. Because Processing.js converts
- Processing code to JavaScript, it's also possible to mix them directly. The Processing.js
- parser will leave JavaScript it finds within the Processing code unaltered, allowing
- developers to write a hybrid of Processing and JavaScript (NOTE: this is why we
- don't use a pure Processing parser approach in processing.js). Here is the previous
- example rewritten using this method:
-
-{% highlight javascript linenos %}
-var jsString = "Hello from JavaScript!";
-var printMessage = function(msg) {
- document.getElementById('msg').innerHTML = "Message: " + msg;
-};
-
-String processingString = "Hello from Processing!";
-
-void setup() {
- printMessage(jsString + " " + processingString);
-}
-{% endhighlight %}
-
- There is some JavaScript syntax that can't be easily mixed this way (e.g., regex
- literals). In those cases you can simply move your pure JavaScript to a <script>
- block and access it using the method described above.
-
-
- Reaching out from the Processing code to JavaScript is easier than going the other
- way, since the JavaScript created by the Processing.js parser is not exposed directly
- on the global object. Instead, you gain access using the Processing.instances property.
-
- The Processing constructor keeps track of instances it creates, and makes them available
- using the getInstanceById() method. By default, when a <canvas> has a data-processing-sources
- attribute, its id is used as a unique identifier for the Processing instance. If
- no id attribute is provided, you can use Processing.instances[0].
-
- After you have a reference to the appropriate Processing instance, you can call
- into it like so:
-
-{% highlight html linenos %}
-
-
-
-
Hello Web - Controlling Processing from JavaScript
-
-
-
-
-
- Start
-
- Stop
-
-
-
-{% endhighlight %}
-
-
- Here two buttons in the DOM are used to allow the user to start or stop a running
- Processing sketch. They control the Processing instance (you might have several
- in a page, or hidden in divs) directly from JavaScript, calling Processing functions:
- loop() and noLoop(). The Processing functions are well documented elsewhere.
-
-
- While Processing.js tries to be fully compatible with Processing, there are some
- things which are different or require workarounds. We have also added some web-specific
- features to make Processing.js easier to use. Here are some tricks and tips as you
- start working on more complex sketches in Processing.js.
-
-
- Each Processing instance (i.e., Processing.instances) has an externals property,
- which is an object containing references to various non-Processing DOM/JavaScript
- objects that can be useful. For example:
-
- canvas - the canvas to which the sketch is bound
- context - the canvas' context
- onblur and onfocus - event handlers
-
-
-
- There are a class of bugs that arise when converting Processing code to Processing.js
- that involve integer vs. floating point division. What was straight-up integer division
- in Processing code, when converted to Processing.js, can sometimes become problematic,
- as numbers become doubles, and introduce a fractional part. The fix is to explicitly
- cast any division to an integer that exhibits this behaviour:
-
-{% highlight java linenos %}
-// before
-int g = mouseX / i;
-
-// after
-int g = (int)(mouseX / i);
-{% endhighlight %}
-
-
- See
- lighthouse bug
-
-
-
JavaScript, and as such Processing.js, has no "char" datatype
-
JavaScript only knows about numbers, and strings, unlike Java, which also knows about "char"
- data types. The char is a 16 bit unsigned integer value, that can also pretend to be a letter
- (from the ISO8859-1 codepage for the first 256 numbers, and basically magic after that).
- Unfortunately, as JavaScript has no equivalent, relying on char comparisons to be either numbers
- or letters is quite likely to cause problems. If you have Processing code where you're comparing
- chars, you will either have to perform int casting, or string casting, using the int()
- and str() functions, so that you know you're explicitly comparing datatypes that
- JavaScript can deal with.
-
-
-
-
- Processing uses a synchronous I/O model, which means that functions like loadImage()
- take time to execute, and while they are running, nothing else happens: the program
- waits until loadImage() is done before moving on to the next statement. This
- means that you can count on the value returned by a function like loadImage()
- being usable in the next line of code.
-
- Web browsers don't work like this. The web uses an asynchronous I/O model, which
- means that functions which load external resources can't make the program wait until
- they finish. In order to replicate Processing's load* functions, you have to use
- a special Processing.js Directive.
-
- The Processing.js Directives are hints to the browser that are written in comments
- rather than in the Processing code itself. Here's a typical Processing sketch that
- loads an image synchronously and then draws it:
-
-{% highlight java linenos %}
-PImage img;
-
-void setup() {
- img = loadImage("picture.jpg");
- image(img, 0, 0);
-}
-{% endhighlight %}
-
-
- This code will not work in the browser with Processing.js, because the call to image()
- will happen before the file picture.jpg has been downloaded. The fix is to
- ask Processing.js to download the image before the sketch starts, and cache it--a
- technique known as preloading. Here is the modified code:
-
-{% highlight java linenos %}
-/* @pjs preload="picture.jpg"; */
-PImage img;
-
-void setup() {
- img = loadImage("picture.jpg");
- image(img, 0, 0);
-}
-{% endhighlight %}
-
-
- Notice the extra comment line at the top of the code. The @pjs directive
- is for Processing.js, and not the developer. Think of it as an extra line of code
- that will be executed before the program begins.
-
- If you have multiple images to load, use a list like so:
-
-{% highlight java linenos %}
-/* @pjs preload="picture.jpg,picture2.jpg,picture3.png"; */
-{% endhighlight %}
-
-
-
- One of the powerful features of JavaScript is its dynamic, typeless nature. Where
- typed languages like Java, and therefore Processing, can reuse names without fear
- of ambiguity (e.g., method overloading), Processing.js cannot. Without getting into
- the inner-workings of JavaScript, the best advice for Processing developers is to
- not use function/class/etc. names from Processing as variable names. For example,
- a variable named line might seem reasonable, but it will cause issues with
- the similarly named line() function built-into Processing and Processing.js.
-
-
-
- If your code uses subclasses that override one or more overloaded methods in the superclass, you
- will need "dummy" overrides for every method signature that you'd normally leave untouched:
-
-{% highlight java linenos %}
-class X
-{
- void doSomething()
- {
- ...
- }
-
- void doSomething(float x, float y)
- {
- ...
- }
-}
-
-class Y extends X
-{
- void doSomething()
- {
- // different code from compared to the super class
- }
-
- // even though we don't override this method,
- // its signature must be added to prevent Pjs
- // from getting the method chain wrong:
- void doSomething(float x, float y)
- {
- super.doSomething(x,y);
- }
-}
-{% endhighlight %}
-
-
- Even though in Processing you will not need to implement the fallthrough method for doSomethign with a
- (float,float) signature, doing so is almost always necessary to make sure Processing.js doesn't get
- confused about which class's method to call.
-
-
-
- Using the data-processing-sources attribute on the canvas, and having Processing.js
- load an external file is the preferred and recommended way to include scripts in
- a web page. However, it is also possible to write in-line Processing code.
-
- A few changes are necessary to make the example above work with inline Processing
- code:
-
-{% highlight html linenos %}
-
-
-
-{% endhighlight %}
-
-
- This code is more complex because it has to figure out which canvas goes with which
- script (i.e., you can have multiple Processing sketches living in the same page,
- and therefore, multiple canvases). Also note that the scripts include a type
- attribute, which distinguishes between JavaScript and Processing code (the browser
- will ignore Processing scripts). Finally, note the use of the id and target
- attributes to connect the Processing script with the associated canvas.
-
diff --git a/articles/_posts/template.html b/articles/_posts/template.html
deleted file mode 100644
index ac06e5f..0000000
--- a/articles/_posts/template.html
+++ /dev/null
@@ -1,7 +0,0 @@
----
-layout: default
-desc: Guide description
-title: Guide Title
-permalink: /articles/LinkToArticle.html
----
-This is my lovely article about something related to Processing.js
diff --git a/articles/index.html b/articles/index.html
deleted file mode 100644
index 323accf..0000000
--- a/articles/index.html
+++ /dev/null
@@ -1,12 +0,0 @@
----
-layout: default
----
-Articles
-
-
-
- {% for post in site.categories.articles %}
- {{ post.title }} - {{ post.desc }}
- {% endfor %}
-
-
diff --git a/blog/_posts/2010-02-03-processingjs-04-released.html b/blog/_posts/2010-02-03-processingjs-04-released.html
deleted file mode 100644
index 3dabe83..0000000
--- a/blog/_posts/2010-02-03-processingjs-04-released.html
+++ /dev/null
@@ -1,92 +0,0 @@
----
-layout: post
-title: Processing.js v0.4.0 Released
----
-Download Processing.js 0.4
-
-We are very pleased to announce the release of Processing.js 0.4!
-
-The students at Seneca and the community at large, have been working hard to get some
-awesome code into the repository. Many smaller fixes and features have been added as well
-as larger functions like blend modes. Another landmark in 0.4, are the small fragments of
-OpenGL code that have begun to land. If you were not aware that Processing.js is getting
-3D hardware support in the browser , you are now!
-
-The whole development process has taken a few releases to get right, but the community
-has gathered great momentum in the last few months and the "right people" have joined the
-group, helping Processing.js to run like the well oiled machine it should be. We are seeing
-some amazing innovation and creativity from community members , such the experimental
-HTML5 audio stream reading and writing in
-Firefox from David Humprey and co.
-
-Development Process
-
-The GitHub flow has also shifted to a more organized state with Anna Sobiepanek heading up .NEXT branch control prior to super-review and release candidacy. This allows us to keep the repository clean, so the main branch jeresig/processing-js will only get updated when a new release ships. The code will bubble up through controlled channels that have had rigorous tests and checks applied by the community, keeping the library parallel with it's big sister Processing , while maintaining a degree of difference that makes Processing.js suitable for the web context in which it is deployed.
-
-
-
-Linting
-
-From 0.4 onwards, release code is being linted, beautified and packed before release
-using some excellent script-fu from David Humprey and tested by fellow release controller
-(and GitHub master) Corban Brook.
-This way we will be confident that new releases do not break old functionality, code will
-be lightweight, ready for deployment and be easier-on-the-eye for future developers.
-
-Get involved!
-
-If you would like to get involved with Processing.js development, or have general usage
-questions about Processing.js, we would love meet you on IRC:
-irc://irc.mozilla.org/processing.js
-
-
-
-
-added map()
-added fill()
-added reverse()
-added matchAll()
-added blendColor()
-added split()
-added subset()
-added splice()
-added concat()
-added unbinary()
-added online()
-added mag()
-added hue()
-added saturation()
-added brightness()
-added splitTokens()
-added append()
-added match()
-added unhex()
-added PVector()
-added nfs
-added shorten()
-added nfp()
-added focused
-added strokeCap()
-added nfc()
-added cursor ( mode ) definitions
-added strokeJoin()
-added bezierPoint()
-added popStyle()
-added boolean()
-added screen()
-added noCursor()
-added curveTangent()
-added pushStyle()
-added curvePoint()
-added frameRate()
-added size() for 3D
-added background() for 3D
-added release automation
-added automated parser and unit tests
-fixed JSLint validation
-fixed Pvector
-fixed parser bugs
-fixed nf() (Infinite loop)
-fixed functions that return arrays
-
diff --git a/blog/_posts/2010-02-17-processingjs-v050-released.html b/blog/_posts/2010-02-17-processingjs-v050-released.html
deleted file mode 100644
index 7c1262e..0000000
--- a/blog/_posts/2010-02-17-processingjs-v050-released.html
+++ /dev/null
@@ -1,89 +0,0 @@
----
-layout: post
-title: Processing.js v0.5.0 Released
----
-Download Processing.js 0.5
-
-We are very pleased to announce the release of Processing.js 0.5!
-
-The students at Seneca and the community at large, have been working hard to get some
-awesome code into the repository. Many smaller fixes and features have been added. However,
-the most exiting addition is the implementation of camera functions and a more complete 3D
-foundation that is now able to render and rotate a box.
-
-Linting
-
-From 0.4 onwards, release code is being linted, beautified and packed before release
-using some excellent script-fu from David Humprey and tested by fellow release controller
-(and GitHub master) Corban Brook.
-This way we will be confident that new releases do not break old functionality, code will
-be lightweight, ready for deployment and be easier-on-the-eye for future developers.
-
-Get involved!
-
-If you would like to get involved with Processing.js development, or have general usage
-questions about Processing.js, we would love meet you on IRC:
-irc://irc.mozilla.org/processing.js
-
-
-
-
-Added acos()
-Added asin()
-Added atan()
-Added automated tests for parser
-Added bezierTangent()
-Added binary()
-Added box()
-Added camera()
-Added constants MAX_FLOAT, MIN_FLOAT, MAX_INT, MIN_INT
-Added curve()
-Added exp()
-Added frustum()
-Added hex()
-Added join()
-Added log()
-Added ortho()
-Added perspective()
-Added PMatrix3D()
-Added printProjection()
-Added project packaging automation infrastructure
-Added nf()
-Added rotateX()
-Added rotateY()
-Added rotateZ()
-Added sort()
-Added support for Processing based unit tests
-Added tan()
-Added trim()
-Added uniformf()
-Added uniformi()
-Added uniformMatrix()
-Added vertexAttribPointer()
-Added 3D Matrix Stack Object
-Added "str1".equals("str2") function
-Fixed array handling of int()
-Fixed automated tests to work for large numbers of files
-Fixed buildImageObject()
-Fixed char c = '#;'
-Fixed context menu blocking to be explicitly requested
-Fixed curveVertex()
-Fixed data-src
-Fixed duplicate function errors and reserved keywords
-Fixed import()
-Fixed inconsistent mouse event semantics
-Fixed keyCode RIGHT
-Fixed last p.keyCode not to fire for every keyPress
-Fixed min() and max() functions to take more than two arguments
-Fixed noLoop() & loop()
-Fixed parser whitespace bug in variable names
-Fixed parsing of Java import statement
-Fixed parsing of String content
-Fixed rotate()
-Fixed size() for 3D
-Fixed Test harness _checkEqual to compare arrays
-Fixed Test harness _checkEqual to compare NaN
-Fixed test reporting for summary case
-Fixed text(); added cross browser support, added primitive datatypes support
-Tested parser for processing larger code samples
-
diff --git a/blog/_posts/2010-02-26-processingjs-v060-released.html b/blog/_posts/2010-02-26-processingjs-v060-released.html
deleted file mode 100644
index 9a90723..0000000
--- a/blog/_posts/2010-02-26-processingjs-v060-released.html
+++ /dev/null
@@ -1,56 +0,0 @@
----
-layout: post
-title: Processing.js v0.6.0 Released
----
-Download Processing.js 0.6
-
-We are very pleased to announce the release of Processing.js 0.6!
-
-The students at Seneca and the community at large, have been working hard to get some
-awesome code into the repository. Many smaller fixes and features have been added. However,
-the most exiting addition is the implementation of 3D functions like sphere, line, fill and
-stroke. Also, we have set up OpenGrok to enable easy searching of the Java Processing.
-
-Get involved!
-
-If you would like to get involved with Processing.js development, or have general usage
-questions about Processing.js, we would love meet you on IRC:
-irc://irc.mozilla.org/processing.js
-
- Changelog
-
-
- Added ellipseMode support ellipse
- Added a way to specify tests that are known to fail
- Added applyMatrix()
- Added float() suppose to work on all primitive datatypes including arrays
- Added char() suppose to work on all primitive datatypes including arrays
- Added str() suppose to work on all primitive datatypes including arrays
- Added normal()
- Added modelZ()
- Added modelX()
- Added modelY()
- Added sphere()
- Added sphereDetail()
- Added scale()
- Added line() - 3D
- Added fill() - 3D
- Added noFill() - 3D
- Added noStroke() - 3D
- Added stroke() - 3D
- Added PMatrix3D - remaining functions
- Added P3D support
- Added tinylog for println() println
- Added automated tests: string parsing
- Fixed loadImage()to work in Opera
- Fixed fake-dom to work with println and tinylog
- Fixed KNOWN-FAILURES for tinylog parsing
- Fixed and updated the AUTHORS log
- Fixed Parse Error: Does not like strings in the format "test test, test test, ..."
- Fixed Rename zip file for make release
- Fixed keyCodes for numbered keys return same values as some letter keys
- Fixed Test harness _checkEqual does not compare "undefined"
- Fixed automated tests: make check-one path not resolving
- Fixed Example: examples/basic.displaying.html incorrect source code "loadimage example bug"
- Setup an OpenGrok instance infrastructure
-
diff --git a/blog/_posts/2010-03-24-processingjs-v070-released.html b/blog/_posts/2010-03-24-processingjs-v070-released.html
deleted file mode 100644
index db979ef..0000000
--- a/blog/_posts/2010-03-24-processingjs-v070-released.html
+++ /dev/null
@@ -1,73 +0,0 @@
----
-layout: post
-title: Processing.js v0.7.0 Released
----
-Download Processing.js 0.7
-
-We are very pleased to announce the release of Processing.js 0.7!
-
-The students at Seneca and the community at large, have been working hard to get some
-awesome code into the repository. Many smaller fixes and features have been added. Some
-exiting addition to the implementation include PImage with asynchronous image loading,
-reference (ref) tests, and lighting.
-
-Get involved!
-
-If you would like to get involved with Processing.js development, or have general usage
-questions about Processing.js, we would love meet you on IRC:
-irc://irc.mozilla.org/processing.js
-
- Changelog
-
-
- Added custom @pjs directive parser
- Added endCamera()
- Added beginCamera()
- Added custom mouseScrolled event
- Added requestImage()
- Added byte()
- Added split()
- Added PImage
- Added String.toCharArray()
- Added long data type
- Added ArrayList.contains()
- Added curveVertex() 3D
- Added dist() 3D
- Added curve() 3D
- Added ambientLight()
- Added curveDetail()
- Added createImage()
- Added noLights()
- Added loadImage() preloading
- Added directionalLight
- Added Hashmap
- Added loadBytes()
- Added pointLight()
- Added text()
- Fixed date()
- Fixed month()
- Fixed failing PMatrix3D tests
- Fixed _checkEquals() to add epsilon value
- Fixed String.prototype.equals
- Fixed background() for PImage support
- Fixed image() for PImage support
- Fixed set() for PImage support
- Fixed parser test runner bug
- Fixed parsing of tab characters
- Fixed parsing of array declarations with spaces
- Fixed parsing of multiple catch blocks
- Fixed get() for PImage support
- Fixed Char to properly distinguish Char from numbers/strings
- Fixed Rhino parsing of processing.js
- Fixed parser/unit tests to work on Windows
- Fixed arrayCopy()
- Fixed box()
- Fixed min(), max() error handling for invalid arguments
- Fixed bug in seneca/hex example
- Fixed background() 3D when called outside of draw()
- Fixed link() to respect target
- Removed invalid tests
- Switched from Packer to YUI Compressor
- Build system improvements for release, testing
- Added Automated Ref Tests
-
diff --git a/blog/_posts/2010-03-26-processingjs-v071-released.html b/blog/_posts/2010-03-26-processingjs-v071-released.html
deleted file mode 100644
index 62c8cb1..0000000
--- a/blog/_posts/2010-03-26-processingjs-v071-released.html
+++ /dev/null
@@ -1,24 +0,0 @@
----
-layout: post
-title: Processing.js v0.7.1 Released
----
-Download Processing.js 0.7
-
-We are very pleased to announce the release of Processing.js 0.7.1!
-
-The students at Seneca and the community at large, have been working hard to get some
-awesome code into the repository. After the release of 0.7 we realized that our implementation
-of mouse wheel support actually broke the whole script in Chrome/Safari. We ask that anyone
-that downloaded the 0.7 release upgrade to 0.7.1 as soon as possible.
-
-Get involved!
-
-If you would like to get involved with Processing.js development, or have general usage
-questions about Processing.js, we would love meet you on IRC:
-irc://irc.mozilla.org/processing.js
-
- Changelog
-
-
- Fixed mouse scrolled event for Chrome/Safari
-
diff --git a/blog/_posts/2010-04-09-processingjs-v08-released.html b/blog/_posts/2010-04-09-processingjs-v08-released.html
deleted file mode 100644
index 8bff86f..0000000
--- a/blog/_posts/2010-04-09-processingjs-v08-released.html
+++ /dev/null
@@ -1,71 +0,0 @@
----
-layout: post
-title: Processing.js v0.8 Released
----
-Download Processing.js 0.8
-
-We are very pleased to announce the release of Processing.js 0.8!
-
-The students at Seneca and the community at large, have been working hard to get some
-awesome code into the repository. We are proud to announce a full rewrite of p.color which
-greatly increases performance. Also included in this release are lightning functions like
-spotlight(), ambientLight(), and pointLight(), as well as material properties like
-shininess(), and emissive().
-
-Get involved!
-
-If you would like to get involved with Processing.js development, or have general usage
-questions about Processing.js, we would love meet you on IRC:
-irc://irc.mozilla.org/processing.js
-
- Changelog
-
-
- Added spotLight
- Added createImage
- Added PImage blend prototype
- Added PImage resize prototype
- Added PImage copy prototype
- Added @pjs directive for moz-opaque
- Added copy
- Added noTint
- Added shininess
- Added blend
- Added lightSpecular
- Added specular
- Added ambient
- Added emissive
- Added PMatrix2DStack, and associated methods
- Added lights
- Added lightFalloff
- Added printMatrix
- Fixed canvas size change issue
- Fixed image clipping logic
- Fixed cursor to use PImage
- Fixed performance and accuracy of color
- Fixed smooth and noSmooth
- Fixed default framerate to match Processing (60fps)
- Fixed Math functions for performance
- Fixed tint
- Fixed parser to better handle custom classes (still known issues)
- Fixed array.remove
- Fixed style, linting issues in processing.js source
- Fixed OOM parser error in matchAll
- Fixed release target to auto-write version numbers in release files
- Fixed background to throw if image size is not same as canvas
- Fixed Boolean array bug
- Fixed pmouseX and pmouseY
- Fixed mouse offset bug when canvas in relative html elements
- Fixed p.color.toGLArray
- Fixed typo in mouseScrolled
- Fixed p.set to support PImage and new color code
- Fixed year
- Fixed parser bug with Windows newlines
- Fixed stroke and fill for performance
- Fixed drawing of transparent pixels to canvas
- Converted visual tests to unit and/or ref tests
- Updated _checkThrows for false case
- Updated ref tests to use better initial values, added calibration tests
- Removed dead code
- Added manual test tracking system
-
diff --git a/blog/_posts/2010-05-11-processingjs-v09-released.html b/blog/_posts/2010-05-11-processingjs-v09-released.html
deleted file mode 100644
index aab01ae..0000000
--- a/blog/_posts/2010-05-11-processingjs-v09-released.html
+++ /dev/null
@@ -1,100 +0,0 @@
----
-layout: post
-title: Processing.js v0.9 Released
----
-Download Processing.js 0.9
-
-We are very pleased to announce the release of Processing.js 0.9!
-
-The new 0.9 release is now available on the GitHub repository. We are proud to announce
-new 3D functionality such as quad, triangle, and vertex. Also included in this release is
-multiple file support and an optimized version on PImage.
-
-Get involved!
-
-If you would like to get involved with Processing.js development, or have general usage
-questions about Processing.js, we would love meet you on IRC:
-irc://irc.mozilla.org/processing.js You
-can also get involved by helping with the testing or documentation phase.
-
- Changelog
-
-
-Added quad() 3D
-Added triangle() 3D
-Added endShape() 3D
-Added beginShape() 3D
-Added vertex() 3D
-Added more 3D ref tests
-Added imageMode()
-Added PMatrix2D::mult()
-Added PMatrix2D::scale()
-Added PMatrix2D::preApply()
-Added PMatrix2D::invert(
-Added PMatrix2D::rotate() and PMatrix2D::rotateZ()
-Added PMatrix2D::translate()
-Added PMatrix2D::determinant()
-Added PMatrix2D::multY()
-Added PMatrix2D::multX()
-Added PMatrix2D::transpose()
-Added P2D constant
-Added QUARTER_PI constant
-Added interface keyword support
-Added screenZ()
-Added screenX()
-Added screenY()
-Added HSB colour in addition to RGB color color.tostring
-Added randomSeed()
-Added bezierVertex()
-Added remaining missing constants from PConstants
-Added PImage support for cursor()
-Added pjs directive to include multiple processing files
-Added hue()
-Added brightness()
-Added saturation()
-Added PImage: prototype for set "pimage set"
-Added sketch.processing.org code in our tree
-Added color.toHSB( colorInt )
-Added mousewheel support for Minefield
-Added parser static keyword support
-Added parser Support minified processing code
-Added data-processing-sources support
-Fixed parser to handle local parameter names same as public variable names
-Fixed parsing of whitespace between constructor and ()
-Fixed parsing of function parameter newlines
-Fixed parser to handle functions and constructors with the same name
-Fixed parser to allow Returning array of floats
-Fixed parser to allow functions before constructors
-Fixed Parser: Calculate upper values in for loops only once
-Fixed parser to allow Static variables
-Fixed parser to allow Inheritance
-Fixed p.background() called with no arguments[0]
-Fixed noStroke() for lines
-Fixed make release on Windows
-Fixed public ctors for parser
-Fixed empty draw() call clears background
-Fixed noise()
-Fixed random()
-Fixed "p is undefined" errors in bespin ide
-Fixed ImageData objects can't be literals, must use createImageData "cross browser"
-Fixed class functions being repeated in the parsed
-Fixed code in pimage.toDataURL() to use bit shifting
-Fixed p.ArrayList to work for more than 3 dimensions
-Fixed Multi-line comments with size() call break library parser
-Fix make check-lint env var
-Fixed Commented size() call for 3D context breaks lib
-Fixed Events continue to get processed after exit() is called Fixed p.point to not use .slice.split with strokeStyle
-Fixed Processing.js class functions not use with()
-Fixed keyTyped()
-Fixed lerpColor()
-Ensured p.set(x,y,c) fully tested after color() changes
-Final Linting for v0.9.0 Release
-Remove jsbeautify from release target
-Fixed PImage pixel array to use ImageData object
-Transform pixel[n] to pixel(n)
-Remove buildImageObject and getImage
-Cleaned up curveVertex.htm example
-Get rid of with(p) in p.init
-Optimized p.redraw()
-
diff --git a/blog/_posts/2010-05-20-processingjs-v091-released.html b/blog/_posts/2010-05-20-processingjs-v091-released.html
deleted file mode 100644
index 5688ab3..0000000
--- a/blog/_posts/2010-05-20-processingjs-v091-released.html
+++ /dev/null
@@ -1,29 +0,0 @@
----
-layout: post
-title: Processing.js v0.9.1 Released
----
-
-Download Processing.js 0.9.1
-
-We are very pleased to announce the release of Processing.js 0.9.1!
-
-The new 0.9.1 release is now available for download
-on the GitHub repository. This release is an architectural refactoring of the library to remove a legacy
-performance issue. This rewrite will allow modern JavaScript engines to better optimize the libraries code
-at runtime. For example, taking advantage of tracing in Firefox's SpiderMonkey engine. Of course, this
-release would not be possible without
-Scott .
-
-Get involved!
-
-If you would like to get involved with Processing.js development, or have general usage questions about
-Processing.js, we would love meet you on IRC:
-irc://irc.mozilla.org/processing.js You can also get
-involved by helping with the testing or documentation phase. We are desperately seeking help with
-documentation.
-
- Changelog
-
-
- Remove with( p ) for performance gain
-
diff --git a/blog/_posts/2010-06-16-processingjs-v094-released.html b/blog/_posts/2010-06-16-processingjs-v094-released.html
deleted file mode 100644
index 3a4b410..0000000
--- a/blog/_posts/2010-06-16-processingjs-v094-released.html
+++ /dev/null
@@ -1,86 +0,0 @@
----
-layout: post
-title: Processing.js v0.9.4 Released
----
-Download Processing.js 0.9.4
-
-We are very pleased to announce the release of Processing.js 0.9.4!
-
-The new 0.9.4 release is now available for download
-on the GitHub repository. This release features a brand new lightweight parser that improves flexibility.
-But thats not all. We have added a lot of 3D features and are NOW supporting textures. Check out the newly
-added crisp @pjs directive for crisp lines and points. Of course performance is always on the top of our
-list, we are proud to say that processing.js is now faster than ever!
-
-Get involved!
-
-If you would like to get involved with Processing.js development, or have general usage questions about
-Processing.js, we would love meet you on IRC:
-irc://irc.mozilla.org/processing.js You can also get
-involved by helping with the testing or documentation phase.
-
-We are desperately seeking help with documentation.
-
- Changelog
-
-
- Added ellipse() 3D
- Added curvevertex() 3D
- Added curve() 3D
- Added rect() 3D
- Added bezier() 3D
- Added bezierVertex() 3D
- Added text() 3D
- Added curveDetail()
- Added bezierDetail()
- Added strokeWeight() and point()
- Added filter()
- Added PImage: filter prototype "pimage filter"
- Added PImage: save prototype "pimage save"
- Added PImage 0 argument constructor
- Added filter MODEs for p.filter() and PImage.filter()
- Added textureMode()
- Added texture()
- Added texture support
- Added ArrayList.toArray
- Added save()
- Added XMLElement type
- Added textWidth()
- Added status()
- Added a new lightweight parser
- Added unit tests for new parser
- Added a .version property
- Added unit test for binary()
- Added support for getting a reference to a Processing object "processing reference"
- Added key/keyCode argument for keyReleased
- Added call to draw() in setup if translate is called
- Added file:/// uri support for running ref tests
- Added crisp @pjs directive for crisp lines and points
- Added a test coverage tool that provides simple way to check code coverage during unit/parser testing
- Fixed pimage.get(x,y,w,h)
- Fixed p.set() performance to increase speed
- Fixed text() performance by removing unnecessary type conversions
- Fixed p.text accepts null input, this causes an error
- Fixed binary() to support all primitive datatypes including arrays
- Fixed unbinary() to support all primitive datatypes including arrays
- Fixed unhex() to support all primitive datatypes including arrays
- Fixed shaders to take in color attribute for individual vertices
- Fixed loadFont() to handle font with spaces in name
- Fixed mouseX/mouseY are not computed with style.border taken into account
- Fixed "p.mousePressed is not a function" error when clicking on a canvas that did not define it
- Fixed mousePressed fails when mousePressed() is defined
- Fixed keyCode is undefined in sketches
- Fixed p.color - optimizations
- Fixed parser to handle sketch code pixels = new color[]
- Fixed parser so that vars which conflict with function names use constant naming convention
- Fixed parser to allow "Code" in a single line comment
- Fixed parser inheritance problems with variables
- Fixed Processing.debug
- Fixed PImage examples with Frame Rate
- Fixed all functions that rely on p.vertex
- Fixed Chrome error for Win that appeared when image() was used chrome
- Fixed functions to allow Chromium to render 3D sketches
- Fixed Reference test script
- Fixed init.js fails to load sketch into targetted canvas
- Removed dead code: Point
-
diff --git a/blog/_posts/2010-07-26-processingjs-v096-released.html b/blog/_posts/2010-07-26-processingjs-v096-released.html
deleted file mode 100644
index 825c547..0000000
--- a/blog/_posts/2010-07-26-processingjs-v096-released.html
+++ /dev/null
@@ -1,66 +0,0 @@
----
-layout: post
-title: Processing.js v0.9.6 Released
----
-Download Processing.js 0.9.6
-
-We are very pleased to announce the release of Processing.js 0.9.6!
-
-The new 0.9.6 release is now available for
-download on the GitHub repository.
-This release encompasses an early implementation of loading and displaying SVG (Scalable
-Vector Graphics) shapes. It also includes additional 3D features such as hint() and
-background transparency. For the optimization enthusiasts, we optimized our code by
-removing recursion and removing temporary variables where possible.
-
-Get involved!
-
-If you would like to get involved with Processing.js development, or have general usage
-questions about Processing.js, we would love meet you on IRC:
-irc://irc.mozilla.org/processing.js You
-can also get involved by helping with the testing or documentation phase. We are
-desperately seeking help with documentation.
-
- Changelog
-
-
- Added PConstants Object
- Added PShape
- Added hint() - 3D
- Added ArrayList add(int index, Object value)
- Added ArrayList set(index, value)
- Added shape()
- Added shapeMode()
- Added loadShape()
- Added createGraphics() 3D support
- Added transparent backgrounds 3D support
- Added transparency directive to fix Moving On Curves example
- Added "IMAGE" to the global members array
- Added createFont()
- Added size() default width and height
- Added textAlign()
- Added pause-on-blur/focus for draw() and @pjs directive to reduce cpu usage
- Added textWidth() 3D
- Fixed tinylogLite so it doesn't slows down frame rate
- Fixed ajax() to check whether the data request was successful
- Fixed point does not render after text()
- Fixed ref tests broken on file:/// uri
- Fixed 2D ref tests
- Fixed p.splice
- Fixed exit() to remove the instance from the "Processing.instances"
- Fixed loading remote images security errors
- Fixed extra argument bug for a parseFloat line
- Fixed use of .moz attributes
- Fixed p.arrayCopy()
- Fixed smooth and noSmooth
- Fixed strokeWeight for 2d point
- Fixed keyCode is not defined parser error
- Fixed parser errors when semicolon is missed
- Fixed parser bug on cast with space: (type) (something)
- Remove all occurances of typeof obj === 'undefined'
- Optimized performance by removing recursive calls when possible
- Optimized p.expand()
- Optimized p.parse(), introduce p.compile()
- Updated ref test runner for 3D tests
- Removed unnecessary whitespace from processing.js
-
diff --git a/blog/_posts/2010-08-16-processingjs-v097-released.html b/blog/_posts/2010-08-16-processingjs-v097-released.html
deleted file mode 100644
index 47d2bed..0000000
--- a/blog/_posts/2010-08-16-processingjs-v097-released.html
+++ /dev/null
@@ -1,66 +0,0 @@
----
-layout: post
-title: Processing.js v0.9.7 Released
----
-Download Processing.js 0.9.7
-
-We are very pleased to announce the release of Processing.js 0.9.7!
-
-The new 0.9.7 release is now available for
-download on the GitHub repository.
-Release features include 3D implementation of PImage, updated SVG support, improved
-PGraphics, and added functionality such as textDescent. For IE9 users we are proud to
-finally offer you a processing-js version that will run in your browser (IE 9 preview 4).
-Also, for those of you that like native JavaScript we have added the ability to run
-processing-js sketches using straight JavaScript. Look at examples/js for a demonstration.
-
-Get involved!
-
-If you would like to get involved with Processing.js development, or have general usage
-questions about Processing.js, we would love meet you on IRC:
-irc://irc.mozilla.org/processing.js You
-can also get involved by helping with the testing or documentation phase. We are
-desperately seeking help with documentation.
-
- Changelog
-
-
- Added saveStrings()
- Added textMode()
- Added 3D implementation to image()
- Added 3D implementation to PImage
- Added loadStrings()
- Added textAscent()
- Added textDescent()
- Added createFont / loadFont and PDE "development environment"
- Added parser test coverage to 55%
- Added PConstants parser optimization
- Added PVector constructor optimization
- Added PShapeSVG::parseMatrix
- Added IE9 support
- Fixed SVG single path cutout not rendering correctly
- Fixed SVG color strings object
- Fixed SVG parsePoly Chrome bug
- Fixed SVG parsePath
- Fixed PImage.mask doesnt work given an object generated by PGraphics.get
- Fixed PImage functions to check this.isRemote
- Fixed 3D Lights
- Fixed make-check errors does not print array braces
- Fixed Chrome 3D rect error
- Fixed vertex 2D inline shape stroke and fill color
- Fixed background in draw doesn't redraw 3d
- Fixed Canvas not being painted when inside div
- Fixed readPixels call for "ref test"
- Fixed web color parsing behavior
- Fixed XMLElement type doesn't support one parameter string ctor
- Fixed tickle example is crashing using opera 10.53 on windows 7
- Fixed shaders so they pass shader validation
- Fixed frameRate() not changable outside of setup()
- Fixed Paser fails silently when keywords aren't in global member array
- Fixed Parser test speed on new parser's generated constructors
- Fixed Parser bug: in-class default scope is not "this" but the DOM window
- Change name of opaque pjs directive to "transparent" transparency "transparent background"
- Removed newWebGLArray wrapper
- Removed unsupported symbols
- Created JS only example documentation example
-
diff --git a/blog/_posts/2010-11-18-processingjs-v10-released.html b/blog/_posts/2010-11-18-processingjs-v10-released.html
deleted file mode 100644
index 1cbdf16..0000000
--- a/blog/_posts/2010-11-18-processingjs-v10-released.html
+++ /dev/null
@@ -1,73 +0,0 @@
----
-layout: post
-title: Processing.js v1.0 Released
----
-This is the one you've been waiting for. The Processing.js team is pleased to announce
-the release of Processing.js
-version 1.0 . Since its original release by John Resig in 2008, over 1,000 bug fixes,
-features, and under-the-hood improvements were made. The goal of Processing.js is parity
-with Processing, ease of use in the web environment, wide compatibility with modern web
-browsers, and great performance. Processing.js is now feature complete with Processing,
-with a very few exceptions (see the Reference
-page for details).
-
-This release represents years of work by a very dedicated developer and user community.
-With Processing.js we hope to expand the reach of Processing on the web, and bring a new
-generation of developers to this wonderful language. The open web will be a much easier
-place to do graphical programming, starting today.
-
-We're proud of Processing.js and hope you'll enjoy using it as much as we do!
-
-Download the code here
-and get started learning
-how to use Processing.js.
-
- ChangeLog
-
-
-Added source level documentation for functions
-Added reference pages for missing language features
-Added sketchpad.cc to list of dev tools
-Added saveFrame()
-Added remaining PImage features
-Added compile-time optimizations for constants, functions, closures
-Added PShapeSVG(new XMLElemnt(svg string))
-Added check for missing use of 'new' to Processing() calls
-Added test for casting and negative ints
-Added cursor URL example to test suite
-Added Makefile target for examples packaging
-Created wiki for processingjs.org
-Created quick start guides for Processing and JavaScript developers
-Fixed keyReleased so it doesn't fire when key is held down
-Fixed neighborhood.html
-Fixed translate() call ordering with background()
-Fixed issue with loadStrings() so it doesn't remove last character
-Fixed matrix operations run in setup such that they are not reset in draw
-Fixed remaining KNOWN-FAILURES that were fixable
-Fixed performance issue with Image() function when mask and tint aren't specified
-Fixed performance issue with text$line
-Fixed SVG to work properly with negative widths
-Fixed PShapeSVG/PShape to be public
-Fixes to allow WebKit to load 3D sketches
-Fixed PImage.mask to work with objects generated by PGraphics.get
-Fixes to support IE9
-Fixed parser to accept additional float literal formats
-Fixed performance issue with ArrayList
-Fixed issue with abstract methods
-Fixed text 3D error
-Fixed mouseX/mouseY values to take scrollbars into account
-Fixed parser bug with discarded processing methods
-Fixed performance issue with uniformMatrix and vertexAttributePointer
-Fixed (int) casting
-Fixed non-power-of-two texture load issue
-Fixed all non-power-of-two images in source tree
-Fixed text-width example in Firefox and Ubuntu
-Fixed method invocation using this and super
-Fixed js linting issues
-Fixed ref test runner for Uint8Array
-Fixed Learning IDE frame rate bug
-Removed .svn dirs from source tree
-Updated fake-dom.js for curContext.setTransform
-Updated processingjs.org (many fixes, corrections)
-Updated documentation for loadImage, requestImage, @pjs preloading
-
diff --git a/blog/_posts/2011-03-01-processingjs-v11-released.html b/blog/_posts/2011-03-01-processingjs-v11-released.html
deleted file mode 100644
index c0bccde..0000000
--- a/blog/_posts/2011-03-01-processingjs-v11-released.html
+++ /dev/null
@@ -1,78 +0,0 @@
----
-layout: post
-title: Processing.js v1.1 Released
----
-Release 1.1 is now available
-for download and contains a whole host of new features!
-
-Our mission this release was to focus on tightening up on as many bugs as possible but
-also to add a large set of new features to the library. Some of the highlights of the new
-features for this release are:
-
-
- Support for touch events on iOS devices
- mouseOver and mouseOut events were added to allow events to take place when the user
- enters and leaves a canvas
- A custom pjs packager has been created that can take a sketch and package it together
- with the library, strip out unneeded code, minify it, and create a final .js file that is
- much smaller in size and lightweight
- An option was added to the makefile that allows you to create an API only version of
- processing.js
- Numerous website updates were done to the reference pages and documentation
-
-
-More than 60 other bugs were fixed this release including 3D fixes and a ton of fixes
-to our testing platforms making our bug detection process much more efficient.
-
-Our exhibition page has also been updated with some of the newest Processing.js works
-on the web. If you have some work, and would like us to showcase it all you have to do is
-get in touch with us . You
-can do so via IRC, twitter (@annasob , or
-@dhhodgin ), or the
-processingjs google group .
-We accept all exhibit requests as long as they are your own work.
-
-Download the new release
-and experience a faster, more powerful Processing experience today!
-
-
-
-
- Added mouseover, mouseout events
- Added parseBoolean()
- Added make file option to create an API only version of processing.js
- Added webkit touch events natively in pjs
- Added custom pjs packager for pre-parsed code
- Added Java for each loop is now supported
- Fixed PJS defaults not matching P5 where reasonable
- Fixed 3D demos broken on systems running OSX 10.6 using nVidia cards
- Fixed key event filtering per sketch (multi-sketch page setup)
- Fixed xmlElementRemoveAttribute test failing
- Fixed XMLElement.parseChildrenRecursive
- Fixed XMLElement constructor returning this
- Fixed OO bug with classes
- Fixed Processing instances not always being added to Processing.instances
- Fixed P3D not respecting noFill()
- Fixed ref test runner broken on IE9
- Fixed ajax() should be asynchronous
- Fixed XMLElement.getChildren(path) not returning all the children
- Fixed inheriting from ArrayList failing
- Fixed toImageData() scope issue
- Fixed ArrayList contains() not checking equality (1.0)
- Fixed shaders being broken with new restrictions on non-constant loops
- Fixed Ref test creation problem with WebGL
- Fixed parsing problem with the ternary operator and the pixel array
- Fixed box vertices and comments not being congruent
- Fixed loop() going relatively mad after a noLoop() and more than 0 second wait
- Fixed Minefield from reporting syntax error on first line
- Fixed text() function width and height restrictions being unreliable
- Fixed unexpected result when converting char() to str()
- Fixed jsshell tests to use snarf() instead of munging strings
- Fixed pollution of object prototypes
- Fixed static methods not working
- Updated the way document focus is checked at the start of every frame redraw (1.0)
- Updated fake-dom.js to support xhr.overrideMimeType
- Updated PShape to use prototypes
- Updated numerous website reference pages
- Removed pimagefilter.pde, and filter.pde files from unit tests
-
diff --git a/blog/_posts/2011-05-31-processingjs-v12-released.html b/blog/_posts/2011-05-31-processingjs-v12-released.html
deleted file mode 100644
index b6e8c5f..0000000
--- a/blog/_posts/2011-05-31-processingjs-v12-released.html
+++ /dev/null
@@ -1,168 +0,0 @@
----
-layout: post
-title: Processing.js v1.2 Released
----
-The Processing.js team is pleased to announce the
-release of Processing.js version 1.2 . This
-is one of our largest releases to date, and focuses on performance, compatibility, 3D, and
-bug fixes. More people than ever are using Processing.js, from professional design houses
-to video game developers to fashion designers, and as the demand and uses continue to
-grow, we are excited to be able to bring you an even better Processing.js.
-
-Since our last release, exciting things have been happening in browser development.
-WebGL, the 3D extension of the HTML5 canvas element, has now shipped in Firefox and Chrome,
-and is being tested in nightly builds of Safari and Opera. Processing.js has been fully
-WebGL compatible for more than a year, and version 1.2 includes some great 3D performance
-and bug fixes. We've also
-written a guide to
-help explain how Processing.js uses canvas and WebGL to support the various Processing
-render modes. Processing.js is a great way to get started with 2D and 3D graphics on the
-web, without having to understand all of the underlying technologies. With several guides for
-people new to Processing ,
-JavaScript developers
-and Processing developers ,
-there has never been a better time to jump in!
-
-This release also includes some important changes to ensure better compatibility with
-Processing 1.5. First, we've altered our default frame rate to match Processing's (i.e.,
-60 fps). Developers who are upgrading from previous versions of Processing.js, and who
-don't explicitly set a frame rate, may notice that sketches seem to run more slowly. Don't
-worry, Processing.js is faster than ever! Your sketch is just drawing at 60fps. It's
-possible to make things as fast as the browsers will allow by setting a higher frame rate,
-but this will of course consume more CPU, and actually
-not
-provide any real gain other than bigger deltas between visible frames.
-
-We had many requests from our users to follow Processing's lead and add support for Java
-Generics, and we're happy to report that as of Processing 1.2 this is fully supported!
-We've also improved our compatibility in key classes and functions like ArrayList and
-XMLElement, and arc() and beginShape(), etc. If you find that your Processing code isn't
-compatible with Processing.js, please make sure you tell us.
-
-While we've been developing 1.2, we've seen some great examples of Processing.js in the
-wild. Here are some of our favorites:
-
-
-
-One of the things we love most is seeing all the creative and unexpected ways that
-people use Processing.js. If you have a cool example, let us know about it, and we might
-showcase it on the site and in our blog posts.
-
-Finally, we want to take this release as an opportunity to acknowledge one of our team
-members who will be leaving us. Anna Sobiepanek
-has been a full-time developer and researcher at
-Seneca's Centre for
-Development of Open Technology (CDOT) for more than a year. She's helped develop and
-lead the Processing.js project, and been our main git master
-(Anna's github graph is often
-used as an example of a complex git project). Anna's been a passionate contributor and
-great leader in the Processing.js project, and we'll miss her daily work with us. Lots of
-people bemoan the lack of women in open source, and we've been blessed to have such a great
-developer and amazing woman working on our team. We wish her well in her new job, and look
-forward to her continued contributions as a volunteer.
-
-We hope you enjoy using Processing.js 1.2. We enjoyed making it for you, and are already
-working on 1.3!
-
-
-
-
- Aligned default frameRate to match Processing (e.g., 60fps). NOTE: if your sketch seems slower than before, frameRate(1000) will yield the old behavior.
- Added Performance Tests
- Added lazy loading sketch extension
- Added XMLElement toString() function
- Added loadShape() testing
- Added support for Java Generics
- Added ArrayList addAll()
- Fixed stroke being applied in endShape()
- Fixed the key variable to hold the proper data type
- Fixed string functions split(), contains()
- Fixed background() when called with image different size from sketch
- Fixed IE9 loading issues
- Fixed mouseX/mouseY to be computed with canvas scaling taken into account
- Fixed text string's height to not ignore textLeading()
- Fixed copy() to handle transparency
- Fixed ellipse 3D to take noStroke and noFill values into account
- Fixed regression in specular() defaults to be same as 1.1.0
- Fixed screenX()
- Fixed arc() 3D fill
- Fixed endShape(CLOSE) so the shape doesn't disappear
- Fix for 3D PGraphics always drawing below 2D shapes
- Fixed noStroke() on P3D endShape()
- Fixed 3D ref tests
- Fixed rect() for 3D when used with lights
- Fixed param()
- Fixed leak of global typed array variables
- Fixed rendering of println() so it's more usable
- Fixed Scaling/Light problem in 3D
- Fixed reverseTransform()
- Fixed line(x,y,x,y) so that it draws a point
- Fixed Processing constructor to take a single argument
- Fixed Iterator for Map's EntrySet to iterate through the entire set
- Fixed dir vector transforms in directionalLight() and spotLight()
- Fixed arrayList remove() to take an object argument
- Fixed light/shadowing failures in ref tests for 3D
- Fixed strokeWeight to not get reset in draw()
- Fixed image cache to set loaded property for images inserted from js
- Fixed parser bug with negative values
- Fixed parser bug with static variables
- Fixed textWidth to work with newlines
- Fixed beginShape() and endShape() to work with bezierVertex()
- Fixed arc() when covering 0 radians
- Fixed unit tests that caused UTF-8 errors in newer JSSHELL
- Fixed linting errors
- Fixed arc() regressions
- Fixed XML API to be Processing 1.5 compatible
- Fixed subset(array, offset) bug
- Converted all XMLElement tests to unit tests
- Converted endShape() ref tests to be part of the regular 2D/3D ref tests
- Documented rotate() to explain direction
- Documentation fixes and corrections on website
- Improved minification
- Improved the performance of arc()
- Improved the performance of blur()
- Improve the performance of blend()'s ADD mode
- Implemented ArrayList indexOf()
- Improve the performance and output of ref tests
- Improved compatibility of WebGL context creation
- Moved colors object out of Processing instances to save memory
- Reduced calls to uniformMatrix()
- Removed test/unit/braces.js
- Removed clear()
- Removed transform matrix calculations if there are no lights
- Removed dependency on init.js, and init.js from examples
- Removed all uses of use3DContext from compiled sketches
- Rewrote build system, switched to closure
- Removed Bespin IDE
- Removed unused tools and minifiers
- Removed uses of constructor.name
- Renamed internal uses of int(), boolean(), etc. to parseInt(), parseBoolean(), etc
- Updated README, LICENSE, AUTHORS, CHANGELOG
- Add known failures to ref tests
- Convert test-suite tests to REF tests
- Fixed inheritance for certain (js object) methods still broken (1.1)
- Fixed more extra semi-colon breaking
- Fixed createImage for RGB format produces image with transparent background
- Removed String.prototype.match and .replace in IE9
- Removed static beginCamera/endCamera examples from repo
- Re-factor 3D and 2D drawing functions into separate objects
-
diff --git a/blog/_posts/2011-06-02-processingjs-v121-released.html b/blog/_posts/2011-06-02-processingjs-v121-released.html
deleted file mode 100644
index 6361761..0000000
--- a/blog/_posts/2011-06-02-processingjs-v121-released.html
+++ /dev/null
@@ -1,22 +0,0 @@
----
-layout: post
-title: Processing.js v1.2.1 Released
----
-Hot on the heels of 1.2.0 we're releasing a maintenance
-release 1.2.1 to address a regression identified by Florian Jenett, relating to the
-use of background() with 3 arguments. An associated issue broke the @pjs "transparent"
-directive, and we fixed both issues in this maintenance release. We also took the
-opportunity to update the gzipped version of processing.js in the release archive, which
-was accidentally posted as a 0-byte file. This release is brought to you thanks to
-Florian's quick post on our bug tracker, so: if you find issues with Processing.js, don't
-hesitate to file a bug with us at
-https://processing-js.lighthouseapp.com
-- we hate them just as much as you do.
-
-
-
-
- Fixed background() when called with 3 arguments
- Fixed use @pjs transparent directive
- Updates to build system for testing, release
-
diff --git a/blog/_posts/2011-07-14-processing-js-v1-2-3-released.html b/blog/_posts/2011-07-14-processing-js-v1-2-3-released.html
deleted file mode 100644
index 55affa6..0000000
--- a/blog/_posts/2011-07-14-processing-js-v1-2-3-released.html
+++ /dev/null
@@ -1,137 +0,0 @@
----
-layout: post
-title: Processing.js v1.2.3 released
----
-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:
-
-
- 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 */
-</script>
-...
-<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.
- 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:
-
-
-
- Changelog
-
-
- 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
-
diff --git a/blog/_posts/2011-08-02-processing-js-siggraph-2011.html b/blog/_posts/2011-08-02-processing-js-siggraph-2011.html
deleted file mode 100644
index 428ac79..0000000
--- a/blog/_posts/2011-08-02-processing-js-siggraph-2011.html
+++ /dev/null
@@ -1,24 +0,0 @@
----
-layout: post
-title: Processing.js @ SIGGRAPH 2011
----
-Members of the Processing.js development team will be presenting a talk at
-SIGGRAPH 2011 . We will be talking about the
-development of Processing.js and showing off some really cool demos using Processing.js
-and other web features. If you are at SIGGRAPH, be sure to come check us out.
-
-Session info:
-Session Name: Changing Dimensions
-
Talk Name: Processing.js: Sketching with <canvas>
-
Date: Monday, August 8
-
Time: 3:45pm to 5pm
-
Room: West Building, rooms 109/110
-
-
We will be in Vancouver for the whole conference. If you'd like to meet up with us, you
-can contact us on Twitter :
-
-
- @asalga
- @dhhodgin
- @cathyatseneca
-
diff --git a/blog/_posts/2011-08-24-processing-js-v1-3-0-released.html b/blog/_posts/2011-08-24-processing-js-v1-3-0-released.html
deleted file mode 100644
index 7cef04b..0000000
--- a/blog/_posts/2011-08-24-processing-js-v1-3-0-released.html
+++ /dev/null
@@ -1,164 +0,0 @@
----
-layout: post
-title: Processing.js v1.3.0 released
----
-Our Biggest Release Ever: Announcing Processing.js 1.3.0
-
-The Processing.js team is pleased to announce the release of Processing.js 1.3.0. This
-is our biggest release to date, and represents an enourmous amount of work from the team.
-This release focuses on a number of key issues: significant performance improvements,
-greatly improved text handling and font metrics, and general bug fixes and compatibility
-with Processing, including getting ready for Processing 2.0!
-
-1.3.0 is fast. We've put a ton of effort into making Processing.js run your sketches
-faster. Our performance test suite shows some incredible speed-ups using 1.3.0 over
-previous releases. All browsers on all platforms run faster. How much faster? Our tests
-show a 6% - 60% gain across the board:
-
-
- Firefox: 10% - 25% increase
- Chrome: 35% increase
- Safari: 30% - 60% increase
- Opera: 30% - 50% increase
- Internet Explorer: 41% increase
- Safari Mobile on iOS: 6% - 8% increase
-
-
-We're really proud of the gains we've made in this release, and we're not done yet.
-There are further performance gains to be had in 1.4 and beyond. Couple this with the
-tremendous improvements in JavaScript engines and browser graphics performance, and the
-future is looking better and better for doing Processing.js development. If you find
-something runs slowly in Processing.js, we want to know. Make sure you file a bug or talk
-to us on IRC. Chances are we can make it faster.
-
-1.3.0 is amazing at working with text and fonts. The release includes a total rewrite
-of our font and text handling code. We know that typography is important to many Processing
-and Processing.js users—it is to us as well. In order to get the amazing cross-platform,
-cross-browser compatibility we did in this release, we had to go to
-some extreme lengths
-. It wasn't easy, but the results are beautiful, and should make working with text in
-processing.js an enjoyable and beautiful experience.
-
-1.3.0 is more compatible with Processing than ever before. As Processing moves toward
-its 2.0 release, and with it new features and API changes, we're implementing the same
-things in Processing.js. The 1.3.0 release includes many compatibility fixes, which address
-differences between sketches written in Processing and Processing.js. "If it works in
-Processing, it should work in Processing.js." As Shaun McWhinnie (@himseelf)
-wrote on Twitter :
-
-Sat down to *learn* processing.js last night, then found out it can parse my
-existing pde sketches #jobdone
-
-Compatibility continues to be our goal, and with 1.3.0, it's more true than ever before.
-Have you found a Processing sketch that doesn't work in Processing.js? Let us know!
-
-This release also introduces an important change for functions like line(), point(),
-rect(). In the past we used anit-alised points/lines, due to limitations in HTML5 canvas.
-In the past we told our users to add the crisp pjs directive to their sketches, as a hint
-to Processing.js that you wanted points/lines without anti-aliasing. This was confusing to
-most people, and cumbersome to use. Our team has figured out a way to overcome this
-limitation, and we are now able to draw crisp points/lines by default, which matches the
-expected behaviour of the same sketches run in Processing.
-
-We hope you enjoy working with Processing.js 1.3.0, and let us know. Processing.js is
-a labour of love, and we appreciate your encouragement and hearing how you're using it in
-your data visualizations, art, teaching, game development, etc. The number of people using
-Processing.js around the world is humbling to us.
-
-While you're downloading Processing.js 1.3.0, here are some uses of Processing.js we
-found while we were creating this release:
-
-
-
- Changelog
-
-
- Added a chart to the perf test suite
- Added an error message to the ref test builder if 'exit()' is not found in the sketch
- Added blendColor ref tests
- Added codePointAt to the String object
- Added documentation to toP5String function
- Added equalsIgnoresCase to String object
- Added error messages to beginCamera and endCamera when used in 2D mode
- Added error messages to Processing file and I/O functions that are unsupported by Processing.js
- Added printMatrix unit tests
- Added resetMatrix unit tests
- Added rounded rect
- Added screenWidth and screenHeight variables to match Processing v2.0
- Added script to build process to replace PConstants.* with their numerical values
- Added startsWith and endsWith to the String object
- Added support for external javascript code to add images to the imageCache
- Added tint perf and ref tests
- Added toArray() to the Array object
- Added transparency perf test
- Changed function(){} to the Processing local variable 'nop'
- Changed obj.constructor type-checking to typeof(obj)
- Changed perf tests to use exit()
- Changed Processing.js errors to throw instead of print to tinylog
- Converted animated test suite tests to ref tests
- Converted XMLElement unit tests to use XMLElement.parse(string) instead of XMLElement(string)
- Fixed crisp not working properly when any transformations were applied to the sketch
- Fixed CSS font declaration when using SVG fonts
- Fixed default vertical align in textMode(halign, valign) to BASELINE
- Fixed equalsIgnoreCase to use toLowerCase rather than RegEx(//i)
- Fixed fake-dom.js returning the same canvas every time createElement is called
- Fixed font metrics (textAscent, textDescent, etc.)
- Fixed font preloading not checking whether a @font-face rule already exists
- Fixed font preloading to use tinyfont
- Fixed font quoting bug in computeFontMetrics
- Fixed HashMap.values() so that it returns an ArrayList
- Fixed hex literal #FFFFFF not being converted to an int properly
- Fixed HSB functions ignoring colorMode range in grayscale
- Fixed httpd.py webserver to be multi-threaded and MSIE compatible
- Fixed image() not working in 3D mode
- Fixed lerpColor generating incorrect values in HSB color mode
- Fixed make release-files creating the temporary file in the wrong directory
- Fixed mandelbrot.pde and histogram.pde ref tests
- Fixed MSIE crash when loading from a script element
- Fixed negative color and opacity values returning incorrect results
- Fixed performance loss when drawing images at fractional co-ordinates
- Fixed PImage.get not returning valid data
- Fixed rectMode() regressions caused by @pjs crisp removal
- Fixed runtests.py to use Unix paths only
- Fixed screenXYZ.pde unit test
- Fixed sketch starting before font preloading is done
- Fixed smooth() and noSmooth() to use new image-rendering modes
- Fixed SVG loading in Opera
- Fixed SVG path handling for 'z' and 'Z'
- Fixed text-width.pde ref test to use the correct font
- Fixed text$4 and text$6 font alignment
- Fixed textAlign and textMode not getting saved in pushStyle() and popStyle()
- Fixed textSize not caching textAscent, textDescent, and textLeading
- Fixed tint() to work with texture()
- Fixed vertex() not working with optional parameters
- Fixed vertical align behaviour
- Fixed XMLElement.parse when parsing a string with '.svg' or '.xml'
- Improved the performance of blend modes
- Improved the performance of blend()
- Improved the performance of images created with createImage()
- Improved the performance of PVector
- Reduced the number of canvas objects the ref test runner creates so that tests pass on Chrome in Windows
- Refactored forwardTransform and reverseTransform into modelView and modelViewInverse
- Refactored PFont
- Refactored point(), line(), and rect() to draw crisp lines
- Refactored Processing.js to have no else after return or throw
- Refactored unbinary()
- Removed @pjs crisp directive
- Removed color profiles from all images used in our ref test suite
- Removed comments from the release version of Processing.js
- Removed reliance on use3DContext variable
- Removed textMode(SCREEN)
- Removed unused 'Keys and Keystrokes' variables
- Removed unused function colorBlendWithAlpha
- Removed use of .apply(this, arguments)
- Removed use of parseFloat and parseInt as cast operators
- Replaced 'new Date().getTime()' with 'Date.now()'
- Switched back to YUI compressor for this release, as Google Closure was producing buggy code
-
diff --git a/blog/_posts/2011-09-05-meet-the-processing-js-team.html b/blog/_posts/2011-09-05-meet-the-processing-js-team.html
deleted file mode 100644
index c43179d..0000000
--- a/blog/_posts/2011-09-05-meet-the-processing-js-team.html
+++ /dev/null
@@ -1,20 +0,0 @@
----
-layout: post
-title: Meet the Processing.js team
----
-After finishing our v1.3.0 release, we were able to gather all of our current
-Processing.js developers in one place for the day. Meet the team:
-
-
-
-
-
-From left to right, we have:
-
- Scott "scott" Downe -
- Andor "asalga" Salga - blog
- Daniel "dhodgin" Hodgin - blog
- Mike "Pomax" Kamermans - blog
- David "humph" Humphrey - blog
- Jon "jbuck" Buckley - blog
-
diff --git a/blog/_posts/2011-10-06-processing-js-v1-3-5-released.html b/blog/_posts/2011-10-06-processing-js-v1-3-5-released.html
deleted file mode 100644
index bcb3581..0000000
--- a/blog/_posts/2011-10-06-processing-js-v1-3-5-released.html
+++ /dev/null
@@ -1,67 +0,0 @@
----
-layout: post
-title: Processing.js v1.3.5 released
----
-The Processing.js team is pleased to announce the release of Processing.js 1.3.5. This
-is a maintenance release, containing many compatibility fixes for the soon to be released
-Processing v 2.0, as well as fixes for issues reported by our users in 1.3.0. We've also
-included a number of updates for 3D, not the least of which is that 3D now renders crisp,
-and addressed several performance issues. As always, we encourage you to
-
-file bugs when you spot something we missed, and thank those of you who filed bugs that
-we fixed in this release. Our community continues to grow, and the feedback, demos, and test
-cases are always welcome.
-
-You can download the full Processing.js 1.3.5 library
-(production (recommended) ,
-debug version ), get the
-
-API-only version (no Processing parser, for JavaScript developers), or grab a
-zip file
-containing everything, including many working examples.
-
-While you're downloading Processing.js 1.3.5, here are some demos we really liked:
-
-
-
- Changelog
-
-
- Added check for canvas in Processing ctor [#1646]
- Added document.head compatibility for Firefox 3.6 [#1660]
- Added reference to p instance in onLoad() [#1643]
- Added text(string, x, y, z) ref tests [#1642]
- Disabled WebGL anti-aliasing [#1701]
- Fixed PImage.mask() when passed a PImage created from a PGraphics [#1623]
- Fixed PImage.toImageData not using cache [#1647]
- Fixed colorMode not working in 3D [#1670]
- Fixed copy() without a source argument [#1631]
- Fixed frustum() not throwing an error in 2D mode [#1693]
- Fixed get() not returning a copy of a PImage [#1622]
- Fixed get(x,y) when called on 3D PGraphics [#1630]
- Fixed getUniformLocation checking for null [#1650]
- Fixed lights not being applied to textures [#1503]
- Fixed modelX/Y/Z() failing if camera() was not called first [#1103]
- Fixed noFill()/noStroke() not working if called before size() [#1417]
- Fixed pixels not allowed as a variable name in classes [#1674]
- Fixed pmouseX/Y values during draw() [#1635]
- Fixed rectMode() not working in 3D [#1656]
- Fixed textWidth() returning a string instead of a number [#1624]
- Fixed texture UV coordinates not normalized and clamped with NPOT textures [#1669]
- Fixed texture() modifying a NPOT PImage passed to it [#1664]
- Fixed tint() ignoring alpha parameter [#1625]
- Fixed tint() not marking a PImage as dirty [#1707]
- Fixed using p as a class member identifier [#1618]
- Fixed vertical align in textAlign() [#1628]
- Optimized use of curRectMode and curEllipseMode [#1676]
- Removed p.Import [#1632]
- Removed unused inDraw variable [#1641]
-
diff --git a/blog/_posts/2011-10-13-processing-js-v1-3-6-released.html b/blog/_posts/2011-10-13-processing-js-v1-3-6-released.html
deleted file mode 100644
index 9158c2e..0000000
--- a/blog/_posts/2011-10-13-processing-js-v1-3-6-released.html
+++ /dev/null
@@ -1,23 +0,0 @@
----
-layout: post
-title: Processing.js v1.3.6 released
----
-The Processing.js team is pleased to announce the release of Processing.js 1.3.6. This
-is a maintenance release for 1.3.5, which had a bug where any non-square 3D sketch would
-be stretched. We highly recommend that you upgrade to this version, especially if you're
-using 3D mode. A big thanks to Casey Reas on the Processing team for reporting this bug.
-And congratulations on the
-newest addition to the family !
-
-If you run into any problems with Processing.js, please file a
-
-bug or talk to us on IRC
-(irc://irc.mozilla.org/processing.js).
-
- Changelog
-
-
- Fixed arc() not filling the last half degree [#1717]
- Fixed camera() call order regression in 1.3.5 [#1714]
- Fixed delay() to throw an unsupported function error [#1724]
-
diff --git a/blog/_posts/2011-10-25-processing-js-workshops.html b/blog/_posts/2011-10-25-processing-js-workshops.html
deleted file mode 100644
index c1615e3..0000000
--- a/blog/_posts/2011-10-25-processing-js-workshops.html
+++ /dev/null
@@ -1,37 +0,0 @@
----
-layout: post
-title: Processing.js Workshops
----
-It's conference season, and the Processing.js team has been invited to speak at various
-events around the world in the next month. If you're interested in learning Processing.js,
-or want to connect with others who use it, these events are great places to meet the
-Processing/Processing.js communities. Two of Processing.js' lead developers, David Humphrey
-and Jon Buckley, will be running these sessions and giving talks.
-
-On Thursday October 27, 2011 from 9:00am
-- 12:00pm we'll be at the Free Software and
-Open Source Symposium (FSOSS) at Seneca College in Toronto (the home of Processing.js!).
-This workshop will give an introduction to Processing and Processing.js, and show how to
-integrate web technologies (e.g., JavaScript libraries) and data services (e.g., Twitter)
-with Processing.js sketches.
-
-From November 4-6 we'll be in London, UK for the
-Mozilla Media Festival . We'll be giving a workshop
-on Processing.js, and showing how to use HTML5 media technologies, JavaScript libraries, and
-mobile device APIs. Workshop time TBD.
-
-From November 11-13 we'll be in Chicago for the
-Mobile Processing conference . We'll
-be giving a
-workshop on using Processing.js with the web and mobile web, how to make Processing
-sketches work on Andorid, iOS, and other mobile platforms, and generally how to leverage
-web technologies and data sources in Processing.js. We will also give a
-
-talk on Processing.js generally, and how it can be used with the (mobile) web.
-
-We also see that there is a series of
-Processing.js
-workshops going on at GAFFTA on Tuesdays & Thursdays, October 25th &
-27th, November 1st & 3rd . If you're in San Francisco, be sure to check these out.
-
-Looking forward to meeting you at one of these events.
diff --git a/blog/_posts/2012-07-31-processing-js-v1-4-0-released.html b/blog/_posts/2012-07-31-processing-js-v1-4-0-released.html
deleted file mode 100644
index 18a063f..0000000
--- a/blog/_posts/2012-07-31-processing-js-v1-4-0-released.html
+++ /dev/null
@@ -1,77 +0,0 @@
----
-layout: post
-title: Processing.js v1.4.0 released
----
-Processing.js 1.4.0! Yes, it's finally here, and it's a doozy. Many of the dev team have
-been working on other projects over the last year, with some people wondering whether Processing.js
-was a dead project, so just to reassure you: it is very much alive. However, we've had to make some
-changes to the way we do releases now that we no longer have any developers dedicating all their time
-to the project. So, let's start with the biggest change: a release! You can find the full list of
-things that were added or fixed in the changelog below, but to give you a taste of
-what's changed: SVG drawing to buffers now works, method overloading has been made far more robust,
-XML with CDATA no longer breaks and the Processing 2.0 XML API is supported, IE9 no longer crashes
-without the debug tools turned one, and we even managed to slip variable argument syntax (Type...
-varname) into the parser. There's even a new extension to play with.
-
-
The second change is also relatively big: we're changing from spaced out, big releases to
-relatively frequent, but small releases. This benefits everyone: you get more frequent updates
-to Processing.js, and issues that you report (or contribute code for!) make it into the public
-version much faster, and the people who work on Processing.js (a number of formerly full-time
-devs are still involved with the project on a part time basis) can simply focus on getting two
-or three important tickets out of the way each release, rather than spending time trying to work
-through twenty or thirty. This makes things much more managable.
-
-The tl;dr version; Processing 1.4.0 is out! Go download
-it! And to keep you coming back for more, expect 1.4.1 at the end of August!
-
-As always: if you run into any problems with Processing.js, please file a
-
-bug or talk to us on IRC
-(irc://irc.mozilla.org/processing.js).
-
- Changelog
-
-
- Added a PJS object inspector [#1867]
- Added ArrayList.lastIndexOf() [#1837]
- Added ArrayList.removeAll() [#1001]
- Added CDATA support to XML [#1788]
- Added check for IE9 non-HTML5 doctype [#1606]
- Added online global variable [#1743]
- Added option to stop ref test suite on failures [#1681]
- Added PFont cache limits [#1741]
- Added PImage.get() ref tests [#1601]
- Added point smoothing in 3D [#602]
- Added Processing.reload() [#1133]
- Added shearX() and shearX() to 2D mode [#1640]
- Added shearX() and shearY() in 3D mode [#1773]
- Added support for Processing 2.0 XML support [#1806]
- Added support for variable arguments [#1842]
- Added tinyLogLite license and author to LICENSE [#1731]
- Enabled preserveDrawingBuffer when context is acquired [#1651]
- Fixed array initialization code [#1817]
- Fixed ArrayList(int) constructor [#1829]
- Fixed data-processing-sources to seperate files or ids by whitespace, not just spaces [#1818]
- Fixed handling of namespaces in XMLElement.getChild [#1382]
- Fixed HashMap iterator.remove() bug [#1871]
- Fixed I-bar cursor appearing on click-dragging [#1755]
- Fixed IE9 hanging on exception without debugger [#1789]
- Fixed init to cache <script> elements [#1740]
- Fixed lazy loading height calculation [#1846]
- Fixed naming convention in shaders [#1279]
- Fixed off-by-one error in arc startLUT calculations [#1802]
- Fixed overloaded method calls [#1810]
- Fixed parser to allow $ in names [#1688]
- Fixed PGraphics initially not transparent [#1813]
- Fixed PImage.toImageData using cached image data [#1768]
- Fixed popStyle() setting rectMode() to undefined [#1771]
- Fixed PShape to work with PGraphics [#1778]
- Fixed PShape.shape() changing rectMode() and ellipseMode() [#1753]
- Fixed right-click context menu appearing in 3D sketches [#1779]
- Fixed splitTokens() to work with special characters [#1799]
- Fixed textSize() not resetting font metrics [#1687]
- Removed duplicate curElement assigned code [#1763]
- Set animated ref tests to run at 1000 FPS [#1830]
- Unmarked ref tests as known fails due to FF9 JIT bugs [#1700]
- Updated the generics regexp for array notation [#1812]
-
diff --git a/blog/_posts/2012-08-08-processing-js-v1-4-1-hotfix.html b/blog/_posts/2012-08-08-processing-js-v1-4-1-hotfix.html
deleted file mode 100644
index f2684da..0000000
--- a/blog/_posts/2012-08-08-processing-js-v1-4-1-hotfix.html
+++ /dev/null
@@ -1,19 +0,0 @@
----
-layout: post
-title: Processing.js v1.4.1 released
----
-Hot on the heels of 1.4.0 comes 1.4.1, which is an emergency
-hotfix release to fix a regression issue introduced by the patch for
-ticket #1775 ,
-which aimed to solve the problem of getting an I-bar cursor when
-doing click-drags on a sketch. Long story short, the code intercepted
-click events but forgot to set focus on the sketch. Without focus,
-key events don't make it into the sketch so we had the unfortunate
-situation where your sketch wouldn't respond to the keyboard.
-
-This was fixed as issue #1883
-and should no longer cause any problems. As a bonus, we also threw in
-#1886
-which adds String.matches, which has been missing all this time.
\ No newline at end of file
diff --git a/blog/_posts/2014-03-25-processing-js-v1-4-7.html b/blog/_posts/2014-03-25-processing-js-v1-4-7.html
deleted file mode 100644
index 9341d4e..0000000
--- a/blog/_posts/2014-03-25-processing-js-v1-4-7.html
+++ /dev/null
@@ -1,22 +0,0 @@
----
-layout: post
-title: Processing.js v1.4.7 released
----
-Since our last release, 1.4.1, Processing.js has been given a bit of a source code
-overhaul, culminating in a new release: 1.4.7! This release adds in new functionality
-that you might already know from Processing 2.0, but was missing in Processing.js such
-as new methods in PVector and XML. The release model has also been changed: we're going
-to be releasing a new version every time a merge in a patch that either fixes something,
-or adds a feature that is still missing. This makes things way easier for us to manage,
-and ensures that you don't have to wait months while updates slowly gather dust waiting
-for a major release. You can download the new version of Processing.js over on the
-download section, and let us know what's still missing!
-
-As we're reshuffling the source code, some things are currently not available: the
-API-only version of Processing.js was so insignificantly smaller than the regular version
-that it will no longer be generated. The difference was about 10kb on 200kb, and the
-added complexity of compiling an API-only version was simply not something that could be
-taken on. If you want to help bring that back, we'd love to talk to you! We're also
-not packaging the examples anymore, as a lot of them are actually incredibly out of date
-and do not reflect proper Processing.js or even Processing approaches. Again, if you
-want to help create a set of useful example again with us, get in touch!
\ No newline at end of file
diff --git a/blog/_posts/2014-03-25-processing-js-v1-4-8.html b/blog/_posts/2014-03-25-processing-js-v1-4-8.html
deleted file mode 100644
index c6b33c1..0000000
--- a/blog/_posts/2014-03-25-processing-js-v1-4-8.html
+++ /dev/null
@@ -1,9 +0,0 @@
----
-layout: post
-title: Processing.js v1.4.8 released
----
-It's been a few weeks and PRocessing.js got a few PRs merge in, so it's time for a new
-release: say hello to 1.4.8! This version has some fixes to PVector's rotate, support for
-randomGaussian(), and several unit tests to make sure those fixes pass muster. You
-can download the new version of Processing.js over on the download
-section, and let us know what's still missing!
diff --git a/blog/_posts/2014-04-17-processing-js-v1-4-8.html b/blog/_posts/2014-04-17-processing-js-v1-4-8.html
deleted file mode 100644
index c6b33c1..0000000
--- a/blog/_posts/2014-04-17-processing-js-v1-4-8.html
+++ /dev/null
@@ -1,9 +0,0 @@
----
-layout: post
-title: Processing.js v1.4.8 released
----
-It's been a few weeks and PRocessing.js got a few PRs merge in, so it's time for a new
-release: say hello to 1.4.8! This version has some fixes to PVector's rotate, support for
-randomGaussian(), and several unit tests to make sure those fixes pass muster. You
-can download the new version of Processing.js over on the download
-section, and let us know what's still missing!
diff --git a/blog/_posts/template.html b/blog/_posts/template.html
deleted file mode 100644
index fc7a841..0000000
--- a/blog/_posts/template.html
+++ /dev/null
@@ -1,10 +0,0 @@
----
-layout: post
-title: Template blog title
----
-This is a blog template
-
-Go nuts with whatever HTML you like, but try to stick to your basic p's, h3's, and ul's.
-
-Be sure to name this new blog post properly, "yyyy-mm-dd-title-with-dashes.ext", where
-.ext can be html, md, or textile.
diff --git a/blog/index.html b/blog/index.html
deleted file mode 100644
index 663d46e..0000000
--- a/blog/index.html
+++ /dev/null
@@ -1,19 +0,0 @@
----
-layout: default
----
-{% assign first_post = site.categories.blog.first %}
-Blog
-
-
-
{{ first_post.date | date_to_string }}
-{{ first_post.content }}
-
-
-
-
-Archives
-
-{% for post in site.categories.blog %}
-{{ post.title }} {{ post.date | date_to_string }}
-{% endfor %}
-
\ No newline at end of file
diff --git a/community/index.html b/community/index.html
deleted file mode 100644
index ffc5136..0000000
--- a/community/index.html
+++ /dev/null
@@ -1,57 +0,0 @@
----
-layout: default
----
-Community
-
-
-
- IRC Channel
- The Processing.js IRC channel has moved to irc.mozilla.org where the PJS
- developers are hanging out. Need information, have feature suggestions, bugs? Join
- irc://irc.mozilla.org/processing.js
- and we will help you get the most out of Processing.js.
-
-
-
-
-
-
- GitHub Repository
- The current fork of the Processing.js repo at GitHub. Developers wishing to contribute
- to Processing.js should sign-up at GitHub and pull the code to their local machines.
- Then any changes you make can be easily integrated into the master version.
- The development team have also chosen to go with Github as the bug tracking system
- for Processing.js. If you think you may have stumbled accross a bug, or you are
- interested in joining in the development, visit
- Processing.js on Github .
-
-
-
-
-
-
- Google Group
- A very helpful group of Processing.js enthusiasts who frequently share code,
- techniques and collaborate on new ideas. A great place for beginners to get started.
-
-
-
-
diff --git a/css/bootstrap.css b/css/bootstrap.css
deleted file mode 100644
index efabec5..0000000
--- a/css/bootstrap.css
+++ /dev/null
@@ -1,356 +0,0 @@
-html,body{margin:0;padding:0;}
-h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,cite,code,del,dfn,em,img,q,s,samp,small,strike,strong,sub,sup,tt,var,dd,dl,dt,li,ol,ul,fieldset,form,label,legend,button,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;font-weight:normal;font-style:normal;font-size:100%;line-height:1;font-family:inherit;}
-table{border-collapse:collapse;border-spacing:0;}
-ol,ul{list-style:none;}
-q:before,q:after,blockquote:before,blockquote:after{content:"";}
-html{overflow-y:scroll;font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;}
-a:focus{outline:thin dotted;}
-a:hover,a:active{outline:0;}
-article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block;}
-audio,canvas,video{display:inline-block;*display:inline;*zoom:1;}
-audio:not([controls]){display:none;}
-sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;}
-sup{top:-0.5em;}
-sub{bottom:-0.25em;}
-img{border:0;-ms-interpolation-mode:bicubic;}
-button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle;}
-button,input{line-height:normal;*overflow:visible;}
-button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0;}
-button,input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button;}
-input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;}
-input[type="search"]::-webkit-search-decoration{-webkit-appearance:none;}
-textarea{overflow:auto;vertical-align:top;}
-body{background-color:#ffffff;margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:18px;color:#404040;}
-.container{width:940px;margin-left:auto;margin-right:auto;zoom:1;}.container:before,.container:after{display:table;content:"";zoom:1;}
-.container:after{clear:both;}
-.container-fluid{position:relative;min-width:940px;padding-left:20px;padding-right:20px;zoom:1;}.container-fluid:before,.container-fluid:after{display:table;content:"";zoom:1;}
-.container-fluid:after{clear:both;}
-.container-fluid>.sidebar{position:absolute;top:0;left:20px;width:220px;}
-.container-fluid>.content{margin-left:240px;}
-a{color:#0069d6;text-decoration:none;line-height:inherit;font-weight:inherit;}a:hover{color:#00438a;text-decoration:underline;}
-.pull-right{float:right;}
-.pull-left{float:left;}
-.hide{display:none;}
-.show{display:block;}
-.row{zoom:1;margin-left:-20px;}.row:before,.row:after{display:table;content:"";zoom:1;}
-.row:after{clear:both;}
-.row>[class*="span"]{display:inline;float:left;margin-left:20px;}
-.span1{width:40px;}
-.span2{width:100px;}
-.span3{width:160px;}
-.span4{width:220px;}
-.span5{width:280px;}
-.span6{width:340px;}
-.span7{width:400px;}
-.span8{width:460px;}
-.span9{width:520px;}
-.span10{width:580px;}
-.span11{width:640px;}
-.span12{width:700px;}
-.span13{width:760px;}
-.span14{width:820px;}
-.span15{width:880px;}
-.span16{width:940px;}
-.span17{width:1000px;}
-.span18{width:1060px;}
-.span19{width:1120px;}
-.span20{width:1180px;}
-.span21{width:1240px;}
-.span22{width:1300px;}
-.span23{width:1360px;}
-.span24{width:1420px;}
-.row>.offset1{margin-left:80px;}
-.row>.offset2{margin-left:140px;}
-.row>.offset3{margin-left:200px;}
-.row>.offset4{margin-left:260px;}
-.row>.offset5{margin-left:320px;}
-.row>.offset6{margin-left:380px;}
-.row>.offset7{margin-left:440px;}
-.row>.offset8{margin-left:500px;}
-.row>.offset9{margin-left:560px;}
-.row>.offset10{margin-left:620px;}
-.row>.offset11{margin-left:680px;}
-.row>.offset12{margin-left:740px;}
-.span-one-third{width:300px;}
-.span-two-thirds{width:620px;}
-.row>.offset-one-third{margin-left:340px;}
-.row>.offset-two-thirds{margin-left:660px;}
-p{font-size:13px;font-weight:normal;line-height:18px;margin-bottom:9px;}p small{font-size:11px;color:#bfbfbf;}
-h1,h2,h3,h4,h5,h6{font-weight:bold;color:#404040;}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{color:#bfbfbf;}
-h1{margin-bottom:18px;font-size:30px;line-height:36px;}h1 small{font-size:18px;}
-h2{font-size:24px;line-height:36px;}h2 small{font-size:14px;}
-h3,h4,h5,h6{line-height:36px;}
-h3{font-size:18px;}h3 small{font-size:14px;}
-h4{font-size:16px;}h4 small{font-size:12px;}
-h5{font-size:14px;}
-h6{font-size:13px;color:#bfbfbf;text-transform:uppercase;}
-ul,ol{margin:0 0 18px 25px;}
-ul ul,ul ol,ol ol,ol ul{margin-bottom:0;}
-ul{list-style:disc;}
-ol{list-style:decimal;}
-li{line-height:18px;color:#808080;}
-ul.unstyled{list-style:none;margin-left:0;}
-dl{margin-bottom:18px;}dl dt,dl dd{line-height:18px;}
-dl dt{font-weight:bold;}
-dl dd{margin-left:9px;}
-hr{margin:20px 0 19px;border:0;border-bottom:1px solid #eee;}
-strong{font-style:inherit;font-weight:bold;}
-em{font-style:italic;font-weight:inherit;line-height:inherit;}
-.muted{color:#bfbfbf;}
-blockquote{margin-bottom:18px;border-left:5px solid #eee;padding-left:15px;}blockquote p{font-size:14px;font-weight:300;line-height:18px;margin-bottom:0;}
-blockquote small{display:block;font-size:12px;font-weight:300;line-height:18px;color:#bfbfbf;}blockquote small:before{content:'\2014 \00A0';}
-address{display:block;line-height:18px;margin-bottom:18px;}
-code,pre{font-family:Monaco, Andale Mono, Courier New, monospace;font-size:12px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
-code{color:rgba(0, 0, 0, 0.75);}
-pre{background-color:#f5f5f5;display:block;padding:8.5px;margin:0 0 18px;line-height:18px;font-size:12px;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.15);-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;white-space:pre;white-space:pre-wrap;word-wrap:break-word;}
-form{margin-bottom:18px;}
-fieldset{margin-bottom:18px;padding-top:18px;}fieldset legend{display:block;padding-left:150px;font-size:19.5px;line-height:1;color:#404040;*padding:0 0 5px 145px;*line-height:1.5;}
-form .clearfix{margin-bottom:18px;zoom:1;}form .clearfix:before,form .clearfix:after{display:table;content:"";zoom:1;}
-form .clearfix:after{clear:both;}
-label,input,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:normal;}
-label{padding-top:6px;font-size:13px;line-height:18px;float:left;width:130px;text-align:right;color:#404040;}
-form .input{margin-left:150px;}
-input[type=checkbox],input[type=radio]{cursor:pointer;}
-input,textarea,select,.uneditable-input{display:inline-block;width:210px;height:18px;padding:4px;font-size:13px;line-height:18px;color:#808080;border:1px solid #ccc;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
-select{padding:initial;}
-input[type=checkbox],input[type=radio]{width:auto;height:auto;padding:0;margin:3px 0;*margin-top:0;line-height:normal;border:none;}
-input[type=file]{background-color:#ffffff;padding:initial;border:initial;line-height:initial;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}
-input[type=button],input[type=reset],input[type=submit]{width:auto;height:auto;}
-select,input[type=file]{height:27px;*height:auto;line-height:27px;*margin-top:4px;}
-select[multiple]{height:inherit;background-color:#ffffff;}
-textarea{height:auto;}
-.uneditable-input{background-color:#ffffff;display:block;border-color:#eee;-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);cursor:not-allowed;}
-:-moz-placeholder{color:#bfbfbf;}
-::-webkit-input-placeholder{color:#bfbfbf;}
-input,textarea{-webkit-transition:border linear 0.2s,box-shadow linear 0.2s;-moz-transition:border linear 0.2s,box-shadow linear 0.2s;-ms-transition:border linear 0.2s,box-shadow linear 0.2s;-o-transition:border linear 0.2s,box-shadow linear 0.2s;transition:border linear 0.2s,box-shadow linear 0.2s;-webkit-box-shadow:inset 0 1px 3px rgba(0, 0, 0, 0.1);-moz-box-shadow:inset 0 1px 3px rgba(0, 0, 0, 0.1);box-shadow:inset 0 1px 3px rgba(0, 0, 0, 0.1);}
-input:focus,textarea:focus{outline:0;border-color:rgba(82, 168, 236, 0.8);-webkit-box-shadow:inset 0 1px 3px rgba(0, 0, 0, 0.1),0 0 8px rgba(82, 168, 236, 0.6);-moz-box-shadow:inset 0 1px 3px rgba(0, 0, 0, 0.1),0 0 8px rgba(82, 168, 236, 0.6);box-shadow:inset 0 1px 3px rgba(0, 0, 0, 0.1),0 0 8px rgba(82, 168, 236, 0.6);}
-input[type=file]:focus,input[type=checkbox]:focus,select:focus{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;outline:1px dotted #666;}
-form .clearfix.error>label,form .clearfix.error .help-block,form .clearfix.error .help-inline{color:#b94a48;}
-form .clearfix.error input,form .clearfix.error textarea{color:#b94a48;border-color:#ee5f5b;}form .clearfix.error input:focus,form .clearfix.error textarea:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7;}
-form .clearfix.error .input-prepend .add-on,form .clearfix.error .input-append .add-on{color:#b94a48;background-color:#fce6e6;border-color:#b94a48;}
-form .clearfix.warning>label,form .clearfix.warning .help-block,form .clearfix.warning .help-inline{color:#c09853;}
-form .clearfix.warning input,form .clearfix.warning textarea{color:#c09853;border-color:#ccae64;}form .clearfix.warning input:focus,form .clearfix.warning textarea:focus{border-color:#be9a3f;-webkit-box-shadow:0 0 6px #e5d6b1;-moz-box-shadow:0 0 6px #e5d6b1;box-shadow:0 0 6px #e5d6b1;}
-form .clearfix.warning .input-prepend .add-on,form .clearfix.warning .input-append .add-on{color:#c09853;background-color:#d2b877;border-color:#c09853;}
-form .clearfix.success>label,form .clearfix.success .help-block,form .clearfix.success .help-inline{color:#468847;}
-form .clearfix.success input,form .clearfix.success textarea{color:#468847;border-color:#57a957;}form .clearfix.success input:focus,form .clearfix.success textarea:focus{border-color:#458845;-webkit-box-shadow:0 0 6px #9acc9a;-moz-box-shadow:0 0 6px #9acc9a;box-shadow:0 0 6px #9acc9a;}
-form .clearfix.success .input-prepend .add-on,form .clearfix.success .input-append .add-on{color:#468847;background-color:#bcddbc;border-color:#468847;}
-.input-mini,input.mini,textarea.mini,select.mini{width:60px;}
-.input-small,input.small,textarea.small,select.small{width:90px;}
-.input-medium,input.medium,textarea.medium,select.medium{width:150px;}
-.input-large,input.large,textarea.large,select.large{width:210px;}
-.input-xlarge,input.xlarge,textarea.xlarge,select.xlarge{width:270px;}
-.input-xxlarge,input.xxlarge,textarea.xxlarge,select.xxlarge{width:530px;}
-textarea.xxlarge{overflow-y:auto;}
-input.span1,textarea.span1{display:inline-block;float:none;width:30px;margin-left:0;}
-input.span2,textarea.span2{display:inline-block;float:none;width:90px;margin-left:0;}
-input.span3,textarea.span3{display:inline-block;float:none;width:150px;margin-left:0;}
-input.span4,textarea.span4{display:inline-block;float:none;width:210px;margin-left:0;}
-input.span5,textarea.span5{display:inline-block;float:none;width:270px;margin-left:0;}
-input.span6,textarea.span6{display:inline-block;float:none;width:330px;margin-left:0;}
-input.span7,textarea.span7{display:inline-block;float:none;width:390px;margin-left:0;}
-input.span8,textarea.span8{display:inline-block;float:none;width:450px;margin-left:0;}
-input.span9,textarea.span9{display:inline-block;float:none;width:510px;margin-left:0;}
-input.span10,textarea.span10{display:inline-block;float:none;width:570px;margin-left:0;}
-input.span11,textarea.span11{display:inline-block;float:none;width:630px;margin-left:0;}
-input.span12,textarea.span12{display:inline-block;float:none;width:690px;margin-left:0;}
-input.span13,textarea.span13{display:inline-block;float:none;width:750px;margin-left:0;}
-input.span14,textarea.span14{display:inline-block;float:none;width:810px;margin-left:0;}
-input.span15,textarea.span15{display:inline-block;float:none;width:870px;margin-left:0;}
-input.span16,textarea.span16{display:inline-block;float:none;width:930px;margin-left:0;}
-input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{background-color:#f5f5f5;border-color:#ddd;cursor:not-allowed;}
-.actions{background:#f5f5f5;margin-top:18px;margin-bottom:18px;padding:17px 20px 18px 150px;border-top:1px solid #ddd;-webkit-border-radius:0 0 3px 3px;-moz-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;}.actions .secondary-action{float:right;}.actions .secondary-action a{line-height:30px;}.actions .secondary-action a:hover{text-decoration:underline;}
-.help-inline,.help-block{font-size:13px;line-height:18px;color:#bfbfbf;}
-.help-inline{padding-left:5px;*position:relative;*top:-5px;}
-.help-block{display:block;max-width:600px;}
-.inline-inputs{color:#808080;}.inline-inputs span{padding:0 2px 0 1px;}
-.input-prepend input,.input-append input{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;}
-.input-prepend .add-on,.input-append .add-on{position:relative;background:#f5f5f5;border:1px solid #ccc;z-index:2;float:left;display:block;width:auto;min-width:16px;height:18px;padding:4px 4px 4px 5px;margin-right:-1px;font-weight:normal;line-height:18px;color:#bfbfbf;text-align:center;text-shadow:0 1px 0 #ffffff;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;}
-.input-prepend .active,.input-append .active{background:#a9dba9;border-color:#46a546;}
-.input-prepend .add-on{*margin-top:1px;}
-.input-append input{float:left;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;}
-.input-append .add-on{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;margin-right:0;margin-left:-1px;}
-.inputs-list{margin:0 0 5px;width:100%;}.inputs-list li{display:block;padding:0;width:100%;}
-.inputs-list label{display:block;float:none;width:auto;padding:0;margin-left:20px;line-height:18px;text-align:left;white-space:normal;}.inputs-list label strong{color:#808080;}
-.inputs-list label small{font-size:11px;font-weight:normal;}
-.inputs-list .inputs-list{margin-left:25px;margin-bottom:10px;padding-top:0;}
-.inputs-list:first-child{padding-top:6px;}
-.inputs-list li+li{padding-top:2px;}
-.inputs-list input[type=radio],.inputs-list input[type=checkbox]{margin-bottom:0;margin-left:-20px;float:left;}
-.form-stacked{padding-left:20px;}.form-stacked fieldset{padding-top:9px;}
-.form-stacked legend{padding-left:0;}
-.form-stacked label{display:block;float:none;width:auto;font-weight:bold;text-align:left;line-height:20px;padding-top:0;}
-.form-stacked .clearfix{margin-bottom:9px;}.form-stacked .clearfix div.input{margin-left:0;}
-.form-stacked .inputs-list{margin-bottom:0;}.form-stacked .inputs-list li{padding-top:0;}.form-stacked .inputs-list li label{font-weight:normal;padding-top:0;}
-.form-stacked div.clearfix.error{padding-top:10px;padding-bottom:10px;padding-left:10px;margin-top:0;margin-left:-10px;}
-.form-stacked .actions{margin-left:-20px;padding-left:20px;}
-table{width:100%;margin-bottom:18px;padding:0;font-size:13px;border-collapse:collapse;}table th,table td{padding:10px 10px 9px;line-height:18px;text-align:left;}
-table th{padding-top:9px;font-weight:bold;vertical-align:middle;}
-table td{vertical-align:top;border-top:1px solid #ddd;}
-table tbody th{border-top:1px solid #ddd;vertical-align:top;}
-.condensed-table th,.condensed-table td{padding:5px 5px 4px;}
-.bordered-table{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.bordered-table th+th,.bordered-table td+td,.bordered-table th+td{border-left:1px solid #ddd;}
-.bordered-table thead tr:first-child th:first-child,.bordered-table tbody tr:first-child td:first-child{-webkit-border-radius:4px 0 0 0;-moz-border-radius:4px 0 0 0;border-radius:4px 0 0 0;}
-.bordered-table thead tr:first-child th:last-child,.bordered-table tbody tr:first-child td:last-child{-webkit-border-radius:0 4px 0 0;-moz-border-radius:0 4px 0 0;border-radius:0 4px 0 0;}
-.bordered-table tbody tr:last-child td:first-child{-webkit-border-radius:0 0 0 4px;-moz-border-radius:0 0 0 4px;border-radius:0 0 0 4px;}
-.bordered-table tbody tr:last-child td:last-child{-webkit-border-radius:0 0 4px 0;-moz-border-radius:0 0 4px 0;border-radius:0 0 4px 0;}
-table .span1{width:20px;}
-table .span2{width:60px;}
-table .span3{width:100px;}
-table .span4{width:140px;}
-table .span5{width:180px;}
-table .span6{width:220px;}
-table .span7{width:260px;}
-table .span8{width:300px;}
-table .span9{width:340px;}
-table .span10{width:380px;}
-table .span11{width:420px;}
-table .span12{width:460px;}
-table .span13{width:500px;}
-table .span14{width:540px;}
-table .span15{width:580px;}
-table .span16{width:620px;}
-.zebra-striped tbody tr:nth-child(odd) td,.zebra-striped tbody tr:nth-child(odd) th{background-color:#f9f9f9;}
-.zebra-striped tbody tr:hover td,.zebra-striped tbody tr:hover th{background-color:#f5f5f5;}
-table .header{cursor:pointer;}table .header:after{content:"";float:right;margin-top:7px;border-width:0 4px 4px;border-style:solid;border-color:#000 transparent;visibility:hidden;}
-table .headerSortUp,table .headerSortDown{background-color:rgba(141, 192, 219, 0.25);text-shadow:0 1px 1px rgba(255, 255, 255, 0.75);}
-table .header:hover:after{visibility:visible;}
-table .headerSortDown:after,table .headerSortDown:hover:after{visibility:visible;filter:alpha(opacity=60);-khtml-opacity:0.6;-moz-opacity:0.6;opacity:0.6;}
-table .headerSortUp:after{border-bottom:none;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #000;visibility:visible;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:alpha(opacity=60);-khtml-opacity:0.6;-moz-opacity:0.6;opacity:0.6;}
-table .blue{color:#049cdb;border-bottom-color:#049cdb;}
-table .headerSortUp.blue,table .headerSortDown.blue{background-color:#ade6fe;}
-table .green{color:#46a546;border-bottom-color:#46a546;}
-table .headerSortUp.green,table .headerSortDown.green{background-color:#cdeacd;}
-table .red{color:#9d261d;border-bottom-color:#9d261d;}
-table .headerSortUp.red,table .headerSortDown.red{background-color:#f4c8c5;}
-table .yellow{color:#ffc40d;border-bottom-color:#ffc40d;}
-table .headerSortUp.yellow,table .headerSortDown.yellow{background-color:#fff6d9;}
-table .orange{color:#f89406;border-bottom-color:#f89406;}
-table .headerSortUp.orange,table .headerSortDown.orange{background-color:#fee9cc;}
-table .purple{color:#7a43b6;border-bottom-color:#7a43b6;}
-table .headerSortUp.purple,table .headerSortDown.purple{background-color:#e2d5f0;}
-.topbar{height:40px;position:fixed;top:0;left:0;right:0;z-index:10000;overflow:visible;}.topbar a{color:#bfbfbf;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);}
-.topbar h3 a:hover,.topbar .brand:hover,.topbar ul .active>a{background-color:#333;background-color:rgba(255, 255, 255, 0.05);color:#ffffff;text-decoration:none;}
-.topbar h3{position:relative;}
-.topbar h3 a,.topbar .brand{float:left;display:block;padding:8px 20px 12px;margin-left:-20px;color:#ffffff;font-size:20px;font-weight:200;line-height:1;}
-.topbar p{margin:0;line-height:40px;}.topbar p a:hover{background-color:transparent;color:#ffffff;}
-.topbar form{float:left;margin:5px 0 0 0;position:relative;filter:alpha(opacity=100);-khtml-opacity:1;-moz-opacity:1;opacity:1;}
-.topbar form.pull-right{float:right;}
-.topbar input{background-color:#444;background-color:rgba(255, 255, 255, 0.3);font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:normal;font-weight:13px;line-height:1;padding:4px 9px;color:#ffffff;color:rgba(255, 255, 255, 0.75);border:1px solid #111;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.25);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.25);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.25);-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none;}.topbar input:-moz-placeholder{color:#e6e6e6;}
-.topbar input::-webkit-input-placeholder{color:#e6e6e6;}
-.topbar input:hover{background-color:#bfbfbf;background-color:rgba(255, 255, 255, 0.5);color:#ffffff;}
-.topbar input:focus,.topbar input.focused{outline:0;background-color:#ffffff;color:#404040;text-shadow:0 1px 0 #ffffff;border:0;padding:5px 10px;-webkit-box-shadow:0 0 3px rgba(0, 0, 0, 0.15);-moz-box-shadow:0 0 3px rgba(0, 0, 0, 0.15);box-shadow:0 0 3px rgba(0, 0, 0, 0.15);}
-.topbar-inner,.topbar .fill{background-color:#222;background-color:#222222;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#333333), to(#222222));background-image:-moz-linear-gradient(top, #333333, #222222);background-image:-ms-linear-gradient(top, #333333, #222222);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #333333), color-stop(100%, #222222));background-image:-webkit-linear-gradient(top, #333333, #222222);background-image:-o-linear-gradient(top, #333333, #222222);background-image:linear-gradient(top, #333333, #222222);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);-webkit-box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1);-moz-box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1);box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1);}
-.topbar div>ul,.nav{display:block;float:left;margin:0 10px 0 0;position:relative;left:0;}.topbar div>ul>li,.nav>li{display:block;float:left;}
-.topbar div>ul a,.nav a{display:block;float:none;padding:10px 10px 11px;line-height:19px;text-decoration:none;}.topbar div>ul a:hover,.nav a:hover{color:#ffffff;text-decoration:none;}
-.topbar div>ul .active>a,.nav .active>a{background-color:#222;background-color:rgba(0, 0, 0, 0.5);}
-.topbar div>ul.secondary-nav,.nav.secondary-nav{float:right;margin-left:10px;margin-right:0;}.topbar div>ul.secondary-nav .menu-dropdown,.nav.secondary-nav .menu-dropdown,.topbar div>ul.secondary-nav .dropdown-menu,.nav.secondary-nav .dropdown-menu{right:0;border:0;}
-.topbar div>ul a.menu:hover,.nav a.menu:hover,.topbar div>ul li.open .menu,.nav li.open .menu,.topbar div>ul .dropdown-toggle:hover,.nav .dropdown-toggle:hover,.topbar div>ul .dropdown.open .dropdown-toggle,.nav .dropdown.open .dropdown-toggle{background:#444;background:rgba(255, 255, 255, 0.05);}
-.topbar div>ul .menu-dropdown,.nav .menu-dropdown,.topbar div>ul .dropdown-menu,.nav .dropdown-menu{background-color:#333;}.topbar div>ul .menu-dropdown a.menu,.nav .menu-dropdown a.menu,.topbar div>ul .dropdown-menu a.menu,.nav .dropdown-menu a.menu,.topbar div>ul .menu-dropdown .dropdown-toggle,.nav .menu-dropdown .dropdown-toggle,.topbar div>ul .dropdown-menu .dropdown-toggle,.nav .dropdown-menu .dropdown-toggle{color:#ffffff;}.topbar div>ul .menu-dropdown a.menu.open,.nav .menu-dropdown a.menu.open,.topbar div>ul .dropdown-menu a.menu.open,.nav .dropdown-menu a.menu.open,.topbar div>ul .menu-dropdown .dropdown-toggle.open,.nav .menu-dropdown .dropdown-toggle.open,.topbar div>ul .dropdown-menu .dropdown-toggle.open,.nav .dropdown-menu .dropdown-toggle.open{background:#444;background:rgba(255, 255, 255, 0.05);}
-.topbar div>ul .menu-dropdown li a,.nav .menu-dropdown li a,.topbar div>ul .dropdown-menu li a,.nav .dropdown-menu li a{color:#999;text-shadow:0 1px 0 rgba(0, 0, 0, 0.5);}.topbar div>ul .menu-dropdown li a:hover,.nav .menu-dropdown li a:hover,.topbar div>ul .dropdown-menu li a:hover,.nav .dropdown-menu li a:hover{background-color:#191919;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#292929), to(#191919));background-image:-moz-linear-gradient(top, #292929, #191919);background-image:-ms-linear-gradient(top, #292929, #191919);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #292929), color-stop(100%, #191919));background-image:-webkit-linear-gradient(top, #292929, #191919);background-image:-o-linear-gradient(top, #292929, #191919);background-image:linear-gradient(top, #292929, #191919);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#292929', endColorstr='#191919', GradientType=0);color:#ffffff;}
-.topbar div>ul .menu-dropdown .active a,.nav .menu-dropdown .active a,.topbar div>ul .dropdown-menu .active a,.nav .dropdown-menu .active a{color:#ffffff;}
-.topbar div>ul .menu-dropdown .divider,.nav .menu-dropdown .divider,.topbar div>ul .dropdown-menu .divider,.nav .dropdown-menu .divider{background-color:#222;border-color:#444;}
-.topbar ul .menu-dropdown li a,.topbar ul .dropdown-menu li a{padding:4px 15px;}
-li.menu,.dropdown{position:relative;}
-a.menu:after,.dropdown-toggle:after{width:0;height:0;display:inline-block;content:"↓";text-indent:-99999px;vertical-align:top;margin-top:8px;margin-left:4px;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #ffffff;filter:alpha(opacity=50);-khtml-opacity:0.5;-moz-opacity:0.5;opacity:0.5;}
-.menu-dropdown,.dropdown-menu{background-color:#ffffff;float:left;display:none;position:absolute;top:40px;z-index:900;min-width:160px;max-width:220px;_width:160px;margin-left:0;margin-right:0;padding:6px 0;zoom:1;border-color:#999;border-color:rgba(0, 0, 0, 0.2);border-style:solid;border-width:0 1px 1px;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;-webkit-box-shadow:0 2px 4px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 2px 4px rgba(0, 0, 0, 0.2);box-shadow:0 2px 4px rgba(0, 0, 0, 0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;}.menu-dropdown li,.dropdown-menu li{float:none;display:block;background-color:none;}
-.menu-dropdown .divider,.dropdown-menu .divider{height:1px;margin:5px 0;overflow:hidden;background-color:#eee;border-bottom:1px solid #ffffff;}
-.topbar .dropdown-menu a,.dropdown-menu a{display:block;padding:4px 15px;clear:both;font-weight:normal;line-height:18px;color:#808080;text-shadow:0 1px 0 #ffffff;}.topbar .dropdown-menu a:hover,.dropdown-menu a:hover,.topbar .dropdown-menu a.hover,.dropdown-menu a.hover{background-color:#dddddd;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#eeeeee), to(#dddddd));background-image:-moz-linear-gradient(top, #eeeeee, #dddddd);background-image:-ms-linear-gradient(top, #eeeeee, #dddddd);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #eeeeee), color-stop(100%, #dddddd));background-image:-webkit-linear-gradient(top, #eeeeee, #dddddd);background-image:-o-linear-gradient(top, #eeeeee, #dddddd);background-image:linear-gradient(top, #eeeeee, #dddddd);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#dddddd', GradientType=0);color:#404040;text-decoration:none;-webkit-box-shadow:inset 0 1px 0 rgba(0, 0, 0, 0.025),inset 0 -1px rgba(0, 0, 0, 0.025);-moz-box-shadow:inset 0 1px 0 rgba(0, 0, 0, 0.025),inset 0 -1px rgba(0, 0, 0, 0.025);box-shadow:inset 0 1px 0 rgba(0, 0, 0, 0.025),inset 0 -1px rgba(0, 0, 0, 0.025);}
-.open .menu,.dropdown.open .menu,.open .dropdown-toggle,.dropdown.open .dropdown-toggle{color:#ffffff;background:#ccc;background:rgba(0, 0, 0, 0.3);}
-.open .menu-dropdown,.dropdown.open .menu-dropdown,.open .dropdown-menu,.dropdown.open .dropdown-menu{display:block;}
-.tabs,.pills{margin:0 0 18px;padding:0;list-style:none;zoom:1;}.tabs:before,.pills:before,.tabs:after,.pills:after{display:table;content:"";zoom:1;}
-.tabs:after,.pills:after{clear:both;}
-.tabs>li,.pills>li{float:left;}.tabs>li>a,.pills>li>a{display:block;}
-.tabs{border-color:#ddd;border-style:solid;border-width:0 0 1px;}.tabs>li{position:relative;margin-bottom:-1px;}.tabs>li>a{padding:0 15px;margin-right:2px;line-height:34px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;}.tabs>li>a:hover{text-decoration:none;background-color:#eee;border-color:#eee #eee #ddd;}
-.tabs .active>a,.tabs .active>a:hover{color:#808080;background-color:#ffffff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default;}
-.tabs .menu-dropdown,.tabs .dropdown-menu{top:35px;border-width:1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px;}
-.tabs a.menu:after,.tabs .dropdown-toggle:after{border-top-color:#999;margin-top:15px;margin-left:5px;}
-.tabs li.open.menu .menu,.tabs .open.dropdown .dropdown-toggle{border-color:#999;}
-.tabs li.open a.menu:after,.tabs .dropdown.open .dropdown-toggle:after{border-top-color:#555;}
-.pills a{margin:5px 3px 5px 0;padding:0 15px;line-height:30px;text-shadow:0 1px 1px #ffffff;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;}.pills a:hover{color:#ffffff;text-decoration:none;text-shadow:0 1px 1px rgba(0, 0, 0, 0.25);background-color:#00438a;}
-.pills .active a{color:#ffffff;text-shadow:0 1px 1px rgba(0, 0, 0, 0.25);background-color:#0069d6;}
-.pills-vertical>li{float:none;}
-.tab-content>.tab-pane,.pill-content>.pill-pane,.tab-content>div,.pill-content>div{display:none;}
-.tab-content>.active,.pill-content>.active{display:block;}
-.breadcrumb{padding:7px 14px;margin:0 0 18px;background-color:#f5f5f5;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#ffffff), to(#f5f5f5));background-image:-moz-linear-gradient(top, #ffffff, #f5f5f5);background-image:-ms-linear-gradient(top, #ffffff, #f5f5f5);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #ffffff), color-stop(100%, #f5f5f5));background-image:-webkit-linear-gradient(top, #ffffff, #f5f5f5);background-image:-o-linear-gradient(top, #ffffff, #f5f5f5);background-image:linear-gradient(top, #ffffff, #f5f5f5);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0);border:1px solid #ddd;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 #ffffff;-moz-box-shadow:inset 0 1px 0 #ffffff;box-shadow:inset 0 1px 0 #ffffff;}.breadcrumb li{display:inline;text-shadow:0 1px 0 #ffffff;}
-.breadcrumb .divider{padding:0 5px;color:#bfbfbf;}
-.breadcrumb .active a{color:#404040;}
-.hero-unit{background-color:#f5f5f5;margin-bottom:30px;padding:60px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;}
-.hero-unit p{font-size:18px;font-weight:200;line-height:27px;}
-footer{margin-top:17px;padding-top:17px;border-top:1px solid #eee;}
-.page-header{margin-bottom:17px;border-bottom:1px solid #ddd;-webkit-box-shadow:0 1px 0 rgba(255, 255, 255, 0.5);-moz-box-shadow:0 1px 0 rgba(255, 255, 255, 0.5);box-shadow:0 1px 0 rgba(255, 255, 255, 0.5);}.page-header h1{margin-bottom:8px;}
-.btn.danger,.alert-message.danger,.btn.danger:hover,.alert-message.danger:hover,.btn.error,.alert-message.error,.btn.error:hover,.alert-message.error:hover,.btn.success,.alert-message.success,.btn.success:hover,.alert-message.success:hover,.btn.info,.alert-message.info,.btn.info:hover,.alert-message.info:hover{color:#ffffff;}
-.btn .close,.alert-message .close{font-family:Arial,sans-serif;line-height:18px;}
-.btn.danger,.alert-message.danger,.btn.error,.alert-message.error{background-color:#c43c35;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#ee5f5b), to(#c43c35));background-image:-moz-linear-gradient(top, #ee5f5b, #c43c35);background-image:-ms-linear-gradient(top, #ee5f5b, #c43c35);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b), color-stop(100%, #c43c35));background-image:-webkit-linear-gradient(top, #ee5f5b, #c43c35);background-image:-o-linear-gradient(top, #ee5f5b, #c43c35);background-image:linear-gradient(top, #ee5f5b, #c43c35);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);border-color:#c43c35 #c43c35 #882a25;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);}
-.btn.success,.alert-message.success{background-color:#57a957;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#62c462), to(#57a957));background-image:-moz-linear-gradient(top, #62c462, #57a957);background-image:-ms-linear-gradient(top, #62c462, #57a957);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #62c462), color-stop(100%, #57a957));background-image:-webkit-linear-gradient(top, #62c462, #57a957);background-image:-o-linear-gradient(top, #62c462, #57a957);background-image:linear-gradient(top, #62c462, #57a957);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0);text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);border-color:#57a957 #57a957 #3d773d;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);}
-.btn.info,.alert-message.info{background-color:#339bb9;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#5bc0de), to(#339bb9));background-image:-moz-linear-gradient(top, #5bc0de, #339bb9);background-image:-ms-linear-gradient(top, #5bc0de, #339bb9);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #5bc0de), color-stop(100%, #339bb9));background-image:-webkit-linear-gradient(top, #5bc0de, #339bb9);background-image:-o-linear-gradient(top, #5bc0de, #339bb9);background-image:linear-gradient(top, #5bc0de, #339bb9);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0);text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);border-color:#339bb9 #339bb9 #22697d;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);}
-.btn{cursor:pointer;display:inline-block;background-color:#e6e6e6;background-repeat:no-repeat;background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), color-stop(25%, #ffffff), to(#e6e6e6));background-image:-webkit-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);background-image:-moz-linear-gradient(top, #ffffff, #ffffff 25%, #e6e6e6);background-image:-ms-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);background-image:-o-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);background-image:linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);padding:5px 14px 6px;text-shadow:0 1px 1px rgba(255, 255, 255, 0.75);color:#333;font-size:13px;line-height:normal;border:1px solid #ccc;border-bottom-color:#bbb;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);-webkit-transition:0.1s linear all;-moz-transition:0.1s linear all;-ms-transition:0.1s linear all;-o-transition:0.1s linear all;transition:0.1s linear all;}.btn:hover{background-position:0 -15px;color:#333;text-decoration:none;}
-.btn:focus{outline:1px dotted #666;}
-.btn.primary{color:#ffffff;background-color:#0064cd;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#049cdb), to(#0064cd));background-image:-moz-linear-gradient(top, #049cdb, #0064cd);background-image:-ms-linear-gradient(top, #049cdb, #0064cd);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #049cdb), color-stop(100%, #0064cd));background-image:-webkit-linear-gradient(top, #049cdb, #0064cd);background-image:-o-linear-gradient(top, #049cdb, #0064cd);background-image:linear-gradient(top, #049cdb, #0064cd);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#049cdb', endColorstr='#0064cd', GradientType=0);text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);border-color:#0064cd #0064cd #003f81;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);}
-.btn.active,.btn:active{-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.25),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.25),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.25),0 1px 2px rgba(0, 0, 0, 0.05);}
-.btn.disabled{cursor:default;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=65);-khtml-opacity:0.65;-moz-opacity:0.65;opacity:0.65;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}
-.btn[disabled]{cursor:default;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=65);-khtml-opacity:0.65;-moz-opacity:0.65;opacity:0.65;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}
-.btn.large{font-size:15px;line-height:normal;padding:9px 14px 9px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}
-.btn.small{padding:7px 9px 7px;font-size:11px;}
-:root .alert-message,:root .btn{border-radius:0 \0;}
-button.btn::-moz-focus-inner,input[type=submit].btn::-moz-focus-inner{padding:0;border:0;}
-.close{float:right;color:#000000;font-size:20px;font-weight:bold;line-height:13.5px;text-shadow:0 1px 0 #ffffff;filter:alpha(opacity=25);-khtml-opacity:0.25;-moz-opacity:0.25;opacity:0.25;}.close:hover{color:#000000;text-decoration:none;filter:alpha(opacity=40);-khtml-opacity:0.4;-moz-opacity:0.4;opacity:0.4;}
-.alert-message{position:relative;padding:7px 15px;margin-bottom:18px;color:#404040;background-color:#eedc94;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#fceec1), to(#eedc94));background-image:-moz-linear-gradient(top, #fceec1, #eedc94);background-image:-ms-linear-gradient(top, #fceec1, #eedc94);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1), color-stop(100%, #eedc94));background-image:-webkit-linear-gradient(top, #fceec1, #eedc94);background-image:-o-linear-gradient(top, #fceec1, #eedc94);background-image:linear-gradient(top, #fceec1, #eedc94);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1', endColorstr='#eedc94', GradientType=0);text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);border-color:#eedc94 #eedc94 #e4c652;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);border-width:1px;border-style:solid;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.25);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.25);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.25);}.alert-message .close{margin-top:1px;*margin-top:0;}
-.alert-message a{font-weight:bold;color:#404040;}
-.alert-message.danger p a,.alert-message.error p a,.alert-message.success p a,.alert-message.info p a{color:#ffffff;}
-.alert-message h5{line-height:18px;}
-.alert-message p{margin-bottom:0;}
-.alert-message div{margin-top:5px;margin-bottom:2px;line-height:28px;}
-.alert-message .btn{-webkit-box-shadow:0 1px 0 rgba(255, 255, 255, 0.25);-moz-box-shadow:0 1px 0 rgba(255, 255, 255, 0.25);box-shadow:0 1px 0 rgba(255, 255, 255, 0.25);}
-.alert-message.block-message{background-image:none;background-color:#fdf5d9;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);padding:14px;border-color:#fceec1;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}.alert-message.block-message ul,.alert-message.block-message p{margin-right:30px;}
-.alert-message.block-message ul{margin-bottom:0;}
-.alert-message.block-message li{color:#404040;}
-.alert-message.block-message .alert-actions{margin-top:5px;}
-.alert-message.block-message.error,.alert-message.block-message.success,.alert-message.block-message.info{color:#404040;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);}
-.alert-message.block-message.error{background-color:#fddfde;border-color:#fbc7c6;}
-.alert-message.block-message.success{background-color:#d1eed1;border-color:#bfe7bf;}
-.alert-message.block-message.info{background-color:#ddf4fb;border-color:#c6edf9;}
-.alert-message.block-message.danger p a,.alert-message.block-message.error p a,.alert-message.block-message.success p a,.alert-message.block-message.info p a{color:#404040;}
-.pagination{height:36px;margin:18px 0;}.pagination ul{float:left;margin:0;border:1px solid #ddd;border:1px solid rgba(0, 0, 0, 0.15);-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);}
-.pagination li{display:inline;}
-.pagination a{float:left;padding:0 14px;line-height:34px;border-right:1px solid;border-right-color:#ddd;border-right-color:rgba(0, 0, 0, 0.15);*border-right-color:#ddd;text-decoration:none;}
-.pagination a:hover,.pagination .active a{background-color:#c7eefe;}
-.pagination .disabled a,.pagination .disabled a:hover{background-color:transparent;color:#bfbfbf;}
-.pagination .next a{border:0;}
-.well{background-color:#f5f5f5;margin-bottom:20px;padding:19px;min-height:20px;border:1px solid #eee;border:1px solid rgba(0, 0, 0, 0.05);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);}.well blockquote{border-color:#ddd;border-color:rgba(0, 0, 0, 0.15);}
-.modal-backdrop{background-color:#000000;position:fixed;top:0;left:0;right:0;bottom:0;z-index:10000;}.modal-backdrop.fade{opacity:0;}
-.modal-backdrop,.modal-backdrop.fade.in{filter:alpha(opacity=80);-khtml-opacity:0.8;-moz-opacity:0.8;opacity:0.8;}
-.modal{position:fixed;top:50%;left:50%;z-index:11000;width:560px;margin:-250px 0 0 -280px;background-color:#ffffff;border:1px solid #999;border:1px solid rgba(0, 0, 0, 0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;}.modal .close{margin-top:7px;}
-.modal.fade{-webkit-transition:opacity .3s linear, top .3s ease-out;-moz-transition:opacity .3s linear, top .3s ease-out;-ms-transition:opacity .3s linear, top .3s ease-out;-o-transition:opacity .3s linear, top .3s ease-out;transition:opacity .3s linear, top .3s ease-out;top:-25%;}
-.modal.fade.in{top:50%;}
-.modal-header{border-bottom:1px solid #eee;padding:5px 15px;}
-.modal-body{padding:15px;}
-.modal-body form{margin-bottom:0;}
-.modal-footer{background-color:#f5f5f5;padding:14px 15px 15px;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;-webkit-box-shadow:inset 0 1px 0 #ffffff;-moz-box-shadow:inset 0 1px 0 #ffffff;box-shadow:inset 0 1px 0 #ffffff;zoom:1;margin-bottom:0;}.modal-footer:before,.modal-footer:after{display:table;content:"";zoom:1;}
-.modal-footer:after{clear:both;}
-.modal-footer .btn{float:right;margin-left:5px;}
-.modal .popover,.modal .twipsy{z-index:12000;}
-.twipsy{display:block;position:absolute;visibility:visible;padding:5px;font-size:11px;z-index:1000;filter:alpha(opacity=80);-khtml-opacity:0.8;-moz-opacity:0.8;opacity:0.8;}.twipsy.fade.in{filter:alpha(opacity=80);-khtml-opacity:0.8;-moz-opacity:0.8;opacity:0.8;}
-.twipsy.above .twipsy-arrow{bottom:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #000000;}
-.twipsy.left .twipsy-arrow{top:50%;right:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid #000000;}
-.twipsy.below .twipsy-arrow{top:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid #000000;}
-.twipsy.right .twipsy-arrow{top:50%;left:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:5px solid #000000;}
-.twipsy-inner{padding:3px 8px;background-color:#000000;color:white;text-align:center;max-width:200px;text-decoration:none;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
-.twipsy-arrow{position:absolute;width:0;height:0;}
-.popover{position:absolute;top:0;left:0;z-index:1000;padding:5px;display:none;}.popover.above .arrow{bottom:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #000000;}
-.popover.right .arrow{top:50%;left:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:5px solid #000000;}
-.popover.below .arrow{top:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid #000000;}
-.popover.left .arrow{top:50%;right:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid #000000;}
-.popover .arrow{position:absolute;width:0;height:0;}
-.popover .inner{background:#000000;background:rgba(0, 0, 0, 0.8);padding:3px;overflow:hidden;width:280px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);}
-.popover .title{background-color:#f5f5f5;padding:9px 15px;line-height:1;-webkit-border-radius:3px 3px 0 0;-moz-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;border-bottom:1px solid #eee;}
-.popover .content{background-color:#ffffff;padding:14px;-webkit-border-radius:0 0 3px 3px;-moz-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;}.popover .content p,.popover .content ul,.popover .content ol{margin-bottom:0;}
-.fade{-webkit-transition:opacity 0.15s linear;-moz-transition:opacity 0.15s linear;-ms-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear;opacity:0;}.fade.in{opacity:1;}
-.label{padding:1px 3px 2px;font-size:9.75px;font-weight:bold;color:#ffffff;text-transform:uppercase;white-space:nowrap;background-color:#bfbfbf;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}.label.important{background-color:#c43c35;}
-.label.warning{background-color:#f89406;}
-.label.success{background-color:#46a546;}
-.label.notice{background-color:#62cffc;}
-.media-grid{margin-left:-20px;margin-bottom:0;zoom:1;}.media-grid:before,.media-grid:after{display:table;content:"";zoom:1;}
-.media-grid:after{clear:both;}
-.media-grid li{display:inline;}
-.media-grid a{float:left;padding:4px;margin:0 0 18px 20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:0 1px 1px rgba(0, 0, 0, 0.075);}.media-grid a img{display:block;}
-.media-grid a:hover{border-color:#0069d6;-webkit-box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);-moz-box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);}
diff --git a/css/processing-js.css b/css/processing-js.css
deleted file mode 100644
index 74edd3a..0000000
--- a/css/processing-js.css
+++ /dev/null
@@ -1,239 +0,0 @@
-.container {
- box-shadow: 0px 0px 30px #888;
- margin-bottom: 4em;
-}
-
-.header {
- background-color: #0077B5;
- line-height: 0;
-}
-
-.tagline {
- padding-left: 1em;
- color: #0077B5;
- font-family: "lucida console", verdana;
- line-height: 2;
-}
-
-/* The amount of CSS needed for the navbar is terrifying. I am sorry. */
-.navbar {
- background-color: #000000;
- line-height: 0;
- position: relative;
- width: 940px;
- height: 78px;
-}
-
-.navbar ul {
- list-style: none outside none;
- position: absolute;
- bottom: 0;
- left: 1em;
- margin: 0;
-}
-
-.navbar ul li {
- display: inline;
- position: relative;
- line-height: 1.2;
-}
-
-.navbar ul li a span {
- position: relative;
- color: #909090;
- background-color: white;
- background-image: -moz-linear-gradient(white, rgb(213, 213, 213));
- background-image: -webkit-linear-gradient(white, rgb(213, 213, 213));
- background-image: -o-linear-gradient(white, rgb(213, 213, 213));
- background-image: -ms-linear-gradient(white, rgb(213, 213, 213));
- background-image: linear-gradient(white, rgb(213, 213, 213));
- filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffffff', EndColorStr='#d5d5d5');
- padding: 0.25em 0.75em;
- bottom: 0.25em;
- margin: 0 0.1em;
- border-radius: 0.3em 0.3em 0 0;
-}
-
-.navbar ul li a:hover, .navbar ul li a:focus {
- text-decoration: none;
-}
-
-.navbar ul li a:hover span, .navbar ul li a:focus span {
- position: relative;
- color: #00a7fd;
- padding-bottom: 1em;
- bottom: 1em;
-}
-
-.navbar ul a.selected {
- text-decoration: none;
-}
-
-.navbar ul a.selected span {
- position: relative;
- color: #00a7fd;
- background-color: white;
- background-image: none;
- padding-bottom: 1em;
- bottom: 1em;
-}
-
-.navbar .viewsource {
- color: white;
- position: absolute;
- bottom: 1em;
- right: 0.5em;
-}
-
-.footer {
- font-size: 0.85em;
- color: #aaa;
- padding-left: 1em;
-}
-
-a {
- color: #0075B2;
-}
-
-a:hover, a:focus {
- color: #00a7fd;
-}
-
-.page {
- padding: 2em 0 2em 2em;
-}
-
-.home-exhibition {
- float: left;
- width: 190px;
-}
-
-.home-exhibition span a img {
- border-radius: 0.5em;
-}
-
-.sidebar {
- border-left: 1px dotted #0073AF;
- padding-left: 1.3em;
-}
-
-.sidebar h3 a {
- text-decoration: none;
-}
-
-.sidebar ul li {
- list-style-type: circle;
- color: #0075B2;
-}
-
-.sidebar ul li:hover {
- list-style-type: disc;
- color: #00a7fd;
-}
-
-.blog-archives li abbr {
- float: right;
-}
-
-.exhibition span {
- width: 210px;
- height: 250px;
- float: left;
-}
-
-.exhibition span a img {
- border-radius: 0.5em;
-}
-
-.exhibition span p {
- width: 180px;
-}
-
-.reference .category {
- margin-bottom: 2em;
-}
-
-.reference .category a {
- display: block;
-}
-
-.reference .category a.warning {
- color: red;
-}
-
-.reference .category b {
- display: block;
- margin-bottom: 0.5em;
-}
-
-.reference .category h5 {
- font-style: italic;
- font-weight: normal;
- font-size: 0.9em;
- line-height: 2em;
- margin-top:0.5em;
-}
-
-.example200px {
- float: right;
- border-radius: 5px;
- padding: 5px;
- border: 1px solid #999999;
- box-shadow: 0px 0px 5px #999;
- margin-left: 10px;
-}
-
-.demo-screens .section.wild > a {
- margin-right: 0px;
- margin-bottom: 1em;
- height: auto;
- float: none;
-}
-
-.demo-screens .section > a span {
- display: block;
-}
-
-.demo-screens .section > a {
- display: block;
- float: left;
- width: 200px;
- height: 300px;
- margin-right: 50px;
-}
-
-.clear {
- clear: both;
- height: 0;
- line-height: 0;
-}
-
-.learning-demo canvas {
- border-radius: 5px;
- padding: 5px;
- border: 1px solid #999999;
- box-shadow: 0px 0px 5px #999;
-}
-
-.tweet_list {
- border-radius: 0.5em;
- margin: 0;
- overflow-y: hidden;
- background-color: #E0E0E0;
-}
-
-ul.tweet_list li,ul.tweet_list li:hover {
- color: #404040;
-}
-
-.tweet_list li {
- padding: 0.5em;
-}
-
-.tweet_list .tweet_even {
- background-color: #EFEFEF;
-}
-
-.tweet_list .tweet_avatar {
- padding-right: .5em; float: left;
-}
diff --git a/css/syntax.css b/css/syntax.css
deleted file mode 100644
index 2774b76..0000000
--- a/css/syntax.css
+++ /dev/null
@@ -1,60 +0,0 @@
-.highlight { background: #ffffff; }
-.highlight .c { color: #999988; font-style: italic } /* Comment */
-.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
-.highlight .k { font-weight: bold } /* Keyword */
-.highlight .o { font-weight: bold } /* Operator */
-.highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */
-.highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */
-.highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */
-.highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
-.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
-.highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */
-.highlight .ge { font-style: italic } /* Generic.Emph */
-.highlight .gr { color: #aa0000 } /* Generic.Error */
-.highlight .gh { color: #999999 } /* Generic.Heading */
-.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
-.highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */
-.highlight .go { color: #888888 } /* Generic.Output */
-.highlight .gp { color: #555555 } /* Generic.Prompt */
-.highlight .gs { font-weight: bold } /* Generic.Strong */
-.highlight .gu { color: #aaaaaa } /* Generic.Subheading */
-.highlight .gt { color: #aa0000 } /* Generic.Traceback */
-.highlight .kc { font-weight: bold } /* Keyword.Constant */
-.highlight .kd { font-weight: bold } /* Keyword.Declaration */
-.highlight .kp { font-weight: bold } /* Keyword.Pseudo */
-.highlight .kr { font-weight: bold } /* Keyword.Reserved */
-.highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */
-.highlight .m { color: #009999 } /* Literal.Number */
-.highlight .s { color: #d14 } /* Literal.String */
-.highlight .na { color: #008080 } /* Name.Attribute */
-.highlight .nb { color: #0086B3 } /* Name.Builtin */
-.highlight .nc { color: #445588; font-weight: bold } /* Name.Class */
-.highlight .no { color: #008080 } /* Name.Constant */
-.highlight .ni { color: #800080 } /* Name.Entity */
-.highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */
-.highlight .nf { color: #990000; font-weight: bold } /* Name.Function */
-.highlight .nn { color: #555555 } /* Name.Namespace */
-.highlight .nt { color: #000080 } /* Name.Tag */
-.highlight .nv { color: #008080 } /* Name.Variable */
-.highlight .ow { font-weight: bold } /* Operator.Word */
-.highlight .w { color: #bbbbbb } /* Text.Whitespace */
-.highlight .mf { color: #009999 } /* Literal.Number.Float */
-.highlight .mh { color: #009999 } /* Literal.Number.Hex */
-.highlight .mi { color: #009999 } /* Literal.Number.Integer */
-.highlight .mo { color: #009999 } /* Literal.Number.Oct */
-.highlight .sb { color: #d14 } /* Literal.String.Backtick */
-.highlight .sc { color: #d14 } /* Literal.String.Char */
-.highlight .sd { color: #d14 } /* Literal.String.Doc */
-.highlight .s2 { color: #d14 } /* Literal.String.Double */
-.highlight .se { color: #d14 } /* Literal.String.Escape */
-.highlight .sh { color: #d14 } /* Literal.String.Heredoc */
-.highlight .si { color: #d14 } /* Literal.String.Interpol */
-.highlight .sx { color: #d14 } /* Literal.String.Other */
-.highlight .sr { color: #009926 } /* Literal.String.Regex */
-.highlight .s1 { color: #d14 } /* Literal.String.Single */
-.highlight .ss { color: #990073 } /* Literal.String.Symbol */
-.highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */
-.highlight .vc { color: #008080 } /* Name.Variable.Class */
-.highlight .vg { color: #008080 } /* Name.Variable.Global */
-.highlight .vi { color: #008080 } /* Name.Variable.Instance */
-.highlight .il { color: #009999 } /* Literal.Number.Integer.Long */
diff --git a/download/_posts/2008-05-08-v0.0.0.html b/download/_posts/2008-05-08-v0.0.0.html
deleted file mode 100644
index 1fd3b93..0000000
--- a/download/_posts/2008-05-08-v0.0.0.html
+++ /dev/null
@@ -1,6 +0,0 @@
----
-title: Processing.js Original Release
----
-
diff --git a/download/_posts/2010-01-02-v0.0.0.html b/download/_posts/2010-01-02-v0.0.0.html
deleted file mode 100644
index 3ba8751..0000000
--- a/download/_posts/2010-01-02-v0.0.0.html
+++ /dev/null
@@ -1,6 +0,0 @@
----
-title: Processing.js v0.0.0
----
-
diff --git a/download/_posts/2010-02-02-v0.4.0.html b/download/_posts/2010-02-02-v0.4.0.html
deleted file mode 100644
index 017cc35..0000000
--- a/download/_posts/2010-02-02-v0.4.0.html
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: Processing.js v0.4.0
----
-
diff --git a/download/_posts/2010-02-17-v0.5.0.html b/download/_posts/2010-02-17-v0.5.0.html
deleted file mode 100644
index 489e18c..0000000
--- a/download/_posts/2010-02-17-v0.5.0.html
+++ /dev/null
@@ -1,9 +0,0 @@
----
-title: Processing.js v0.5.0
----
-
diff --git a/download/_posts/2010-02-26-v0.6.0.html b/download/_posts/2010-02-26-v0.6.0.html
deleted file mode 100644
index b78c44e..0000000
--- a/download/_posts/2010-02-26-v0.6.0.html
+++ /dev/null
@@ -1,9 +0,0 @@
----
-title: Processing.js v0.6.0
----
-
diff --git a/download/_posts/2010-03-24-v0.7.0.html b/download/_posts/2010-03-24-v0.7.0.html
deleted file mode 100644
index fd2b302..0000000
--- a/download/_posts/2010-03-24-v0.7.0.html
+++ /dev/null
@@ -1,9 +0,0 @@
----
-title: Processing.js v0.7.0
----
-
diff --git a/download/_posts/2010-03-25-v0.7.1.html b/download/_posts/2010-03-25-v0.7.1.html
deleted file mode 100644
index 51fe2b0..0000000
--- a/download/_posts/2010-03-25-v0.7.1.html
+++ /dev/null
@@ -1,9 +0,0 @@
----
-title: Processing.js v0.7.1
----
-
diff --git a/download/_posts/2010-04-08-v0.8.0.html b/download/_posts/2010-04-08-v0.8.0.html
deleted file mode 100644
index 8703ad2..0000000
--- a/download/_posts/2010-04-08-v0.8.0.html
+++ /dev/null
@@ -1,9 +0,0 @@
----
-title: Processing.js v0.8.0
----
-
diff --git a/download/_posts/2010-05-11-v0.9.0.html b/download/_posts/2010-05-11-v0.9.0.html
deleted file mode 100644
index effdd18..0000000
--- a/download/_posts/2010-05-11-v0.9.0.html
+++ /dev/null
@@ -1,9 +0,0 @@
----
-title: Processing.js v0.9.0
----
-
diff --git a/download/_posts/2010-05-20-v0.9.1.html b/download/_posts/2010-05-20-v0.9.1.html
deleted file mode 100644
index 0afe523..0000000
--- a/download/_posts/2010-05-20-v0.9.1.html
+++ /dev/null
@@ -1,9 +0,0 @@
----
-title: Processing.js v0.9.1
----
-
diff --git a/download/_posts/2010-06-15-v0.9.3.html b/download/_posts/2010-06-15-v0.9.3.html
deleted file mode 100644
index 6b78a4f..0000000
--- a/download/_posts/2010-06-15-v0.9.3.html
+++ /dev/null
@@ -1,9 +0,0 @@
----
-title: Processing.js v0.9.3
----
-
diff --git a/download/_posts/2010-06-16-v0.9.4.html b/download/_posts/2010-06-16-v0.9.4.html
deleted file mode 100644
index 0fbd8a8..0000000
--- a/download/_posts/2010-06-16-v0.9.4.html
+++ /dev/null
@@ -1,9 +0,0 @@
----
-title: Processing.js v0.9.4
----
-
diff --git a/download/_posts/2010-07-26-v0.9.6.html b/download/_posts/2010-07-26-v0.9.6.html
deleted file mode 100644
index 3830369..0000000
--- a/download/_posts/2010-07-26-v0.9.6.html
+++ /dev/null
@@ -1,9 +0,0 @@
----
-title: Processing.js v0.9.6
----
-
diff --git a/download/_posts/2010-08-14-v0.9.7.html b/download/_posts/2010-08-14-v0.9.7.html
deleted file mode 100644
index eebbac6..0000000
--- a/download/_posts/2010-08-14-v0.9.7.html
+++ /dev/null
@@ -1,9 +0,0 @@
----
-title: Processing.js v0.9.7
----
-
diff --git a/download/_posts/2010-11-28-v1.0.0.html b/download/_posts/2010-11-28-v1.0.0.html
deleted file mode 100644
index 67e23bf..0000000
--- a/download/_posts/2010-11-28-v1.0.0.html
+++ /dev/null
@@ -1,9 +0,0 @@
----
-title: Processing.js v1.0.0
----
-
diff --git a/download/_posts/2011-02-27-v1.1.0.html b/download/_posts/2011-02-27-v1.1.0.html
deleted file mode 100644
index 3b07ce6..0000000
--- a/download/_posts/2011-02-27-v1.1.0.html
+++ /dev/null
@@ -1,9 +0,0 @@
----
-title: Processing.js v1.1.0
----
-
diff --git a/download/_posts/2011-06-02-v1.2.1.html b/download/_posts/2011-06-02-v1.2.1.html
deleted file mode 100644
index aafc3ba..0000000
--- a/download/_posts/2011-06-02-v1.2.1.html
+++ /dev/null
@@ -1,11 +0,0 @@
----
-title: Processing.js v1.2.1
----
-
diff --git a/download/_posts/2011-07-14-v1.2.3.html b/download/_posts/2011-07-14-v1.2.3.html
deleted file mode 100644
index 6127ee4..0000000
--- a/download/_posts/2011-07-14-v1.2.3.html
+++ /dev/null
@@ -1,11 +0,0 @@
----
-title: Processing.js v1.2.3
----
-
diff --git a/download/_posts/2011-08-23-v1.3.0.html b/download/_posts/2011-08-23-v1.3.0.html
deleted file mode 100644
index a7ee76d..0000000
--- a/download/_posts/2011-08-23-v1.3.0.html
+++ /dev/null
@@ -1,11 +0,0 @@
----
-title: Processing.js v1.3.0
----
-
diff --git a/download/_posts/2011-10-13-v1.3.6.html b/download/_posts/2011-10-13-v1.3.6.html
deleted file mode 100644
index 07e4e1a..0000000
--- a/download/_posts/2011-10-13-v1.3.6.html
+++ /dev/null
@@ -1,11 +0,0 @@
----
-title: Processing.js v1.3.6
----
-
diff --git a/download/_posts/2012-07-31-v1.4.0.html b/download/_posts/2012-07-31-v1.4.0.html
deleted file mode 100644
index 2625c65..0000000
--- a/download/_posts/2012-07-31-v1.4.0.html
+++ /dev/null
@@ -1,11 +0,0 @@
----
-title: Processing.js v1.4.0
----
-
diff --git a/download/_posts/2012-08-09-v1.4.1.html b/download/_posts/2012-08-09-v1.4.1.html
deleted file mode 100644
index 0d66f94..0000000
--- a/download/_posts/2012-08-09-v1.4.1.html
+++ /dev/null
@@ -1,11 +0,0 @@
----
-title: Processing.js v1.4.1
----
-
diff --git a/download/_posts/2014-03-25-v1.4.7.html b/download/_posts/2014-03-25-v1.4.7.html
deleted file mode 100644
index 665074a..0000000
--- a/download/_posts/2014-03-25-v1.4.7.html
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: Processing.js v1.4.7
----
-
- Development - processing.js v1.4.7
- Production - processing.min.js v1.4.7
-Alternatively, install through Bower by using bower install Processing.js
diff --git a/download/_posts/2014-03-25-v1.4.8.html b/download/_posts/2014-03-25-v1.4.8.html
deleted file mode 100644
index 773fb72..0000000
--- a/download/_posts/2014-03-25-v1.4.8.html
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: Processing.js v1.4.8
----
-
- Development - processing.js v1.4.8
- Production - processing.min.js v1.4.8
-Alternatively, install through Bower by using bower install Processing.js
diff --git a/download/_posts/2016-08-01-v1.6.0.html b/download/_posts/2016-08-01-v1.6.0.html
deleted file mode 100644
index 96f6228..0000000
--- a/download/_posts/2016-08-01-v1.6.0.html
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: Processing.js v1.6.0
----
-
- Development - processing.js v1.6.0
- Production - processing.min.js v1.6.0
-Alternatively, install through NPM by using npom install processing-js
diff --git a/download/_posts/template.html b/download/_posts/template.html
deleted file mode 100644
index ac80587..0000000
--- a/download/_posts/template.html
+++ /dev/null
@@ -1,11 +0,0 @@
----
-title: Processing.js vversion
----
-
diff --git a/download/archived.html b/download/archived.html
deleted file mode 100644
index 5bd1fcc..0000000
--- a/download/archived.html
+++ /dev/null
@@ -1,14 +0,0 @@
----
-layout: default
----
-Download Archive
-
-Download older releases of Processing.js
-
-{% for old in site.categories.download offset:1 %}
-
-{{ old.title }}
-Released {{ old.date | date_to_long_string }}
-{{ old.content }}
-
-{% endfor %}
diff --git a/download/index.html b/download/index.html
deleted file mode 100644
index c68c4fe..0000000
--- a/download/index.html
+++ /dev/null
@@ -1,18 +0,0 @@
----
-layout: default
----
-{% assign current = site.categories.download.first %}
-Download {{ current.title }}
-
-Download the latest Processing.js from NPM .
-
-Alternatively, download it directly from the Github code repository.
-
-Released {{ current.date | date_to_long_string }}
-
-{{ current.content }}
-
-Previous releases
-
-You can download older releases from our Download Archive
-or our GitHub repository
diff --git a/exhibition/_posts/2011-11-01-ui-dial.html b/exhibition/_posts/2011-11-01-ui-dial.html
deleted file mode 100644
index 11f334a..0000000
--- a/exhibition/_posts/2011-11-01-ui-dial.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- UI Dial with Ajax by
- Alistair MacDonald
- This dial interface has magnetic snap points, and integrates with jQuery AJAX functions to load new content when turned
-
diff --git a/exhibition/_posts/2011-11-02-sparklines.html b/exhibition/_posts/2011-11-02-sparklines.html
deleted file mode 100644
index d7d67bb..0000000
--- a/exhibition/_posts/2011-11-02-sparklines.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- Sparklines by
- Will Larson
- An innovative script to visualize trends in data. Using a pop-up Canvas that can be fully customized for your site
-
diff --git a/exhibition/_posts/2011-11-03-tower-of-defense.html b/exhibition/_posts/2011-11-03-tower-of-defense.html
deleted file mode 100644
index 328b855..0000000
--- a/exhibition/_posts/2011-11-03-tower-of-defense.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- Tower of Defence by
- Will Larson & Peter Burns
- Will Larson has gone about revising the classic Tower Defense genre, porting it to the open web using Processing.js
-
diff --git a/exhibition/_posts/2011-11-04-mouse.html b/exhibition/_posts/2011-11-04-mouse.html
deleted file mode 100644
index 05cc336..0000000
--- a/exhibition/_posts/2011-11-04-mouse.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- Mouse Equalizer by
- Alistair MacDonald
- This mouse-driven visualization samples your the movement speed of your mouse and renders the data in the form of a graphic equalizer
-
diff --git a/exhibition/_posts/2011-11-05-wiki.html b/exhibition/_posts/2011-11-05-wiki.html
deleted file mode 100644
index b178150..0000000
--- a/exhibition/_posts/2011-11-05-wiki.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- Wiki Visualizations by
- Matt Ryall
- A small collection of animated visualizations which analyze wiki data using Processing.js
-
diff --git a/exhibition/_posts/2011-11-06-balldroppings.html b/exhibition/_posts/2011-11-06-balldroppings.html
deleted file mode 100644
index c5d1141..0000000
--- a/exhibition/_posts/2011-11-06-balldroppings.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- Ball Droppings by
- Josh Nimoy
- Turn your sound up. Draw lines on the black screen to bounce the balls. Enjoy the music
-
diff --git a/exhibition/_posts/2011-11-07-twitch.html b/exhibition/_posts/2011-11-07-twitch.html
deleted file mode 100644
index f75292d..0000000
--- a/exhibition/_posts/2011-11-07-twitch.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- TWITCH by
- Casey Reas
- TWITCH is a series of minimal games using the mouse. How fast can you solve them all?
-
diff --git a/exhibition/_posts/2011-11-08-bittorrent.html b/exhibition/_posts/2011-11-08-bittorrent.html
deleted file mode 100644
index c713378..0000000
--- a/exhibition/_posts/2011-11-08-bittorrent.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- BitTorrent Visalizations by
- Chris Lee
- A simplified BitTorrent visualization originally written by Abram Stern, updated by Jeff Atwood
-
diff --git a/exhibition/_posts/2011-11-09-askken.html b/exhibition/_posts/2011-11-09-askken.html
deleted file mode 100644
index a63912d..0000000
--- a/exhibition/_posts/2011-11-09-askken.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- Ask Ken by
- Michael Aufreiter at Quasipartikel Labs
- Visualization-based search engine
-
diff --git a/exhibition/_posts/2011-11-10-abstract.html b/exhibition/_posts/2011-11-10-abstract.html
deleted file mode 100644
index 05dd8ba..0000000
--- a/exhibition/_posts/2011-11-10-abstract.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- ABSTRACT01js by
- Marius Watz
- Abstract01js is a reworking of an old 2D Processing sketch from 2003
-
diff --git a/exhibition/_posts/2011-11-11-facebook.html b/exhibition/_posts/2011-11-11-facebook.html
deleted file mode 100644
index 8188a3e..0000000
--- a/exhibition/_posts/2011-11-11-facebook.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- Facebook Privacy by
- Matt McKeon
- Visualization based on the evolution of privacy on Facebook
-
diff --git a/exhibition/_posts/2011-11-12-inbox.html b/exhibition/_posts/2011-11-12-inbox.html
deleted file mode 100644
index 3f9b58d..0000000
--- a/exhibition/_posts/2011-11-12-inbox.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- Galactic Inbox by
- Paul at Monocubed
- This is a keyboard-driven game written by the GMail team
-
diff --git a/exhibition/_posts/2011-11-13-wordpress.html b/exhibition/_posts/2011-11-13-wordpress.html
deleted file mode 100644
index 19b7c9f..0000000
--- a/exhibition/_posts/2011-11-13-wordpress.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- Wordpress plugin by
- Keyvan Minoukadeh
- Include Processing.js sketches into your WordPress blog posts
-
diff --git a/exhibition/_posts/2011-11-14-drupal.html b/exhibition/_posts/2011-11-14-drupal.html
deleted file mode 100644
index a368919..0000000
--- a/exhibition/_posts/2011-11-14-drupal.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- Drupal plugin by
- Matthew Radcliffe
- Include Processing.js sketches in your Drupal modules
-
diff --git a/exhibition/_posts/2011-11-15-asteroids.html b/exhibition/_posts/2011-11-15-asteroids.html
deleted file mode 100644
index c2a3c17..0000000
--- a/exhibition/_posts/2011-11-15-asteroids.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- Asteroids by
- Benjamin Blundell
- This modern day re-work of Asteroids uses Processing.js to bring this portfolio to life
-
diff --git a/exhibition/_posts/2011-11-16-jsnake.html b/exhibition/_posts/2011-11-16-jsnake.html
deleted file mode 100644
index 91272a3..0000000
--- a/exhibition/_posts/2011-11-16-jsnake.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- JSnake by
- Anton Pirogov
- A snake game implemented with Processing.js and jQuery, inspired by DeluxeSnake
-
diff --git a/exhibition/_posts/2011-11-17-gif-tower-defense.html b/exhibition/_posts/2011-11-17-gif-tower-defense.html
deleted file mode 100644
index e76d77f..0000000
--- a/exhibition/_posts/2011-11-17-gif-tower-defense.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- Gif Tower Defense by
- Daniel Arellano Aliaga
- It is a tower defense game implemented in Processing.js
-
diff --git a/exhibition/_posts/2011-11-18-letters.html b/exhibition/_posts/2011-11-18-letters.html
deleted file mode 100644
index 5ecc77d..0000000
--- a/exhibition/_posts/2011-11-18-letters.html
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- Letter-pairs Analysis
- byMartin Ignacio Bereciartua
- Showing and displaying in realtime the number of times each pair of letters appears
- in a given text.
-
\ No newline at end of file
diff --git a/exhibition/_posts/2011-11-19-fizz-bloom.html b/exhibition/_posts/2011-11-19-fizz-bloom.html
deleted file mode 100644
index 9f38089..0000000
--- a/exhibition/_posts/2011-11-19-fizz-bloom.html
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
- Fizz
- byBloom
- Fizz visualizes updates from your Facebook or Twitter account.
-
diff --git a/exhibition/_posts/2011-11-20-virion.html b/exhibition/_posts/2011-11-20-virion.html
deleted file mode 100644
index 6982596..0000000
--- a/exhibition/_posts/2011-11-20-virion.html
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
- Virion
- by Jonah Kagan, Varun Singh, Jonathan Koh, Charis Loke
- A game written in Processing.js. Winner of Zynga's Hidden Agenda Facebook Game
- Competition
-
diff --git a/exhibition/_posts/2011-11-21-kanji.html b/exhibition/_posts/2011-11-21-kanji.html
deleted file mode 100644
index 8ac37f2..0000000
--- a/exhibition/_posts/2011-11-21-kanji.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- Kanji Compositing by
- Mike Kamermans
- A web app for specifying kanji compositions
-
diff --git a/exhibition/_posts/2011-11-22-clearcongress.html b/exhibition/_posts/2011-11-22-clearcongress.html
deleted file mode 100644
index a7dda4c..0000000
--- a/exhibition/_posts/2011-11-22-clearcongress.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- Clear Congress Project by
- Thomas Gibes
- A real-time information visualization of the US Congress
-
diff --git a/exhibition/_posts/2011-11-23-bezierinfo.html b/exhibition/_posts/2011-11-23-bezierinfo.html
deleted file mode 100644
index 16f3cb7..0000000
--- a/exhibition/_posts/2011-11-23-bezierinfo.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- A primer on Bezier curves by
- Mike Kamermans
- A comprehensive guide to the math behind bezier curves
-
diff --git a/exhibition/_posts/2011-11-24-tunealiser.html b/exhibition/_posts/2011-11-24-tunealiser.html
deleted file mode 100644
index 2842261..0000000
--- a/exhibition/_posts/2011-11-24-tunealiser.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- Tunealiser by
- Brendan Ratliff
- Tunealiser is a tool for making structural analysis notes along a multitrack timeline.
-
diff --git a/exhibition/_posts/2011-11-25-toxiclibs.html b/exhibition/_posts/2011-11-25-toxiclibs.html
deleted file mode 100644
index b6b5af0..0000000
--- a/exhibition/_posts/2011-11-25-toxiclibs.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- toxiclibs.js by
- Kyle Philips
- Toxiclibs.js is an open-source computational design library
-
diff --git a/exhibition/_posts/2011-11-26-p5p.html b/exhibition/_posts/2011-11-26-p5p.html
deleted file mode 100644
index d3e9def..0000000
--- a/exhibition/_posts/2011-11-26-p5p.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- P5P by
- Beat Raess
- P5P is a collection of generative sketches that you control.
-
diff --git a/exhibition/_posts/2011-11-27-animated-background.html b/exhibition/_posts/2011-11-27-animated-background.html
deleted file mode 100644
index d07aefc..0000000
--- a/exhibition/_posts/2011-11-27-animated-background.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- Animated background by
- José Henrique Padovani
- An animated background written in Processing.js
-
diff --git a/exhibition/_posts/2011-11-28-afl-flags.html b/exhibition/_posts/2011-11-28-afl-flags.html
deleted file mode 100644
index 23087bb..0000000
--- a/exhibition/_posts/2011-11-28-afl-flags.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- AFL Flags by
- Flink Labs
- AFL Flags is an interactive visualisation showing the winners and losers from of the AFL and VFL premierships from 1897 until 2010.
-
diff --git a/exhibition/_posts/2011-11-29-twitter-flow.html b/exhibition/_posts/2011-11-29-twitter-flow.html
deleted file mode 100644
index 299c81c..0000000
--- a/exhibition/_posts/2011-11-29-twitter-flow.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- Twitter Flow by
- Sandro Paganotti
- Twitter Flow is an interactive visualization that shows tweets and sorts them into what language they're written in
-
diff --git a/exhibition/_posts/2011-11-30-coaltrace.html b/exhibition/_posts/2011-11-30-coaltrace.html
deleted file mode 100644
index 927744e..0000000
--- a/exhibition/_posts/2011-11-30-coaltrace.html
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
- coaltrace.js
- byTrevor Bedford
- Evolutionary simulation. Individuals reproduce and die leaving behind a trace of their ancestry.
-
\ No newline at end of file
diff --git a/exhibition/_posts/2011-12-01-flocking.html b/exhibition/_posts/2011-12-01-flocking.html
deleted file mode 100644
index 31abc85..0000000
--- a/exhibition/_posts/2011-12-01-flocking.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- Flocking by
- Harry Brundage
- The math behind flocking algorithms
-
diff --git a/exhibition/_posts/2011-12-02-pewpew.html b/exhibition/_posts/2011-12-02-pewpew.html
deleted file mode 100644
index 44d2b60..0000000
--- a/exhibition/_posts/2011-12-02-pewpew.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- Pew Pew by
- Nightmare
- Retro Asteroids clone written in Processing.js
-
diff --git a/exhibition/_posts/2011-12-03-fotn.html b/exhibition/_posts/2011-12-03-fotn.html
deleted file mode 100644
index a839d39..0000000
--- a/exhibition/_posts/2011-12-03-fotn.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- Flight of the Navigator by
- The Mozilla #audio team
- Fight of the Navigator is a demo showcasing the power of WebGL and Audio API
-
diff --git a/exhibition/_posts/2011-12-04-coffeescript.html b/exhibition/_posts/2011-12-04-coffeescript.html
deleted file mode 100644
index 80e3bc6..0000000
--- a/exhibition/_posts/2011-12-04-coffeescript.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- PJS in CoffeeScript by
- David Guttman
- A tutorial showing how to write Processing.js sketches in CoffeeScript, a language that is compiled into Javascript
-
diff --git a/exhibition/_posts/2011-12-15-andor.html b/exhibition/_posts/2011-12-15-andor.html
deleted file mode 100644
index 735fbd4..0000000
--- a/exhibition/_posts/2011-12-15-andor.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- 3D Sketches by
- Andor Salga
- A collection of 3D sketches by Processing.js' 3D developer
-
diff --git a/exhibition/_posts/2011-12-24-advent-2011.html b/exhibition/_posts/2011-12-24-advent-2011.html
deleted file mode 100644
index 276b682..0000000
--- a/exhibition/_posts/2011-12-24-advent-2011.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- 2011 Advent Calendar by
- Nikolaus Gradwohl
- An advent calendar built with Processing.js
-
diff --git a/exhibition/_posts/2011-12-25-circle-of-fifths.html b/exhibition/_posts/2011-12-25-circle-of-fifths.html
deleted file mode 100644
index c6a4eb9..0000000
--- a/exhibition/_posts/2011-12-25-circle-of-fifths.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- Circle of Fifths by
- Shelley Marshall
- Create, transpose, and change a chord progression by using the circle of fifths, and play the progression.
-
diff --git a/exhibition/_posts/2012-07-13-mylifeaquatic.html b/exhibition/_posts/2012-07-13-mylifeaquatic.html
deleted file mode 100644
index bc8ee66..0000000
--- a/exhibition/_posts/2012-07-13-mylifeaquatic.html
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
- My Life Aquatic by
- David Leibovic ,
- Sunah Suh
- A shared aquarium
- Source code
-
diff --git a/exhibition/_posts/2013-04-26-delaunay.html b/exhibition/_posts/2013-04-26-delaunay.html
deleted file mode 100644
index 76348b2..0000000
--- a/exhibition/_posts/2013-04-26-delaunay.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- Incremental Delaunay Triangulation by
- Jeonggyu Lee
- An interactive implementation of incremental Delaunay Triangulation algorithm.
-
diff --git a/exhibition/_posts/template.html b/exhibition/_posts/template.html
deleted file mode 100644
index 5a2e621..0000000
--- a/exhibition/_posts/template.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- Demoname by
- Authors
- Description
-
diff --git a/exhibition/index.html b/exhibition/index.html
deleted file mode 100644
index 08f51a1..0000000
--- a/exhibition/index.html
+++ /dev/null
@@ -1,10 +0,0 @@
----
-layout: default
----
-Exhibition
-
-
-{% for post in site.categories.exhibition %}
-{{ post.content }}
-{% endfor %}
-
diff --git a/favicon.ico b/favicon.ico
deleted file mode 100644
index 0312a543da5a9ba33e392641d59d51027de462d0..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 1150
zcmb7EF>3;042|F2T5xi9yh5QM6dW7`1zk#^OACcgEeImGIJn6DH2+!5i}xUeioF~!
zFYo1ro9;vg_6&z&eJq<=WF#Vu!7OvGzLALSa;d6xFzQvj1MB*+?uG76e*5}VDS+Zk
zj-CfXhWh=vD1hP|Is4RL)aRr);!F=5{X9c|zZ6HD>4E8!x$}j!pJ{PGb0+_lVUD})
ztSFF+{w-#HKQ9WPI7gj*X8gd~VNo2=oWWVg9rwr_SH%%$cv&+?_JFn1+k*p|GdSzG
z;~tszt8v5`Ue?T!Jz%ZHq)$
diff --git a/images/exhibition/abstract.jpg b/images/exhibition/abstract.jpg
deleted file mode 100644
index fe747f9415974c752e69031c2d123b7f228a81cf..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 43710
zcmbq)XH-+m`!0&ekrol@?N|VT&|AO=f8_{Di`0ZJU_d$%k)Q!Q0tqc}M0!0O3;{y#
zVx**ibm@Y$Bmz>z1Oy`nxSV_c>vzB04|m-=`@_sy`<-{qGqd;XcR%kl#~+WExz1ad
z-8JJnb?Ow?os)~}n8x+|Hqzghi_6-YONEPz>o+c*Qx~|nPg3g$(fl{}f7+J+njU}RGW~Zv
z|6k=_C;wj#{_T9+%_aOBmnBy-_bFkn)552?g-;z*xa3ce@cb{|{|@)xa_Thq8J@Ge
zzn$abKQU-I&vp6~H}~l?+&nyIPA1}1^vQj$Gr~L|u-??jH@8IYJg*m(UJb?T9
zJ@gLIso?0(Qc(*9#$XS^Ll5F5Y@s+R$_EijEyq)cesGpV(DhngZ)z
zX#W%0{~fRw|4+#N1MGj}n&T4SK6SEq+`?QYT!$oPdi>D^w&$HOunDbVf_$%r8Rx7p^r$~N&OHA9LtM)d%%{_{s7|Sq-O1(~WL%8G;
zmg80Amv>e6oSC7AdHj%ez{JQSqMr!stXz@BAiud5F0PpOMZ0e;Z#;8vCm9y>L{*3t
zKDY~5Tw~y|#l~y1RQ0QLuoC8Hi~%M*Xaaapdm+nMZ=~Jg0;x}z%(f)ur3s-;lu359
zYGV^|^W^X#jMhkL_OvZ+zN*l;CWRF3PA7a7@97j74|WPfZlScQ*X4enj(-wqyD7Ez
z-KDcgr=`Al;eJPw?yT|1#Q?icgdv{E>`m`+z%U5k3;vO=^@@=AKAb3|*lC{n-tReb
ziy%&(z2SCwi>^@pDq*h3^n1SoZc9VI~
z(q(2X0z^!E7(}?tS!w-lKhe@S@_m0F&Bt2pu_2!uGL@Ykb<+u6h7AD48Yi7>ZQUt7
zvzQU$ii8uvqV1AKpL{}&hjz+6Rv%XPy%NU0y`ITS{&WtFr@PxbPxQR{&@w
z<<3%2jI6c0+L;{S+