Skip to content

linebender/bevy_vello

Repository files navigation

Bevy Vello

A vector graphics rendering integration for Bevy game engine using Vello.

Linebender Zulip MIT/Apache 2.0 Vello Following released Bevy versions
Dependency status Crates.io Docs Build status

Rendered with bevy_vello

bevy_vello provides rendering with vello in bevy. Vello is a cross-platform, 2D compute-centric vector graphics rendering library. There is support for rendering scenes, text, svgs, and lotties. Each can be rendered in UI or World space. Picking is also supported.

Quickstart to run an example:

cargo run -p <example name>

Bevy version support

bevy bevy_vello vello
0.17 0.11,main 0.6
0.16 0.9-0.10 0.5
0.15 0.7-0.8 0.4
0.14 0.5-0.6 0.3
0.13 0.1-0.4 0.2
< 0.13 unsupported

Cargo features

Warning

The support of SVG and Lottie is limited. If there is an SVG-related issue, please file the issue in vello_svg. If there is a Lottie-related issue, please file the issue in velato. Please see the respective backends for for more information about limitations.

Cargo feature Description Default?
text Render text from .ttf fonts with parley No
default_font Add Bevy's default font for text rendering No
svg Render .svg files with vello_svg No
lottie Render .json Lottie files with velato No
picking Enable picking events for render entities with AABBs No

Examples

Cross platform (Bevy)

cargo run -p <example name>

Web platform

Because Vello relies heavily on compute shaders, we rely on the emerging WebGPU standard to run on the web. Until browser support becomes widespread, it will probably be necessary to use development browser versions (e.g. Chrome Canary) and explicitly enable WebGPU.

This uses cargo-run-wasm to build the example for web, and host a local server for it

# Make sure the Rust toolchain supports the wasm32 target
rustup target add wasm32-unknown-unknown

# The binary name must also be explicitly provided as it differs from the package name
cargo run_wasm -p text

There is also a web demo available here on supporting web browsers.

Warning

The web is not currently a primary target for Vello, and WebGPU implementations are incomplete, so you might run into issues running this example.

Community

Discussion of Vello development happens in the Linebender Zulip, specifically the #vello channel. All public content can be read without logging in.

Contributions are welcome by pull request. The Rust code of conduct applies.

License

Licensed under either of

at your option

The files in subdirectories of the examples/assets directory are licensed solely under their respective licenses, available in the LICENSE file in their directories.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

About

An integration to render vector graphics with Vello in the Bevy game engine.

Topics

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks