finds.dev← search

// the find

rparrett/bevy_prototype_lyon

★ 816 · Rust · Apache-2.0 · updated Jun 2026

Draw 2D shapes in Bevy

A Bevy plugin that tessellates 2D shapes (circles, polygons, rectangles, lines, arcs, beziers, and SVG paths) with the lyon crate into custom Bevy meshes, so a shape becomes an entity with fill and stroke set through a builder. It is for Bevy users who want retained vector shapes rather than immediate-mode gizmos redrawn every frame.

- Tessellation is delegated to lyon, a mature path tessellator, so curve flattening, joins, and caps come from a library that has already solved them instead of hand-rolled geometry.

- The ShapeBuilder API keeps geometry as plain data (for example shapes::RegularPolygon with a radius) and applies fill and stroke separately, so you can change a shape's geometry or style without rebuilding the rest of the entity.

- The examples cover more than the happy path: dynamic_shape and dynamic_stroke_size point at runtime geometry and stroke changes, rounded_polygon covers corner rounding, and svg covers importing SVG art.

- Dual MIT/Apache-2.0 licensing, a cargo-deny config, and a CI workflow are in the repo, which makes it easier to vet for a project that has to pass a license audit.

- Each release tracks exactly one Bevy version and support is dropped as soon as the next Bevy ships. If you pin an older Bevy, you pin an older crate with no fixes, and every Bevy upgrade waits on this crate catching up.

- Shapes that change every frame are re-tessellated on the CPU and re-uploaded as meshes. The README says nothing about that cost, so benchmark your actual shape count before putting hundreds of animated shapes in a scene.

- The README example turns on Msaa::Sample4 on the camera, which suggests edges alias without MSAA. The docs don't state that outright, and a jagged shape is an easy thing to misdiagnose.

- The README speaks in the first person about a single maintainer, so responsiveness to Bevy releases depends on one person. The stars badge and demo link also point at Nilirad/bevy_prototype_lyon while the repo is rparrett/bevy_prototype_lyon, so those badges don't reflect this repository.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →