From 93a2252a58894e2cd31d79ec040c0e99d09c529e Mon Sep 17 00:00:00 2001 From: Skyler Lehmkuhl Date: Wed, 11 Feb 2026 19:11:11 -0500 Subject: [PATCH] Update README --- README.md | 108 ++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 92 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index a36af27..cf9afb3 100644 --- a/README.md +++ b/README.md @@ -10,42 +10,118 @@ A free and open-source 2D multimedia editor combining vector animation, audio pr ![Video Editing View](screenshots/video.png) -## Current Features +## Features **Vector Animation** +- GPU-accelerated vector rendering with Vello - Draw and animate vector shapes with keyframe-based timeline - Non-destructive editing workflow +- Paint bucket tool for automatic fill detection **Audio Production** -- Multi-track audio recording -- MIDI sequencing with synthesized and sampled instruments -- Integrated DAW functionality +- Real-time multi-track audio recording and playback +- Node graph-based effects processing +- MIDI sequencing with synthesizers and samplers +- Comprehensive effects library (reverb, delay, EQ, compression, distortion, etc.) +- Custom audio engine with lock-free design for glitch-free playback **Video Editing** -- Basic video timeline and editing (early stage) -- FFmpeg-based video decoding +- Video timeline and editing with FFmpeg-based decoding +- GPU-accelerated waveform rendering with mipmaps +- Audio integration from video soundtracks ## Technical Stack -- **Frontend:** Vanilla JavaScript -- **Backend:** Rust (Tauri framework) -- **Audio:** cpal + dasp for audio processing -- **Video:** FFmpeg for encode/decode +**Current Implementation (Rust UI)** +- **UI Framework:** egui (immediate-mode GUI) +- **GPU Rendering:** Vello + wgpu (Vulkan/Metal/DirectX 12) +- **Audio Engine:** Custom real-time engine (`daw-backend`) + - cpal for cross-platform audio I/O + - symphonia for audio decoding + - dasp for node graph processing +- **Video:** FFmpeg 8 for encode/decode +- **Platform:** Cross-platform (Linux, macOS, Windows) + +**Legacy Implementation (Deprecated)** +- Frontend: Vanilla JavaScript +- Backend: Rust (Tauri framework) ## Project Status -Lightningbeam is under active development. Current focus is on core functionality and architecture. Full project export is not yet fully implemented. +Lightningbeam is under active development on the `rust-ui` branch. The project has been rewritten from a Tauri/JavaScript prototype to a pure Rust application to eliminate IPC bottlenecks and achieve better performance for real-time video and audio processing. -### Known Architectural Challenge +**Current Status:** +- ✅ Core UI panes (Stage, Timeline, Asset Library, Info Panel, Toolbar) +- ✅ Drawing tools (Select, Draw, Rectangle, Ellipse, Paint Bucket, Transform) +- ✅ Undo/redo system +- ✅ GPU-accelerated vector rendering +- ✅ Audio engine with node graph processing +- ✅ GPU waveform rendering with mipmaps +- ✅ Video decoding integration +- 🚧 Export system (in progress) +- 🚧 Node editor UI (planned) +- 🚧 Piano roll editor (planned) -The current Tauri implementation hits IPC bandwidth limitations when streaming decoded video frames from Rust to JavaScript. Tauri's IPC layer has significant serialization overhead (~few MB/s), which is insufficient for real-time high-resolution video rendering. +## Getting Started -I'm currently exploring a full Rust rewrite using wgpu/egui to eliminate the IPC bottleneck and handle rendering entirely in native code. +### Prerequisites + +- Rust (stable toolchain via [rustup](https://rustup.rs/)) +- System dependencies: + - **Linux:** ALSA development files, FFmpeg 8 + - **macOS:** FFmpeg (via Homebrew) + - **Windows:** FFmpeg 8, Visual Studio with C++ tools + +See [docs/BUILDING.md](docs/BUILDING.md) for detailed setup instructions. + +### Building and Running + +```bash +# Clone the repository +git clone https://github.com/skykooler/lightningbeam.git +# Or from Gitea +git clone https://git.skyler.io/skyler/lightningbeam.git + +cd lightningbeam/lightningbeam-ui + +# Build and run +cargo run + +# Or build optimized release version +cargo build --release +``` + +### Documentation + +- **[CONTRIBUTING.md](CONTRIBUTING.md)** - Development setup and contribution guidelines +- **[ARCHITECTURE.md](ARCHITECTURE.md)** - System architecture overview +- **[docs/BUILDING.md](docs/BUILDING.md)** - Detailed build instructions and troubleshooting +- **[docs/AUDIO_SYSTEM.md](docs/AUDIO_SYSTEM.md)** - Audio engine architecture and development +- **[docs/UI_SYSTEM.md](docs/UI_SYSTEM.md)** - UI pane system and tool development +- **[docs/RENDERING.md](docs/RENDERING.md)** - GPU rendering pipeline and shaders ## Project History -Lightningbeam evolved from earlier multimedia editing projects I've worked on since 2010, including the FreeJam DAW. The current JavaScript/Tauri iteration began in November 2023. +Lightningbeam evolved from earlier multimedia editing projects I've worked on since 2010, including the FreeJam DAW. The JavaScript/Tauri prototype began in November 2023, and the Rust UI rewrite started in late 2024 to eliminate performance bottlenecks and provide a more integrated native experience. ## Goals -Create a comprehensive FOSS alternative for 2D-focused multimedia work, integrating animation, audio, and video editing in a unified workflow. \ No newline at end of file +Create a comprehensive FOSS alternative for 2D-focused multimedia work, integrating animation, audio, and video editing in a unified workflow. Lightningbeam aims to be: + +- **Fast:** GPU-accelerated rendering and real-time audio processing +- **Flexible:** Node graph-based audio routing and modular synthesis +- **Integrated:** Seamless workflow across animation, audio, and video +- **Open:** Free and open-source, built on open standards + +## Contributing + +Contributions are welcome! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines. + +## License + +[License information to be added] + +## Links + +- **GitHub:** https://github.com/skykooler/lightningbeam +- **Gitea:** https://git.skyler.io/skyler/lightningbeam