Update README
This commit is contained in:
parent
908da99321
commit
93a2252a58
108
README.md
108
README.md
|
|
@ -10,42 +10,118 @@ A free and open-source 2D multimedia editor combining vector animation, audio pr
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## Current Features
|
## Features
|
||||||
|
|
||||||
**Vector Animation**
|
**Vector Animation**
|
||||||
|
- GPU-accelerated vector rendering with Vello
|
||||||
- Draw and animate vector shapes with keyframe-based timeline
|
- Draw and animate vector shapes with keyframe-based timeline
|
||||||
- Non-destructive editing workflow
|
- Non-destructive editing workflow
|
||||||
|
- Paint bucket tool for automatic fill detection
|
||||||
|
|
||||||
**Audio Production**
|
**Audio Production**
|
||||||
- Multi-track audio recording
|
- Real-time multi-track audio recording and playback
|
||||||
- MIDI sequencing with synthesized and sampled instruments
|
- Node graph-based effects processing
|
||||||
- Integrated DAW functionality
|
- 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**
|
**Video Editing**
|
||||||
- Basic video timeline and editing (early stage)
|
- Video timeline and editing with FFmpeg-based decoding
|
||||||
- FFmpeg-based video decoding
|
- GPU-accelerated waveform rendering with mipmaps
|
||||||
|
- Audio integration from video soundtracks
|
||||||
|
|
||||||
## Technical Stack
|
## Technical Stack
|
||||||
|
|
||||||
- **Frontend:** Vanilla JavaScript
|
**Current Implementation (Rust UI)**
|
||||||
- **Backend:** Rust (Tauri framework)
|
- **UI Framework:** egui (immediate-mode GUI)
|
||||||
- **Audio:** cpal + dasp for audio processing
|
- **GPU Rendering:** Vello + wgpu (Vulkan/Metal/DirectX 12)
|
||||||
- **Video:** FFmpeg for encode/decode
|
- **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
|
## 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
|
## 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
|
## Goals
|
||||||
|
|
||||||
Create a comprehensive FOSS alternative for 2D-focused multimedia work, integrating animation, audio, and video editing in a unified workflow.
|
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
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue