jackdaw 0.2.1

A 3D level editor built with Bevy
Documentation

🐦‍⬛ Jackdaw 🐦‍⬛

A 3D editor built for and with Bevy. Very early in dev, expect bugs and changes!

https://github.com/user-attachments/assets/cfe6fb2f-faa2-48be-b3d0-50dee0d0b753

https://github.com/user-attachments/assets/929c893a-4959-4cc1-bec7-5217c4d33eba

Features

  • 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 .jsn format 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

Usage

Add jackdaw to your project:

cargo add jackdaw

Then 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.

Keyboard Shortcuts

Navigation

Key Action
RMB + Drag Look around
WASD Move
Q / E Move up / down
Shift Double speed
Scroll Dolly forward / back
F Focus selected

Editing

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.

Documentation

Contributing

See CONTRIBUTING.md for development setup and PR guidelines.

License

Dual-licensed under MIT or Apache-2.0, at your option.