The latest published Bevy Vello release is 0.7.1 which was released on 2025-03-12. You can find its changes documented below.
This release supports Bevy version 0.15 and has an MSRV of 1.85.
- All text rendering is now locked behind the
text
cargo feature. See the text example for help. - Replaces
skrifa
withparley
, which is the preferred shaping library in the linebender ecosystem. - Changes
VelloFont
struct internals. - A
parley::FontContext
andparley::LayoutContext
has been added in a lazy load multi threaded capacity. - Replaces
Rubik-Medium.ttf
from thetext
example with variable fontRobotoFlex-VariableFont_GRAD,XOPQ,XTRA,YOPQ,YTAS,YTDE,YTFI,YTLC,YTUC,opsz,slnt,wdth,wght.ttf
. - Updates the
text
example with an interactive, keyboard controlled, variable font example. - Adds
text_align
andwidth
toVelloTextSection
for controlling text alignment and width. - Adds
VelloTextAlign
enum for controlling text alignment. VelloSvgHandle
now derivesReflect
.VelloSvgAnchor
now derivesDebug
andReflect
.VelloLottieHandle
now derivesReflect
.VelloLottieAnchor
now derivesDebug
andReflect
.PlaybackOptions
now derivesReflect
.
vello_svg
is now only brought in when thesvg
feature is active.velato
is now only brought in when thelottie
feature is active.
0.7.1 - 2025-03-12
This release supports Bevy version 0.15 and has an MSRV of 1.85.
- Render loop no longer attempts to render items with 0 opacity.
- A panic was removed for lotties that are still in the process of loading.
0.7.0 - 2025-02-27
This release supports Bevy version 0.15 and has an MSRV of 1.85.
- Added
VelloView
marker component used for identifying cameras rendering vello content. - Added
VelloEntityCountDiagnosticsPlugin
which can be used to provide vello entity type data at runtime. See thediagnostics
example. - Added
VelloFrameProfileDiagnosticsPlugin
which can be used to provide vello frame profile data at runtime. See thediagnostics
example.
- bevy_vello now uses Bevy 0.15
Camera2d
now requires aVelloView
marker for rendering.VelloAsset
assets have been separated intoVelloSvg
andVelloLottie
VelloAssetBundle
has been separated intoVelloSvgBundle
andVelloLottieBundle
Handle<VelloAsset>
has been separated intoVelloSvgHandle
andVelloLottieHandle
VelloAssetAnchor
has been separated intoVelloSvgAnchor
andVelloLottieAnchor
- The license on bevy_vello no longer includes OFL 1.1
- The
experimental-dotLottie
feature was removed and merged into thelottie
feature. DotLottiePlayer
was renamed toLottiePlayer
.- All render types (
VelloSvgHandle
,VelloLottieHandle
,VelloScene
, andVelloTextSection
) now have required components as an alternative to their bundle counterparts.
- Removed
DebugVisualizations
. Now you should useBorderColor
for UI Nodes andGizmos
for world assets. Several examples show this capability, such as thesvg
andsvg_ui
examples. - Removed
CoordinateSpace
. If you wish to render scene or asset UI, insert aNode
component. For more information, see thescene_ui
,svg_ui
, orlottie_ui
examples. VelloText
(withCoordinateSpace::ScreenSpace
) can no longer render text in screen space. You should be using bevy's nativeText
for UI text, which is more feature rich and widely used.
- We no longer bundle the default font twice when the
default_font
feature is active.
0.6.1 - 2024-08-14
This release supports Bevy version 0.14 and has an MSRV of 1.80.
0.6.0 - 2024-08-09
This release supports Bevy version 0.14 and has an MSRV of 1.80.
- There is now a
default_font
feature that uses the sameFiraMono-subset.ttf
font used in the bevy/default_font feature. - There is now a
render_layers
example. - There is now a
cube_3d
example. - You may now choose the render layers for the Vello canvas. This can be configured through the
VelloPlugin
. - You may now choose to use CPU rendering with Vello and configure anti-aliasing. This can be configured through the
VelloPlugin
. - Added the
SkipEncoding
component, which allows you to skip encoding any renderable asset without removing the asset.
VelloPlugin
now has configuration. To retain previous behavior, useVelloPlugin::default()
.VelloRenderer
is now a resource.- The
VelloRenderer
will attempt CPU fallback if it cannot obtain a GPU. - The font API has changed significantly. Please visit
examples/text
for further usage. This is to prepare for additional text features such as linebreak behavior, bounded text, and text justification.VelloText
has been renamed toVelloTextSection
.VelloText.content
has been renamed toVelloText.value
.- There is now a
VelloTextStyle
struct and it is a required field ofVelloText
. VelloFont
has been removed fromVelloTextBundle
and moved intoVelloTextStyle
.
- The field
VelloAssetBundle.vector
was renamed toVelloAssetBundle.asset
. - Renamed
VelloAssetAlignment
toVelloAssetAnchor
. Fields were renamedalignment
were renamed toasset_anchor
. - Renamed
VelloTextAlignment
toVelloTextAnchor
. Fields were renamedalignment
were renamed totext_anchor
. - The
SSRenderTarget
(fullscreen quad that renders your frame) no longer renders at a zepth of-0.001
. This was a legacy hack used to ensure Gizmos rendered on-top.RenderLayers
should be used now (there's an example).
- Removed
ZFunction
s from the render pipeline. Now ordering is based solely on theTransform
's z component. If you depended on this behavior, you'll need to adjust the transform Z in a system prior to render. VelloRenderPlugin
is now private, as it is not helpful for downstream developers to add manually.- Removed
VelloCanvasMaterial
from prelude, as it is not typical to use.
- Text, assets, and scenes rendered will now correctly respect camera
RenderLayers
.
0.5.1 - 2024-07-04
This release supports Bevy version 0.14 and has an MSRV of 1.79.
- Updated to patch vello 0.2.1. It is now no-longer possible to panic when the vello encodings are empty.
- The demo CI now deploys that bevy_pancam has been updated to bevy 0.14
0.5.0 - 2024-07-04
This release supports Bevy version 0.14 and has an MSRV of 1.79.
- New
scene_ui
example demonstrating aVelloScene
attached to abevy::ui::Node
.
- Updated to bevy 0.14
- Updated to vello 0.2
- Updated to velato 0.3
- Updated to vello_svg 0.3
- Removed
Arc
in anotherArc
forVelloFont
- Opacity now correctly applies to SVG assets.
- Opacity now applies correctly to the lottie image group, rather than each element and path within it, causing overdraw.
VelloScene
components onbevy::ui::Node
entities now account for Bevy's UI layout systems and render at the expected viewport coordinates
- Pancam and/or egui from all examples besides the demo, as external dependencies can bottleneck upgrading to the next bevy version.
0.4.2 - 2024-05-26
This release supports Bevy version 0.13 and has an MSRV of 1.78.
- Updated to vello_svg v0.2.0, fixing viewboxes.
- Updates to velato v0.2.0, fixing viewboxes.
0.4.1 (Yanked) - 2024-05-26
0.4.0 - 2024-05-21
This release supports Bevy version 0.13 and has an MSRV of 1.78.
- New
svg
example - New
lottie
example
- The GitHub repo has migrated into the linebender org: https://github.com/linebender
- You may need to update your git ref from
loopystudios
tolinebender
- You may need to update your git ref from
- SVG and Lottie features are now feature-gated
- SVG (.svg) support is now added through a cargo feature
svg
. - Lottie (.json) support is now added through the cargo feature
lottie
. - experimental
dotLottie
features (LottiePlayer
,PlayerTransition
,PlayerState
) are now feature-gated through the cargo featureexperimental-dotLottie
. This is only partial support, and a work in progress. Theme
is now activated through thelottie
feature, as it was only possible to style runtime lotties.VelloAsset.metadata()
is no longer available, as it is specific to Lottie. There is now a trait,LottieExt
that can be imported to call.metadata()
on aComposition
instead. This is no longer fallible as a result.
- SVG (.svg) support is now added through a cargo feature
PlaybackAlphaOverride
was removed in favor of analpha
field onVelloAsset
.LottiePlayer
was renamed toDotLottiePlayer
.- Paths to several locations have changed, e.g.
bevy_vello::assets
->bevy_vello::integrations
- A slow startup delay for lottie assets to begin rendering
- A dotLottie issue where the first frame can jump on web platforms.
0.3.3 - 2024-05-13
This release supports Bevy version 0.13 and has an MSRV of 1.78.
- Projects with a 2D and 3D camera should no longer conflict with
bevy_vello
's queries.
0.3.2 - 2024-05-04
This release supports Bevy version 0.13 and has an MSRV of 1.78.
- Inverse
ZFunction
options added forBbTop
,BbBottom
,BbLeft
, andBbRight
.
- A panic that can happen in the extract schedule of lottie files.
- Z-ordering now works correctly for
Bb
functions.
0.3.1 - 2024-05-01
This release supports Bevy version 0.13 and has an MSRV of 1.77.
bevy_vello::prelude::Scene
was removed, since it conflicts withbevy::prelude::Scene
.
0.3.0 - 2024-05-01
This release supports Bevy version 0.13 and has an MSRV of 1.77.
VelloAssetAlignment
was added to theVelloAssetBundle
.
VectorFile
enum variants were flattened into tuple structs.
bevy_vello::VelloPlugin
was removed from the prelude.
0.2.2 - 2024-04-22
This release supports Bevy version 0.13 and has an MSRV of 1.77.
- Now when a
VelloScene
andVelloText
have the same Z-Index, text will be rendered above the scene.
0.2.1 - 2024-04-21
This release supports Bevy version 0.13 and has an MSRV of 1.77.
VelloTextAlignment
is now in thebevy_vello::prelude
.- The playhead now will now always be bounded
- A rare issue where, if an asset was not available, parts of a state would not transition properly.
0.2.0 - 2024-04-17
This release supports Bevy version 0.13 and has an MSRV of 1.77.
- Added the
VelloTextAlignment
component toVelloTextBundle
, which now helps control the alignment of text. - Added the
VelloTextAlignment
to thebevy_vello::prelude
.
- Text bounding boxes are now tighter as they are capped by the baseline.
0.1.2 - 2024-04-08
This release supports Bevy version 0.13 and has an MSRV of 1.77.
- Fixes a window hang issue in bevy on native platforms
0.1.1 - 2024-04-04
This release supports Bevy version 0.13 and has an MSRV of 1.77.
- fixed panic on Windows when window is minimized
0.1.0 - 2024-03-26
This release supports Bevy version 0.13 and has an MSRV of 1.77.
- Initial release