BevyCSharp 0.4.129

dotnet add package BevyCSharp --version 0.4.129
                    
NuGet\Install-Package BevyCSharp -Version 0.4.129
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="BevyCSharp" Version="0.4.129" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="BevyCSharp" Version="0.4.129" />
                    
Directory.Packages.props
<PackageReference Include="BevyCSharp" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add BevyCSharp --version 0.4.129
                    
#r "nuget: BevyCSharp, 0.4.129"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package BevyCSharp@0.4.129
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=BevyCSharp&version=0.4.129
                    
Install as a Cake Addin
#tool nuget:?package=BevyCSharp&version=0.4.129
                    
Install as a Cake Tool

Bevy C#

Write Bevy games in C#.

Showcase

<sup>BevyCSharp.Sample, dotnet run --project BevyCSharp.Sample</sup>

Mark a struct [Behavior], give it methods with stage attributes, and a Roslyn source generator wires it into Bevy's schedule, as a component and a system at the same time. Bevy is the engine underneath, with its ECS, its scheduler, its timing, its input and its renderer.

using Bevy;

[Behavior]
public partial struct Spin
{
    [Range(0f, 5f)] public float Speed;
    private float _angle;

    // static: one plain system
    [OnStartup]
    public static void Scene(BehaviorContext ctx)
    {
        ctx.Ecs.Add(Render.SpawnCamera3d(), Transform.LookingAt(new Vec3(3f, 3f, 5f), Vec3.Zero, Vec3.UnitY));
        Render.SpawnLight(LightKind.Directional, 10_000f);

        var cube = ctx.Ecs.Spawn();
        ctx.Ecs.Add(cube, new Spin { Speed = 1.2f });
        Render.SetMesh(ctx.Ecs, cube, Render.CreateMesh(MeshShape.Cuboid, 1f, 1f, 1f));
        Render.SetMaterial(ctx.Ecs, cube, Render.CreateMaterial(0.25f, 0.55f, 0.85f));
    }

    // instance: once per entity that has one, handed the entity's transform
    [OnUpdate]
    public void Tick(BehaviorContext ctx, ref Transform transform)
    {
        _angle += Speed * ctx.Time.Delta;
        transform.Rotation = Quat.FromAxisAngle(Vec3.UnitY, _angle);
    }
}

In Program.cs

using Bevy;

BevyApp.Run();

Behaviors are discovered automatically, so a consuming project needs no registration code.

This is Bevy, run unchanged underneath, so what a game draws and how its systems are scheduled are Bevy's. What it adds is C#, behaviors reloaded while the game runs, an editor, scene files and saves, physics, and a package with no Rust in it. What it costs is a call across to the bridge each time C# reaches Bevy, and only what the bridge has opened, which reaches two thirds of the Bevy examples about a game rather than Rust. Compared with Bevy has each, with what was measured.

Contents

Examples

Bevy's own examples are written in C# under Bevy's names in BevyCSharp.Examples, each opened by name and captured beside Bevy's picture of it, and EXAMPLES.md has a row for every one of Bevy's, saying whether it is written, can be, or waits on something the bridge lacks. A picture opens the C# program that drew it.

<table> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/usage/context_menu.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/context_menu.webp" width="200"/></a><br><code>context_menu</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/bloom_2d.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/bloom_2d.webp" width="200"/></a><br><code>bloom_2d</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/move_sprite.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/move_sprite.webp" width="200"/></a><br><code>move_sprite</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/2d_viewport_to_world.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/2d_viewport_to_world.webp" width="200"/></a><br><code>2d_viewport_to_world</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/rotate_to_cursor.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/rotate_to_cursor.webp" width="200"/></a><br><code>rotate_to_cursor</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/rotation.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/rotation.webp" width="200"/></a><br><code>rotation</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/mesh2d.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/mesh2d.webp" width="200"/></a><br><code>mesh2d</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/mesh2d_arcs.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/mesh2d_arcs.webp" width="200"/></a><br><code>mesh2d_arcs</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/mesh2d_vertex_color_texture.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/mesh2d_vertex_color_texture.webp" width="200"/></a><br><code>mesh2d_vertex_color_texture</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/2d_shapes.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/2d_shapes.webp" width="200"/></a><br><code>2d_shapes</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/cpu_draw.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/cpu_draw.webp" width="200"/></a><br><code>cpu_draw</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/sprite.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/sprite.webp" width="200"/></a><br><code>sprite</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/sprite_animation.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/sprite_animation.webp" width="200"/></a><br><code>sprite_animation</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/sprite_scale.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/sprite_scale.webp" width="200"/></a><br><code>sprite_scale</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/sprite_flipping.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/sprite_flipping.webp" width="200"/></a><br><code>sprite_flipping</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/sprite_sheet.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/sprite_sheet.webp" width="200"/></a><br><code>sprite_sheet</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/sprite_tile.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/sprite_tile.webp" width="200"/></a><br><code>sprite_tile</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/sprite_slice.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/sprite_slice.webp" width="200"/></a><br><code>sprite_slice</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/text2d.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/text2d.webp" width="200"/></a><br><code>text2d</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/window/multi_window_text.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/multi_window_text.webp" width="200"/></a><br><code>multi_window_text</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/text_input.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/text_input.webp" width="200"/></a><br><code>text_input</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/editable_text_filter.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/editable_text_filter.webp" width="200"/></a><br><code>editable_text_filter</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/multiline_text_input.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/multiline_text_input.webp" width="200"/></a><br><code>multiline_text_input</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/multiple_text_inputs.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/multiple_text_inputs.webp" width="200"/></a><br><code>multiple_text_inputs</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/tilemap_chunk.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/tilemap_chunk.webp" width="200"/></a><br><code>tilemap_chunk</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/tilemap_chunk_orientation.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/tilemap_chunk_orientation.webp" width="200"/></a><br><code>tilemap_chunk_orientation</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/transparency_2d.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/transparency_2d.webp" width="200"/></a><br><code>transparency_2d</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/mesh2d_alpha_mode.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/mesh2d_alpha_mode.webp" width="200"/></a><br><code>mesh2d_alpha_mode</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/mesh2d_repeated_texture.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/mesh2d_repeated_texture.webp" width="200"/></a><br><code>mesh2d_repeated_texture</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/pixel_grid_snap.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/pixel_grid_snap.webp" width="200"/></a><br><code>pixel_grid_snap</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/math/bounding_2d.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/bounding_2d.webp" width="200"/></a><br><code>bounding_2d</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/wireframe_2d.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/wireframe_2d.webp" width="200"/></a><br><code>wireframe_2d</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/3d_scene.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/3d_scene.webp" width="200"/></a><br><code>3d_scene</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/rect_light.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/rect_light.webp" width="200"/></a><br><code>rect_light</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/3d_shapes.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/3d_shapes.webp" width="200"/></a><br><code>3d_shapes</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/3d_viewport_to_world.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/3d_viewport_to_world.webp" width="200"/></a><br><code>3d_viewport_to_world</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/animated_material.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/animated_material.webp" width="200"/></a><br><code>animated_material</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/generate_custom_mesh.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/generate_custom_mesh.webp" width="200"/></a><br><code>generate_custom_mesh</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/anti_aliasing.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/anti_aliasing.webp" width="200"/></a><br><code>anti_aliasing</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/atmospheric_fog.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/atmospheric_fog.webp" width="200"/></a><br><code>atmospheric_fog</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/fog.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/fog.webp" width="200"/></a><br><code>fog</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/auto_exposure.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/auto_exposure.webp" width="200"/></a><br><code>auto_exposure</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/blend_modes.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/blend_modes.webp" width="200"/></a><br><code>blend_modes</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/contact_shadows.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/contact_shadows.webp" width="200"/></a><br><code>contact_shadows</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/lighting.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/lighting.webp" width="200"/></a><br><code>lighting</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/lines.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/lines.webp" width="200"/></a><br><code>lines</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/ssao.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/ssao.webp" width="200"/></a><br><code>ssao</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/spotlight.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/spotlight.webp" width="200"/></a><br><code>spotlight</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/bloom_3d.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/bloom_3d.webp" width="200"/></a><br><code>bloom_3d</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/motion_blur.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/motion_blur.webp" width="200"/></a><br><code>motion_blur</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/order_independent_transparency.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/order_independent_transparency.webp" width="200"/></a><br><code>order_independent_transparency</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/tonemapping.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/tonemapping.webp" width="200"/></a><br><code>tonemapping</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/orthographic.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/orthographic.webp" width="200"/></a><br><code>orthographic</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/parenting.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/parenting.webp" width="200"/></a><br><code>parenting</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/pbr.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/pbr.webp" width="200"/></a><br><code>pbr</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/render_to_texture.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/render_to_texture.webp" width="200"/></a><br><code>render_to_texture</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/shadow_biases.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/shadow_biases.webp" width="200"/></a><br><code>shadow_biases</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/shadow_caster_receiver.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/shadow_caster_receiver.webp" width="200"/></a><br><code>shadow_caster_receiver</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/skybox.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/skybox.webp" width="200"/></a><br><code>skybox</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/solari.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/solari.webp" width="200"/></a><br><code>solari</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/spherical_area_lights.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/spherical_area_lights.webp" width="200"/></a><br><code>spherical_area_lights</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/split_screen.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/split_screen.webp" width="200"/></a><br><code>split_screen</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/texture.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/texture.webp" width="200"/></a><br><code>texture</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/transparency_3d.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/transparency_3d.webp" width="200"/></a><br><code>transparency_3d</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/transmission.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/transmission.webp" width="200"/></a><br><code>transmission</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/two_passes.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/two_passes.webp" width="200"/></a><br><code>two_passes</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/vertex_colors.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/vertex_colors.webp" width="200"/></a><br><code>vertex_colors</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/wireframe.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/wireframe.webp" width="200"/></a><br><code>wireframe</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/irradiance_volumes.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/irradiance_volumes.webp" width="200"/></a><br><code>irradiance_volumes</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/meshlet.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/meshlet.webp" width="200"/></a><br><code>meshlet</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/mesh_ray_cast.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/mesh_ray_cast.webp" width="200"/></a><br><code>mesh_ray_cast</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/lightmaps.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/lightmaps.webp" width="200"/></a><br><code>lightmaps</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/animation/animation_events.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/animation_events.webp" width="200"/></a><br><code>animation_events</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/animation/animated_mesh.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/animated_mesh.webp" width="200"/></a><br><code>animated_mesh</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/animation/animated_mesh_control.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/animated_mesh_control.webp" width="200"/></a><br><code>animated_mesh_control</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/animation/animated_mesh_events.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/animated_mesh_events.webp" width="200"/></a><br><code>animated_mesh_events</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/animation/animation_graph.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/animation_graph.webp" width="200"/></a><br><code>animation_graph</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/animation/morph_targets.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/morph_targets.webp" width="200"/></a><br><code>morph_targets</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/animation/animated_transform.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/animated_transform.webp" width="200"/></a><br><code>animated_transform</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/animation/color_animation.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/color_animation.webp" width="200"/></a><br><code>color_animation</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/animation/eased_motion.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/eased_motion.webp" width="200"/></a><br><code>eased_motion</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/animation/easing_functions.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/easing_functions.webp" width="200"/></a><br><code>easing_functions</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/animation/custom_skinned_mesh.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/custom_skinned_mesh.webp" width="200"/></a><br><code>custom_skinned_mesh</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/app/drag_and_drop.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/drag_and_drop.webp" width="200"/></a><br><code>drag_and_drop</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/app/empty_defaults.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/empty_defaults.webp" width="200"/></a><br><code>empty_defaults</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/app/logs.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/logs.webp" width="200"/></a><br><code>logs</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/app/headless_renderer.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/headless_renderer.webp" width="200"/></a><br><code>headless_renderer</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/asset/alter_mesh.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/alter_mesh.webp" width="200"/></a><br><code>alter_mesh</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/asset/alter_sprite.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/alter_sprite.webp" width="200"/></a><br><code>alter_sprite</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/asset/asset_loading.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/asset_loading.webp" width="200"/></a><br><code>asset_loading</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/asset/embedded_asset.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/embedded_asset.webp" width="200"/></a><br><code>embedded_asset</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/asset/extra_asset_source.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/extra_asset_source.webp" width="200"/></a><br><code>extra_asset_source</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/asset/generated_assets.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/generated_assets.webp" width="200"/></a><br><code>generated_assets</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/asset/hot_asset_reloading.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/hot_asset_reloading.webp" width="200"/></a><br><code>hot_asset_reloading</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/asset/repeated_texture.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/repeated_texture.webp" width="200"/></a><br><code>repeated_texture</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/asset/multi_asset_sync.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/multi_asset_sync.webp" width="200"/></a><br><code>multi_asset_sync</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/async_tasks/async_compute.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/async_compute.webp" width="200"/></a><br><code>async_compute</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/async_tasks/async_channel_pattern.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/async_channel_pattern.webp" width="200"/></a><br><code>async_channel_pattern</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/async_tasks/external_source_external_thread.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/external_source_external_thread.webp" width="200"/></a><br><code>external_source_external_thread</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/audio/audio.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/audio.webp" width="200"/></a><br><code>audio</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/audio/audio_control.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/audio_control.webp" width="200"/></a><br><code>audio_control</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/audio/soundtrack.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/soundtrack.webp" width="200"/></a><br><code>soundtrack</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/audio/spatial_audio_2d.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/spatial_audio_2d.webp" width="200"/></a><br><code>spatial_audio_2d</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/audio/spatial_audio_3d.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/spatial_audio_3d.webp" width="200"/></a><br><code>spatial_audio_3d</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/audio/play_sound_effect.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/play_sound_effect.webp" width="200"/></a><br><code>play_sound_effect</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ecs/entity_disabling.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/entity_disabling.webp" width="200"/></a><br><code>entity_disabling</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ecs/hierarchy.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/hierarchy.webp" width="200"/></a><br><code>hierarchy</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ecs/iter_combinations.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/iter_combinations.webp" width="200"/></a><br><code>iter_combinations</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ecs/one_shot_systems.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/one_shot_systems.webp" width="200"/></a><br><code>one_shot_systems</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ecs/parallel_query.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/parallel_query.webp" width="200"/></a><br><code>parallel_query</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ecs/removal_detection.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/removal_detection.webp" width="200"/></a><br><code>removal_detection</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ecs/delayed_commands.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/delayed_commands.webp" width="200"/></a><br><code>delayed_commands</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/state/states.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/states.webp" width="200"/></a><br><code>states</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/state/sub_states.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/sub_states.webp" width="200"/></a><br><code>sub_states</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/state/computed_states.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/computed_states.webp" width="200"/></a><br><code>computed_states</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/state/custom_transitions.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/custom_transitions.webp" width="200"/></a><br><code>custom_transitions</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ecs/state_scoped.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/state_scoped.webp" width="200"/></a><br><code>state_scoped</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/time/virtual_time.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/virtual_time.webp" width="200"/></a><br><code>virtual_time</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/games/alien_cake_addict.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/alien_cake_addict.webp" width="200"/></a><br><code>alien_cake_addict</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/games/breakout.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/breakout.webp" width="200"/></a><br><code>breakout</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/games/contributors.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/contributors.webp" width="200"/></a><br><code>contributors</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/games/desk_toy.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/desk_toy.webp" width="200"/></a><br><code>desk_toy</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/games/game_menu.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/game_menu.webp" width="200"/></a><br><code>game_menu</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/games/loading_screen.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/loading_screen.webp" width="200"/></a><br><code>loading_screen</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/input/mouse_grab.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/mouse_grab.webp" width="200"/></a><br><code>mouse_grab</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader/shader_defs.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/shader_defs.webp" width="200"/></a><br><code>shader_defs</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader/shader_material.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/shader_material.webp" width="200"/></a><br><code>shader_material</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader/extended_material.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/extended_material.webp" width="200"/></a><br><code>extended_material</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader/shader_prepass.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/shader_prepass.webp" width="200"/></a><br><code>shader_prepass</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader/shader_material_screenspace_texture.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/shader_material_screenspace_texture.webp" width="200"/></a><br><code>shader_material_screenspace_texture</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader/automatic_instancing.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/automatic_instancing.webp" width="200"/></a><br><code>automatic_instancing</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader/animate_shader.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/animate_shader.webp" width="200"/></a><br><code>animate_shader</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader/compute_shader_game_of_life.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/compute_shader_game_of_life.webp" width="200"/></a><br><code>compute_shader_game_of_life</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader/gpu_readback.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/gpu_readback.webp" width="200"/></a><br><code>gpu_readback</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader_advanced/compute_mesh.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/compute_mesh.webp" width="200"/></a><br><code>compute_mesh</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader/array_texture.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/array_texture.webp" width="200"/></a><br><code>array_texture</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader/storage_buffer.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/storage_buffer.webp" width="200"/></a><br><code>storage_buffer</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader_advanced/custom_post_processing.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/custom_post_processing.webp" width="200"/></a><br><code>custom_post_processing</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader_advanced/custom_shader_instancing.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/custom_shader_instancing.webp" width="200"/></a><br><code>custom_shader_instancing</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader_advanced/texture_binding_array.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/texture_binding_array.webp" width="200"/></a><br><code>texture_binding_array</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader_advanced/fullscreen_material.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/fullscreen_material.webp" width="200"/></a><br><code>fullscreen_material</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/stress_tests/bevymark.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/bevymark.webp" width="200"/></a><br><code>bevymark</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/stress_tests/bevymark_3d.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/bevymark_3d.webp" width="200"/></a><br><code>bevymark_3d</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/stress_tests/many_animated_sprites.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/many_animated_sprites.webp" width="200"/></a><br><code>many_animated_sprites</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/stress_tests/many_animated_sprite_meshes.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/many_animated_sprite_meshes.webp" width="200"/></a><br><code>many_animated_sprite_meshes</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/stress_tests/many_buttons.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/many_buttons.webp" width="200"/></a><br><code>many_buttons</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/stress_tests/many_gradients.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/many_gradients.webp" width="200"/></a><br><code>many_gradients</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/stress_tests/many_cameras_lights.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/many_cameras_lights.webp" width="200"/></a><br><code>many_cameras_lights</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/stress_tests/many_cubes.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/many_cubes.webp" width="200"/></a><br><code>many_cubes</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/stress_tests/many_gizmos.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/many_gizmos.webp" width="200"/></a><br><code>many_gizmos</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/stress_tests/many_foxes.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/many_foxes.webp" width="200"/></a><br><code>many_foxes</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/stress_tests/many_morph_targets.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/many_morph_targets.webp" width="200"/></a><br><code>many_morph_targets</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/stress_tests/many_glyphs.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/many_glyphs.webp" width="200"/></a><br><code>many_glyphs</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/stress_tests/many_lights.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/many_lights.webp" width="200"/></a><br><code>many_lights</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/stress_tests/many_sprites.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/many_sprites.webp" width="200"/></a><br><code>many_sprites</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/stress_tests/many_sprite_meshes.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/many_sprite_meshes.webp" width="200"/></a><br><code>many_sprite_meshes</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/stress_tests/many_text2d.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/many_text2d.webp" width="200"/></a><br><code>many_text2d</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/stress_tests/many_text.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/many_text.webp" width="200"/></a><br><code>many_text</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/stress_tests/many_materials.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/many_materials.webp" width="200"/></a><br><code>many_materials</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/stress_tests/transform_hierarchy.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/transform_hierarchy.webp" width="200"/></a><br><code>transform_hierarchy</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/stress_tests/text_pipeline.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/text_pipeline.webp" width="200"/></a><br><code>text_pipeline</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/tools/gamepad_viewer.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/gamepad_viewer.webp" width="200"/></a><br><code>gamepad_viewer</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ecs/observers.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/observers.webp" width="200"/></a><br><code>observers</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/transforms/3d_rotation.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/3d_rotation.webp" width="200"/></a><br><code>3d_rotation</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/transforms/align.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/align.webp" width="200"/></a><br><code>align</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/transforms/scale.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/scale.webp" width="200"/></a><br><code>scale</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/transforms/transform.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/transform.webp" width="200"/></a><br><code>transform</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/transforms/translation.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/translation.webp" width="200"/></a><br><code>translation</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/anchor_layout.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/anchor_layout.webp" width="200"/></a><br><code>anchor_layout</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/borders.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/borders.webp" width="200"/></a><br><code>borders</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/box_shadow.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/box_shadow.webp" width="200"/></a><br><code>box_shadow</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/button.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/button.webp" width="200"/></a><br><code>button</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/ui_drag_and_drop.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/ui_drag_and_drop.webp" width="200"/></a><br><code>ui_drag_and_drop</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/font_query.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/font_query.webp" width="200"/></a><br><code>font_query</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/display_and_visibility.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/display_and_visibility.webp" width="200"/></a><br><code>display_and_visibility</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/font_weights.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/font_weights.webp" width="200"/></a><br><code>font_weights</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/font_variations.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/font_variations.webp" width="200"/></a><br><code>font_variations</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/window_fallthrough.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/window_fallthrough.webp" width="200"/></a><br><code>window_fallthrough</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/vertical_slider.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/vertical_slider.webp" width="200"/></a><br><code>vertical_slider</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/overflow.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/overflow.webp" width="200"/></a><br><code>overflow</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/overflow_clip_margin.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/overflow_clip_margin.webp" width="200"/></a><br><code>overflow_clip_margin</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/overflow_debug.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/overflow_debug.webp" width="200"/></a><br><code>overflow_debug</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/relative_cursor_position.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/relative_cursor_position.webp" width="200"/></a><br><code>relative_cursor_position</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/render_ui_to_texture.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/render_ui_to_texture.webp" width="200"/></a><br><code>render_ui_to_texture</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/size_constraints.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/size_constraints.webp" width="200"/></a><br><code>size_constraints</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/strikethrough_and_underline.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/strikethrough_and_underline.webp" width="200"/></a><br><code>strikethrough_and_underline</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/text.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/text.webp" width="200"/></a><br><code>text</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/text_background_colors.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/text_background_colors.webp" width="200"/></a><br><code>text_background_colors</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/text_debug.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/text_debug.webp" width="200"/></a><br><code>text_debug</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/flex_layout.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/flex_layout.webp" width="200"/></a><br><code>flex_layout</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/text_wrap_debug.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/text_wrap_debug.webp" width="200"/></a><br><code>text_wrap_debug</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/letter_spacing.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/letter_spacing.webp" width="200"/></a><br><code>letter_spacing</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/grid.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/grid.webp" width="200"/></a><br><code>grid</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/gradients.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/gradients.webp" width="200"/></a><br><code>gradients</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/stacked_gradients.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/stacked_gradients.webp" width="200"/></a><br><code>stacked_gradients</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/scroll.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/scroll.webp" width="200"/></a><br><code>scroll</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/transparency_ui.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/transparency_ui.webp" width="200"/></a><br><code>transparency_ui</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/z_index.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/z_index.webp" width="200"/></a><br><code>z_index</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/ui_scaling.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/ui_scaling.webp" width="200"/></a><br><code>ui_scaling</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/ui_texture_atlas.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/ui_texture_atlas.webp" width="200"/></a><br><code>ui_texture_atlas</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/ui_texture_slice.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/ui_texture_slice.webp" width="200"/></a><br><code>ui_texture_slice</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/ui_texture_slice_flip_and_tile.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/ui_texture_slice_flip_and_tile.webp" width="200"/></a><br><code>ui_texture_slice_flip_and_tile</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/ui_texture_atlas_slice.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/ui_texture_atlas_slice.webp" width="200"/></a><br><code>ui_texture_atlas_slice</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/ui_transform.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/ui_transform.webp" width="200"/></a><br><code>ui_transform</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/ui_target_camera.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/ui_target_camera.webp" width="200"/></a><br><code>ui_target_camera</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/viewport_node.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/viewport_node.webp" width="200"/></a><br><code>viewport_node</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/image_node.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/image_node.webp" width="200"/></a><br><code>image_node</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/window/clear_color.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/clear_color.webp" width="200"/></a><br><code>clear_color</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/window/multiple_windows.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/multiple_windows.webp" width="200"/></a><br><code>multiple_windows</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/window/scale_factor_override.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/scale_factor_override.webp" width="200"/></a><br><code>scale_factor_override</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/window/screenshot.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/screenshot.webp" width="200"/></a><br><code>screenshot</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/window/transparent_window.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/transparent_window.webp" width="200"/></a><br><code>transparent_window</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/window/window_settings.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/window_settings.webp" width="200"/></a><br><code>window_settings</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/window/window_drag_move.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/window_drag_move.webp" width="200"/></a><br><code>window_drag_move</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/window/resizing.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/resizing.webp" width="200"/></a><br><code>resizing</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/window/minimizing.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/minimizing.webp" width="200"/></a><br><code>minimizing</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/reflection_probes.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/reflection_probes.webp" width="200"/></a><br><code>reflection_probes</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/window/window_resizing.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/window_resizing.webp" width="200"/></a><br><code>window_resizing</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/drag_to_scroll.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/drag_to_scroll.webp" width="200"/></a><br><code>drag_to_scroll</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/math/cubic_splines.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/cubic_splines.webp" width="200"/></a><br><code>cubic_splines</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/math/random_sampling.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/random_sampling.webp" width="200"/></a><br><code>random_sampling</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/movement/smooth_follow.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/smooth_follow.webp" width="200"/></a><br><code>smooth_follow</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/gizmos/2d_gizmos.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/2d_gizmos.webp" width="200"/></a><br><code>2d_gizmos</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/gizmos/3d_gizmos.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/3d_gizmos.webp" width="200"/></a><br><code>3d_gizmos</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/gizmos/axes.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/axes.webp" width="200"/></a><br><code>axes</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/gizmos/light_gizmos.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/light_gizmos.webp" width="200"/></a><br><code>light_gizmos</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/gizmos/2d_text_gizmos.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/2d_text_gizmos.webp" width="200"/></a><br><code>2d_text_gizmos</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/gizmos/anchored_text_gizmos.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/anchored_text_gizmos.webp" width="200"/></a><br><code>anchored_text_gizmos</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/gizmos/3d_text_gizmos.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/3d_text_gizmos.webp" width="200"/></a><br><code>3d_text_gizmos</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/gizmos/text_gizmos_font.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/text_gizmos_font.webp" width="200"/></a><br><code>text_gizmos_font</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/usage/debug_frustum_culling.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/debug_frustum_culling.webp" width="200"/></a><br><code>debug_frustum_culling</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/gltf/edit_material_on_gltf.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/edit_material_on_gltf.webp" width="200"/></a><br><code>edit_material_on_gltf</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/gltf/gltf_skinned_mesh.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/gltf_skinned_mesh.webp" width="200"/></a><br><code>gltf_skinned_mesh</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/gltf/load_gltf.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/load_gltf.webp" width="200"/></a><br><code>load_gltf</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/gltf/query_gltf_primitives.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/query_gltf_primitives.webp" width="200"/></a><br><code>query_gltf_primitives</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/gltf/update_gltf_scene.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/update_gltf_scene.webp" width="200"/></a><br><code>update_gltf_scene</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/camera/2d_top_down_camera.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/2d_top_down_camera.webp" width="200"/></a><br><code>2d_top_down_camera</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/camera/first_person_view_model.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/first_person_view_model.webp" width="200"/></a><br><code>first_person_view_model</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/camera/projection_zoom.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/projection_zoom.webp" width="200"/></a><br><code>projection_zoom</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/camera/camera_orbit.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/camera_orbit.webp" width="200"/></a><br><code>camera_orbit</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/camera/2d_screen_shake.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/2d_screen_shake.webp" width="200"/></a><br><code>2d_screen_shake</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/camera/2d_on_ui.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/2d_on_ui.webp" width="200"/></a><br><code>2d_on_ui</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/visibility_range.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/visibility_range.webp" width="200"/></a><br><code>visibility_range</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/camera_sub_view.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/camera_sub_view.webp" width="200"/></a><br><code>camera_sub_view</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/color_grading.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/color_grading.webp" width="200"/></a><br><code>color_grading</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/clearcoat.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/clearcoat.webp" width="200"/></a><br><code>clearcoat</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/depth_of_field.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/depth_of_field.webp" width="200"/></a><br><code>depth_of_field</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/volumetric_fog.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/volumetric_fog.webp" width="200"/></a><br><code>volumetric_fog</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/anisotropy.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/anisotropy.webp" width="200"/></a><br><code>anisotropy</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/fog_volumes.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/fog_volumes.webp" width="200"/></a><br><code>fog_volumes</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/scrolling_fog.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/scrolling_fog.webp" width="200"/></a><br><code>scrolling_fog</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/movement/physics_in_fixed_timestep.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/physics_in_fixed_timestep.webp" width="200"/></a><br><code>physics_in_fixed_timestep</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/post_processing.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/post_processing.webp" width="200"/></a><br><code>post_processing</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/rotate_environment_map.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/rotate_environment_map.webp" width="200"/></a><br><code>rotate_environment_map</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/picking/mesh_picking.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/mesh_picking.webp" width="200"/></a><br><code>mesh_picking</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/picking/simple_picking.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/simple_picking.webp" width="200"/></a><br><code>simple_picking</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/picking/sprite_picking.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/sprite_picking.webp" width="200"/></a><br><code>sprite_picking</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/picking/dragdrop_picking.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/dragdrop_picking.webp" width="200"/></a><br><code>dragdrop_picking</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/animation/animation_masks.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/animation_masks.webp" width="200"/></a><br><code>animation_masks</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/pcss.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/pcss.webp" width="200"/></a><br><code>pcss</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/mixed_lighting.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/mixed_lighting.webp" width="200"/></a><br><code>mixed_lighting</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/animation/animated_ui.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/animated_ui.webp" width="200"/></a><br><code>animated_ui</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader/shader_material_bindless.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/shader_material_bindless.webp" width="200"/></a><br><code>shader_material_bindless</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/tab_navigation.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/tab_navigation.webp" width="200"/></a><br><code>tab_navigation</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/directional_navigation.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/directional_navigation.webp" width="200"/></a><br><code>directional_navigation</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/directional_navigation_overrides.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/directional_navigation_overrides.webp" width="200"/></a><br><code>directional_navigation_overrides</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/clustered_decals.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/clustered_decals.webp" width="200"/></a><br><code>clustered_decals</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/light_textures.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/light_textures.webp" width="200"/></a><br><code>light_textures</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader/extended_material_bindless.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/extended_material_bindless.webp" width="200"/></a><br><code>extended_material_bindless</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/usage/cooldown.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/cooldown.webp" width="200"/></a><br><code>cooldown</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ecs/hotpatching_systems.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/hotpatching_systems.webp" width="200"/></a><br><code>hotpatching_systems</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/standard_widgets.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/standard_widgets.webp" width="200"/></a><br><code>standard_widgets</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/standard_widgets_observers.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/standard_widgets_observers.webp" width="200"/></a><br><code>standard_widgets_observers</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/scrollbars.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/scrollbars.webp" width="200"/></a><br><code>scrollbars</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/app/settings.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/settings.webp" width="200"/></a><br><code>settings</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/window/persisting_window_settings.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/persisting_window_settings.webp" width="200"/></a><br><code>persisting_window_settings</code></td></tr> <tr><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/clustered_decal_maps.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/clustered_decal_maps.webp" width="200"/></a><br><code>clustered_decal_maps</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/mirror.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/mirror.webp" width="200"/></a><br><code>mirror</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/pccm.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/pccm.webp" width="200"/></a><br><code>pccm</code></td><td><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/light_probe_blending.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/light_probe_blending.webp" width="200"/></a><br><code>light_probe_blending</code></td></tr> </table>

dotnet run --project BevyCSharp.Examples -- 3d_scene
./bcs open --example lighting --offscreen     # serving, for ./bcs to drive and capture

Install

dotnet add package BevyCSharp

The package carries the managed library, the source generator and a prebuilt bridge per platform.

The program above, in a new console project with the package added, is a game, and dotnet run opens its window:

dotnet new console -o MyGame && cd MyGame
dotnet add package BevyCSharp
# Spin.cs and Program.cs as above
dotnet run

On Linux the bridge's audio links ALSA, so the bridge needs ALSA's library to load, libasound2 (libasound2t64 on Ubuntu 24.04 and Debian 13) or alsa-lib on Fedora and Arch, which a desktop has and a container usually does not, and drawing needs a Vulkan driver. Where there is no display, as in a container or on a build server, BCS_OFFSCREEN=1 draws into an image instead of a window and BCS_FRAMES ends the run after that many frames. Mesa's software Vulkan (mesa-vulkan-drivers) draws where there is no graphics card:

BCS_OFFSCREEN=1 BCS_FRAMES=120 dotnet run

The package workflow follows these steps in a container holding the .NET SDK and the package alone.

Guide

The guide in docs/ is for somebody using the engine, a page an area. Everything in it is Bevy's own, bridged rather than reimplemented, so a Transform written from C# is the transform the renderer reads and a sound played from C# is an entity in the same world.

CHEATSHEET.md Every public method of the library on one line, grouped as the pages are
Behaviors Systems and components, stages, the fixed timestep, filters, conditions and threads
States A game's modes, systems scoped to them, and code run as they change
Messages and the hierarchy One system telling another, code run the moment something happens, and entities parented
Components Bevy's components from C#, the rest through reflection, lists and maps, visibility
Scenes and saves Data assets, scene files, instances, saved games and types that change
Assets and models Loading from a folder, an assembly or a pack, and glTF models
Drawing Meshes and materials made in code, and meshlets
Materials and textures Bevy's physically based material and its images
Shaders Materials and passes written in Slang, compiled and reloaded as the game runs
Compute Compute shaders on their own and on a camera
Cameras and light Cameras, shadows, the picture a camera makes and its lens
Reflections and the sky Screen-space and probe reflections, the sky and light probes
Ray tracing Bevy's ray-traced lighting and rays traced by a game
Images and the window Drawing into an image, and the window
2D Sprites and flat cameras
Gizmos Lines and shapes drawn for a frame
The interface Bevy's nodes and text, and Dear ImGui for tools
Audio Sounds and music, placed and mixed
Physics Bodies, colliders, joints, contacts and characters over BepuPhysics
Input Typed text, the input method, touches and gamepads
Math Shapes as values, points sampled in them, bounding volumes and casts, and cubic curves
Running a game In a window, headless or offscreen, and behaviors reloaded while it runs
Making a game Courtyard, a small game from an empty project to an export
The tools The editor, its console, and driving a running app
How it works Inside, between C# and Bevy
Compared with Bevy What is the same, what it adds, what it costs, and what was measured

Driving a running app

./bcs drives a running app from a terminal, the editor, a game or an example, answering in JSON, which is how a change is checked without a person at the window:

./bcs open --editor --offscreen        # start one, detached, with no display needed
./bcs command entity.set Cube Transform.Translation 0,2.5,0
./bcs command input.hold W,D 12        # keys held for twelve frames, inside the app
./bcs shot after.png                   # the next frame, as a PNG
./bcs stop

A game adds commands of its own with [Command] on a static method, and the tools page has the rest.

Status and limitations

Early. The behavior system, the ECS bridge and the schedule work and are covered by tests that run against a real Bevy app. Bevy's own examples are the measure of how much of it is reached:

Of Bevy's 421 examples, 292 are written in C# here and 16 more in part, 0 more can be with what is bridged, 55 wait on something the bridge lacks and 58 are about Rust itself (EXAMPLES.md).

Known gaps:

  • A locally built package contains only the platform you built it on. Use the CI workflow, or run build-native.sh on each target platform, to produce a package covering all of them.
  • A render build draws. Mesh primitives, textured physically based materials, cameras, lights, sprites, gizmos, UI nodes and text are reachable from a behavior script, verified on Vulkan. glTF files and .scn scenes load and spawn, audio plays, and a camera tonemaps, blooms, multisamples, antialiases, scatters a sky over what it draws, pulls focus and finds its own exposure. What is thin is the layer above that. A model's clips play one at a time, sprites step through no frames of their own, and a compressed texture a desktop GPU cannot decode is not transcoded. .github/TODO.md lists what each gap needs.
  • The library compiles no C# at runtime, so a game carries no compiler. Behavior scripts loaded while an app runs go through BevyCSharp.Scripting, which the editor and the player reference and a game references only if it loads scripts itself, over App.EnableDynamicSystems and App.RemoveSystemsBySource.
  • The editor's document is a scene file, with the hierarchy, entity references and Bevy's own components kept, and primitives and materials made in memory written as how to make them again. A mesh built vertex by vertex is written as its geometry, and a material can be kept in a *.material.json of its own. .github/SCENES.md has what is left.
  • Five of Bevy's components are mirrored by hand, and the rest are reached through Bevy's reflection, by type path and JSON or through generated typed wrappers, at the cost of a serialization a call. A component holds a list, inline or in a managed store, and a dictionary in the same store, and shared values live in data assets of their own. .github/COMPONENTS.md plans generated mirrors.
  • Component filters must be table-stored components, which is everything C# registers. A filter naming a Bevy-side sparse-set component is rejected rather than silently wrong.
  • A cubemap comes from a file, as six square faces in a column, a row or a cross, or from a reflection probe that captures itself. One a game renders into with its own cameras, a layer at a time, has no bridge.
  • Slang shaders compile with slangc, which the build fetches. A machine without it draws what was compiled and cached on one that had it, and cannot compile an edit.
  • The renderer is open at fewer points than virtualized geometry, texture streaming, screen-space and world-space GI or reflections need. .github/RENDERING.md lists what each of those asks of an engine, what is here, what is missing, and the order it is built in.

Building from source

Using the package needs none of this, since it ships a prebuilt bridge for every supported platform. This is for working on the bridge itself.

build/build-native.sh          # the headless bridge
dotnet build                   # what copies it beside each project's binaries
dotnet test BevyCSharp.Tests/BevyCSharp.Tests.csproj

The two halves are built separately, and a rebuilt bridge is invisible until a managed build copies it, which is why the second line is not optional. build/build-native.sh --render adds the renderer and --editor adds the interface on top of it.

.github/BUILDING.md has the rest: the three native profiles and what each costs, the platforms and their prerequisites, how the package is assembled for six runtime identifiers, and how a release is published.

Contributing

Prose in this repository follows .github/STYLE.md: no em dashes, no spaced hyphens as punctuation, no colon joining two clauses where a full stop or a "because" belongs, no padded section banners, and comments that explain why rather than restate the code.

License

Mozilla Public License 2.0. The full text is in LICENSE, and it ships inside the package. So does THIRD-PARTY-NOTICES.md, which names the work of others the package carries, Bevy and every crate the bridge is built from among it, each with its license and the notices its own files give, for a game shipped on the package to carry in turn.

MPL-2.0 is file-level copyleft, meaning changes to files that are part of this project have to stay under it and be made available in source form, while anything you build around it, including a game that references the package, is yours under whatever terms you like. Bevy itself is MIT and Apache-2.0, which this can incorporate freely.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.4.129 44 10/7/2026
0.3.2 64 10/4/2026
0.2.277 65 9/27/2026
0.1.200 101 9/20/2026
0.1.130 130 9/5/2026
0.1.88 118 9/4/2026
0.1.69 115 8/31/2026
0.1.32 118 8/30/2026
0.1.20 120 8/30/2026
0.1.18 118 8/30/2026