jackdaw 0.3.1

A 3D level editor built with Bevy
Documentation

🐦‍⬛ Jackdaw 🐦‍⬛

License Crates.io Downloads Docs Discord

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

We have also recently refactored our UX/UI to be very similar to the official Bevy Editor Figma design, to keep things consistent. Link here

https://github.com/user-attachments/assets/c8f1dc66-ef32-44c6-837b-35b7eeb01e41

https://github.com/user-attachments/assets/779af6e1-bd34-49f4-a3b4-ccd474ea2f76

https://github.com/user-attachments/assets/1e2d7cfe-601c-4af7-8dd6-a9cddc4a3c6f

https://github.com/user-attachments/assets/56834720-599e-4461-b712-fff7b85fb128

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

Standalone install:

cargo install jackdaw

Open Jackdaw, and point to a new project!

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.