-
-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Welcome to the lnagb.js wiki!
lnagb.js is a free, accessible, and educational linear algebra environment for math students, computer science students, and everyone who wants to study linear algebra or algorithms. This wiki is for project collaborators and potential contributors. If you want to help us, you have come to the right place! 🙌
June 10, 2021
lnagb.js is the flagship project of the Division of Linear Algebra at Vecma. Vecma is on a mission to study and make our discoveries of linear algebra, computer graphics, and the applications of linear algebra in computer graphics available for free to the mass public. Since 2019, I have invested most of my time as a developer into building a completely free, accessible, and educational linear algebra environment. Thanks a passion for computer science and explaining concepts in a simple language, as well as the opportunities I am fortunate to have had, I am still able to continue this project despite being the sole developer and contributor. It is my biggest project to date with the most commits (we recently reached 400 commits on June 6, 2021) and I don't think I will stop during my years ahead in university.
In many ways, I have learned so much from this project. I started lnagb.js after I had learned the basics of JavaScript, so it helped me solidify my knowledge and put my skills into practice. Then I found out about ES6 and rewrote the whole library (which was only about 200 lines of code back then) to adopt ECMAScript modules. I closely followed the 3D graphics JavaScript library three.js as a model and learned about API naming, code structures, and algorithms from it. If you use three.js, you can see that a lot of lnagb.js's objects are actually compatible with three.js. Recently, the project detached from the three.js model, defined its own goals and priorities, and is about to undergo a second major API revamp. I also learned about unit testing and the different roles which are normally taken by multiple people in a project. While developing lnagb.js, I am simultaneously a developer, a writer, a designer, a planner, a marketer, a learner, and a mentor. 2 years of lnagb.js on and off have been a worthwhile journey packed with lessons and experience for me. GitHub doesn't show this, but there is a story behind every chunk of commits.
I believe those are the intangible values that you will also receive from this project as a contributor, especially if you are still a student in an academic institution. Not only are you taking part in a huge effort of fostering a free learning platform powered by the Web—which I am sure will benefit many students of linear algebra and computer science—but you will also get away with the knowledge and experience that will serve you well. This entire wiki is dedicated to you. If it is not enough to answer your questions, you can always open a new issue on GitHub, or e-mail to you_create@protonmail.com.
How to download lnagb.js
How to load lnagb.js
Setting up for a Node project
How to build lnagb.js manually
How to download the lnagb.js website
How to download the lnagb.js wiki
How to compile the documentation manually
How lnagb.js encodes equations
How lnagb.js encodes matrices
How lnagb.js encodes vectors
The lnagb.js ecosystem
Components of lnagb.js
Library formats
Git branches
Workflow
Directory structure
Purposes of API designs
API design: Equations
API design: Matrices
API design: Vectors
Coded, documented, and built with ❤️ by Zach. Since 2019.