# 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) :
the loadImage() function does not work properly. This could be solved by using blobs i think.

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

Thanks!

3 Likes

I think a math library is an interesting idea.
Here is the web editor repository.

2 Likes

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

Thanks!

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();
mat.set(args[0]);

return mat;
};
``````

That’s where I left off last week.

4 Likes

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: bhaskarsingh161197@gmail.com . 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.

Thanks!

2 Likes