Rust Apps
July 26, 2026 · View on GitHub
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
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.
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.
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.
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.
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-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.
· Live Demo · Repository
manifold-rust
Pure Rust port of the Manifold 3D geometry library — fast, robust, watertight boolean operations on triangle meshes.
Thingi10K
Searchable 3D model archive browser for the Thingi10K dataset — 10,000 Thingiverse models with mesh quality metadata. Built with Rust/WASM.
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).
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).
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).
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.
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).














