# Development of Matrix Operations library

**URL:** <https://discourse.processing.org/t/development-of-matrix-operations-library/16402>\
**Category:** Development\
**Created:** [December 14, 2019, 6:56pm UTC](https://discourse.processing.org/t/development-of-matrix-operations-library/16402 "2019-12-14T18:56:42Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![pallav12](https://avatars.discourse-cdn.com/v4/letter/p/34f0e0/32.png) [@pallav12](https://discourse.processing.org/u/pallav12)\
**Post date:** [December 14, 2019, 6:56pm UTC](https://discourse.processing.org/t/development-of-matrix-operations-library/16402/1 "2019-12-14T18:56:42Z")

</div>

Hello Everyone,  
I’ve been using processing for almost 2 years, it’s one for first place where I started coding. Now I want to contribute to processing in some way.  
The idea is since a lot of peoples are trying to make beautiful projects with AI and neural net, I want to develop a Library for basic matrix operations(inverse, transpose, multiply) to simplify their work.  
Very much like numpy in python  
but question is **Is there already a library in processing to do the exact same thing?** or **Is this a good idea?**  
I’ve searched on it and found there are some library to do the somewhat same thing(PVector but not exactly)  
Library in further version will move from numpy toward tensorflow, please guide me through  
**thank you**  
pardon if I violated any community guideline… it’s my first time asking

---

<div class="post-metadata">

**Author:** ![kll](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/kll/32/964_2.png) [@kll](https://discourse.processing.org/u/kll)\
**Post date:** [December 15, 2019, 3:35am UTC](https://discourse.processing.org/t/development-of-matrix-operations-library/16402/2 "2019-12-15T03:35:09Z")

</div>

hi @pallav12 ,  
yes, you might need to check out existing processing libraries  
or even JAVA tools ( ok some might be only available from processing 4 ( JAVA 11 ) )

but what i want to mention is a different kind of conflict ( sorry getting tricky )  
i did not play with it too much, but got the impression that  
processing p5.js  
now is regarding matrix possibly little bit ahead of  
processing java

in the times of " corporate design " for the foundation it was like:  
the first one wins and set the rules ( like syntax style function names …)  
anyhow

- you can imagine how much work that was ?  
[Reference / Processing.org](https://processing.org/reference/)  
[reference | p5.js](https://p5js.org/reference/)

so i think you need to get into the new tools from p5.js too  
( where / when can see 1.0? )  
prior to start with a processing java matrix library

( but i not want to hold you back… )  
and thanks for your

> [@pallav12](#):
>
> Now I want to contribute to processing in some way.

---

<div class="post-metadata">

**Author:** ![pallav12](https://avatars.discourse-cdn.com/v4/letter/p/34f0e0/32.png) [@pallav12](https://discourse.processing.org/u/pallav12)\
**Post date:** [December 15, 2019, 5:59am UTC](https://discourse.processing.org/t/development-of-matrix-operations-library/16402/3 "2019-12-15T05:59:07Z")

</div>

Thanks, @kll for your quick response… that was really helpful

---

<div class="post-metadata">

**Author:** ![jeremydouglass](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/jeremydouglass/32/20_2.png) [@jeremydouglass](https://discourse.processing.org/u/jeremydouglass)\
**Post date:** [December 19, 2019, 9:37pm UTC](https://discourse.processing.org/t/development-of-matrix-operations-library/16402/4 "2019-12-19T21:37:40Z")

</div>

> [@pallav12](#):
>
> Now I want to contribute to processing in some way.  
> The idea is since a lot of peoples are trying to make beautiful projects with AI and neural net, I want to develop a Library for basic matrix operations(inverse, transpose, multiply) to simplify their work.

@pallav12 – really exciting that you want to contribute! Looking forward to whatever you do.

### JAMA

A common Java matrix package that has been used in the past is JAMA: h ttps://math.nist.gov/javanumerics/jama/

Previous discussion of use in Processing:

> [@Found a Matrix library](https://discourse.processing.org/t/found-a-matrix-library/2910):
>
> I stumbled onto a library for manipulating and analyzing matrices. I’m pretty sure there are several options for doing this in Processing, but this option here works so I thought I would share the example. First, save a sketch and then add a “code” directory. Download the Jama(java matrix library) jar file from this link: [https://math.nist.gov/javanumerics/jama/](https://math.nist.gov/javanumerics/jama/) Then put this code into the saved sketch and save the downloaded jar file into the code directory of the sketch. If you downloa…

### Papaya

There is also a Processing 2 statistics library called Papaya with matrix features:

[http://adilapapaya.com/papayastatistics/#matrix](http://adilapapaya.com/papayastatistics/#matrix)

currently hosted by @kfrajer

> **[GitHub - kfrajer/papaya](https://github.com/kfrajer/papaya)**
>
> Contribute to kfrajer/papaya development by creating an account on GitHub.

Here is a a previous discussion of using Papaya in Processing 3 projects.

> [@Can someone try to find this library in Processing?](https://discourse.processing.org/t/can-someone-try-to-find-this-library-in-processing/1488):
>
> No matter what I do, Processing just won’t find this library. No matter where I put it or how many renames I do, Processing can’t find it and I can’t find an alternative anywhere. I basically need it for the “Descriptive” class [http://adilapapaya.com/papayastatistics/](http://adilapapaya.com/papayastatistics/) Anyone wanna give it a shot and then give a solution (or walkthrough of what/how they did) if they find whats wrong?

You could build on one of these / update them / create a wrapper for them … or make something new!

---

<div class="post-metadata">

**Author:** ![kll](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/kll/32/964_2.png) [@kll](https://discourse.processing.org/u/kll)\
**Post date:** [December 20, 2019, 1:10am UTC](https://discourse.processing.org/t/development-of-matrix-operations-library/16402/5 "2019-12-20T01:10:20Z")

</div>

followup here:

> [@Query regarding publishing a library](https://discourse.processing.org/t/query-regarding-publishing-a-library/16470):
>
> Hello everyone, I have developed a library for processing desktop, prepared docs, as well as examples using processing-library-template now I want to distribute it, though almost everything was clearly mentioned in Readme and wiki I still have few doubts. In processing library template there’s a folder named “distribution” do I have to make a zip of only that folder or whole project. “distribution” folder doesn’t contain few files like core.jar and data folder. How to submit my project, like …

---

<div class="post-metadata">

**Author:** ![pallav12](https://avatars.discourse-cdn.com/v4/letter/p/34f0e0/32.png) [@pallav12](https://discourse.processing.org/u/pallav12)\
**Post date:** [December 22, 2019, 10:15am UTC](https://discourse.processing.org/t/development-of-matrix-operations-library/16402/6 "2019-12-22T10:15:35Z")

</div>

thanks @kll @jeremydouglass for making this so easy for me
