Rapier is a set of 2D and 3D physics engines written in Rust

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • geometric_algebra

    Generate(d) custom libraries for geometric algebras

  • I got sucked down a Geometric Algebra rabbit hole a few months ago, which seems like a remarkably concise and intuitive way to work in a very wide variety of geometries, including 2D, 3D, 4D+, non-euclidean etc. I've wondered if GA would make a good foundation for a physics engine...

    There are a few small rust libraries that look interesting [1][2], but none with a lot of traction.

    Has anyone looked into this?

    [1]: https://crates.io/keywords/geometric-algebra

    [2]: https://github.com/Lichtso/geometric_algebra

    If you dare, a good place to jump in might be Freya Holmér's Why can't you multiply vectors? - https://www.youtube.com/watch?v=htYh-Tq7ZBI

  • excalidraw

    Virtual whiteboard for sketching hand-drawn like diagrams

  • Fun fact: I used GA in Excalidraw, and it's still powering some of the interactions! https://github.com/excalidraw/excalidraw/blob/master/package...

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • crittershowdown

  • I built a game using Rapier! Using its deterministic mode, I built an online multiplayer game whereby players take turn slamming bugs against the other team and capture the hill.

    It doesn't have a single-player mode yet (writing an AI for it is a bit more challenging than the chess-like I made) but check it out at https://evrimzone.itch.io/crittershowdown and the physics/game logic source code at https://github.com/evrimoztamur/crittershowdown/blob/e4d9a19....

    I plan to write a post about how I wired it together and what I learned, but overall very solid library and well-thought of Rust-y API that enabled me to do everything I needed it to.

  • ros2_rust

    Rust bindings for ROS 2

  • I want to make this happen ! Do you know of any good robotics framework in Rust, as of today ? I heard that ROS2 was slowly including Rust [1], not sure at how did it go. Ros would be a good entry door to sensor fusion, mapping and localization. Because all of the hardware integration / abstraction is already done (in C++). I'm curious to know if company are using this.

    [1] https://github.com/ros2-rust/ros2_rust

  • rerun

    Visualize streams of multimodal data. Fast, easy to use, and simple to integrate. Built in Rust using egui.

  • Maybe the folks at Rerun [1] know something about it? I imagine at least some of their customers are Rust robotics shops.

    [1] https://github.com/rerun-io/rerun

  • ultraviolet

    A wide linear algebra crate for games and graphics.

  • This one has some more traction: https://github.com/fu5ha/ultraviolet

  • NotRoblox

    ECS-Multiplayer-Sandbox: Three.js Game Engine

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • r2r

    Minimal ROS 2 Rust bindings

  • You can also check https://github.com/sequenceplanner/r2r for ROS2 bindings (using in production at work for a couple of ROS nodes).

    But TBH, in a Rust world, it’s worth revisiting the assumptions behind the ROS node architecture, since Rust is so strong at scaling to large monolithic applications (due to the strict hierarchical code patterns it encourages).

    A transitional Rust approach, that doesn't try to reimplement everything from scratch, could do something like a strangler pattern: Take each ROS node, run them separately in “jails” with a Rust API around each one, then implement the plumbing/management logic in pure Rust.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts