How can we help?

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.

Click here to see the documentation of the supported ProcessingJS items. You can also find this documentation available in one of the tabs below the programs you work on.