awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
dimforge avatar

dimforge/nalgebra

0
View on GitHub↗
4,745 stars·553 forks·Rust·Apache-2.0·18 viewsnalgebra.rs↗

Nalgebra

nalgebra is a linear algebra library for Rust that provides matrix and vector operations with support for both compile-time and runtime dimensions. It functions as a numerical analysis library and a sparse matrix library, offering a mathematical framework capable of running in embedded environments and WebAssembly without requiring the Rust standard library.

The project distinguishes itself as a geometric transformation library, utilizing homogeneous coordinates, quaternions, and isometries to handle 3D rotations, translations, and projections. It implements a variety of matrix decompositions—including LU, QR, Cholesky, SVD, and eigendecomposition—to solve linear systems and analyze matrices.

The library covers broad capability areas including geometric computing for spatial transformations, computer graphics utilities for projection matrix composition and shader data export, and specialized sparse matrix management using compressed row and column storage. It also provides data management tools for matrix initialization, resizing, and parsing of Matrix Market files.

Features

  • No-Std Mathematical Frameworks - Designed to run in resource-constrained embedded environments by eliminating dependencies on the Rust standard library.
  • Linear Algebra Libraries - A comprehensive linear algebra library for Rust supporting both compile-time and runtime dimensions for matrices and vectors.
  • 3D Graphics Pipelines - Calculates projections, rotations, and transformations for rendering 3D scenes and objects using Rust.
  • Perspective Projections - Combines object orientation, camera position, and perspective projection to map 3D scenes.
  • Embedded Mathematics Libraries - Provides a complete mathematical framework capable of running in embedded environments without the Rust standard library.
  • Mathematical Frameworks - Offers a mathematical framework specifically designed to run in WebAssembly and embedded environments without the standard library.
  • Generic Scalar Abstractions - Implements mathematical operations over generic types to support diverse numeric formats like floats and integers.
  • Scalar Abstractions - Implements matrix and vector operations using generic types to support various floating-point and integer formats.
  • No-Standard-Library Modes - Avoids dependencies on the standard library to enable execution in embedded systems and WebAssembly.
  • Scientific & Mathematical Computing - Implements a comprehensive set of tools and methods for scientific research and numerical analysis.
  • Algebraic Dimension Definitions - Creates matrices and vectors with dimensions specified at compile-time for performance or runtime for flexibility.
  • Compile-Time Dimension Checking - Uses the type system to statically verify matrix and vector dimensions, preventing runtime shape mismatches.
  • Coordinate Transformations - Implements mathematical operations to transform points and vectors between different 3D reference frames.
  • Geometric Transformation Routines - Provides routines for applying linear transformations such as scaling, rotation, and projections to typed points and vectors.
  • Rotation Calculators - Provides utilities to construct rotation matrices and unit quaternions from axis-angle or Euler angle representations.
  • Numerical Libraries - Provides optimized algorithms for matrix operations and a wide variety of numerical decompositions.
  • Compressed Sparse Storage - Supports large-scale datasets using compressed sparse row and column formats to optimize memory usage.
  • Vector Operations - Provides fundamental mathematical primitives for performing operations on vectors and matrices.
  • Homogeneous Transformation Utilities - Uses four-by-four matrices to unify translations and rotations into single transformation operations.
  • Object Transformation Matrices - Applies scaling, rotation, and translation to 3D objects using isometry types or homogeneous matrices.
  • Array View Creation - Provides non-owning references to submatrices, rows, or columns using strides for non-consecutive elements.
  • Strided - Provides non-owning references to matrix sub-sections using memory offsets to avoid data copying.
  • Game Development Engines - Provides the spatial transformation and camera matrix logic essential for building game development engines.
  • Graphics API Data Export - Converts matrices and vectors into column-major arrays or raw pointers for compatibility with graphics APIs.
  • Orthographic Projections - Implements orthographic projection matrices to render 3D scenes without perspective distortion.
  • Ray-Casting Picking Logic - Converts 2D screen-space coordinates back into 3D view-space lines for ray casting and object picking.
  • Algebraic Dispatch - Uses generic traits to provide a consistent interface for different matrix decompositions and linear solvers.
  • WebAssembly - Supports execution in browser environments by providing a WebAssembly-compatible compilation target.
  • Algebraic Type Conversions - Provides mechanisms to transform data between different matrix and vector types and scaling precisions.
  • Cholesky Decomposition Utilities - Decomposes Hermitian positive-definite matrices into lower-triangular factors for solving linear systems.
  • Geometric Point Representations - Defines points as distinct entities from vectors to correctly support translation and displacement operations.
  • Isometry Computations - Combines rotations and translations into isometries to preserve distance and orientation for objects and cameras.
  • Eigendecomposition Routines - Computes eigenvalues and eigenvectors of square matrices through eigendecomposition.
  • Similarity Transformations - Implements uniform scaling combined with rotation and translation to preserve angles and parallel lines.
  • Linear System Solvers - Provides direct linear solvers and eigen-solvers to find solutions for systems of linear equations.
  • Matrix and Vector Construction - Constructs matrices using row slices, iterators, closures, identity patterns, or random values.
  • Matrix Component Accessors - Updates individual components or entire rows and columns within a mutable matrix.
  • Matrix Decompositions - Factors rectangular matrices into singular values and vectors to determine matrix rank and pseudo-inverses.
  • LU Decompositions - Factors matrices into lower and upper triangular components to compute determinants and solve linear systems.
  • QR Decompositions - Decomposes general matrices into unitary and upper triangular matrices to facilitate the computation of inverses.
  • Matrix Resizing - Adds or removes rows and columns from a matrix using fixed-size or dynamic-size adjustments.
  • Sparse Matrix Storage - Provides memory-efficient data structures that store only non-zero elements for large datasets.
  • Unit-Norm Type Wrapping - Wraps vectors and quaternions in specific types to guarantee a magnitude of one through the type system.
  • View Matrix Calculators - Provides utilities for calculating camera view matrices based on position and orientation for 3D scenes.

Star history

Star history chart for dimforge/nalgebraStar history chart for dimforge/nalgebra

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Nalgebra

Similar open-source projects, ranked by how many features they share with Nalgebra.
  • mathnet/mathnet-numericsmathnet avatar

    mathnet/mathnet-numerics

    3,717View on GitHub↗

    This project is a numerical computing library designed for scientific and engineering mathematical operations. It functions as a comprehensive linear algebra framework, a statistical analysis library, and a toolkit for mathematical optimization and numerical integration. The library is distinguished by its provider-based native acceleration, which allows managed code to be swapped for platform-native binary libraries to increase the performance of computationally intensive routines. It also supports a hybrid approach to matrix storage, implementing separate strategies for dense and sparse mat

    C#csharpdifferentiationfft
    View on GitHub↗3,717
  • arrayfire/arrayfirearrayfire avatar

    arrayfire/arrayfire

    4,888View on GitHub↗

    ArrayFire is a hardware-agnostic compute framework and JIT-compiled tensor engine designed for high-performance numerical computing. It serves as a GPU numerical computing library and parallel signal processing toolkit that abstracts hardware backends, allowing the same codebase to execute across various GPU architectures and CPUs. The project distinguishes itself through a JIT engine that uses expression compilation to fuse operations and minimize memory overhead. It employs a deferred execution graph to optimize computation chains and provides interoperability primitives to share data and e

    C++arrayfirecc-plus-plus
    View on GitHub↗4,888
  • jounce/surgeJounce avatar

    Jounce/Surge

    5,321View on GitHub↗

    Surge is a Swift library for high-performance numerical analysis, linear algebra, digital signal processing, and accelerated image manipulation. It utilizes the Accelerate framework to provide hardware-accelerated tools for matrix mathematics and signal processing. The library provides specialized capabilities for digital signal processing, including convolution, signal similarity analysis through cross-correlation, and domain transformations using fast Fourier transforms. It also includes a suite of tools for the rapid transformation and analysis of pixel buffers and image data. Beyond sign

    Swiftacceleratearithmeticconvolution
    View on GitHub↗5,321
  • mosra/magnummosra avatar

    mosra/magnum

    5,169View on GitHub↗

    Magnum is a C++ middleware suite for cross-platform graphics development and real-time data visualization. It provides a hardware-agnostic rendering layer that translates graphics commands into platform-specific calls, ensuring consistent behavior across different GPU drivers and APIs such as Vulkan. The project focuses on decoupling application logic from underlying hardware through abstract graphics and system utilities. It features a plugin-based resource importer for 3D assets and audio, a hierarchical scene graph for spatial transformations, and a high-performance signal-based event syst

    C++
    View on GitHub↗5,169
See all 30 alternatives to Nalgebra→

Frequently asked questions

What does dimforge/nalgebra do?

nalgebra is a linear algebra library for Rust that provides matrix and vector operations with support for both compile-time and runtime dimensions. It functions as a numerical analysis library and a sparse matrix library, offering a mathematical framework capable of running in embedded environments and WebAssembly without requiring the Rust standard library.

What are the main features of dimforge/nalgebra?

The main features of dimforge/nalgebra are: No-Std Mathematical Frameworks, Linear Algebra Libraries, 3D Graphics Pipelines, Perspective Projections, Embedded Mathematics Libraries, Mathematical Frameworks, Generic Scalar Abstractions, Scalar Abstractions.

What are some open-source alternatives to dimforge/nalgebra?

Open-source alternatives to dimforge/nalgebra include: mathnet/mathnet-numerics — This project is a numerical computing library designed for scientific and engineering mathematical operations. It… arrayfire/arrayfire — ArrayFire is a hardware-agnostic compute framework and JIT-compiled tensor engine designed for high-performance… mosra/magnum — Magnum is a C++ middleware suite for cross-platform graphics development and real-time data visualization. It provides… jounce/surge — Surge is a Swift library for high-performance numerical analysis, linear algebra, digital signal processing, and… gaoxiang12/slambook2 — This project is a set of exercise solutions and implementation guides for visual simultaneous localization and… gfxfundamentals/webgl-fundamentals — webgl-fundamentals is a comprehensive educational resource and graphics tutorial for learning hardware-accelerated 2D…