Education/Projects/ProcessingForTheWeb/Tasks: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
Line 815: Line 815:
| Pimage is in the library but it would be great to get PJS loading the images into the DOM dynamically. This is also a fairly common request on the Google group.  
| Pimage is in the library but it would be great to get PJS loading the images into the DOM dynamically. This is also a fairly common request on the Google group.  
|  
|  
|  
| [http://asydik.wordpress.com/category/professional/open-source/processing-js/ medel]
| Medium
| Medium
|-
|-

Revision as of 21:05, 17 November 2009

Summary

This page lists tasks to be done as part of the Processing For The Web project, in order to fully implement all of Processing in processing.js. The work is being led by David Humphrey and Al MacDonald, and done by students at Seneca College. You are welcome to join this work.

Task List

The following lists of Bugs, Features, and Functions was compiled by Al MacDonald.

Bugs

Bug Description Attachment/link Difficulty
variable + space + semicolon Defining a variable such as "float y ;" with a space between the number and the semicolon can cause regex parsing errors. Difficult
// Comment Using double slashed comments // at the end of any script will cause REGEX to loop on parsing, subsequently crashing browser. Quick solution is to add a blank line at the end of every script. Difficult
mouseX & mouseY mouseX and mouseY are returned as incorrect values when the canvas is a child of a relative element. Medium
nf() Using nf() on some numbers crashes FireFox. EG: String sf = nf(9.012, 3, 5); from http://processing.org/reference/color_datatype.html will not work. dhodgin will look into this one, has an idea. also needs support for 3 args Difficult
keyCode, CODED, etc Keyboard functions need fleshing out and cross-browser/cross-platform testing. Medium
The Angel Bug When the regex parse encounters strings with a comma in, it parses the word before the comma as a variable. Work around is to escape strings... String myString = “this \, is a string”; But that is in no way ideal. More info: http://hyper-metrix.com/processing-js/docs/?page=Angels%20Weep Difficult
Table bug Processing.js demos will not render if they are in a table. However any canvas demo does. Table test Undetermined
Boolean array bug Processing.js fails if an array of booleans is created with a variable defined before array. Boolean array test Undetermined
Overloading function bug Undetermined
Drop frame system A method to drop frames that are not drawn in time. This would be great for media-syncing if you want your app to stay in-time with audio and video. Not sure how plain-old JS timers will handle this... but it's worth testing Medium
array.clone looks like it only does a shallow copy and will cause issues with objects in an arrayList dhodgin will look into this one and test Unconfirmed

Missing Features

This is a list of all the out-standing functions in the Processing.js implementation. A more detailed description of the unfinished functions can be found at: http://processingjs.org/reference. (Click “toggle all” to see the list.)

3D Features

Name Description Who's working on it. STATUS Difficulty
initialization All the required code to get a 3D context ready for rendering. asalga Difficult
curve() Need the 3rd dimension here. asob Difficult
box() And here. asob Difficult
sphere() And here... asob Difficult
sphereDetail() Yep... lots of 3D needed. Difficult
rotateX() Done the math. Not implemented in in Processing.js. See: http://hascanvas.com/Disco for example. asob Difficult
rotateY() Done the math. Not implemented in in PJS. Superior code welcome. asob Difficult
rotateZ() Done the math. Not implemented in in PJS. Superior code welcome. asob Difficult
abientLight()
asalga Difficult
directionalLight()
asalga Difficult
lightFalloff()
lightSpecular()
Difficult
lights()
asalga Difficult
noLights()
asalga Difficult
normal() Done the math. Not implemented in in PJS. Superior code welcome. Difficult
pointLight()
asalga Difficult
spotLight()
Difficult
beginCamera()
medel Difficult
camera()
medel Difficult
endCamera()
medel Difficult
frustrum() Done the math. Not implemented in in PJS. Superior code welcome. medel Difficult
ortho()
medel Difficult
perspective()
medel Difficult
printCamera()
printProjection()
Difficult
modelX()
Difficult
modelY()
modelZ()
Difficult
screenX()
Difficult
screenY()
Difficult
screenZ()
Difficult
ambient()
Difficult
emissive()
Difficult
shininess()
Difficult
specular()
Difficult
scale() Only 2D implemented medel Difficult
rotate() Only 2D implemented medel Difficult
translate() Only 2D implemented medel Difficult
hint() Detects OpenGL hardware, specs etc. Difficult
PVector 2D or 3D vector should be returned. medel Implemented but still needs work. Difficult

Misc. Features

Name Description Who's working on it. STATUS Difficulty
delay() Some exploration done... a couple of work-arounds found. A deeper look into this needed as the work-arounds did not function as expected in all situations due to the non-blocking nature of Javascript animation techniques. dhodgin Difficult
popStyle() Requested by Google Group. mlam Difficult
private Worth the effort in Javascript? Maybe.
pushStyle() Requested by Google Group. mlam Difficult
cursor() Some work finished and pushed to master. asob Medium
focused andor Easy
noCursor() asob Easy
online Relevant in a Javascript environment? Perhaps. dhodgin Easy
screen Could be useful to get window.innerHeight etc? dhodgin Easy
long dhodgin Medium
Hashmap Medium
XMLElement Medium
binary() andor Medium
boolean() mlam Easy
hex() Tyrant911 Easy
unbinary() Tyrant911 Medium
unhex() dhodgin finished, checked-in Easy
join() Tyrant911 Easy
match() MinyXO Medium
matchAll() MinyXO Medium
nfc() dhodgin finished Easy
nfp() Tyrant911 Easy
nfs() dhodgin finished, checked-in Easy
trim() MinyXO Easy
split() MinyXO Easy
splitTokens() MinyXO Easy
append() MinyXO Easy
arrayCopy() MinyXO Easy
concat() Tyrant911 Easy
expand() dhodgin finished, checked-in Easy
reverse() Tyrant911 Easy
shorten() andor Easy
sort() andor Easy
splice() andor Easy
subset() andor Easy
PShape() Started working on this myself (outside of PJS). Can parse most SVGs. A whole ton of quircks/bugs cross-browser that stop this in it's tracks in terms of a pure-implementation. Have been adding these to Apple, Opera, BugZilla as I go. More details if needed. Difficult
bezierDetail() andor Difficult (While the math may be easy enough, it would be nice to have the browser handle this at the machine code level. Help from Fx dev team, new functionality please)?
bezierPoint() andor Difficult (While the math may be easy enough, it would be nice to have the browser handle this at the machine code level. Help from Fx dev team, new functionality please)?
bezierTangent() andor Difficult (While the math may be easy enough, it would be nice to have the browser handle this at the machine code level. Help from Fx dev team, new functionality please)?
curveDetail() Difficult (While the math may be easy enough, it would be nice to have the browser handle this at the machine code level. Help from Fx dev team, new functionality please)?
curvePoint() Difficult (While the math may be easy enough, it would be nice to have the browser handle this at the machine code level. Help from Fx dev team, new functionality please)?
curveTangent() Difficult (While the math may be easy enough, it would be nice to have the browser handle this at the machine code level. Help from Fx dev team, new functionality please)?
curveTightness() Difficult (ALREADY IN PJS, BUT.... it would be nice to have the browser handle this at the machine code level. Help from Fx dev team, new functionality please)?
noSmooth() Possible/worth the processing with Canvas? Probably not. Feedback welcome. Difficult (Another thing that would be nice if the Fx dev. team could provide this functionality)
strokeCap() Medium
strokeJoin() Medium
texture() Difficult
textureMode() Difficult
loadShape() SVG function. Difficult
shape() SVG function. Difficult
shapeMode() SVG function. Difficult
createInput() Difficult
loadBytes() Started working on this. Can read binary from file with JS using someone else's open-source. Not added into Processing.js yet. Medium
open() Impossible?
selectFolder() Impossible?
selectInput() Impossible?
param() Needed in JS? Medium
status() Don't think Firefox will let you change status bar with JS re: security. Medium?
save() Some work done by Google group. Could be combined with binary functions ot HTML5 functions to write directly to server? Difficult
saveFrame() As above in save(). Probably don't want to start saving TIFs in a web environment. Canvas exports png, gif, jpg natively already. Spec deviation from Processing proper may be wise. Difficult
PrintWriter Saves text to file. Difficult
beginRaw() Difficult
beginRecord() Difficult
createOutput() Difficult
createReader() Difficult
createWriter() Difficult
endRaw() Difficult
endRecord() Difficult
saveBytes() Difficult
saveStream() Difficult
saveStrings() Medium
selectOutput() Difficult
applyMatrix() Difficult ( could return glMultMatrix()? )
printMatrix() Medium
resetMatrix() andor Medium
blendColor() dhodgin Medium
brightness() dliu53 Medium
hue() dliu53 Medium
saturation() dliu53 Medium
PImage Pimage is in the library but it would be great to get PJS loading the images into the DOM dynamically. This is also a fairly common request on the Google group. medel Medium
imageMode() Medium
noTint() Medium
requestImage() No sure if this is actually needed in JS as DOM image would load async anyway. Probably worth looking into a little more. Medium
blend() Medium
copy() Medium
filter() Medium
PGraphics Could be worth-while to get PGraphics to use a separate canvas and getPixels() from it. Great for say... animating the mouth moving on one canvas before applying the result to a UV map for a 3D object. Medium-Difficult
Would this offer any performance/feature reward over using a reagular Javascript 1 dimensional array containing pixels?
PFont Already working. The existing routines will likely get either a) merged with PShape's SVG functions or b) dropped in favor of something faster re: real browser fonts if we can borrow a little time from Mozilla developers. (We are currently using SVGs.) Difficult (Fx dev. & talk to Bespin guys)
PVector 2D...3D vector should be returned. medel Implemented but still needs work. Difficult
exp() dhodgin finished Easy
log() dhodgin finished Easy
mag() andor Easy
map() dhodgin Easy
acos() dhodgin finished Easy
asin() dhodgin finished Easy
atan() dhodgin finished Easy