Which parts of ProcessingJS does Khan Academy support?


In our Drawing & Animation curriculum, we use the open source ProcessingJS library to do the drawing and animation.

Here are the differences between the ProcessingJS reference and what we support:

  • We do not support the Java-like syntax changes to JS, like voidclassextends, and super.
  • We use degrees by default for all angle parameters, instead of radians. Use angleMode to change to radians.
  • We use mouseIsPressed instead of mousePressed for the boolean because it is less confusing to have both a function and a boolean with the same name. Similarly, we use keyIsPressed instead of keyPressed.
  • We only support loading officially supported images and sounds via getImage() and getSound(), for moderation reasons.
  • We do not support all PImage manipulation functionality, for performance reasons.
  • We do not support all commands that are not specifically mentioned in the Documentation


As long as a ProcessingJS Reference command is not among the forbidden ones for moderation reasons or performance reasons and it works, you can use it on Khan Academy. However, if a ProcessingJS Reference command does not work or works erratically, we do not consider it a bug unless it is specifically mentioned in the Documentation.


Last updated October 4, 2017

Was this article helpful?
49 out of 52 found this helpful
Have more questions? Submit a request