BevyCSharp 0.5.105
dotnet add package BevyCSharp --version 0.5.105
NuGet\Install-Package BevyCSharp -Version 0.5.105
<PackageReference Include="BevyCSharp" Version="0.5.105" />
<PackageVersion Include="BevyCSharp" Version="0.5.105" />
<PackageReference Include="BevyCSharp" />
paket add BevyCSharp --version 0.5.105
#r "nuget: BevyCSharp, 0.5.105"
#:package BevyCSharp@0.5.105
#addin nuget:?package=BevyCSharp&version=0.5.105
#tool nuget:?package=BevyCSharp&version=0.5.105
Bevy C#
Write Bevy games in C#.

<sup>BevyCSharp.Editor, dotnet run --project BevyCSharp.Editor</sup>
Mark a struct [Behavior], give it methods with stage attributes, and a Roslyn source generator
registers it with 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;
// A static method is 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));
}
// An instance method runs 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
- Install
- Guide
- Controlling a running app
- Status and limitations
- Building from source
- Contributing
- License
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. A group's heading counts the examples of
Bevy's group written here, and one that prints rather than draws is in EXAMPLES.md rather than in
the row.
Of Bevy's 438 examples, 358 are written in C# here and 2 more in part, 0 more can be with what is bridged, 18 wait on something the bridge lacks and 60 are about Rust itself (EXAMPLES.md).
2D Rendering, 28 of 29
<table><tr><td width="260"><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="260" height="146"/></a><br><small><code>bloom_2d </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>rotate_to_cursor </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>2d_shapes </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>2d_viewport_to_world </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>wireframe_2d </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>mesh2d_arcs </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>cpu_draw </code></small></td><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/dynamic_mip_generation.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/dynamic_mip_generation.webp" width="260" height="146"/></a><br><small><code>dynamic_mip_generation </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>rotation </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>mesh2d </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>mesh2d_vertex_color_texture </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>mesh2d_alpha_mode </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>mesh2d_repeated_texture </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>move_sprite </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>multi_window_text </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>pixel_grid_snap </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>sprite </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>sprite_animation </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>sprite_flipping </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>sprite_scale </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>sprite_sheet </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>sprite_slice </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>sprite_tile </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>text2d </code></small></td><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/2d/texture_atlas.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/texture_atlas.webp" width="260" height="146"/></a><br><small><code>texture_atlas </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>tilemap_chunk </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>tilemap_chunk_orientation </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>transparency_2d </code></small></td></tr></table>
3D Rendering, all 68
<table><tr><td width="260"><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="260" height="146"/></a><br><small><code>bloom_3d </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>3d_scene </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>3d_shapes </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>3d_viewport_to_world </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>animated_material </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>anisotropy </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>anti_aliasing </code></small></td><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/atmosphere.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/atmosphere.webp" width="260" height="146"/></a><br><small><code>atmosphere </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>atmospheric_fog </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>auto_exposure </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>blend_modes </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>post_processing </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>camera_sub_view </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>clearcoat </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>clustered_decal_maps </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>clustered_decals </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>color_grading </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>contact_shadows </code></small></td><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/decal.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/decal.webp" width="260" height="146"/></a><br><small><code>decal </code></small></td><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/deferred_rendering.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/deferred_rendering.webp" width="260" height="146"/></a><br><small><code>deferred_rendering </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>depth_of_field </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>fog </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>fog_volumes </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>generate_custom_mesh </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>irradiance_volumes </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>light_probe_blending </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>light_textures </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>lighting </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>lightmaps </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>lines </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>mesh_ray_cast </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>meshlet </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>mirror </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>mixed_lighting </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>motion_blur </code></small></td><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/occlusion_culling.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/occlusion_culling.webp" width="260" height="146"/></a><br><small><code>occlusion_culling </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>order_independent_transparency </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>orthographic </code></small></td><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/parallax_mapping.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/parallax_mapping.webp" width="260" height="146"/></a><br><small><code>parallax_mapping </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>pccm </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>parenting </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>pcss </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>pbr </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>rect_light </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>reflection_probes </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>render_to_texture </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>rotate_environment_map </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>ssao </code></small></td><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/ssr.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/ssr.webp" width="260" height="146"/></a><br><small><code>ssr </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>scrolling_fog </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>shadow_biases </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>shadow_caster_receiver </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>skybox </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>solari </code></small></td><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/specular_tint.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/specular_tint.webp" width="260" height="146"/></a><br><small><code>specular_tint </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>spherical_area_lights </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>split_screen </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>spotlight </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>texture </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>tonemapping </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>transmission </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>transparency_3d </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>two_passes </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>vertex_colors </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>visibility_range </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>volumetric_fog </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>wireframe </code></small></td><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/solari_reflections.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/solari_reflections.webp" width="260" height="146"/></a><br><small><code>solari_reflections </code></small></td></tr></table>
Animation, all 13
<table><tr><td width="260"><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="260" height="146"/></a><br><small><code>animated_mesh </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>animated_mesh_control </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>animated_mesh_events </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>animated_transform </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>animated_ui </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>animation_events </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>animation_graph </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>animation_masks </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>color_animation </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>custom_skinned_mesh </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>eased_motion </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>easing_functions </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>morph_targets </code></small></td></tr></table>
Application, 12 of 19
<table><tr><td width="260"><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="260" height="146"/></a><br><small><code>drag_and_drop </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>empty_defaults </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>headless_renderer </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>logs </code></small></td><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/app/render_recovery.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/render_recovery.webp" width="260" height="146"/></a><br><small><code>render_recovery </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>persisting_window_settings </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>settings </code></small></td></tr></table>
Assets, 11 of 18
<table><tr><td width="260"><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="260" height="146"/></a><br><small><code>alter_mesh </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>alter_sprite </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>asset_loading </code></small></td><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/asset/asset_settings.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/asset_settings.webp" width="260" height="146"/></a><br><small><code>asset_settings </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>embedded_asset </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>extra_asset_source </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>generated_assets </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>hot_asset_reloading </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>multi_asset_sync </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>repeated_texture </code></small></td></tr></table>
Async Tasks, all 3
<table><tr><td width="260"><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="260" height="146"/></a><br><small><code>async_channel_pattern </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>async_compute </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>external_source_external_thread </code></small></td></tr></table>
Audio, all 8
<table><tr><td width="260"><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="260" height="146"/></a><br><small><code>audio </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>audio_control </code></small></td><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/audio/decodable.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/decodable.webp" width="260" height="146"/></a><br><small><code>decodable </code></small></td><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/audio/pitch.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/pitch.webp" width="260" height="146"/></a><br><small><code>pitch </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>play_sound_effect </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>soundtrack </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>spatial_audio_2d </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>spatial_audio_3d </code></small></td></tr></table>
Camera, 7 of 12
<table><tr><td width="260"><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="260" height="146"/></a><br><small><code>2d_on_ui </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>2d_top_down_camera </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>camera_orbit </code></small></td><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/camera/custom_projection.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/custom_projection.webp" width="260" height="146"/></a><br><small><code>custom_projection </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>first_person_view_model </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>projection_zoom </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>2d_screen_shake </code></small></td></tr></table>
Diagnostics, 2 of 3
<table><tr><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/diagnostics/log_diagnostics.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/log_diagnostics.webp" width="260" height="146"/></a><br><small><code>log_diagnostics </code></small></td></tr></table>
ECS (Entity Component System), 26 of 35
<table><tr><td width="260"><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="260" height="146"/></a><br><small><code>delayed_commands </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>entity_disabling </code></small></td><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ecs/error_handling.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/error_handling.webp" width="260" height="146"/></a><br><small><code>error_handling </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>hierarchy </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>hotpatching_systems </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>iter_combinations </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>observers </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>one_shot_systems </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>parallel_query </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>removal_detection </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>state_scoped </code></small></td></tr></table>
Games, all 7
<table><tr><td width="260"><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="260" height="146"/></a><br><small><code>alien_cake_addict </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>breakout </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>contributors </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>desk_toy </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>game_menu </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>loading_screen </code></small></td><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/games/mines.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/mines.webp" width="260" height="146"/></a><br><small><code>mines </code></small></td></tr></table>
Gizmos, all 9
<table><tr><td width="260"><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="260" height="146"/></a><br><small><code>2d_gizmos </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>3d_gizmos </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>anchored_text_gizmos </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>axes </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>light_gizmos </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>2d_text_gizmos </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>3d_text_gizmos </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>text_gizmos_font </code></small></td><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/gizmos/transform_gizmo.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/transform_gizmo.webp" width="260" height="146"/></a><br><small><code>transform_gizmo </code></small></td></tr></table>
Input, all 12
<table><tr><td width="260"><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="260" height="146"/></a><br><small><code>mouse_grab </code></small></td></tr></table>
Math, 5 of 6
<table><tr><td width="260"><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="260" height="146"/></a><br><small><code>bounding_2d </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>cubic_splines </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>random_sampling </code></small></td><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/math/render_primitives.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/render_primitives.webp" width="260" height="146"/></a><br><small><code>render_primitives </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>smooth_follow </code></small></td></tr></table>
Movement, 1 of 1
<table><tr><td width="260"><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="260" height="146"/></a><br><small><code>physics_in_fixed_timestep </code></small></td></tr></table>
Picking, 5 of 7
<table><tr><td width="260"><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="260" height="146"/></a><br><small><code>dragdrop_picking </code></small></td><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/picking/draggable_slider.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/draggable_slider.webp" width="260" height="146"/></a><br><small><code>draggable_slider </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>mesh_picking </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>simple_picking </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>sprite_picking </code></small></td></tr></table>
Scene, 1 of 2
<table><tr><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/scene/world_serialization.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/world_serialization.webp" width="260" height="146"/></a><br><small><code>world_serialization </code></small></td></tr></table>
Shaders, 24 of 27
<table><tr><td width="260"><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="260" height="146"/></a><br><small><code>animate_shader </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>array_texture </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>compute_shader_game_of_life </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>compute_mesh </code></small></td><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader_advanced/custom_vertex_attribute.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/custom_vertex_attribute.webp" width="260" height="146"/></a><br><small><code>custom_vertex_attribute </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>extended_material_bindless </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>extended_material </code></small></td><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader/gpu_component_array_buffer.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/gpu_component_array_buffer.webp" width="260" height="146"/></a><br><small><code>gpu_component_array_buffer </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>gpu_readback </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>automatic_instancing </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>custom_shader_instancing </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>shader_material </code></small></td><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader/shader_material_2d.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/shader_material_2d.webp" width="260" height="146"/></a><br><small><code>shader_material_2d </code></small></td><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader/shader_material_2d_bindless.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/shader_material_2d_bindless.webp" width="260" height="146"/></a><br><small><code>shader_material_2d_bindless </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>shader_material_bindless </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>shader_material_screenspace_texture</code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>shader_prepass </code></small></td><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader/pipeline_constants.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/pipeline_constants.webp" width="260" height="146"/></a><br><small><code>pipeline_constants </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>custom_post_processing </code></small></td><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader_advanced/render_depth_to_texture.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/render_depth_to_texture.webp" width="260" height="146"/></a><br><small><code>render_depth_to_texture </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>shader_defs </code></small></td><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader/sprite_material.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/sprite_material.webp" width="260" height="146"/></a><br><small><code>sprite_material </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>storage_buffer </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>texture_binding_array </code></small></td></tr></table>
Shaders Advanced, 3 of 4
<table><tr><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader_advanced/deferred_raymarch.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/deferred_raymarch.webp" width="260" height="146"/></a><br><small><code>deferred_raymarch </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>fullscreen_material </code></small></td><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/shader_advanced/mesh_shader_intro.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/mesh_shader_intro.webp" width="260" height="146"/></a><br><small><code>mesh_shader_intro </code></small></td></tr></table>
State, all 4
<table><tr><td width="260"><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="260" height="146"/></a><br><small><code>computed_states </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>custom_transitions </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>states </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>sub_states </code></small></td></tr></table>
Stress Tests, 19 of 20
<table><tr><td width="260"><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="260" height="146"/></a><br><small><code>bevymark </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>bevymark_3d </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>many_materials </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>many_animated_sprites </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>many_buttons </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>many_cameras_lights </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>many_cubes </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>many_foxes </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>many_gizmos </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>many_glyphs </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>many_gradients </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>many_lights </code></small></td><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/stress_tests/many_meshlet_materials.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/many_meshlet_materials.webp" width="260" height="146"/></a><br><small><code>many_meshlet_materials </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>many_morph_targets </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>many_sprites </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>many_text </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>many_text2d </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>text_pipeline </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>transform_hierarchy </code></small></td></tr></table>
Time, 2 of 3
<table><tr><td width="260"><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="260" height="146"/></a><br><small><code>virtual_time </code></small></td></tr></table>
Tools, 1 of 2
<table><tr><td width="260"><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="260" height="146"/></a><br><small><code>gamepad_viewer </code></small></td></tr></table>
Transforms, all 5
<table><tr><td width="260"><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="260" height="146"/></a><br><small><code>3d_rotation </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>align </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>scale </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>transform </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>translation </code></small></td></tr></table>
UI (User Interface), 58 of 65
<table><tr><td width="260"><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="260" height="146"/></a><br><small><code>anchor_layout </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>borders </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>box_shadow </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>button </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>grid </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>directional_navigation </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>directional_navigation_overrides</code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>display_and_visibility </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>drag_to_scroll </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>editable_text_filter </code></small></td><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/fixed_node.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/fixed_node.webp" width="260" height="146"/></a><br><small><code>fixed_node </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>flex_layout </code></small></td><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/font_atlas_debug.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/font_atlas_debug.webp" width="260" height="146"/></a><br><small><code>font_atlas_debug </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>font_query </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>font_variations </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>font_weights </code></small></td><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/ghost_nodes.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/ghost_nodes.webp" width="260" height="146"/></a><br><small><code>ghost_nodes </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>gradients </code></small></td><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/headless_tabs.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/headless_tabs.webp" width="260" height="146"/></a><br><small><code>headless_tabs </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>image_node </code></small></td><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/image_node_resizing.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/image_node_resizing.webp" width="260" height="146"/></a><br><small><code>image_node_resizing </code></small></td><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/inline_image.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/inline_image.webp" width="260" height="146"/></a><br><small><code>inline_image </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>letter_spacing </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>multiline_text_input </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>multiple_text_inputs </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>overflow </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>overflow_clip_margin </code></small></td><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/overflow_transform.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/overflow_transform.webp" width="260" height="146"/></a><br><small><code>overflow_transform </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>overflow_debug </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>relative_cursor_position </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>render_ui_to_texture </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>scroll </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>scrollbars </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>size_constraints </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>stacked_gradients </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>standard_widgets </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>standard_widgets_observers </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>strikethrough_and_underline </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>tab_navigation </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>text </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>text_background_colors </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>text_debug </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>text_input </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>text_wrap_debug </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>transparency_ui </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>ui_drag_and_drop </code></small></td><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/ui/ui_material.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/ui_material.webp" width="260" height="146"/></a><br><small><code>ui_material </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>ui_scaling </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>ui_target_camera </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>ui_texture_atlas </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>ui_texture_atlas_slice </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>ui_texture_slice </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>ui_texture_slice_flip_and_tile </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>ui_transform </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>z_index </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>vertical_slider </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>viewport_node </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>window_fallthrough </code></small></td></tr></table>
Usage, all 4
<table><tr><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/usage/character_creation.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/character_creation.webp" width="260" height="146"/></a><br><small><code>character_creation </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>context_menu </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>cooldown </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>debug_frustum_culling </code></small></td></tr></table>
Window, 10 of 11
<table><tr><td width="260"><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="260" height="146"/></a><br><small><code>clear_color </code></small></td><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/window/custom_cursor_image.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/custom_cursor_image.webp" width="260" height="146"/></a><br><small><code>custom_cursor_image </code></small></td><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/window/low_power.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/low_power.webp" width="260" height="146"/></a><br><small><code>low_power </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>multiple_windows </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>scale_factor_override </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>screenshot </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>transparent_window </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>window_drag_move </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>window_resizing </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>window_settings </code></small></td></tr></table>
glTF, 6 of 9
<table><tr><td width="260"><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="260" height="146"/></a><br><small><code>edit_material_on_gltf </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>load_gltf </code></small></td><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/gltf/load_gltf_extras.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/load_gltf_extras.webp" width="260" height="146"/></a><br><small><code>load_gltf_extras </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>query_gltf_primitives </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>update_gltf_scene </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>gltf_skinned_mesh </code></small></td></tr></table>
Kept out of Bevy's list, 4 of 14
<table><tr><td width="260"><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="260" height="146"/></a><br><small><code>minimizing </code></small></td><td width="260"><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="260" height="146"/></a><br><small><code>resizing </code></small></td><td width="260"><a href="https://github.com/EggyStudio/BevyCSharp/blob/main/BevyCSharp.Examples/3d/test_meshlet.cs"><img src="https://raw.githubusercontent.com/EggyStudio/BevyCSharp/main/.github/assets/examples/test_meshlet.webp" width="260" height="146"/></a><br><small><code>test_meshlet </code></small></td></tr></table>
dotnet run --project BevyCSharp.Examples -- 3d_scene
./bcs open --example lighting --offscreen # serving, for ./bcs to control and capture
Install
dotnet new install BevyCSharp.Templates
dotnet new bevycsharp -o MyGame && cd MyGame
dotnet run
The template makes the program above, Spin.cs and Program.cs, in a project asking for the
package of the template's own version, and dotnet run opens its window. The package carries the
managed library, the source generator and a prebuilt bridge per platform, and any other project
takes it with dotnet add package BevyCSharp.
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 pack run follows these steps in a container holding the .NET SDK and the two packages 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 |
| A first game | A small game made from an empty folder, a step at a time |
| 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 controlling 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 |
Controlling a running app
./bcs controls 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, and how many of them are written stands under Examples.
Known gaps:
- A locally built package contains only the platform you built it on. Use the pack workflow, or
run
build-native.shon 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
.scnscenes 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, overApp.EnableDynamicSystemsandApp.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.jsonof 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, which uses no em dashes, no spaced hyphens as punctuation, no colon inside a running sentence, 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 | Versions 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. |
-
net10.0
- BepuPhysics (>= 2.5.0-beta.29)
- Twizzle.ImGui-Bundle.NET (>= 1.91.5.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
The captures allow async_compute 4 percent of its pixels beside its sibling for the same random waits on the machine's clock, measured at 2.6 percent on the runner's pack run of c5f19669 and at 1.4 to 1.6 percent in four runs of build/capture-example.sh in a container of the runner's image on lavapipe held to four cores with a --render bridge, its cubes covering about 5 percent of the picture.
The visibility test holds the three components to resolving with their mirrors verified on a headless build as well, and their remarks and the guide say every build has them, a headless one through its world serialization.
An atmosphere takes an air of the game's own in place of the planet's, its gases and dusts each absorbing and scattering its own amounts, thinning with height and scattering by direction as Bevy's scattering terms do, and a term that describes no air is refused with its reason.
The library's transform and visibility types name their components by path and carry the layout the description holds, checked as a generated mirror is, so the hand layout exports, their checks and their short names in the lookup go, and no mirror is generated beside them.
The schema dump writes the layout of each of the 115 components a byte mirror can hold, the generator makes a mirror of 100 of them, and a mirror is refused at first use, and fails a test of the suite, where the running bridge reads its component otherwise.
The bridge reads where the compiler put each field of any reflected type from a value of it, which agrees with every hand mirror, and finds that 115 of the 140 Bevy components holding fixed-size values could be mirrored.
An optional tuple in one of Bevy's components is a nullable C# tuple, an instant the time after the real clock started and a graph's node a uint, so a text layout's cursor, a window's pan gesture, the focus changes, the real clock's updates and the node a transition plays are typed.
Each game names the newest published package it builds on, Swarm the first of 0.5 for MainThread, and a run that publishes builds every game on its own default from nuget.org once the package it pushed is listed, naming a game to raise to that version.
The test script takes a process into the tree it holds to a memory limit only where it was not created before the parent its recorded id names, so on Windows a process left from an earlier run under a reused id is no longer counted.
The lost-suite test holds its hang case to a terabyte, which no process of a runner reaches, so only its time limit ends it, and the test script says the reading that passed a memory limit beside the limit.
The style register says a thing by what it is and does in place of a likeness, and an idiom by the term or the number it stands for, and the documents and comments are swept for the idioms it names.
A soak plays on past its seconds, by as much as half of them again, until each game has been read the six times the check judges, and the check says how long a round took where it has fewer.
The pictures of many_lights and many_cubes are taken again on a bridge built without Solari, as the runner and a game package draw them, since Solari brings in the table Bevy lights the specular term of every material from, and BUILDING.md says which bridge a picture is taken on.
The soak judges what the managed heap holds alive, the bytes its full collection kept, which a ten-minute soak of the three games on lavapipe held within 60,712 bytes of where each settled, and says the heap size and the runtime total without judging them, since the first counts free space and the second read below zero with objects pinned.
The memory guard test collects and gives back the heap before its first reading and allows no collection until its second, so only the memory it allocates moves the figure it reads.
The memory guard reads the physical footprint on macOS, which counts the pages the system compressed, where the resident size read less than a quarter of a gigabyte written.
An example drawn with what the device or bridge lacks, or that the device ends drawing, is captured as the words saying so, printed captures are compared by their lines in any order with each drawing system seeded on its own, and the capture job scales other shapes through ImageMagick, two pictures taken again where a moment or a seed decided them.
The style gains a register that uses the technical term in place of a figure of speech, and holds a colon to the end of a sentence that a list, a code block or a command follows, and the documents, the comments and what the programs print are swept for both.
The docs job leaves the build workflow, and a test of the suite runs build/check-docs.py so every link of the README and the guide into the repository is held to a file and a heading that are there, the links off it left to a run by hand before a package.
The examples are captured by four jobs that each take every fourth example of the list, and the capture script stops starting examples once the minutes it is given have gone and names how far it got, where the one job was cut off at its limit with nothing said.
The workflows are two, build.yml testing every push with the jobs a pack adds behind its pack input and pack.yml calling it whole before it packs, and the testers' zips and the Sponza drive are runs by hand, the drive through build/scenes.sh.
The session file is moved into place again a few times while a reader holds it on Windows and read sharing its deletion, and the soak says which game failed and why, the three games soaked for ten minutes and the feature test alone for fifteen after its drive, since lavapipe read none of them enough in two and a half.
The play job fetches slangc before it builds the feature test for the soak, so no job runs a program whose shaders it knows will not compile.
The pack jobs' scripts give every command ten minutes and name one that fails with bcs's own line, the feature test's drive runs in a job of its own with checks that hold at any point of a swing, the storm installs the libraries winit opens on X11 and prints the bridge's words, and the captures fetch Bevy's files and slangc before the build that needs them.
The examples' captures stop when three examples in a row do not start, saying so with what the first one logged, where a cause they all share waited out the job's hour unnamed.
The projects here copy the bridge from this machine's staged slot where no build ran here, which the storm job's tests lacked, the release notes go beside the staged bridges and the package check reads the runtime folders alone, and Swarm's play gives each command ten minutes and names one that fails, in a job given an hour.
The bridge names winit on every system, which the window icon needs on Windows and macOS where a pack failed, the push checks the bridge for both, and the memory guard reads the private bytes on Windows, which Windows cannot trim as it trims a working set.
REVIEW.md as the reviewing session left it, with the shuffled suite's pass recorded and the work stopped where it waits on the owner.
REVIEW.md and SHARED.md as the reviewing session left them, the shared rows read as this engine has them.
A pad command naming a pad past the last connects console pads up to it, four at most in all, so a second player's button is pressed on a machine with none attached.
input.click takes a count and clicks that many times a frame apart, within the double-click time, so a double tap is driven and heard as the second click of a run.
N 1.3's test counts the Slang shaders of the bridge and the examples, and the pass module keeps its deferred buffers and a shadow stage's depth in a file of its own that it includes, so none is over 800 lines.
The pack run storms a window in a job of its own, the Linux render bridge in the test bin and the test under xvfb-run on lavapipe, failing where the storm was skipped rather than run.
A window is stormed by resizes, minimizes and a move while it draws and must draw at the size last asked for, run where a run asks on a display that gives a minimized window back, winit building its loop on the test host's thread.
An edit to a module another module exports again with __exported import recompiles the shader importing the exporter, pinned by a test beside the import test, the two moved into a class of their own.
A project names its window's title and icon, which the Project page edits, an app's window wears from the start where its config leaves the title at the default, and the player and so an export take too.
An AnimationMachinePlayer on the entity placing a model names the state machine it runs, which a scene saves and which starts once the model arrives and stops when the component is taken off.
TODO.md says the shadows' two milliseconds wait for Bevy's trace feature, which the bridge does not compile in and which changes the lock as the crates waiting do.
TODO.md says a behavior marks every row its method runs on because comparing each row before and after the method cost 11 to 14 percent of the frame in Stress movers, where a twentieth was the most it could take.
A pretended pointer's move is written as the mouse's motion as well, so a camera steered by dragging, the editor's among them, turns under input.drag in a window or offscreen.
A pad's dead zones are set through the settings Bevy keeps on its entity, which a test of a pretended pad pins, and TODO.md says so with what is left of the gamepad and of a behavior's change marks.
A box, sphere or capsule left at zero on the entity placing a model fits the meshes of its parts once the scene instances have posted it ready, rather than being a unit cube made once.
A node that scrolls keeps the room UiSettings.ScrollbarWidth gives at the far edge of each axis it scrolls along, for a scrollbar to sit in beside its contents.
Every call on Window has an overload taking the entity of a window a game spawned, which the bridge addresses by its bits with the primary window behind a value no entity has.
A clip made in code moves a number, a vector or a rotation in any component Bevy reflects, named by its type path and a reflect path checked when the curve is added, each field by a curve of its own.
An animation state machine, a data asset of states and transitions the editor edits as lists, chooses a model's clip from the parameters a game sets, the triggers it fires and its clips ending.
A save writes only the fields play changed on the scenes' entities, a component play took off as null and nothing for an entity play left alone, so a level fixed in an update reaches every field a player did not change.
A scene or data file a newer build wrote keeps its version through an older build's save, so the newer build reads it as its own and does not migrate it a second time.
The to-do list says what the eighteen examples still missing wait on, and that animation has its graph, clips made in code and events, which the guide now says as well.
A picture a test takes waits until every pipeline has been ready for three frames running, since one frame's ready came before a pipeline that frame then asked for, and the soft shadow test's picture was taken with nothing drawn.
The pictures' helper keeps a test's assets in the test project's one temporary folder, which names what holds a file it cannot remove rather than leaving the folder behind.
The tests of the Scripting folder keep their files in the test project's one temporary folder, which removes it as the class goes and names what holds a file it cannot.
The tests of the Scenes folder keep their files in the test project's one temporary folder, which removes it as the class goes and names what holds a file it cannot.
The tests of the Editor folder keep their files in the test project's one temporary folder, which removes it as the class goes and names what holds a file it cannot.
The tests of the Ecs folder keep their files in the test project's one temporary folder, which removes it as the class goes and names what holds a file it cannot.
The tests of the Core folder keep their files in the test project's one temporary folder, which removes it as the class goes and names what holds a file it cannot.
The tests of the Cli folder keep their files in the test project's one temporary folder, which removes it as the class goes and names what holds a file it cannot.
The tests of the Assets folder keep their files in the test project's one temporary folder, which removes it as the class goes and names what holds a file it cannot.
The soft shadow test says how many pixels of each picture are dark and how many light when it fails, so a failure tells a picture with no shadow from one with a hard edge.
Each public type of the Scenes folder that shared a file goes to a file named for it, moving code alone.
Each public type of the Interop folder that shared a file goes to a file named for it, moving code alone.
Each public type of the Input folder that shared a file goes to a file named for it, moving code alone.
Each public type of the Ecs folder that shared a file goes to a file named for it, moving code alone.
Each public type of the Diagnostics folder that shared a file goes to a file named for it, moving code alone.
Each public type of the Core folder that shared a file goes to a file named for it, moving code alone.
Each public type of the Cli folder that shared a file goes to a file named for it, moving code alone.
Each public type of the Behaviors folder that shared a file goes to a file named for it, moving code alone.
Each public type of the Assets folder that shared a file goes to a file named for it, moving code alone.
The tests of the Assets area move into its folder in the test project, moving code alone so each is found beside the area it tests.
The tests of the Behaviors area move into its folder in the test project, moving code alone so each is found beside the area it tests.
The tests of the Ecs area move into its folder in the test project, moving code alone so each is found beside the area it tests.
The tests of the Scenes area move into its folder in the test project, moving code alone so each is found beside the area it tests.
The test of the Math area moves into its folder in the test project, moving code alone so each is found beside the area it tests.
The test of the Input area moves into its folder in the test project, moving code alone so each is found beside the area it tests.
The tests of the Interop area move into its folder in the test project, moving code alone so each is found beside the area it tests.
The tests of the Core area move into its folder in the test project, moving code alone so each is found beside the area it tests.
The tests of the Diagnostics area move into its folder in the test project, moving code alone so each is found beside the area it tests.
The tests of the Cli area move into its folder in the test project, moving code alone so each is found beside the area it tests.
The render control tests move into the folder of the area they test and the window's go to a class of their own in its area, moving code alone so no test file passes eight hundred lines.
The checks of a shader value and the tests of render/values.rs move into files of their own beside it, moving code alone so the file no longer passes eight hundred lines.
The view shader tests move into the folder of the area they test and their draws go to a class of their own, moving code alone so no test file passes eight hundred lines.
The bridge's render/scene.rs is split into captures, lights and sprites, its image calls joining images.rs, moving code alone so the file no longer passes eight hundred lines.
Bevy's font_atlas_debug example is written in C#, the pictures of the font atlases read through a call that answers each with the size of the font drawn into it.
A click asked of a running app moves the pointer there and waits two frames before it presses, so picking finds what is under a point the pointer has not been.
Bevy's three remote protocol examples are listed as not applying, since bcs stands in for that protocol, and the to-do list says the sky has Mars's air as well as earth's.
Bevy's solari_reflections example is written in C#, a room of mirrors and a test material whose roughness a slider sets, drawn by Solari's realtime lighting or by the reference path tracer at a key.
Bevy's render_recovery example is written in C#, with a policy for what a render error does, a count of the errors and a call that causes each kind, and an app that closes while its pipelines compile no longer aborts on its way out.
A behavior method filtered on changes to its own component runs on the entities that changed alone, rather than on every entity every frame.
Bevy's atmosphere example is written in C#, with Mars's air, the choice of how the sky is worked out, and the disk of the sun a light stands for.
Bevy's world_serialization is written in C#, with text a component holds, a field a scene file leaves out, and the game's own resources saved and loaded beside a scene's entities.
A game plays samples it writes as it plays, a stream that plays silence when it runs out, and Bevy's decodable example is written with it.
A tone of one frequency is made and played as a clip is, as Bevy's pitch example plays one, and a mesh may be left without the normals a shader of its own never reads.
An app may ask for Bevy's interactive transform gizmo, and Bevy's transform_gizmo example is written with it.
The meshes the GPU drew in the opaque pass are read back on request, as Bevy's occlusion_culling example reads them, and that example is written with it.
A mesh carries vertex streams of the game's own that a vertex shader of the program's own reads at their locations, and Bevy's custom_vertex_attribute example is written with them.
The GPU makes an image's mipmaps from its top level each frame on request, as Bevy's MipGenerationJobs does, and Bevy's dynamic_mip_generation example is written with it.
An interface node can be drawn by a Slang program of the game's own, as Bevy draws a UiMaterial, and Bevy's ui_material example is written with it.
The count of written examples stands under the Examples heading, and each group in the gallery says how many of its examples are written.
Bevy's render_depth_to_texture is written with a camera drawing its depth alone into no target and a watch of that depth shown on a plane, which the engine reached already, so its triage line was stale.
Render.SetAdjustedPerspective gives a camera Bevy's perspective with entries of its matrix written over it, a projection of the game's own the bridge declares since C# cannot, and Bevy's custom_projection is written with it.
Bevy's error_handling is written, its points sampled over the sphere from its triangles read back and its errors met as a C# system meets them, logged by the engine or caught by the system, and the guide says how that answers to Bevy's error handlers.
Bevy's load_gltf_extras is written through the extras wrappers glTF's four kinds of extras already had, so its triage line was stale, and the guide says where a model's extras arrive.
Render.CreateDecalMaterial makes Bevy's forward decal material and Render.SetForwardDecal makes an entity a decal drawn with it, Bevy's decal is written with them, and the bridge's comment on the path tracer names the development machine's GPU in plain words.
The library's remarks and the guide speak of the development machine's GPU in plain words rather than by its model, each measurement kept.
Bevy's ghost_nodes feature is built in, adding no crate, so GhostNodeRef puts a node the layout passes through on an entity, and Bevy's ghost_nodes is written with it.