Skip to content

Professional 3D level editor for Bevy game engine with procedural generation (BSP, WFC), transform gizmos, asset management, and multi-format export. Built with Tauri + React + Three.js + Rust.

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

greysquirr3l/morgan-bevy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Morgan-Bevy 3D Level Editor

🚧 Under Active Development - Professional 3D level editor for Bevy game engine with procedural generation capabilities.

Core Philosophy: "Generate smart, edit fast, export perfect."

Rust TypeScript React Tauri Three.js


🎯 Project Overview

Morgan-Bevy is a comprehensive 3D level editor specifically designed for the Bevy game engine. It combines procedural generation algorithms (BSP, WFC) with professional manual editing tools to enable rapid level design and iteration.

🎮 Target Users

  • Game Developers using Bevy engine
  • Level Designers and 3D environment artists
  • Indie Game Studios needing rapid prototyping tools
  • Procedural Generation enthusiasts

✨ Current Features

🎨 3D Editor Foundation

  • Interactive 3D Viewport - Professional Three.js rendering with orbit camera controls
  • Transform Gizmos - Move, rotate, and scale objects with industry-standard controls (W/E/R keys)
  • Object Selection - Click selection with multi-select (Ctrl+click) and visual feedback
  • Grid System - Configurable snapping (0.1, 0.5, 1.0, 2.0 units) with visual overlay
  • Professional Resizable UI - Dynamic panel system with drag handles and constraint boundaries
  • Advanced Camera Controls - Reset view and focus selection with bounding box calculations

�️ Professional Asset Management

  • SQLite Asset Database - Enterprise-grade database with rusqlite 0.32.1 for scalable asset management
  • Advanced Asset Browser - Comprehensive UI with search, filtering, and statistics dashboard
  • Full-Text Search - Real-time asset discovery with debounced search and efficient indexing
  • Collection Management - Automatic categorization and user-defined asset groups
  • Asset Metadata System - File size, checksums, creation dates, and custom metadata storage
  • Thumbnail Support - Visual asset previews with caching system
  • Drag & Drop Integration - Seamless asset-to-viewport workflow for rapid scene building
  • Statistics Dashboard - Total assets, storage usage, collections count, and scan status

📁 File System Integration

  • Native File Dialogs - Browse local and external folders with platform-native interfaces
  • Asset Type Detection - Automatic classification of models, textures, materials, and audio files
  • Parallel Asset Scanning - High-performance asset discovery with rayon for large libraries
  • Database Migration System - Seamless schema updates and version management

🎛️ Professional Menu System

  • Complete Menu Bar - Fully functional File, Edit, View, Generate, Tools, and Help menus
  • Context-Aware Actions - Smart enabling/disabling based on current editor state
  • Keyboard Shortcut Integration - Professional shortcut system with help documentation
  • Menu State Synchronization - Real-time reflection of editor state in menu options

⌨️ Professional Workflow

  • Keyboard Shortcuts - Complete shortcut system for efficient editing
    • W / E / R - Transform modes (translate/rotate/scale)
    • G - Toggle grid display
    • F - Frame selected objects (focus camera)
    • Alt+F - Frame all objects
    • Ctrl+D - Duplicate selected objects
    • Delete / Backspace - Remove selected objects
    • Esc - Clear selection
    • Camera controls via toolbar buttons (Reset View, Focus Selection)

🏗️ Scene Management

  • Resizable Hierarchy Panel - Tree view of scene objects with dynamic sizing and selection synchronization
  • Resizable Inspector Panel - Object property editing with drag-handle resizing
  • Object Management - Create, duplicate, and remove 3D objects
  • State Management - Zustand store with real-time viewport synchronization
  • Collapsible Bottom Panel - Asset browser with toggle and resize functionality
  • Layer System - Organize objects by layers (Walls, Floors, Doors, Lights)

🔧 Technical Foundation

  • Cross-Platform - Windows, macOS, and Linux support via Tauri
  • Hot Reload - Development environment with frontend/backend hot reload
  • Type Safety - Full TypeScript coverage with strict configuration
  • Performance - 60 FPS rendering with optimized Three.js integration

🚀 Upcoming Features (In Development)

📦 Phase 4: Advanced Editing

  • 🔄 Box Selection - Multi-object selection with drag rectangles
  • 🔄 Undo/Redo System - Command pattern with efficient history management
  • 🔄 Copy/Paste - Full clipboard operations with transform data
  • 🔄 Multi-Object Editing - Edit multiple selected objects simultaneously
  • 🔄 Advanced Material Editor - PBR material editing with real-time preview

🌱 Phase 5: Procedural Generation

  • 🔄 BSP Algorithm - Binary Space Partitioning for room generation
  • 🔄 WFC Integration - Wave Function Collapse for detailed layouts
  • 🔄 Theme System - Office, Dungeon, Sci-Fi architectural styles
  • 🔄 Seed Management - Reproducible generation with seed control

📤 Phase 6: Export System

  • 🔄 Multi-Format Export - JSON, RON (Bevy native), and Rust code generation
  • 🔄 Bevy Integration - Direct import into Bevy projects
  • 🔄 Collision Data - Export collision shapes and navigation meshes
  • 🔄 Asset References - Maintain asset links in exported data

🛠️ Technology Stack

Layer Technology Purpose
Desktop App Tauri v2.9 Cross-platform native application framework
Frontend React + TypeScript UI framework with type safety
3D Rendering Three.js + React Three Fiber WebGL 3D graphics
State Management Zustand v5.0.8 + Immer Efficient state management
Database SQLite + rusqlite v0.32.1 Asset database and metadata storage
Backend Rust High-performance algorithms and file operations
Styling Tailwind CSS Utility-first CSS framework
Build System Vite + Cargo Fast development and building

🚀 Quick Start

Prerequisites

  • Node.js 22.21.1+ and npm
  • Rust 1.70+ with Cargo
  • Platform-specific dependencies for Tauri

Development Setup

  1. Clone the repository

    git clone https://github.com/greysquirr3l/morgan-bevy.git
    cd morgan-bevy
  2. Install dependencies

    npm install
  3. Start development server

    npm run tauri dev
  4. Start editing!

    • The 3D editor will open with demo objects
    • Use W/E/R to switch transform modes
    • Click objects to select and manipulate
    • Drag assets from the Assets panel to create new objects

Build for Production

npm run tauri build

📋 Development Roadmap

Phase Timeline Status Features
Phase 1 ✅ Complete Foundation 3D Editor, Transform Gizmos, Basic Asset Management
Phase 2 ✅ Complete UI & Workflow Resizable Panels, Camera Controls, Professional UI
Phase 3 ✅ Complete Asset Database SQLite Database, Advanced Asset Browser, Search & Collections
Phase 4 🔄 In Progress Advanced Editing Box Selection, Undo/Redo, Enhanced UI
Phase 5 📅 Planned Procedural Generation BSP, WFC, Theme System
Phase 6 📅 Planned Export & Integration Multi-format Export, Bevy Integration

🎬 Demo & Screenshots

📸 Screenshots and demo videos coming soon as features are completed

Current Capabilities

  • Interactive 3D Scene with real-time object manipulation
  • Professional Transform Gizmos for precise editing
  • Industry-Standard Resizable Interface with drag handles and constraints
  • Advanced Camera Controls with reset view and focus selection
  • Professional Asset Database with SQLite backend and full-text search
  • Comprehensive Asset Browser with statistics, filtering, and collections
  • Asset Drag-and-Drop workflow from database browser to 3D viewport
  • Multi-object Selection with visual feedback
  • Grid-based Snapping for precision placement
  • Complete Menu System with context-aware actions and keyboard shortcuts

🤝 Contributing

🚀 We're actively seeking contributors! Morgan-Bevy is an ambitious open-source project that would benefit greatly from community involvement. Whether you're a Rust developer, TypeScript expert, 3D graphics enthusiast, or UI/UX designer, there are opportunities to make a significant impact.

🎯 Areas Where We Need Help

  • Rust Backend Development - Procedural generation algorithms (BSP, WFC), export systems
  • Three.js/WebGL - 3D rendering optimizations, advanced visual features
  • React/TypeScript - UI components, state management, performance improvements
  • Game Development - Bevy engine integration, level design workflows
  • Documentation - Technical writing, tutorials, examples
  • Testing - Unit tests, integration tests, performance testing

🐛 Bug Reports & Feature Requests

  • Open an issue with detailed reproduction steps
  • Check existing issues before creating new ones
  • Include system information and error messages

💻 Development Contributions

  • Fork the repository and create a feature branch
  • Follow existing code style and patterns
  • Add tests for new functionality
  • Update documentation for user-facing changes

📚 Documentation

  • Improve README, code comments, or user guides
  • Create tutorials or example projects
  • Report unclear or missing documentation

📄 License

This project is dual-licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.


🙏 Acknowledgments

  • Bevy Engine - Target game engine and inspiration
  • Three.js - Powerful 3D graphics foundation
  • Tauri - Modern desktop app framework
  • React Three Fiber - React integration for Three.js
  • Open Source Community - Libraries, tools, and inspiration

📞 Contact & Community


⭐ Star this repository if you find it useful!

🚧 This project is under active development - watch for updates!

About

Professional 3D level editor for Bevy game engine with procedural generation (BSP, WFC), transform gizmos, asset management, and multi-format export. Built with Tauri + React + Three.js + Rust.

Topics

Resources

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE-APACHE
MIT
LICENSE-MIT

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages