Skip to content

An open-source, professional photo editor featuring RAW file support, advanced tone curves, and comprehensive color grading tools, built with React and TypeScript.

License

Notifications You must be signed in to change notification settings

pronzzz/mirrorlab

Repository files navigation

MirrorLab 📸

License Version Status React Vite TypeScript

MirrorLab is an open-source, browser-based professional photo editor capable of RAW processing, advanced color grading, and non-destructive editing. Built with modern web technologies, it aims to be a lightweight alternative to Lightroom Classic.

MirrorLab Interface

✨ Features

  • 🖼️ RAW File Support: Import and edit .CR2, .NEF, .ARW, .DNG, and other RAW formats directly in the browser.
  • 📈 Advanced Tone Curve:
    • Multi-Channel support (Master, Red, Green, Blue).
    • Precise numeric inputs for point control.
    • Smooth, spline-based interpolation.
  • 🎨 Comprehensive Color Tools:
    • HSL / Color Mixer: Adjust Hue, Saturation, and Luminance for 8 individual color channels.
    • Grading: Standard Exposure, Contrast, Highlights, Shadows, Whites, and Blacks.
    • White Balance: Temperature and Tint controls.
  • ⚡ High Performance:
    • WebGL-ready architecture (currently Canvas 2D optimized).
    • Real-time preview generation.
    • Client-side processing (Privacy focused - images never leave your device).
  • 💾 Export: Save your work as High-Quality PNG, JPEG, or WebP.

🚀 Getting Started

Prerequisites

  • Node.js (v18 or higher)
  • npm or yarn

Installation

  1. Clone the repository:

    git clone https://github.com/pronzzz/mirrorlab.git
    cd mirrorlab
  2. Install dependencies:

    npm install
  3. Run the development server:

    npm run dev
  4. Open in Browser: Visit http://localhost:3000 to start editing!

🗺️ Roadmap

We have ambitious plans to take MirrorLab beyond the browser:

  • Cross-Platform Desktop Apps: Native wrappers for macOS, Windows, and Linux (via Electron or Tauri).
  • Mobile Application: Porting the engine to Android and iOS (React Native).
  • WASM Core: Migrating heavy image processing to C++/Rust via WebAssembly for native speed.
  • Local Library Management: File system access to manage folders without importing.
  • Masking Tools: AI-based subject selection and linear/radial gradients.

🛠️ Technology Stack

  • Frontend: React 19, TypeScript, Vite
  • Styling: TailwindCSS, Lucide Icons
  • Image Processing: HTML5 Canvas API (custom spline interpolation engine)
  • RAW Decoding: exifr (Preview extraction), libraw (Planned for full decode)

🤝 Contributing

Contributions are welcome! Please read our CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.


Built with ❤️ by Pranav Dwivedi

About

An open-source, professional photo editor featuring RAW file support, advanced tone curves, and comprehensive color grading tools, built with React and TypeScript.

Topics

Resources

License

Contributing

Stars

Watchers

Forks