A 3D editor built for and with Bevy. Very early in dev, expect bugs and changes! A BSN-friendly branch exists on the bsn-editor branch (the flow is to read/write to the BSN AST and then sync to the ECS for rendering the UI and viewport)
2026-03-21.06-54-08.mp4
2026-03-21.06-56-09.mp4
- Brush-based geometry draw, edit, and CSG-combine convex brushes with vertex/edge/face/clip editing modes
- Material system VERY wip - texture browser, material definitions with ORM auto-detection, per-face application
- Terrain heightmap sculpting and texture painting, very WIP :)
- Scene serialization save/load scenes in the
.jsnformat with full asset references. Ideally to be replaced with BSN once ready. - Transform tools translate, rotate, scale with grid snapping and axis constraints
- Undo/redo full command history - some bugs atm with this
- Extensible register custom components, add inspector panels, integrate with your game
Add jackdaw to your project:
cargo add jackdawThen add the EditorPlugin to your app:
use bevy::prelude::*;
use jackdaw::EditorPlugin;
fn main() -> AppExit {
App::new()
.add_plugins((DefaultPlugins, EditorPlugin))
...
.run()
}See the examples for more advanced usage.
| Key | Action |
|---|---|
| RMB + Drag | Look around |
| WASD | Move |
| Q / E | Move up / down |
| Shift | Double speed |
| Scroll | Dolly forward / back |
| F | Focus selected |
| Key | Action |
|---|---|
| Esc / R / T | Translate / Rotate / Scale mode |
| B / C | Draw brush (add / cut) |
| 1-4 | Brush edit: Vertex / Edge / Face / Clip |
| Ctrl+D | Duplicate |
| Delete | Delete selected |
| Ctrl+Z / Ctrl+Shift+Z | Undo / Redo |
| Ctrl+S | Save scene |
For the full shortcuts reference, see the book.
See CONTRIBUTING.md for development setup and PR guidelines.
Dual-licensed under MIT or Apache-2.0, at your option.