GSOC 2019: Idea selection

Hi everyone,

I am Bhaskar Singh a computer science and engineering student from The National Institute of Engineering, Mysore. I would love to participate in this year’s GSOC and have gone through the Idea list. I am willing to contribute for the following ideas:

  • Adding GIF support (p5js) :
    I have some doubts about this as gif can be added by simply changing the attribute but i think
    the loadImage() function does not work properly. This could be solved by using blobs i think.
    Please someone elaborate.

  • Addon Library Development (p5js):
    A library for performing mathematical operations and calculations which will have support for
    matrices, determinant, trigonometry, exponent, support for vectors, support for statistics also etc.
    As I have seen Daniel Shiffman’s tutorial for creating our own toy neural network where he
    implemented the matrix operations and thought that p5 should having a math library.

  • Mobile/Responsive Design Implementation (p5js web editor):
    I would love to do this as it involve being creative and can experimentation can be done. I am not
    able to find the git repository for the web editor please help.



Hi @bhaskar, you can read more about GIF support details in this issue.
I think a math library is an interesting idea.
Here is the web editor repository.


Hey @lmccart, Thanks for the help. Can you give some suggestions to the Addon Libary Development idea for a math library.


Hi @bhaskar, glad to hear you’re interested in developing a math library! I think it could be a great resource.

I teach high school mathematics (integrating p5.js this spring) and would love to help out. @saberkhan can connect you with educators who may also be interested.

I plan to reteach linear systems using matrices with p5.js, so I recently experimented with wrapping math.js as an addon library–got some basic matrix operations to work with p5.Vector objects. Then I noticed a comment about createMatrix() in the p5.js source code and started implementing a version that accepts 2D Arrays as inputs.

p5.prototype.createMatrix = function () {
  const m = arguments[0].length;
  const n = arguments[0][0].length;
  if (m !== n || (!m || !n)) {
    throw new Error('Matrix must be square')

  const args = new Array(arguments.length);
  for (let i = 0; i < args.length; i++) {
    args[i] = arguments[i];

  const mat = new p5.Matrix();
  return mat;

That’s where I left off last week.


Hey @mcintyre,

I am glad to help you out and let’s collaborate and make this project a reality. Feel free to contact me and lets plan out. Here’s my email: . There is a lot that has to be done. Give me some details about your views about this and let’s do this. Your comment means a lot to me, So mail me and i’ll get back to you.