Bevy's renderer.
Python's ecosystem.

A Python real-time engine built on Bevy, with fast hot reload and an optional AI feedback loop.

$ pip install pybevyClick to copy

MIT & Apache 2.0 · Python 3.12+

Read the launch post →

The AI sees what it builds.

Write Python, save the file, and see your 3D scene update. Use NumPy, JAX, and PyTorch in the same process as a real 3D renderer. And when you want it, the AI can join the loop — it writes code, sees the result, and iterates.

1

Write Python

Define your scene with familiar Python — ECS systems, components, resources.

2

Save & Hot Reload

The engine picks up your changes instantly. No restart, no recompile.

3

AI Sees the Result

The AI captures a screenshot, inspects entities, and evaluates what it built.

4

Iterate

It writes new code, reloads, and refines. Under 2 seconds per cycle.

Write Python. Fast hot reload.

⚠️ Beta State

PyBevy is in an early and experimental stage. The API is incomplete, subject to breaking changes without notice, and you should expect bugs. Many features are still under development.

Why PyBevy

⚡️

Fast Hot Reload

Edit your Python, save the file, see the scene update. No restart, no recompile.

🔗

Python Ecosystem In-Process

NumPy, JAX, PyTorch — just import. No IPC, no serialization layers.

🎨

Real Rendering

Bevy's PBR pipeline — shadows, bloom, volumetric fog, transmission. Not a toy renderer.

🧱

Bevy ECS in Python

Systems, queries, components, resources — if you know Bevy's Rust API, this feels familiar.

Real Rendering. Not a Toy.

Bevy's wgpu-based deferred rendering pipeline — modern GPU quality, not a software rasterizer.

PBR Materials

Physically-based rendering with metallic/roughness workflow, normal maps, and emissive materials.

Volumetric Fog

Distance and volumetric fog for atmospheric depth. Fog volumes with density textures.

Cascaded Shadows

Cascaded shadow maps for directional lights. Point and spot light shadows.

Bloom & HDR

Emissive bloom with threshold control. HDR rendering pipeline with tone mapping.

SSAO

Screen-space ambient occlusion for contact shadows and depth in tight geometry.

Transmission & Glass

Specular transmission for glass, water, and translucent materials with refraction.

Fast Enough for Real Scenes

The bottleneck in rendered scenes is draw calls, not Python system cost. For bulk simulation, Numba JIT gets you within striking distance of Rust.

100K
entities at 60fps

With full PBR rendering pipeline active.

<1ms
Python system overhead

At the entity counts real scenes need, Python cost is sub-millisecond.

~4x
of native Rust with Numba

JIT-compiled hot loops close the gap for bulk simulation.

Prototype in Python, Ship in Rust

Bevy does the rendering. Python handles the logic, the data, and the ecosystem. When you need Rust performance, the native plugin mode gets you there without throwing away what you built.

Python

Rust

The Python Ecosystem, In-Process

NumPy

JAX

PyTorch

Numba

Import directly inside ECS systems. Train a model with PyTorch, run N-body physics with JAX, process arrays with NumPy — same process as the renderer.

How PyBevy Compares

Honest context. Every tool has tradeoffs.

Panda3D / Ursina

More mature Python integration, weaker rendering pipeline.

PyBevy: Modern GPU pipeline: volumetric fog, cascaded shadows, SSAO, deferred rendering.

Godot

Better visual editor and built-in physics, requires GDScript or C#.

PyBevy: Pure Python, ML ecosystem in-process, sub-2s AI iteration loop.

Three.js

Browser-native JavaScript, weaker shadow quality, no ECS.

PyBevy: True archetype ECS, PBR-quality rendering, Python ecosystem access.

Bevy (Rust)

Same architecture under the hood — PyBevy adds Python on top.

PyBevy: Faster iteration, ML ecosystem in-process, hot reload without recompile.

What's Next

Python Render Graph & GPU Post-Processing

Write render graph nodes in Python. Post-process shaders in JAX — toon shading, bloom, CRT, glitch. GPU-GPU zero-copy: read and write GPU tensors directly, no CPU round-trip.

In development

GPU-GPU Exposed Buffers

Expose Bevy render graph buffers to JAX and PyTorch on the GPU. The bridge for real-time ML inference in the render loop.

In development

Browser Renderer

Run scenes in the browser with shareable URLs. Embeddable via npm for your own sites.

In development

Particles (Hanabi)

GPU particle effects via the bevy_hanabi crate — fire, smoke, sparks, trails, and custom particle behaviors.

Planned

In-Scene Agents

Agents as ECS entities that observe, decide, and act inside the running world.

Planned

Independently Developed, Community-Maintained

MIT and Apache 2.0. Help shape it.