A collection of mathematical functions and examples for JavaScript and GLSL, focusing on 2D/3D graphics and vector operations.
Maths is a learning-focused repository containing mathematical functions and examples implemented in both JavaScript and GLSL. It provides practical code snippets for common operations in graphics programming, such as vector math, trigonometric calculations, and geometric transformations. The project helps developers understand and implement mathematical concepts essential for 2D/3D graphics and shader development.
Graphics programmers, game developers, and creative coders working with WebGL, shaders, or computational geometry who need reference implementations of mathematical operations. It's particularly useful for those learning GLSL or transitioning mathematical concepts from JavaScript to shader languages.
Developers choose Maths for its dual-language approach (JavaScript and GLSL) that helps bridge understanding between CPU and GPU programming. The project offers clean, practical examples focused specifically on graphics programming needs rather than general mathematics, making it a focused reference for visual computing tasks.
learning maths again
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides side-by-side implementations in JavaScript and GLSL, making it easier to translate mathematical concepts between CPU and GPU programming, as shown in the radians/degrees conversion and vector operations.
Includes practical code snippets tailored for graphics programming, such as 2D point rotation using matrices and vector projections, directly applicable to shader development.
Functions are presented as minimal, reusable snippets—like SOHCAHTOA calculations and vector normalization—requiring no abstraction layers for quick integration.
Covers only basic operations; advanced graphics math such as matrix decompositions, interpolation, or quaternions is absent, reducing its utility for complex projects.
Lacks npm packaging, unit tests, or performance benchmarks, forcing manual code copying and making it unreliable for production use without additional validation.
README provides code snippets with minimal explanatory context or usage guidelines, which may hinder understanding for those new to the mathematical concepts.