bevy 0.8.1

A refreshingly simple data-driven game engine and app framework
Documentation
[[example]]
name = "hello_world"
path = "examples/hello_world.rs"

[[example]]
name = "move_sprite"
path = "examples/2d/move_sprite.rs"

[[example]]
name = "rotation"
path = "examples/2d/rotation.rs"

[[example]]
name = "mesh2d"
path = "examples/2d/mesh2d.rs"

[[example]]
name = "mesh2d_manual"
path = "examples/2d/mesh2d_manual.rs"

[[example]]
name = "mesh2d_vertex_color_texture"
path = "examples/2d/mesh2d_vertex_color_texture.rs"

[[example]]
name = "shapes"
path = "examples/2d/shapes.rs"

[[example]]
name = "sprite"
path = "examples/2d/sprite.rs"

[[example]]
name = "sprite_flipping"
path = "examples/2d/sprite_flipping.rs"

[[example]]
name = "sprite_sheet"
path = "examples/2d/sprite_sheet.rs"

[[example]]
name = "text2d"
path = "examples/2d/text2d.rs"

[[example]]
name = "texture_atlas"
path = "examples/2d/texture_atlas.rs"

[[example]]
name = "transparency_2d"
path = "examples/2d/transparency_2d.rs"

[[example]]
name = "3d_scene"
path = "examples/3d/3d_scene.rs"

[[example]]
name = "3d_shapes"
path = "examples/3d/shapes.rs"

[[example]]
name = "lighting"
path = "examples/3d/lighting.rs"

[[example]]
name = "lines"
path = "examples/3d/lines.rs"

[[example]]
name = "spotlight"
path = "examples/3d/spotlight.rs"

[[example]]
name = "load_gltf"
path = "examples/3d/load_gltf.rs"

[[example]]
name = "msaa"
path = "examples/3d/msaa.rs"

[[example]]
name = "orthographic"
path = "examples/3d/orthographic.rs"

[[example]]
name = "parenting"
path = "examples/3d/parenting.rs"

[[example]]
name = "pbr"
path = "examples/3d/pbr.rs"

[[example]]
name = "render_to_texture"
path = "examples/3d/render_to_texture.rs"

[[example]]
name = "shadow_biases"
path = "examples/3d/shadow_biases.rs"

[[example]]
name = "shadow_caster_receiver"
path = "examples/3d/shadow_caster_receiver.rs"

[[example]]
name = "skybox"
path = "examples/3d/skybox.rs"
required-features = ["ktx2", "zstd"]

[[example]]
name = "spherical_area_lights"
path = "examples/3d/spherical_area_lights.rs"

[[example]]
name = "split_screen"
path = "examples/3d/split_screen.rs"

[[example]]
name = "texture"
path = "examples/3d/texture.rs"

[[example]]
name = "transparency_3d"
path = "examples/3d/transparency_3d.rs"

[[example]]
name = "two_passes"
path = "examples/3d/two_passes.rs"

[[example]]
name = "update_gltf_scene"
path = "examples/3d/update_gltf_scene.rs"

[[example]]
name = "vertex_colors"
path = "examples/3d/vertex_colors.rs"

[[example]]
name = "wireframe"
path = "examples/3d/wireframe.rs"

[[example]]
name = "animated_fox"
path = "examples/animation/animated_fox.rs"

[[example]]
name = "animated_transform"
path = "examples/animation/animated_transform.rs"

[[example]]
name = "custom_skinned_mesh"
path = "examples/animation/custom_skinned_mesh.rs"

[[example]]
name = "gltf_skinned_mesh"
path = "examples/animation/gltf_skinned_mesh.rs"

[[example]]
name = "custom_loop"
path = "examples/app/custom_loop.rs"

[[example]]
name = "drag_and_drop"
path = "examples/app/drag_and_drop.rs"

[[example]]
name = "empty"
path = "examples/app/empty.rs"

[[example]]
name = "empty_defaults"
path = "examples/app/empty_defaults.rs"

[[example]]
name = "headless"
path = "examples/app/headless.rs"

[[example]]
name = "logs"
path = "examples/app/logs.rs"

[[example]]
name = "plugin"
path = "examples/app/plugin.rs"

[[example]]
name = "plugin_group"
path = "examples/app/plugin_group.rs"

[[example]]
name = "return_after_run"
path = "examples/app/return_after_run.rs"

[[example]]
name = "thread_pool_resources"
path = "examples/app/thread_pool_resources.rs"

[[example]]
name = "no_renderer"
path = "examples/app/no_renderer.rs"

[[example]]
name = "without_winit"
path = "examples/app/without_winit.rs"

[[example]]
name = "asset_loading"
path = "examples/asset/asset_loading.rs"

[[example]]
name = "custom_asset"
path = "examples/asset/custom_asset.rs"

[[example]]
name = "custom_asset_io"
path = "examples/asset/custom_asset_io.rs"

[[example]]
name = "hot_asset_reloading"
path = "examples/asset/hot_asset_reloading.rs"

[[example]]
name = "async_compute"
path = "examples/async_tasks/async_compute.rs"

[[example]]
name = "external_source_external_thread"
path = "examples/async_tasks/external_source_external_thread.rs"

[[example]]
name = "audio"
path = "examples/audio/audio.rs"

[[example]]
name = "audio_control"
path = "examples/audio/audio_control.rs"

[[example]]
name = "log_diagnostics"
path = "examples/diagnostics/log_diagnostics.rs"

[[example]]
name = "custom_diagnostic"
path = "examples/diagnostics/custom_diagnostic.rs"

[[example]]
name = "ecs_guide"
path = "examples/ecs/ecs_guide.rs"

[[example]]
name = "component_change_detection"
path = "examples/ecs/component_change_detection.rs"

[[example]]
name = "custom_query_param"
path = "examples/ecs/custom_query_param.rs"

[[example]]
name = "event"
path = "examples/ecs/event.rs"

[[example]]
name = "fixed_timestep"
path = "examples/ecs/fixed_timestep.rs"

[[example]]
name = "generic_system"
path = "examples/ecs/generic_system.rs"

[[example]]
name = "hierarchy"
path = "examples/ecs/hierarchy.rs"

[[example]]
name = "iter_combinations"
path = "examples/ecs/iter_combinations.rs"

[[example]]
name = "parallel_query"
path = "examples/ecs/parallel_query.rs"

[[example]]
name = "removal_detection"
path = "examples/ecs/removal_detection.rs"

[[example]]
name = "startup_system"
path = "examples/ecs/startup_system.rs"

[[example]]
name = "state"
path = "examples/ecs/state.rs"

[[example]]
name = "system_chaining"
path = "examples/ecs/system_chaining.rs"

[[example]]
name = "system_closure"
path = "examples/ecs/system_closure.rs"

[[example]]
name = "system_param"
path = "examples/ecs/system_param.rs"

[[example]]
name = "system_sets"
path = "examples/ecs/system_sets.rs"

[[example]]
name = "timers"
path = "examples/ecs/timers.rs"

[[example]]
name = "alien_cake_addict"
path = "examples/games/alien_cake_addict.rs"

[[example]]
name = "breakout"
path = "examples/games/breakout.rs"

[[example]]
name = "contributors"
path = "examples/games/contributors.rs"

[[example]]
name = "game_menu"
path = "examples/games/game_menu.rs"

[[example]]
name = "char_input_events"
path = "examples/input/char_input_events.rs"

[[example]]
name = "gamepad_input"
path = "examples/input/gamepad_input.rs"

[[example]]
name = "gamepad_input_events"
path = "examples/input/gamepad_input_events.rs"

[[example]]
name = "keyboard_input"
path = "examples/input/keyboard_input.rs"

[[example]]
name = "keyboard_modifiers"
path = "examples/input/keyboard_modifiers.rs"

[[example]]
name = "keyboard_input_events"
path = "examples/input/keyboard_input_events.rs"

[[example]]
name = "mouse_input"
path = "examples/input/mouse_input.rs"

[[example]]
name = "mouse_input_events"
path = "examples/input/mouse_input_events.rs"

[[example]]
name = "mouse_grab"
path = "examples/input/mouse_grab.rs"

[[example]]
name = "touch_input"
path = "examples/input/touch_input.rs"

[[example]]
name = "touch_input_events"
path = "examples/input/touch_input_events.rs"

[[example]]
name = "reflection"
path = "examples/reflection/reflection.rs"

[[example]]
name = "generic_reflection"
path = "examples/reflection/generic_reflection.rs"

[[example]]
name = "reflection_types"
path = "examples/reflection/reflection_types.rs"

[[example]]
name = "trait_reflection"
path = "examples/reflection/trait_reflection.rs"

[[example]]
name = "scene"
path = "examples/scene/scene.rs"

[[example]]
name = "custom_vertex_attribute"
path = "examples/shader/custom_vertex_attribute.rs"

[[example]]
name = "post_processing"
path = "examples/shader/post_processing.rs"

[[example]]
name = "shader_defs"
path = "examples/shader/shader_defs.rs"

[[example]]
name = "shader_material"
path = "examples/shader/shader_material.rs"

[[example]]
name = "shader_material_screenspace_texture"
path = "examples/shader/shader_material_screenspace_texture.rs"

[[example]]
name = "shader_material_glsl"
path = "examples/shader/shader_material_glsl.rs"

[[example]]
name = "shader_instancing"
path = "examples/shader/shader_instancing.rs"

[[example]]
name = "animate_shader"
path = "examples/shader/animate_shader.rs"

[[example]]
name = "compute_shader_game_of_life"
path = "examples/shader/compute_shader_game_of_life.rs"

[[example]]
name = "array_texture"
path = "examples/shader/array_texture.rs"

[[example]]
name = "bevymark"
path = "examples/stress_tests/bevymark.rs"

[[example]]
name = "many_animated_sprites"
path = "examples/stress_tests/many_animated_sprites.rs"

[[example]]
name = "many_buttons"
path = "examples/stress_tests/many_buttons.rs"

[[example]]
name = "many_cubes"
path = "examples/stress_tests/many_cubes.rs"

[[example]]
name = "many_foxes"
path = "examples/stress_tests/many_foxes.rs"

[[example]]
name = "many_lights"
path = "examples/stress_tests/many_lights.rs"

[[example]]
name = "many_sprites"
path = "examples/stress_tests/many_sprites.rs"

[[example]]
name = "transform_hierarchy"
path = "examples/stress_tests/transform_hierarchy.rs"

[[example]]
name = "global_vs_local_translation"
path = "examples/transforms/global_vs_local_translation.rs"

[[example]]
name = "3d_rotation"
path = "examples/transforms/3d_rotation.rs"

[[example]]
name = "scale"
path = "examples/transforms/scale.rs"

[[example]]
name = "transform"
path = "examples/transforms/transform.rs"

[[example]]
name = "translation"
path = "examples/transforms/translation.rs"

[[example]]
name = "button"
path = "examples/ui/button.rs"

[[example]]
name = "font_atlas_debug"
path = "examples/ui/font_atlas_debug.rs"

[[example]]
name = "text"
path = "examples/ui/text.rs"

[[example]]
name = "text_debug"
path = "examples/ui/text_debug.rs"

[[example]]
name = "transparency_ui"
path = "examples/ui/transparency_ui.rs"

[[example]]
name = "ui"
path = "examples/ui/ui.rs"

[[example]]
name = "clear_color"
path = "examples/window/clear_color.rs"

[[example]]
name = "low_power"
path = "examples/window/low_power.rs"

[[example]]
name = "multiple_windows"
path = "examples/window/multiple_windows.rs"

[[example]]
name = "scale_factor_override"
path = "examples/window/scale_factor_override.rs"

[[example]]
name = "transparent_window"
path = "examples/window/transparent_window.rs"

[[example]]
name = "window_settings"
path = "examples/window/window_settings.rs"

[[example]]
name = "resizing"
path = "tests/window/resizing.rs"

[[example]]
name = "minimising"
path = "tests/window/minimising.rs"

[[example]]
crate-type = ["cdylib"]
name = "android_example"
path = "examples/android/android.rs"
[dependencies.bevy_dylib]
default-features = false
optional = true
version = "0.8.0"

[dependencies.bevy_internal]
default-features = false
version = "0.8.0"
[dev-dependencies.anyhow]
version = "1.0.4"

[dev-dependencies.bytemuck]
version = "1.7"

[dev-dependencies.crossbeam-channel]
version = "0.5.0"

[dev-dependencies.futures-lite]
version = "1.11.3"

[dev-dependencies.rand]
version = "0.8.0"

[dev-dependencies.ron]
version = "0.7.0"

[dev-dependencies.serde]
features = ["derive"]
version = "1"

[features]
animation = ["bevy_internal/animation"]
basis-universal = ["bevy_internal/basis-universal"]
bevy_animation = ["bevy_internal/bevy_animation"]
bevy_asset = ["bevy_internal/bevy_asset"]
bevy_audio = ["bevy_internal/bevy_audio"]
bevy_ci_testing = ["bevy_internal/bevy_ci_testing"]
bevy_core_pipeline = ["bevy_internal/bevy_core_pipeline"]
bevy_dynamic_plugin = ["bevy_internal/bevy_dynamic_plugin"]
bevy_gilrs = ["bevy_internal/bevy_gilrs"]
bevy_gltf = ["bevy_internal/bevy_gltf"]
bevy_pbr = ["bevy_internal/bevy_pbr"]
bevy_render = ["bevy_internal/bevy_render"]
bevy_scene = ["bevy_internal/bevy_scene"]
bevy_sprite = ["bevy_internal/bevy_sprite"]
bevy_text = ["bevy_internal/bevy_text"]
bevy_ui = ["bevy_internal/bevy_ui"]
bevy_winit = ["bevy_internal/bevy_winit"]
bmp = ["bevy_internal/bmp"]
dds = ["bevy_internal/dds"]
debug_asset_server = ["bevy_internal/debug_asset_server"]
default = ["animation", "bevy_asset", "bevy_audio", "bevy_gilrs", "bevy_scene", "bevy_winit", "render", "png", "hdr", "vorbis", "x11", "filesystem_watcher"]
dynamic = ["bevy_dylib"]
filesystem_watcher = ["bevy_internal/filesystem_watcher"]
flac = ["bevy_internal/flac"]
hdr = ["bevy_internal/hdr"]
jpeg = ["bevy_internal/jpeg"]
ktx2 = ["bevy_internal/ktx2"]
mp3 = ["bevy_internal/mp3"]
png = ["bevy_internal/png"]
render = ["bevy_internal/bevy_core_pipeline", "bevy_internal/bevy_pbr", "bevy_internal/bevy_gltf", "bevy_internal/bevy_render", "bevy_internal/bevy_sprite", "bevy_internal/bevy_text", "bevy_internal/bevy_ui"]
serialize = ["bevy_internal/serialize"]
subpixel_glyph_atlas = ["bevy_internal/subpixel_glyph_atlas"]
tga = ["bevy_internal/tga"]
trace = ["bevy_internal/trace"]
trace_chrome = ["trace", "bevy_internal/trace_chrome"]
trace_tracy = ["trace", "bevy_internal/trace_tracy"]
vorbis = ["bevy_internal/vorbis"]
wav = ["bevy_internal/wav"]
wayland = ["bevy_internal/wayland"]
wgpu_trace = ["bevy_internal/wgpu_trace"]
x11 = ["bevy_internal/x11"]
zlib = ["bevy_internal/zlib"]
zstd = ["bevy_internal/zstd"]

[package]
categories = ["game-engines", "graphics", "gui", "rendering"]
description = "A refreshingly simple data-driven game engine and app framework"
edition = "2021"
exclude = ["assets/", "tools/", ".github/", "crates/", "examples/wasm/assets/"]
homepage = "https://bevyengine.org"
keywords = ["game", "engine", "gamedev", "graphics", "bevy"]
license = "MIT OR Apache-2.0"
name = "bevy"
readme = "README.md"
repository = "https://github.com/bevyengine/bevy"
resolver = "2"
version = "0.8.1"
[[package.metadata.category]]
description = "These examples demonstrate how to implement different shaders in user code.\n\nA shader in its most common usage is a small program that is run by the GPU per-vertex in a mesh (a vertex shader) or per-affected-screen-fragment (a fragment shader.) The GPU executes these programs in a highly parallel way.\n\nThere are also compute shaders which are used for more general processing leveraging the GPU's parallelism.\n"
name = "Shaders"

[[package.metadata.category]]
description = "These examples are used to test the performance and stability of various parts of the engine in an isolated way.\n\nDue to the focus on performance it's recommended to run the stress tests in release mode:\n\n```sh\ncargo run --release --example <example name>\n```\n"
name = "Stress Tests"

[package.metadata.android]
apk_name = "bevyexample"
assets = "assets"
build_targets = ["aarch64-linux-android", "armv7-linux-androideabi"]
package = "org.bevyengine.example"
resources = "assets/android-res"

[package.metadata.android.application]
icon = "@mipmap/ic_launcher"
label = "Bevy Example"

[package.metadata.android.sdk]
target_sdk_version = 31
[package.metadata.example.3d_rotation]
category = "Transforms"
description = "Illustrates how to (constantly) rotate an object around an axis"
name = "3D Rotation"
wasm = true

[package.metadata.example.3d_scene]
category = "3D Rendering"
description = "Simple 3D scene with basic shapes and lighting"
name = "3D Scene"
wasm = true

[package.metadata.example.3d_shapes]
category = "3D Rendering"
description = "A scene showcasing the built-in 3D shapes"
name = "3D Shapes"
wasm = true

[package.metadata.example.alien_cake_addict]
category = "Games"
description = "Eat the cakes. Eat them all. An example 3D game"
name = "Alien Cake Addict"
wasm = true

[package.metadata.example.android_example]
hidden = true

[package.metadata.example.animate_shader]
category = "Shaders"
description = "A shader that uses dynamic data like the time since startup"
name = "Animated"
wasm = true

[package.metadata.example.animated_fox]
category = "Animation"
description = "Plays an animation from a skinned glTF"
name = "Animated Fox"
wasm = true

[package.metadata.example.animated_transform]
category = "Animation"
description = "Create and play an animation defined by code that operates on the `Transform` component"
name = "Animated Transform"
wasm = true

[package.metadata.example.array_texture]
category = "Shaders"
description = "A shader that shows how to reuse the core bevy PBR shading functionality in a custom material that obtains the base color from an array texture."
name = "Array Texture"
wasm = true

[package.metadata.example.asset_loading]
category = "Assets"
description = "Demonstrates various methods to load assets"
name = "Asset Loading"
wasm = true

[package.metadata.example.async_compute]
category = "Async Tasks"
description = "How to use `AsyncComputeTaskPool` to complete longer running tasks"
name = "Async Compute"
wasm = false

[package.metadata.example.audio]
category = "Audio"
description = "Shows how to load and play an audio file"
name = "Audio"
wasm = true

[package.metadata.example.audio_control]
category = "Audio"
description = "Shows how to load and play an audio file, and control how it's played"
name = "Audio Control"
wasm = true

[package.metadata.example.bevymark]
category = "Stress Tests"
description = "A heavy sprite rendering workload to benchmark your system with Bevy"
name = "Bevymark"
wasm = true

[package.metadata.example.breakout]
category = "Games"
description = "An implementation of the classic game \"Breakout\""
name = "Breakout"
wasm = true

[package.metadata.example.button]
category = "UI (User Interface)"
description = "Illustrates creating and updating a button"
name = "Button"
wasm = true

[package.metadata.example.char_input_events]
category = "Input"
description = "Prints out all chars as they are inputted"
name = "Char Input Events"
wasm = false

[package.metadata.example.clear_color]
category = "Window"
description = "Creates a solid color window"
name = "Clear Color"
wasm = true

[package.metadata.example.component_change_detection]
category = "ECS (Entity Component System)"
description = "Change detection on components"
name = "Component Change Detection"
wasm = false

[package.metadata.example.compute_shader_game_of_life]
category = "Shaders"
description = "A compute shader that simulates Conway's Game of Life"
name = "Compute - Game of Life"
wasm = false

[package.metadata.example.contributors]
category = "Games"
description = "Displays each contributor as a bouncy bevy-ball!"
name = "Contributors"
wasm = true

[package.metadata.example.custom_asset]
category = "Assets"
description = "Implements a custom asset loader"
name = "Custom Asset"
wasm = true

[package.metadata.example.custom_asset_io]
category = "Assets"
description = "Implements a custom asset io loader"
name = "Custom Asset IO"
wasm = true

[package.metadata.example.custom_diagnostic]
category = "Diagnostics"
description = "Shows how to create a custom diagnostic"
name = "Custom Diagnostic"
wasm = true

[package.metadata.example.custom_loop]
category = "Application"
description = "Demonstrates how to create a custom runner (to update an app manually)"
name = "Custom Loop"
wasm = false

[package.metadata.example.custom_query_param]
category = "ECS (Entity Component System)"
description = "Groups commonly used compound queries and query filters into a single type"
name = "Custom Query Parameters"
wasm = false

[package.metadata.example.custom_skinned_mesh]
category = "Animation"
description = "Skinned mesh example with mesh and joints data defined in code"
name = "Custom Skinned Mesh"
wasm = true

[package.metadata.example.custom_vertex_attribute]
category = "Shaders"
description = "A shader that reads a mesh's custom vertex attribute"
name = "Custom Vertex Attribute"
wasm = true

[package.metadata.example.drag_and_drop]
category = "Application"
description = "An example that shows how to handle drag and drop in an app"
name = "Drag and Drop"
wasm = false

[package.metadata.example.ecs_guide]
category = "ECS (Entity Component System)"
description = "Full guide to Bevy's ECS"
name = "ECS Guide"
wasm = false

[package.metadata.example.empty]
category = "Application"
description = "An empty application (does nothing)"
name = "Empty"
wasm = false

[package.metadata.example.empty_defaults]
category = "Application"
description = "An empty application with default plugins"
name = "Empty with Defaults"
wasm = true

[package.metadata.example.event]
category = "ECS (Entity Component System)"
description = "Illustrates event creation, activation, and reception"
name = "Event"
wasm = false

[package.metadata.example.external_source_external_thread]
category = "Async Tasks"
description = "How to use an external thread to run an infinite task and communicate with a channel"
name = "External Source of Data on an External Thread"
wasm = false

[package.metadata.example.fixed_timestep]
category = "ECS (Entity Component System)"
description = "Shows how to create systems that run every fixed timestep, rather than every tick"
name = "Fixed Timestep"
wasm = false

[package.metadata.example.font_atlas_debug]
category = "UI (User Interface)"
description = "Illustrates how FontAtlases are populated (used to optimize text rendering internally)"
name = "Font Atlas Debug"
wasm = true

[package.metadata.example.game_menu]
category = "Games"
description = "A simple game menu"
name = "Game Menu"
wasm = true

[package.metadata.example.gamepad_input]
category = "Input"
description = "Shows handling of gamepad input, connections, and disconnections"
name = "Gamepad Input"
wasm = false

[package.metadata.example.gamepad_input_events]
category = "Input"
description = "Iterates and prints gamepad input and connection events"
name = "Gamepad Input Events"
wasm = false

[package.metadata.example.generic_reflection]
category = "Reflection"
description = "Registers concrete instances of generic types that may be used with reflection"
name = "Generic Reflection"
wasm = false

[package.metadata.example.generic_system]
category = "ECS (Entity Component System)"
description = "Shows how to create systems that can be reused with different types"
name = "Generic System"
wasm = false

[package.metadata.example.global_vs_local_translation]
category = "Transforms"
description = "Illustrates the difference between direction of a translation in respect to local object or global object Transform"
name = "Global / Local Translation"
wasm = true

[package.metadata.example.gltf_skinned_mesh]
category = "Animation"
description = "Skinned mesh example with mesh and joints data loaded from a glTF file"
name = "glTF Skinned Mesh"
wasm = true

[package.metadata.example.headless]
category = "Application"
description = "An application that runs without default plugins"
name = "Headless"
wasm = false

[package.metadata.example.hello_world]
hidden = true

[package.metadata.example.hierarchy]
category = "ECS (Entity Component System)"
description = "Creates a hierarchy of parents and children entities"
name = "Hierarchy"
wasm = false

[package.metadata.example.hot_asset_reloading]
category = "Assets"
description = "Demonstrates automatic reloading of assets when modified on disk"
name = "Hot Reloading of Assets"
wasm = true

[package.metadata.example.iter_combinations]
category = "ECS (Entity Component System)"
description = "Shows how to iterate over combinations of query results"
name = "Iter Combinations"
wasm = true

[package.metadata.example.keyboard_input]
category = "Input"
description = "Demonstrates handling a key press/release"
name = "Keyboard Input"
wasm = false

[package.metadata.example.keyboard_input_events]
category = "Input"
description = "Prints out all keyboard events"
name = "Keyboard Input Events"
wasm = false

[package.metadata.example.keyboard_modifiers]
category = "Input"
description = "Demonstrates using key modifiers (ctrl, shift)"
name = "Keyboard Modifiers"
wasm = false

[package.metadata.example.lighting]
category = "3D Rendering"
description = "Illustrates various lighting options in a simple scene"
name = "Lighting"
wasm = true

[package.metadata.example.lines]
category = "3D Rendering"
description = "Create a custom material to draw 3d lines"
name = "Lines"
wasm = true

[package.metadata.example.load_gltf]
category = "3D Rendering"
description = "Loads and renders a glTF file as a scene"
name = "Load glTF"
wasm = true

[package.metadata.example.log_diagnostics]
category = "Diagnostics"
description = "Add a plugin that logs diagnostics, like frames per second (FPS), to the console"
name = "Log Diagnostics"
wasm = true

[package.metadata.example.logs]
category = "Application"
description = "Illustrate how to use generate log output"
name = "Logs"
wasm = true

[package.metadata.example.low_power]
category = "Window"
description = "Demonstrates settings to reduce power use for bevy applications"
name = "Low Power"
wasm = true

[package.metadata.example.many_animated_sprites]
category = "Stress Tests"
description = "Displays many animated sprites in a grid arrangement with slight offsets to their animation timers. Used for performance testing."
name = "Many Animated Sprites"
wasm = true

[package.metadata.example.many_buttons]
category = "Stress Tests"
description = "Test rendering of many UI elements"
name = "Many Buttons"
wasm = true

[package.metadata.example.many_cubes]
category = "Stress Tests"
description = "Simple benchmark to test per-entity draw overhead. Run with the `sphere` argument to test frustum culling"
name = "Many Cubes"
wasm = true

[package.metadata.example.many_foxes]
category = "Stress Tests"
description = "Loads an animated fox model and spawns lots of them. Good for testing skinned mesh performance. Takes an unsigned integer argument for the number of foxes to spawn. Defaults to 1000"
name = "Many Foxes"
wasm = true

[package.metadata.example.many_lights]
category = "Stress Tests"
description = "Simple benchmark to test rendering many point lights. Run with `WGPU_SETTINGS_PRIO=webgl2` to restrict to uniform buffers and max 256 lights"
name = "Many Lights"
wasm = true

[package.metadata.example.many_sprites]
category = "Stress Tests"
description = "Displays many sprites in a grid arrangement! Used for performance testing. Use `--colored` to enable color tinted sprites."
name = "Many Sprites"
wasm = true

[package.metadata.example.mesh2d]
category = "2D Rendering"
description = "Renders a 2d mesh"
name = "Mesh 2D"
wasm = true

[package.metadata.example.mesh2d_manual]
category = "2D Rendering"
description = "Renders a custom mesh \"manually\" with \"mid-level\" renderer apis"
name = "Manual Mesh 2D"
wasm = true

[package.metadata.example.mesh2d_vertex_color_texture]
category = "2D Rendering"
description = "Renders a 2d mesh with vertex color attributes"
name = "Mesh 2D With Vertex Colors"
wasm = true

[package.metadata.example.minimising]
hidden = true

[package.metadata.example.mouse_grab]
category = "Input"
description = "Demonstrates how to grab the mouse, locking the cursor to the app's screen"
name = "Mouse Grab"
wasm = false

[package.metadata.example.mouse_input]
category = "Input"
description = "Demonstrates handling a mouse button press/release"
name = "Mouse Input"
wasm = false

[package.metadata.example.mouse_input_events]
category = "Input"
description = "Prints out all mouse events (buttons, movement, etc.)"
name = "Mouse Input Events"
wasm = false

[package.metadata.example.move_sprite]
category = "2D Rendering"
description = "Changes the transform of a sprite"
name = "Move Sprite"
wasm = true

[package.metadata.example.msaa]
category = "3D Rendering"
description = "Configures MSAA (Multi-Sample Anti-Aliasing) for smoother edges"
name = "MSAA"
wasm = true

[package.metadata.example.multiple_windows]
category = "Window"
description = "Demonstrates creating multiple windows, and rendering to them"
name = "Multiple Windows"
wasm = false

[package.metadata.example.no_renderer]
category = "Application"
description = "An application that runs with default plugins and displays an empty window, but without an actual renderer"
name = "No Renderer"
wasm = false

[package.metadata.example.orthographic]
category = "3D Rendering"
description = "Shows how to create a 3D orthographic view (for isometric-look in games or CAD applications)"
name = "Orthographic View"
wasm = true

[package.metadata.example.parallel_query]
category = "ECS (Entity Component System)"
description = "Illustrates parallel queries with `ParallelIterator`"
name = "Parallel Query"
wasm = false

[package.metadata.example.parenting]
category = "3D Rendering"
description = "Demonstrates parent->child relationships and relative transformations"
name = "Parenting"
wasm = true

[package.metadata.example.pbr]
category = "3D Rendering"
description = "Demonstrates use of Physically Based Rendering (PBR) properties"
name = "Physically Based Rendering"
wasm = true

[package.metadata.example.plugin]
category = "Application"
description = "Demonstrates the creation and registration of a custom plugin"
name = "Plugin"
wasm = true

[package.metadata.example.plugin_group]
category = "Application"
description = "Demonstrates the creation and registration of a custom plugin group"
name = "Plugin Group"
wasm = true

[package.metadata.example.post_processing]
category = "Shaders"
description = "A custom post processing effect, using two cameras, with one reusing the render texture of the first one"
name = "Post Processing"
wasm = true

[package.metadata.example.reflection]
category = "Reflection"
description = "Demonstrates how reflection in Bevy provides a way to dynamically interact with Rust types"
name = "Reflection"
wasm = false

[package.metadata.example.reflection_types]
category = "Reflection"
description = "Illustrates the various reflection types available"
name = "Reflection Types"
wasm = false

[package.metadata.example.removal_detection]
category = "ECS (Entity Component System)"
description = "Query for entities that had a specific component removed in a previous stage during the current frame"
name = "Removal Detection"
wasm = false

[package.metadata.example.render_to_texture]
category = "3D Rendering"
description = "Shows how to render to a texture, useful for mirrors, UI, or exporting images"
name = "Render to Texture"
wasm = true

[package.metadata.example.resizing]
hidden = true

[package.metadata.example.return_after_run]
category = "Application"
description = "Show how to return to main after the Bevy app has exited"
name = "Return after Run"
wasm = false

[package.metadata.example.rotation]
category = "2D Rendering"
description = "Demonstrates rotating entities in 2D with quaternions"
name = "2D Rotation"
wasm = true

[package.metadata.example.scale]
category = "Transforms"
description = "Illustrates how to scale an object in each direction"
name = "Scale"
wasm = true

[package.metadata.example.scale_factor_override]
category = "Window"
description = "Illustrates how to customize the default window settings"
name = "Scale Factor Override"
wasm = true

[package.metadata.example.scene]
category = "Scene"
description = "Demonstrates loading from and saving scenes to files"
name = "Scene"
wasm = false

[package.metadata.example.scene_viewer]
category = "Tools"
description = "A simple way to view glTF models with Bevy. Just run `cargo run --release --example scene_viewer /path/to/model.gltf#Scene0`, replacing the path as appropriate. With no arguments it will load the FieldHelmet glTF model from the repository assets subdirectory"
name = "Scene Viewer"
wasm = true

[package.metadata.example.shader_defs]
category = "Shaders"
description = "A shader that uses \"shaders defs\" (a bevy tool to selectively toggle parts of a shader)"
name = "Shader Defs"
wasm = true

[package.metadata.example.shader_instancing]
category = "Shaders"
description = "A shader that renders a mesh multiple times in one draw call"
name = "Instancing"
wasm = true

[package.metadata.example.shader_material]
category = "Shaders"
description = "A shader and a material that uses it"
name = "Material"
wasm = true

[package.metadata.example.shader_material_glsl]
category = "Shaders"
description = "A shader that uses the GLSL shading language"
name = "Material - GLSL"
wasm = true

[package.metadata.example.shader_material_screenspace_texture]
category = "Shaders"
description = "A shader that samples a texture with view-independent UV coordinates"
name = "Material - Screenspace Texture"
wasm = true

[package.metadata.example.shadow_biases]
category = "3D Rendering"
description = "Demonstrates how shadow biases affect shadows in a 3d scene"
name = "Shadow Biases"
wasm = true

[package.metadata.example.shadow_caster_receiver]
category = "3D Rendering"
description = "Demonstrates how to prevent meshes from casting/receiving shadows in a 3d scene"
name = "Shadow Caster and Receiver"
wasm = true

[package.metadata.example.shapes]
category = "2D Rendering"
description = "Renders a rectangle, circle, and hexagon"
name = "Shapes"
wasm = true

[package.metadata.example.skybox]
category = "3D Rendering"
description = "Load a cubemap texture onto a cube like a skybox and cycle through different compressed texture formats."
name = "Skybox"
wasm = false

[package.metadata.example.spherical_area_lights]
category = "3D Rendering"
description = "Demonstrates how point light radius values affect light behavior"
name = "Spherical Area Lights"
wasm = true

[package.metadata.example.split_screen]
category = "3D Rendering"
description = "Demonstrates how to render two cameras to the same window to accomplish \"split screen\""
name = "Split Screen"
wasm = true

[package.metadata.example.spotlight]
category = "3D Rendering"
description = "Illustrates spot lights"
name = "Spotlight"
wasm = true

[package.metadata.example.sprite]
category = "2D Rendering"
description = "Renders a sprite"
name = "Sprite"
wasm = true

[package.metadata.example.sprite_flipping]
category = "2D Rendering"
description = "Renders a sprite flipped along an axis"
name = "Sprite Flipping"
wasm = true

[package.metadata.example.sprite_sheet]
category = "2D Rendering"
description = "Renders an animated sprite"
name = "Sprite Sheet"
wasm = true

[package.metadata.example.startup_system]
category = "ECS (Entity Component System)"
description = "Demonstrates a startup system (one that runs once when the app starts up)"
name = "Startup System"
wasm = false

[package.metadata.example.state]
category = "ECS (Entity Component System)"
description = "Illustrates how to use States to control transitioning from a Menu state to an InGame state"
name = "State"
wasm = false

[package.metadata.example.system_chaining]
category = "ECS (Entity Component System)"
description = "Chain two systems together, specifying a return type in a system (such as `Result`)"
name = "System Chaining"
wasm = false

[package.metadata.example.system_closure]
category = "ECS (Entity Component System)"
description = "Show how to use closures as systems, and how to configure `Local` variables by capturing external state"
name = "System Closure"
wasm = false

[package.metadata.example.system_param]
category = "ECS (Entity Component System)"
description = "Illustrates creating custom system parameters with `SystemParam`"
name = "System Parameter"
wasm = false

[package.metadata.example.system_sets]
category = "ECS (Entity Component System)"
description = "Shows `SystemSet` use along with run criterion"
name = "System Sets"
wasm = false

[package.metadata.example.text]
category = "UI (User Interface)"
description = "Illustrates creating and updating text"
name = "Text"
wasm = true

[package.metadata.example.text2d]
category = "2D Rendering"
description = "Generates text in 2D"
name = "Text 2D"
wasm = true

[package.metadata.example.text_debug]
category = "UI (User Interface)"
description = "An example for debugging text layout"
name = "Text Debug"
wasm = true

[package.metadata.example.texture]
category = "3D Rendering"
description = "Shows configuration of texture materials"
name = "Texture"
wasm = true

[package.metadata.example.texture_atlas]
category = "2D Rendering"
description = "Generates a texture atlas (sprite sheet) from individual sprites"
name = "Texture Atlas"
wasm = true

[package.metadata.example.thread_pool_resources]
category = "Application"
description = "Creates and customizes the internal thread pool"
name = "Thread Pool Resources"
wasm = false

[package.metadata.example.timers]
category = "ECS (Entity Component System)"
description = "Illustrates ticking `Timer` resources inside systems and handling their state"
name = "Timers"
wasm = false

[package.metadata.example.touch_input]
category = "Input"
description = "Displays touch presses, releases, and cancels"
name = "Touch Input"
wasm = false

[package.metadata.example.touch_input_events]
category = "Input"
description = "Prints out all touch inputs"
name = "Touch Input Events"
wasm = false

[package.metadata.example.trait_reflection]
category = "Reflection"
description = "Allows reflection with trait objects"
name = "Trait Reflection"
wasm = false

[package.metadata.example.transform]
category = "Transforms"
description = "Shows multiple transformations of objects"
name = "Transform"
wasm = true

[package.metadata.example.transform_hierarchy]
category = "Stress Tests"
description = "Various test cases for hierarchy and transform propagation performance"
name = "Transform Hierarchy"
wasm = true

[package.metadata.example.translation]
category = "Transforms"
description = "Illustrates how to move an object along an axis"
name = "Translation"
wasm = true

[package.metadata.example.transparency_2d]
category = "2D Rendering"
description = "Demonstrates transparency in 2d"
name = "Transparency in 2D"
wasm = true

[package.metadata.example.transparency_3d]
category = "3D Rendering"
description = "Demonstrates transparency in 3d"
name = "Transparency in 3D"
wasm = true

[package.metadata.example.transparency_ui]
category = "UI (User Interface)"
description = "Demonstrates transparency for UI"
name = "Transparency UI"
wasm = true

[package.metadata.example.transparent_window]
category = "Window"
description = "Illustrates making the window transparent and hiding the window decoration"
name = "Transparent Window"
wasm = false

[package.metadata.example.two_passes]
category = "3D Rendering"
description = "Renders two 3d passes to the same window from different perspectives"
name = "Two Passes"
wasm = true

[package.metadata.example.ui]
category = "UI (User Interface)"
description = "Illustrates various features of Bevy UI"
name = "UI"
wasm = true

[package.metadata.example.update_gltf_scene]
category = "3D Rendering"
description = "Update a scene from a glTF file, either by spawning the scene as a child of another entity, or by accessing the entities of the scene"
name = "Update glTF Scene"
wasm = true

[package.metadata.example.vertex_colors]
category = "3D Rendering"
description = "Shows the use of vertex colors"
name = "Vertex Colors"
wasm = true

[package.metadata.example.window_settings]
category = "Window"
description = "Demonstrates customizing default window settings"
name = "Window Settings"
wasm = true

[package.metadata.example.wireframe]
category = "3D Rendering"
description = "Showcases wireframe rendering"
name = "Wireframe"
wasm = true

[package.metadata.example.without_winit]
category = "Application"
description = "Create an application without winit (runs single time, no event loop)"
name = "Without Winit"
wasm = false
[profile.wasm-release]
codegen-units = 1
inherits = "release"
lto = "fat"
opt-level = "z"
[target."cfg(target_arch = \"wasm32\")".dependencies.bevy_internal]
default-features = false
features = ["webgl"]
version = "0.8.0"