Difference between revisions of "Processing.js"

From CDOT Wiki
Jump to: navigation, search
(Processing.js 0.1 Code status)
(Project Contributor(s))
 
(38 intermediate revisions by 12 users not shown)
Line 14: Line 14:
  
 
Check out [http://9elements.com/io/projects/html5/canvas/ http://9elements.com/io/projects/html5/canvas/] for a cool visual.
 
Check out [http://9elements.com/io/projects/html5/canvas/ http://9elements.com/io/projects/html5/canvas/] for a cool visual.
 +
==Project Details==
 +
 +
Processing is an open source programming language and environment for people who want to program images, animation, and interactions. Processing is an alternative to proprietary software tools in the same domain.
 +
 +
Processing.js will:
 +
 +
* enable Processing users to take advantage of the full power of the open web
 +
* serve as a forcing function to drive improvements in key aspects of Mozilla products and technologies, including; JavaScript, Canvas Functionality, applications of Bespin, Ubiquity, Multi-Touch and others
 +
 +
Read more on the project [https://wiki.mozilla.org/Education/Projects/ProcessingForTheWeb  Processing For The Web].
 +
 +
'''Project Bugs & Tickets''' is [https://processing-js.lighthouseapp.com/projects/41284-processingjs/tickets?q=all here]
  
 
==Project Leader(s) ==
 
==Project Leader(s) ==
Line 22: Line 34:
 
|-
 
|-
 
| [[User:David.humphrey|David Humphrey]] || [http://vocamus.net/dave blog] || humph
 
| [[User:David.humphrey|David Humphrey]] || [http://vocamus.net/dave blog] || humph
 +
|-
 +
| Corban Brook || [http://weare.buildingsky.net/ blog] || corban
 
|-
 
|-
 
| [[User:Anna.sobiepanek|Anna Sobiepanek]] || [http://annasob.wordpress.com/category/processing-js/ blog] || annasob
 
| [[User:Anna.sobiepanek|Anna Sobiepanek]] || [http://annasob.wordpress.com/category/processing-js/ blog] || annasob
Line 31: Line 45:
 
|[[User:mlam19|Matthew Lam]] || [http://wobblyretroaction.blogspot.com/ blog] || mlam19
 
|[[User:mlam19|Matthew Lam]] || [http://wobblyretroaction.blogspot.com/ blog] || mlam19
 
|-
 
|-
|[[User:dhhodgin|Daniel Hodgin]] || [http://dhodgin.wordpress.com/ blog] || dhodgin
+
|[[User:dhhodgin|Daniel Hodgin]] || [http://www.hodgin.ca/ blog] || dhodgin
 
|-
 
|-
|[[User:Tiago|Tiago Moreira]] || [http://tiago.kamots.net/ blog] || Kamots
+
|[[User:dominic|Dominic Baranski]] || [http://www.dbaranski.net/ blog] || dcbarans
 +
|-
 +
|[[User:sdowne|Scott Downe]] || [http://scottdowne.blogspot.com blog]  || scott
 
|-
 
|-
|[[User:dominic|Dominic Baranski]] || [http://www.dbaranski.net/ blog] || dcbarans
 
 
|}
 
|}
  
Line 45: Line 60:
 
| [[User:AbelAllison|Abel Allison]] || [http://blog.groovemechanic.net/ blog] || aallison
 
| [[User:AbelAllison|Abel Allison]] || [http://blog.groovemechanic.net/ blog] || aallison
 
|-
 
|-
| [[User:Andrewgrimo|Andrew Grimo]] || [http://andrewgrimo.wordpress.com/category/open-source/ blog] ||  
+
| [[User:Andrewgrimo|Andrew Grimo]] || [http://andrewgrimo.wordpress.com/category/open-source/ blog] ||
 +
|-
 +
| [[User:eston|Eston Bond]] || [http://socialuxe.com/ blog] || eston
 +
|-
 +
| [[User:Minooz/OSD600|Minoo Ziaei]] || [http://minooz.wordpress.com/category/processing/ blog] || Minooz
 +
|-
 +
| Mike Kamermans || [http://projects.nihongoresources.com blog] || Pomax
 +
|-
 +
| Yury Delendik || ||
 
|}
 
|}
 
  
 
==Former Member(s) ==
 
==Former Member(s) ==
Line 61: Line 83:
 
|[[User:Tyrant911|Alex Londono]] || [http://tyrant911-processingdotjs.blogspot.com/ blog] || Tyrant911
 
|[[User:Tyrant911|Alex Londono]] || [http://tyrant911-processingdotjs.blogspot.com/ blog] || Tyrant911
 
|-
 
|-
|[[User:xudiera|Carlos Xudiera]] || [http://xudiera.wordpress.com/ blog] || xudiera
+
|[[User:Tiago|Tiago Moreira]] || [http://tiago.kamots.net/ blog] || Kamots
 +
|-
 +
|[[User:Jmchen|Jianming Chen]] || [http://jmchen11.wordpress.com/ blog] || jmchen11
 +
|-
 +
|[[User:Zbhuang1|Zhibin Huang]] || [http://zbhuang1.blogspot.com/ blog]  || zbhuang1
 +
|-
 +
|[[User:tdao75|Thanh Dao]] || [http://tdao75.blogspot.com blog]  || tdao75
 
|}
 
|}
 
  
 
==Related Bugs==
 
==Related Bugs==
Line 86: Line 113:
 
</ul>
 
</ul>
  
==Project Details==
 
  
Processing is an open source programming language and environment for people who want to program images, animation, and interactions. Processing is an alternative to proprietary software tools in the same domain.
 
 
Processing.js will:
 
 
* enable Processing users to take advantage of the full power of the open web
 
* serve as a forcing function to drive improvements in key aspects of Mozilla products and technologies, including; JavaScript, Camvas Functionality, applications of Bespin, Ubiquity, Multi-Touch and others
 
 
Read more on the project [https://wiki.mozilla.org/Education/Projects/ProcessingForTheWeb  Processing For The Web].
 
 
'''Project Task List''' is [https://wiki.mozilla.org/Education/Projects/ProcessingForTheWeb/Tasks here]
 
  
 
==Resources==
 
==Resources==
Line 119: Line 135:
 
# Experiment around with the Processing Java app, use the Basic Examples @ http://processing.org/learning/basics/ and make something cool, interesting, wacky, where-ever your experiment takes you.
 
# Experiment around with the Processing Java app, use the Basic Examples @ http://processing.org/learning/basics/ and make something cool, interesting, wacky, where-ever your experiment takes you.
 
# Test whether you can re-create your sketch by copying your code to http://hasCanvas.com You can share your work so others can see what you have done, you can also use hasCanvas to embed your visualization in your web site / blog.
 
# Test whether you can re-create your sketch by copying your code to http://hasCanvas.com You can share your work so others can see what you have done, you can also use hasCanvas to embed your visualization in your web site / blog.
 +
# How to documentation for processing.js inconsistencies from java processing @ http://zenit.senecac.on.ca/wiki/index.php/Processing.js/HowTo
  
 
==Conference Call==
 
==Conference Call==
Line 125: Line 142:
 
Call will take place Thursdays at 5:15pm
 
Call will take place Thursdays at 5:15pm
 
===Primary Dial-in Numbers===
 
===Primary Dial-in Numbers===
+1 416-848-3114 [ Extension 92, Conference# 7600 ] (Canada) <br>
+
+1 416-848-3114 [ Extension 92, Conference# 7633 ] (Canada) <br>
+1 800-707-2533 [ Pin 369, Conference# 7600 ] (Canada/US Toll Free)
+
+1 800-707-2533 [ Pin 369, Conference# 7633 ] (Canada/US Toll Free)
  
 
===Agendas/Minutes===
 
===Agendas/Minutes===
  
 
[[Processing.js/ConferenceCalls|Conference Call Meetings]]
 
[[Processing.js/ConferenceCalls|Conference Call Meetings]]
 +
==Documentation==
  
 
+
[[Processing.js/HowTo|Getting Started With Processing]]
 
 
==Project Tests==
 
Project html template for creating tests that all look the same [[ProcessingTestsTemplate]]
 
===Processing tests available for usage===
 
<table border="1" width="100%" cellspacing="1" cellpadding="1">
 
<tr>
 
  <td width="20%"><b>Student</b></td>    <td width="20%"> <b>Date</b></td>        <td><b>Test Description</b></td>
 
</tr>
 
 
 
<tr> 
 
  <td>Andor Salga</td>
 
  <td>Oct 15 2009</td>
 
  <td>[http://matrix.senecac.on.ca/~asalga/DPS909/release0.1/work/tests/mag_test.html mag()]</td>
 
</tr>
 
<tr> 
 
  <td>Andor Salga</td>
 
  <td>Oct 15 2009</td>
 
  <td>[http://matrix.senecac.on.ca/~asalga/DPS909/release0.1/work/tests/splice_test.html splice()]</td>
 
</tr>
 
<tr> 
 
  <td>Andor Salga</td>
 
  <td>Oct 15 2009</td>
 
  <td>[http://matrix.senecac.on.ca/~asalga/DPS909/release0.1/work/tests/focused_test.html focused]</td>
 
</tr>
 
 
 
<tr> 
 
  <td>Daniel Hodgin</td>
 
  <td>Oct 21 2009</td>
 
  <td>[http://matrix.senecac.on.ca/~dhhodgin/dps909/shorten_test.html shorten()]</td>
 
</tr>
 
 
 
<tr> 
 
  <td>Andrew Grimo</td>
 
  <td>Oct 23 2009</td>
 
  <td>[http://matrix.senecac.on.ca/~agrimo/processing.js/subset-processing_js.html subset()] - done for Andor's function, calling the Processing.js file on his Matrix account</td>
 
</tr>
 
 
 
<tr>
 
  <td>Mickael Medel</td>
 
  <td>Oct 23 2009</td>
 
  <td>PVector.add() [http://matrix.senecac.on.ca/~mnmedel/Processing-JS/pvector/pvector_add1.html version 1] [http://matrix.senecac.on.ca/~mnmedel/Processing-JS/pvector/pvector_add2.html version 2]</td>
 
</tr>
 
<tr>
 
  <td>Mickael Medel</td>
 
  <td>Oct 23 2009</td>
 
  <td>PVector.sub() [http://matrix.senecac.on.ca/~mnmedel/Processing-JS/pvector/pvector_sub1.html version 1] [http://matrix.senecac.on.ca/~mnmedel/Processing-JS/pvector/pvector_sub2.html version 2]</td>
 
</tr>
 
<tr>
 
  <td>Mickael Medel</td>
 
  <td>Oct 23 2009</td>
 
  <td>PVector.mult() [http://matrix.senecac.on.ca/~mnmedel/Processing-JS/pvector/pvector_mult1.html version 1] [http://matrix.senecac.on.ca/~mnmedel/Processing-JS/pvector/pvector_mult2.html version 2]</td>
 
</tr>
 
<tr>
 
  <td>Mickael Medel</td>
 
  <td>Oct 23 2009</td>
 
  <td>PVector.div() [http://matrix.senecac.on.ca/~mnmedel/Processing-JS/pvector/pvector_div1.html version 1] [http://matrix.senecac.on.ca/~mnmedel/Processing-JS/pvector/pvector_div2.html version 2]</td>
 
</tr>
 
<tr> 
 
  <td>Anna Sobiepanek</td>
 
  <td>Oct 23 2009</td>
 
  <td>[http://matrix.senecac.on.ca/~asobiepa/Processing/cursorMode.html cursor(''MODE'')]</td>
 
</tr>
 
<tr> 
 
  <td>Anna Sobiepanek</td>
 
  <td>Oct 23 2009</td>
 
  <td>[http://matrix.senecac.on.ca/~asobiepa/Processing/cursorUrl.html cursor(''src,x,y'')]</td>
 
</tr>
 
<tr> 
 
  <td>Anna Sobiepanek</td>
 
  <td>Oct 23 2009</td>
 
  <td>[http://matrix.senecac.on.ca/~asobiepa/Processing/noCursor.html noCursor()]</td>
 
</tr>
 
<tr> 
 
  <td>Daniel Hodgin</td>
 
  <td>Oct 24 2009</td>
 
  <td>[http://matrix.senecac.on.ca/~dhhodgin/dps909/expand_test.htm expand()]</td>
 
</tr>
 
<tr> 
 
  <td>Daniel Hodgin</td>
 
  <td>Oct 27 2009</td>
 
  <td>[http://matrix.senecac.on.ca/~dhhodgin/dps909/unhex_test.htm unhex()]</td>
 
</tr>
 
<tr> 
 
  <td>Daniel Hodgin</td>
 
  <td>Oct 28 2009</td>
 
  <td>[http://matrix.senecac.on.ca/~dhhodgin/dps909/nfs_test.htm nfs()]</td>
 
</tr>
 
<tr> 
 
  <td>Daniel Hodgin</td>
 
  <td>Nov 13 2009</td>
 
  <td>[http://matrix.senecac.on.ca/~dhhodgin/dps909/nfc_test.htm nfc()]</td>
 
</tr>
 
<tr> 
 
  <td>Donghui Liu</td>
 
  <td>Nov 13 2009</td>
 
  <td>[http://matrix.senecac.on.ca/~dliu53/OSD600/brightness()_test.html brightness()],[http://matrix.senecac.on.ca/~dliu53/OSD600/hue()_test.html hue()],[http://matrix.senecac.on.ca/~dliu53/OSD600/saturation()_test.html saturation()]</td>
 
</tr>
 
<tr> 
 
  <td>Matthew Lam</td>
 
  <td>Nov 19 2009</td>
 
  <td>[http://matrix.senecac.on.ca/~mlam19/processingjs/pushPopTest1.html pushStyle()/popStyle()], [http://matrix.senecac.on.ca/~mlam19/processingjs/booleanTest1.html boolean()]</td>
 
</tr>
 
<tr> 
 
  <td>Donghui Liu</td>
 
  <td>Nov 25 2009</td>
 
  <td>[http://matrix.senecac.on.ca/~dliu53/OSD600/curve()_test.html curve()], [http://matrix.senecac.on.ca/~dliu53/OSD600/blendColor()_test.html blendColor()]</td>
 
</tr>
 
 
 
<tr> 
 
  <td>Anna Sobiepanek</td>
 
  <td>Nov 27 2009</td>
 
  <td>[http://matrix.senecac.on.ca/~asobiepa/Processing/PImage/PImage.html PImage()]</td>
 
</tr>
 
 
 
<tr> 
 
  <td>Anna Sobiepanek</td>
 
  <td>Nov 27 2009</td>
 
  <td>[http://matrix.senecac.on.ca/~asobiepa/Processing/PImage/PImageGet.html PImage.get()]</td>
 
</tr>
 
 
 
<tr> 
 
  <td>Anna Sobiepanek</td>
 
  <td>Nov 27 2009</td>
 
  <td>[http://matrix.senecac.on.ca/~asobiepa/Processing/PImage/PImageSet.html PImage.set()]</td>
 
</tr>
 
 
 
<tr> 
 
  <td>Anna Sobiepanek</td>
 
  <td>Nov 27 2009</td>
 
  <td>[http://matrix.senecac.on.ca/~asobiepa/Processing/PImage/PImageCopy.html PImage.copy()v1] [http://matrix.senecac.on.ca/~asobiepa/Processing/PImage/PImageCopy2.html PImage.copy() v2]</td>
 
 
 
</tr>
 
<tr> 
 
  <td>Matthew Lam</td>
 
  <td>Dec 2 2009</td>
 
  <td>[http://matrix.senecac.on.ca/~mlam19/processingjs/strokeCapTest1.html strokeCap()], [http://matrix.senecac.on.ca/~mlam19/processingjs/strokeJoinTest1.html strokeJoin()]</td>
 
</tr>
 
 
 
</table><br />
 
 
 
 
 
== 3D Implementation Roadmap ==
 
 
 
I have done my best to identify what tickets will block others and have created<br />
 
a roadmap for integrating 3D into the library. I have done so by analyzing the<br />
 
Processing site and looking through the Processing source.<br />
 
<br />
 
Items marked 'fix' have been reviewed but need to corrected.<br />
 
Items marked 'implement' need to be coded, but it also implies writing a good test.<br />
 
Items marked 'write test' are done, but need a test before they can be reviewed.<br />
 
A good test should take a peer-reviewer only a few minutes to check and pass on for super-review.<br />
 
<br />
 
We still need to address what will happen if a ticket isn't complete. This roadmap needs to be<br />
 
robust enough to not crumble if this occurs.<br />
 
 
 
<br />
 
<b>Release 0.5</b><br />
 
<b>Mickael</b><br />
 
- Fix camera()<br />
 
- Write test for camera()<br />
 
- Fix perspective()<br />
 
- Write test for perspective()<br />
 
- Fix P3DMatrixStack<br />
 
- Write test for P3DMatrixStack<br />
 
<br />
 
<b>Andor</b><br />
 
- Write setUniformf()<br />
 
- Write setUniformi()<br />
 
- Write setUniformMatrix()<br />
 
- Write test for frustum()<br />
 
- Write test for PMatrix3D trans(), mult(), set(), apply(), scale()<br />
 
<br />
 
<b>Anna</b><br />
 
- Fix box()<br />
 
- Write test for PMatrix3D rotateX()<br />
 
- Write test for PMatrix3D rotateY()<br />
 
- Write test for PMatrix3D rotateZ()<br />
 
- Write test for PMatrix3D rotate()<br />
 
- Write test for PMatrix3D applyMatrix<br />
 
- Write test for PMatrix3D reset()<br />
 
<br />
 
<br />
 
 
 
Once 0.5 tickets are in, we will each be able to render<br />
 
a simple box to test the functions we will be writing for 0.6<br />
 
 
 
<br />
 
<b>Release 0.6</b><br />
 
- Implement resetMatrix()<br />
 
- Implement pushMatrix()<br />
 
- Implement popMatrix()<br />
 
- Implement translate()<br />
 
- Implement scale()<br />
 
- Implement applyMatrix()<br />
 
<br />
 
- Implement 3D noStroke()<br />
 
- Implement 3D stroke()<br />
 
- Implement 3D fill()<br />
 
- Implement 3D noFill()<br />
 
<br />
 
- Write test for sphere()<br />
 
- Write test for sphereDetail()<br />
 
- Implement rotateX()<br />
 
- Implement rotateY()<br />
 
- Implement rotateZ()<br />
 
<br />
 
 
 
<b>0.6 "extras" not mandatory, but no longer blocked</b><br />
 
- Write test for ortho()<br />
 
- Implement printCamera()<br />
 
- Implement printProjection()<br />
 
- Implement hint()<br />
 
- Write test for screenX()<br />
 
- Write test for screenY()<br />
 
- Write test for screenZ()<br />
 
 
 
<br />
 
<b>Release 0.7</b><br />
 
 
 
<b>0.7 "extras" not mandatory, but no longer blocked</b><br />
 
- Implement beginCamera()<br />
 
- Implement endCamera()<br />
 
<br />
 
- Write test for modelX()<br />
 
- Write test for modelY()<br />
 
- Write test for modelZ()<br />
 
 
 
<br />
 
<b>Release 0.8</b><br />
 
- Update DirectionalLight test<br />
 
- Update ambientLight test<br />
 
- Implement pointLight()<br />
 
- Implement emissive()<br />
 
<br />
 
 
 
??? still trying to sort these out<br />
 
texture<br />
 
PGraphics blocks triangle, quad, vertex, bezierVertex, rect()<br />
 
beginShape()
 
endShape()
 
line()
 

Latest revision as of 22:05, 12 April 2011

Project Name

Processing.js

Project Description

Processing.js is a proposed Mozilla-sponsored project, its main purpose is to wrap Java-based language functions into Javascript. The purpose of this is to use visuals on the open web, using standard technologies such as JavaScript and Canvas.

Read more about processing for the web http://processing.org

Read more about Canvas http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html

Read more about Drawing with Canvas https://developer.mozilla.org/en/Drawing_Graphics_with_Canvas

Check out http://9elements.com/io/projects/html5/canvas/ for a cool visual.

Project Details

Processing is an open source programming language and environment for people who want to program images, animation, and interactions. Processing is an alternative to proprietary software tools in the same domain.

Processing.js will:

  • enable Processing users to take advantage of the full power of the open web
  • serve as a forcing function to drive improvements in key aspects of Mozilla products and technologies, including; JavaScript, Canvas Functionality, applications of Bespin, Ubiquity, Multi-Touch and others

Read more on the project Processing For The Web.

Project Bugs & Tickets is here

Project Leader(s)

Name/User Page Blog IRC Nick(s)
David Humphrey blog humph
Corban Brook blog corban
Anna Sobiepanek blog annasob
Andor Salga blog asalga
Mickael Medel blog aSydiK
Matthew Lam blog mlam19
Daniel Hodgin blog dhodgin
Dominic Baranski blog dcbarans
Scott Downe blog scott

Project Contributor(s)

Name/User Page Blog IRC Nick(s)
Abel Allison blog aallison
Andrew Grimo blog
Eston Bond blog eston
Minoo Ziaei blog Minooz
Mike Kamermans blog Pomax
Yury Delendik

Former Member(s)

Name/User Page Blog IRC Nick(s)
Donghui Liu blog dliu53
Edward Sin blog MinyXO
Alex Londono blog Tyrant911
Tiago Moreira blog Kamots
Jianming Chen blog jmchen11
Zhibin Huang blog zbhuang1
Thanh Dao blog tdao75

Related Bugs

Canvas

  • Bug 381930 - No repaint inside very large canvas
  • Bug 370450 - Safari "canvas" demonstration cause Minefield to hang while page is loaded
  • Bug 408372 - <canvas> canvas animation is jerky on Firefox 3 beta 1, Linux x86_64
  • Bug 501677 - Drawing lines in big Canvas don't work always
  • Bug 518173 - webgl does not build on Darwin/X11 (bad gl.h)
  • Bug 411475 - Canvas3D not working on Radeon 9250
  • Bug 488271 - Examples crash with ATI on Vista
  • Bug 480993 - Canvas 3D spec tests

WebGL


Resources

Tools

  1. Processing (Java) @ http://Processing.org
  2. Processing JS code @ http://ProcessingJS.org
  3. Minefield builds for WebGL (build your own or http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/). See also Vlad's post on this: http://blog.vlad1.com/2009/09/18/webgl-in-firefox-nightly-builds/
  4. Git, http://Github.com & a great video tutorial on Git @ http://peepcode.com/products/git
  5. AlertThingy (can plug your Github repo rss feed in and get live updates when other users submit code) @ http://www.alertthingy.com/
  6. HasCanvas, a Processing JS IDE @ http://HasCanvas.com

Learning

  1. Recent interview with creators of Processing about the language and its future
  2. Download the Java version of Processing @ http://processing.org/download/
  3. Look at what Processing Java is capable of @ http://processing.org/exhibition/
  4. Look at what has been done with Processing JS so far @ http://processingjs.org/exhibition & @ http://hascanvas.com/#open-about
  5. Read Processing articles "Getting Started" & "Coordiante System & Shapes" @ http://processing.org/learning/gettingstarted/ & @ http://processing.org/learning/drawing/
  6. Experiment around with the Processing Java app, use the Basic Examples @ http://processing.org/learning/basics/ and make something cool, interesting, wacky, where-ever your experiment takes you.
  7. Test whether you can re-create your sketch by copying your code to http://hasCanvas.com You can share your work so others can see what you have done, you can also use hasCanvas to embed your visualization in your web site / blog.
  8. How to documentation for processing.js inconsistencies from java processing @ http://zenit.senecac.on.ca/wiki/index.php/Processing.js/HowTo

Conference Call

Up until the end of April, we will be doing conference calls with the processing.js developers on a weekly basis. We will post the links to the minutes here as well as any agendas, etc.

Call Details

Call will take place Thursdays at 5:15pm

Primary Dial-in Numbers

+1 416-848-3114 [ Extension 92, Conference# 7633 ] (Canada)
+1 800-707-2533 [ Pin 369, Conference# 7633 ] (Canada/US Toll Free)

Agendas/Minutes

Conference Call Meetings

Documentation

Getting Started With Processing