Rust Apps

July 26, 2026 · View on GitHub

Rust Apps

A curated suite of Rust libraries and applications by Lars Brubaker, bundled together as Git submodules so you can clone, build, and update them in one shot.

The stack works from the bottom up: low-level geometry and physics libraries (clipper2-rust, tess2-rust, manifold-rust, box2d-rust, box3d-rust) feed into the AGG-based rendering core (agg-rust + agg-gui), which in turn powers the end-user apps (atomartist, antidote, solitaire, instant-astronomer, Thingi10K). Everything is pure Rust, runs natively on Windows / macOS / Linux, and most of the apps also build to WebAssembly so you can try them in a browser without installing anything.

Live stats dashboard — stars, forks, watchers, open issues, and open PRs for every repo in the suite, refreshed daily via GitHub Pages.

Clone with all submodules

git clone --recurse-submodules https://github.com/larsbrubaker/rust-apps.git

To update all submodules to their latest commits:

git submodule update --remote --merge

Support the Project

Buy Me A Coffee

This project — and the libraries and apps it bundles — is open-source and free to use, maintained in spare time as a labor of love. Friends James Smith and Dan Ruskin help out from time to time too.

If you find it useful, here are a few ways to help keep development going:

  • Donations: Buy Me a Coffee — every coffee helps.
  • Star the repo: Costs nothing and helps others find the project.
  • Report issues: Open an issue for bugs or feature ideas.
  • Contribute: PRs welcome — open an issue first to discuss larger changes.

Repositories

clipper2-rust

Complete, pure Rust port of the Clipper2 C++ library by Angus Johnson — polygon clipping and offsetting with support for union, intersection, difference, and XOR operations.

clipper2-rust demo

Live Demo · Repository


box2d-rust

Pure Rust port (in progress) of Box2D v3 by Erin Catto — the 2D physics engine, ported module by module with exact behavioral matching, including its cross-platform deterministic math. Full b2World_Step simulation is running; interactive wasm demos mirror the upstream samples app.

box2d-rust demo

Live Demo · Repository · crates.io


box3d-rust

Pure Rust port (just started) of Box3D by Erin Catto — the new 3D physics engine released in June 2026, ported module by module with exact behavioral matching following the same playbook as box2d-rust.

box3d-rust demo

Live Demo · Repository · crates.io


tess2-rust

Pure Rust port of libtess2 — the SGI tessellation library for converting complex polygons (including self-intersecting and with holes) into triangles.

tess2-rust demo

Live Demo · Repository


agg-rust

Pure Rust port of Anti-Grain Geometry (AGG) 2.6 — a high-quality 2D vector graphics rendering engine with sub-pixel accuracy and anti-aliasing.

agg-rust demo

Live Demo · Repository


agg-gui

A Rust GUI framework built on top of agg-rust — provides widgets, layout, and rendering for desktop applications using AGG as the rendering backend. Immediate-mode widget tree, Y-up coordinates, halo-AA GL pipeline, multi-touch support.

agg-gui demo

crates.io · Live Demo · Repository


manifold-rust

Pure Rust port of the Manifold 3D geometry library — fast, robust, watertight boolean operations on triangle meshes.

manifold-rust demo

Live Demo · Repository


Thingi10K

Searchable 3D model archive browser for the Thingi10K dataset — 10,000 Thingiverse models with mesh quality metadata. Built with Rust/WASM.

Thingi10K demo

Live Demo · Repository


atomartist

Visual node-based 3D design tool in pure Rust. Wire together typed nodes — primitives, transforms, boolean operations, extrusions, imported meshes — and watch the resulting 3D geometry update live in the viewport. Built on agg-gui, manifold-rust, clipper2-rust, and tess2-rust. Runs natively (Windows / macOS / Linux) and in the browser (WASM via WebGPU / WebGL2).

atomartist demo

Live Demo · Repository


antidote

Bubble-trap virus puzzle game in Rust — rendered with agg-gui, physics by rapier2d, persisted to a multi-game Supabase Postgres backend. Runs natively (winit + wgpu) and in the browser (WebAssembly).

antidote demo

Live Demo · Repository


solitaire

Four solitaire variants in Rust — Klondike, FreeCell, Spider, and Microsoft-style Classic. Rendered with agg-gui, persisted to the same Supabase backend as antidote. Runs natively (winit + wgpu) and in the browser (WebAssembly).

solitaire demo

Live Demo · Repository


AstroRock

A faithful Rust port of AstroRock, the 1995–97 Windows 95 DirectDraw asteroids game by Lars Brubaker — the original 8-bit palettized compositor, deterministic 30 Hz simulation, sprites, sounds, and music, rebuilt on agg-gui. Runs natively (winit + wgpu) and in the browser (WebAssembly), with tilt-steered touch controls on mobile.

AstroRock demo

Live Demo · Repository


instant-astronomer

Point your phone at the sky and see what you're looking at — stars, planets, the Sun, the Moon, constellations, all driven by your location, the current time, and (on mobile) the device's compass + IMU. Tap any bright object to identify it: "that's Venus, magnitude −4.4." Rendered entirely through agg-gui — no separate WebGL / wgpu 3-D pipeline. Runs natively (winit + wgpu) and in the browser (WebAssembly).

instant-astronomer demo

Live Demo · Repository