bevyengine/bevy
Data models
Standard component groupings you'll see across the engine. Knowing these makes reading any Bevy code faster.
Spatial entities
Anything that has a position in the world has these:
| Component | Purpose | Crate |
|---|---|---|
Transform |
Local translation/rotation/scale. | bevy_transform |
GlobalTransform |
World-space transform, computed in PostUpdate. |
bevy_transform |
ChildOf(parent) |
Relationship: this entity is a child of parent. |
bevy_ecs |
Children([..]) |
Auto-maintained list of child entities. | bevy_ecs |
Visibility |
User-controlled visibility (Inherited / Visible / Hidden). | bevy_camera |
InheritedVisibility |
Computed from parent. | bevy_camera |
ViewVisibility |
Per-camera computed visibility (after culling). | bevy_camera |
SpatialBundle and VisibilityBundle collected these in legacy code; modern code uses required components on the relevant rendering components.
3D meshes
A 3D meshed entity has:
(Mesh3d(handle), MeshMaterial3d<StandardMaterial>(handle), Transform, Visibility)| Component | Purpose | Crate |
|---|---|---|
Mesh3d |
Handle to a 3D mesh. | bevy_mesh |
MeshMaterial3d<M> |
Handle to a material. | bevy_material |
Aabb |
Object-space bounding box (computed on first use). | bevy_camera |
NotShadowCaster / NotShadowReceiver |
Skip shadow casting/receiving. | bevy_pbr |
2D sprites
(Sprite, Transform, Visibility)| Component | Purpose | Crate |
|---|---|---|
Sprite |
Image handle, color, custom size, anchor, flip flags. | bevy_sprite |
TextureAtlas |
Sub-region of a texture atlas. | bevy_sprite |
For 2D meshes, use Mesh2d + MeshMaterial2d<M> instead of Sprite.
Cameras
(Camera, Camera3d_or_Camera2d_marker, Transform, Projection?)| Component | Purpose | Crate |
|---|---|---|
Camera |
Render target, viewport, clear behavior, exposure, sub-camera. | bevy_camera |
Camera3d / Camera2d |
Marker selecting the 2D or 3D pipeline. | bevy_core_pipeline |
Projection |
Perspective / Orthographic / custom. | bevy_camera |
Frustum |
Six-plane frustum (computed in PostUpdate). |
bevy_camera |
Tonemapping |
Per-camera tonemap operator. | bevy_core_pipeline |
Bloom, Skybox, MotionBlur, DepthOfField |
Optional per-camera effects. | bevy_core_pipeline |
RenderLayers |
Visibility filter. | bevy_camera |
EnvironmentMapLight |
IBL for this camera. | bevy_light |
Lights
(PointLight | SpotLight | DirectionalLight, Transform, Visibility)| Component | Purpose | Crate |
|---|---|---|
PointLight |
Omnidirectional, with optional shadows. | bevy_light |
SpotLight |
Cone, with optional shadows. | bevy_light |
DirectionalLight |
Sun-like, with optional cascaded shadows. | bevy_light |
AmbientLight |
Per-camera ambient term (resource-like, but per-camera). | bevy_light |
Volumetric |
Marker: contributes to volumetric fog. | bevy_light |
UI
(Node, BackgroundColor?, BorderColor?, BorderRadius?, Outline?, Transform, Visibility)| Component | Purpose | Crate |
|---|---|---|
Node |
Layout properties (size, flex, position). | bevy_ui |
BackgroundColor, BorderColor, BorderRadius, Outline, BoxShadow |
Visual style. | bevy_ui |
Text |
Text content with TextSpan children. |
bevy_text |
ImageNode |
Image background. | bevy_ui |
MaterialNode<M> |
Custom UI shader. | bevy_ui_render |
UiTargetCamera |
Which camera this UI tree renders into. | bevy_ui |
ZIndex |
Override stack order. | bevy_ui |
ComputedNode |
Read-only output of layout. | bevy_ui |
Audio
(AudioPlayer<AudioSource>, PlaybackSettings)Add Transform + SpatialAudio for 3D positional audio.
Animation
(AnimationPlayer, AnimationGraphHandle, Transform)Animation targets need AnimationTarget(AnimationTargetId, AnimationPlayer entity) so the player can resolve curves to the right entity.
Picking
Most Bevy entities are pickable by default if they belong to a domain with a registered backend (UI, sprite, mesh). Opt out with PickingBehavior { is_hoverable: false, .. } or block picking through children with should_block_lower: true.
Required component shorthand
Many of these "implicit" component sets are now declared via #[require(...)] on the user-facing component, so adding e.g. Mesh3d automatically inserts Transform, Visibility, etc. The required-component graph is the modern replacement for explicit bundles.
See also
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.