# GSOC 2019: Idea selection

**URL:** <https://discourse.processing.org/t/gsoc-2019-idea-selection/8898>\
**Category:** Summer of Code\
**Created:** [March 3, 2019, 3:27pm UTC](https://discourse.processing.org/t/gsoc-2019-idea-selection/8898 "2019-03-03T15:27:12Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![bhaskar](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/bhaskar/32/3949_2.png) [@bhaskar](https://discourse.processing.org/u/bhaskar)\
**Post date:** [March 3, 2019, 3:27pm UTC](https://discourse.processing.org/t/gsoc-2019-idea-selection/8898/1 "2019-03-03T15:27:13Z")

</div>

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.

Thanks!

---

<div class="post-metadata">

**Author:** ![lmccart](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/lmccart/32/12_2.png) [@lmccart](https://discourse.processing.org/u/lmccart)\
**Post date:** [March 3, 2019, 3:57pm UTC](https://discourse.processing.org/t/gsoc-2019-idea-selection/8898/2 "2019-03-03T15:57:30Z")

</div>

Hi @bhaskar, you can read more about GIF support details in [this issue](https://github.com/processing/p5.js/issues/3380).  
I think a math library is an interesting idea.  
Here is the [web editor repository](https://github.com/processing/p5.js-web-editor).

---

<div class="post-metadata">

**Author:** ![bhaskar](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/bhaskar/32/3949_2.png) [@bhaskar](https://discourse.processing.org/u/bhaskar)\
**Post date:** [March 3, 2019, 4:05pm UTC](https://discourse.processing.org/t/gsoc-2019-idea-selection/8898/3 "2019-03-03T16:05:28Z")

</div>

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

Thanks!

---

<div class="post-metadata">

**Author:** ![mcintyre](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/mcintyre/32/14561_2.png) [@mcintyre](https://discourse.processing.org/u/mcintyre)\
**Post date:** [March 3, 2019, 5:11pm UTC](https://discourse.processing.org/t/gsoc-2019-idea-selection/8898/4 "2019-03-03T17:11:25Z")

</div>

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](https://mathjs.org/) as an addon library–got some basic matrix operations to work with p5.Vector objects. Then I noticed a comment about [`createMatrix()`](https://github.com/processing/p5.js/blob/c7ad345b49fdf056c3e0e470377064bc490356ac/src/webgl/p5.Matrix.js#L39) in the p5.js source code and started implementing a version that accepts 2D Arrays as inputs.

```auto
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.

---

<div class="post-metadata">

**Author:** ![bhaskar](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/bhaskar/32/3949_2.png) [@bhaskar](https://discourse.processing.org/u/bhaskar)\
**Post date:** [March 4, 2019, 1:49pm UTC](https://discourse.processing.org/t/gsoc-2019-idea-selection/8898/5 "2019-03-04T13:49:41Z")

</div>

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](mailto: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!
