{"id":19074694,"url":"https://github.com/linebender/velato","last_synced_at":"2025-08-21T02:31:13.656Z","repository":{"id":183517954,"uuid":"614965075","full_name":"linebender/velato","owner":"linebender","description":"An integration to parse and render Lottie with Vello.","archived":false,"fork":false,"pushed_at":"2025-06-27T10:59:24.000Z","size":447,"stargazers_count":112,"open_issues_count":5,"forks_count":15,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-07-22T17:59:39.739Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://linebender.org/velato/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/linebender.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-03-16T17:10:31.000Z","updated_at":"2025-06-27T10:59:27.000Z","dependencies_parsed_at":"2024-07-21T09:42:56.287Z","dependency_job_id":"6957b15a-10ea-4475-8d55-e9b921bf6022","html_url":"https://github.com/linebender/velato","commit_stats":null,"previous_names":["linebender/velato"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/linebender/velato","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linebender%2Fvelato","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linebender%2Fvelato/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linebender%2Fvelato/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linebender%2Fvelato/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/linebender","download_url":"https://codeload.github.com/linebender/velato/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linebender%2Fvelato/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271416771,"owners_count":24755950,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-21T02:00:08.990Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-09T01:52:03.026Z","updated_at":"2025-08-21T02:31:13.645Z","avatar_url":"https://github.com/linebender.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# Velato\n\n**An integration to parse and render [Lottie](https://lottie.github.io/) with [Vello](https://vello.dev).**\n\n[![Linebender Zulip](https://img.shields.io/badge/Linebender-%23vello-blue?logo=Zulip)](https://xi.zulipchat.com/#narrow/stream/197075-vello)\n[![dependency status](https://deps.rs/repo/github/linebender/velato/status.svg)](https://deps.rs/repo/github/linebender/velato)\n[![MIT/Apache 2.0](https://img.shields.io/badge/license-MIT%2FApache-blue.svg)](#license)\n[![vello version](https://img.shields.io/badge/vello-v0.5.0-purple.svg)](https://crates.io/crates/vello)\\\n[![Crates.io](https://img.shields.io/crates/v/velato.svg)](https://crates.io/crates/velato)\n[![Docs](https://docs.rs/velato/badge.svg)](https://docs.rs/velato)\n[![Build status](https://github.com/linebender/velato/workflows/CI/badge.svg)](https://github.com/linebender/velato/actions)\n\n\u003c/div\u003e\n\n\u003e [!WARNING]\n\u003e The goal of this crate is to provide coverage of the large Lottie spec, up to what vello can render, for use in interactive graphics. We are working towards correctness, but there are missing features listed below.\n\n## Version compatibility\n\n| velato | vello |\n| ------ | ----- |\n| 0.6    | 0.5   |\n| 0.5    | 0.4   |\n| 0.4    | 0.3   |\n| 0.3    | 0.2   |\n| 0.1, 0.2 | 0.1   |\n\n## Missing features\n\nSeveral Lottie features are not yet supported, including:\n\n- Position keyframe (`ti`, `to`) easing\n- Time remapping (`tm`)\n- Text\n- Image embedding\n- Advanced shapes (stroke dash, zig-zag, etc.)\n- Advanced effects (motion blur, drop shadows, etc.)\n- Correct color stop handling\n- Split rotations\n- Split positions\n\n## Usage\n\nVelato makes it simple to encode Lottie as a [`vello::Scene`](https://docs.rs/vello/*/vello/struct.Scene.html).\n\n```rust\n// Parse your lottie file\nlet lottie = include_str!(\"../lottie.json\");\nlet composition = velato::Composition::from_str(lottie).expect(\"valid file\");\n\n// Render to a scene\nlet mut new_scene = vello::Scene::new();\n\n// Render to a scene!\nlet mut renderer = velato::Renderer::new();\nlet frame = 0.0; // Arbitrary number chosen. Ensure it's a valid frame!\nlet transform = vello::kurbo::Affine::IDENTITY;\nlet alpha = 1.0;\nrenderer.render(\u0026composition, frame, transform, alpha, \u0026mut new_scene);\n```\n\n## Examples\n\n### Cross platform (Winit)\n\n```shell\ncargo run -p with_winit\n```\n\nYou can also load an entire folder or individual files.\n\n```shell\ncargo run -p with_winit -- examples/assets\n```\n\n### Web platform\n\nBecause Vello relies heavily on compute shaders, we rely on the emerging WebGPU standard to run on the web.\nUntil browser support becomes widespread, it will probably be necessary to use development browser versions (e.g. Chrome Canary) and explicitly enable WebGPU.\n\nThis uses [`cargo-run-wasm`](https://github.com/rukai/cargo-run-wasm) to build the example for web, and host a local server for it\n\n```shell\n# Make sure the Rust toolchain supports the wasm32 target\nrustup target add wasm32-unknown-unknown\n\n# The binary name must also be explicitly provided as it differs from the package name\ncargo run_wasm -p with_winit --bin with_winit_bin\n```\n\nThere is also a web demo [available here](https://linebender.github.io/velato) on supporting web browsers.\n\n\u003e [!WARNING]\n\u003e The web is not currently a primary target for Vello, and WebGPU implementations are incomplete, so you might run into issues running this example.\n\n## Minimum supported Rust Version (MSRV)\n\nThis version of Velato has been verified to compile with **Rust 1.85** and later.\n\nFuture versions of Velato might increase the Rust version requirement.\nIt will not be treated as a breaking change and as such can even happen with small patch releases.\n\n\u003cdetails\u003e\n\u003csummary\u003eClick here if compiling fails.\u003c/summary\u003e\n\nAs time has passed, some of Velato's dependencies could have released versions with a higher Rust requirement.\nIf you encounter a compilation issue due to a dependency and don't want to upgrade your Rust toolchain, then you could downgrade the dependency.\n\n```sh\n# Use the problematic dependency's name and version\ncargo update -p package_name --precise 0.1.1\n```\n\n\u003c/details\u003e\n\n## Community\n\nDiscussion of Velato development happens in the [Linebender Zulip](https://xi.zulipchat.com/), specifically the [#vello channel](https://xi.zulipchat.com/#narrow/channel/197075-vello). All public content can be read without logging in.\n\nContributions are welcome by pull request. The [Rust code of conduct](https://www.rust-lang.org/policies/code-of-conduct) applies.\n\n## License\n\nLicensed under either of\n\n- Apache License, Version 2.0\n  ([LICENSE-APACHE](LICENSE-APACHE) or \u003chttp://www.apache.org/licenses/LICENSE-2.0\u003e)\n- MIT license\n  ([LICENSE-MIT](LICENSE-MIT) or \u003chttp://opensource.org/licenses/MIT\u003e)\n\nat your option.\n\nThe files in subdirectories of the [`examples/assets`](/examples/assets) directory are licensed solely under\ntheir respective licenses, available in the `LICENSE` file in their directories.\n\n## Contribution\n\nUnless you explicitly state otherwise, any contribution intentionally submitted\nfor inclusion in the work by you, as defined in the Apache-2.0 license, shall be\ndual licensed as above, without any additional terms or conditions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinebender%2Fvelato","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flinebender%2Fvelato","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinebender%2Fvelato/lists"}