Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/linebender/bevy_vello
An integration to render with Vello in Bevy game engine.
https://github.com/linebender/bevy_vello
bevy bevy-engine velato vello
Last synced: 30 days ago
JSON representation
An integration to render with Vello in Bevy game engine.
- Host: GitHub
- URL: https://github.com/linebender/bevy_vello
- Owner: linebender
- License: apache-2.0
- Created: 2023-04-27T21:02:05.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-06-02T00:08:30.000Z (5 months ago)
- Last Synced: 2024-06-02T13:53:41.642Z (5 months ago)
- Topics: bevy, bevy-engine, velato, vello
- Language: Rust
- Homepage: https://loopystudios.github.io/bevy_vello/
- Size: 595 KB
- Stars: 76
- Watchers: 4
- Forks: 10
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE-APACHE
Awesome Lists containing this project
- awesome-bevy - Vello
README
# Bevy Vello
**A vector graphics rendering integration for [Bevy game engine](https://bevyengine.org) using [Vello](https://vello.dev).**
[![Linebender Zulip](https://img.shields.io/badge/Linebender-%23gpu-blue?logo=Zulip)](https://xi.zulipchat.com/#narrow/stream/197075-gpu)
[![MIT/Apache 2.0](https://img.shields.io/badge/license-MIT%2FApache-blue.svg)](#license)
[![Vello](https://img.shields.io/badge/vello-v0.2.1-purple.svg)](https://crates.io/crates/vello)
[![Following released Bevy versions](https://img.shields.io/badge/bevy%20tracking-released%20version-lightblue)](https://bevyengine.org/learn/quick-start/plugin-development/#main-branch-tracking)\
[![Dependency status](https://deps.rs/repo/github/linebender/bevy_vello/status.svg)](https://deps.rs/repo/github/linebender/bevy_vello)
[![Crates.io](https://img.shields.io/crates/v/bevy_vello.svg)](https://crates.io/crates/bevy_vello)
[![Docs](https://img.shields.io/docsrs/bevy_vello)](https://docs.rs/bevy_vello)
[![Build status](https://github.com/linebender/bevy_vello/workflows/CI/badge.svg)](https://github.com/linebender/bevy_vello/actions)`bevy_vello` is a cross-platform, 2D compute-centric vector graphics rendering library for Bevy. There is default support for rendering text and scenes, with additional opt-in features for SVG and Lottie. Experimental support for dotLottie is coming.
Quickstart to run the demo:
```shell
cargo run -p demo
```![Alt text](image.png)
## Bevy version support
|bevy|bevy_vello|
|---|---|
|0.14|0.5-0.6, main|
|0.13|0.1-0.4|
|< 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`](https://github.com/linebender/vello_svg). If there is a Lottie-related issue, please file the issue in [`velato`](https://github.com/linebender/velato). Please see the respective backends for for more information about limitations.|Cargo feature|Description|Default?|
|---|---|----|
|`default_font`|Include a default font, containing only ASCII characters, at the cost of a 20kB binary size increase|Yes|
|`svg`|Render `.svg` files with [`vello_svg`](https://github.com/linebender/vello_svg)|No|
|`lottie`|Render `.json` Lottie files with [`velato`](https://github.com/linebender/velato)|No|
|`experimental-dotLottie`|Render `.lottie` Lottie files. **Work in Progress**|No|## Examples
### Cross platform (Bevy)
```shell
cargo run -p
```### 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`](https://github.com/rukai/cargo-run-wasm) to build the example for web, and host a local server for it
```shell
# 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](https://linebender.github.io/bevy_vello) 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](https://xi.zulipchat.com/), specifically the [#gpu stream](https://xi.zulipchat.com/#narrow/stream/197075-gpu). All public content can be read without logging in.
Contributions are welcome by pull request. The [Rust code of conduct](https://www.rust-lang.org/policies/code-of-conduct) applies.
## License
Licensed under either of
- Apache License, Version 2.0
([LICENSE-APACHE](LICENSE-APACHE) or )
- MIT license
([LICENSE-MIT](LICENSE-MIT) or )at your option
The files in subdirectories of the [`examples/assets`](/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.