Skip to content

Nouni2/LibuLux

Repository files navigation

Libu Logo IOGS Logo

LibuLux Studio

Intelligent Photometric Audit Environment

FeaturesQuick StartVision AIDocumentationLicense

Version 1.0.0 Python 3.9+ PyQt6 Radiance Proprietary License


LibuLux Studio — Blueprint Editor


Overview

LibuLux Studio is a professional-grade photometric audit tool built on the Radiance lighting simulation engine. It combines AI-powered floor plan analysis with industry-standard ray-tracing to deliver accurate, reproducible lighting studies.

Transform 2D architectural floor plans into 3D geometry, run physics-based lighting simulations, and generate publication-ready heatmaps and reports — all from a single unified interface.

⚠️ Note: Vision AI requires additional model weights (see Vision AI → Model Weights).


Features

AI-Powered Vision Module

  • Floor Plan to 3D: Automatically convert 2D floor plans to 3D geometry using deep learning
  • Room Segmentation: Detect and classify rooms, walls, windows, and doors
  • Configurable Extrusion: Adjust wall heights, thickness, and material properties

Radiance Simulation Pipeline

  • Full Ray-Tracing: Leverage Radiance's physically-accurate lighting engine
  • Automatic Luminaire Detection: Identify light sources from geometry
  • Analysis Grids: Generate workplane illuminance measurements
  • Quality Presets: Draft, standard, high, and ultra simulation quality

Professional Visualization

  • Interactive 3D Viewport: Explore geometry with real-time rendering
  • Heatmap Generation: Visualize illuminance distribution with isolux contours
  • Probe Tool: Point-and-click illuminance queries
  • PDF Reports: Generate professional documentation

Project Management

  • .libu Archives: Portable, reproducible project snapshots
  • Session Sandboxing: Non-destructive editing with workspace isolation
  • Manifest-Driven: Single source of truth for all project parameters

Quick Start

Prerequisites

  • Python 3.9 or higher
  • OpenGL 3.2+ compatible graphics
  • 8GB RAM minimum (16GB recommended for large floor plans)
  • NVIDIA GPU recommended for Vision AI acceleration

Installation

# Clone the repository
git clone https://github.com/Nouni2/LibuLux.git
cd LibuLux

# Create virtual environment
python -m venv venv

# Activate virtual environment
# Windows:
venv\Scripts\activate
# Linux/macOS:
source venv/bin/activate

# Install dependencies
pip install -r requirements.txt

Launch

# Launch the studio (recommended)
python launcher.py

# Or run headless simulation
python app/main.py --scene project.libu

Vision AI

The Vision module transforms 2D floor plans into simulation-ready 3D geometry through a four-stage pipeline:

Blueprint Editor — AI Segmentation and Luminaire Placement

Pipeline Stages

  1. Preprocessing — Image normalization and preparation
  2. Inference — Neural network segmentation (walls, rooms, openings)
  3. Postprocessing — Contour extraction and polygon simplification
  4. Extrusion — 3D geometry generation with materials

Usage

from app.vision.api import VisionAPI

api = VisionAPI()
result = api.process_floor_plan(
    image_path="floor_plan.png",
    wall_height=2.8,
    output_dir="output/"
)

print(f"Generated: {result['obj_path']}")
print(f"Detected {len(result['rooms'])} rooms")

Model Weights

Pre-trained Vision AI model weights are not included in the repository due to GitHub size limits. They are provided as release assets and must be downloaded separately.

Download the model weights from the GitHub release:

After downloading, place both files in the following directory:

app/vision/weights/

Project Structure

LibuLux/
├── launcher.py              # Fast-start entry point
├── requirements.txt         # Python dependencies
├── LICENSE.md               # Proprietary license (Libu exception)
├── LICENSE-RADIANCE.txt     # Radiance license
│
├── app/
│   ├── main.py              # CLI/GUI mode dispatcher
│   ├── runtime_helpers.py   # Path resolution utilities
│   │
│   ├── gui/                 # PyQt6 studio interface
│   │   ├── main_window.py   # Main application window
│   │   ├── splash.py        # Startup splash screen
│   │   ├── state.py         # Centralized application state
│   │   ├── theme.qss        # Dark theme stylesheet
│   │   ├── tabs/            # Tab-based UI components
│   │   │   ├── editor/      # Scene editor
│   │   │   ├── vision/      # Floor plan processing
│   │   │   ├── visualizer/  # 3D visualization
│   │   │   └── blueprint/   # 2D floor plan view
│   │   ├── wizards/         # Project creation wizard
│   │   └── export/          # Asset export functionality
│   │
│   ├── vision/              # AI-powered floor plan analysis
│   │   ├── api.py           # High-level Vision API
│   │   ├── pipeline/        # Processing stages
│   │   ├── models/          # Neural network wrappers
│   │   └── backend/         # 3D geometry generation
│   │
│   ├── radiance/            # Radiance simulation pipeline
│   │   ├── pipeline/        # Orchestration
│   │   └── core/            # Radiance utilities
│   │
│   └── session/             # Workspace management
│       ├── manager.py       # Session lifecycle
│       └── packager.py      # Archive packing/unpacking
│
├── radiance_bin/            # Bundled Radiance executables
│   ├── windows/             # Windows binaries
│   ├── linux/               # Linux binaries
│   └── lib/                 # Radiance library files
│
└── meta/                    # Icons and metadata

Archive Format (.libu)

LibuLux projects are stored as .libu ZIP archives containing:

project.libu
├── scene.json           # Project manifest (required)
├── assets/
│   ├── geometry.obj     # Source geometry
│   ├── geometry.mtl     # Materials
│   ├── scene.rad        # Radiance geometry
│   ├── lights.rad       # Light definitions
│   ├── materials.rad    # Radiance materials
│   ├── scene.oct        # Compiled octree
│   ├── points.pts       # Analysis grid
│   ├── illuminance.dat  # Simulation results
│   └── heatmap.png      # Visualization

Packing Policies

Policy Contents Use Case
minimal Manifest + geometry Sharing source files
standard + Radiance assets Reproducible simulations
full + Results & outputs Complete archive

GUI Workflow

1. Editor Tab

  • Create new projects or open existing .libu archives
  • Configure project parameters and simulation settings
  • Access recent projects from the landing page

2. Vision Tab

  • Import floor plan images (PNG, JPG)
  • Preview AI segmentation results
  • Adjust wall height and processing parameters
  • Generate 3D geometry

3. Visualizer Tab

  • Explore 3D geometry in interactive viewport
  • View illuminance heatmaps with isolux contours
  • Use probe tool for point measurements
  • Export visualizations

4. Blueprint Tab

  • 2D floor plan visualization
  • Room labeling and analysis grid overlay

Development

Running Tests

# Vision module smoke test
python -m app.vision.smoke_test

# Launch in development mode
python launcher.py

Code Style

  • Type hints for all public APIs
  • Doxygen-style docstrings
  • Logging through app/radiance/core/logger.py

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit changes (git commit -m 'Add amazing feature')
  4. Push to branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

System Requirements

Component Minimum Recommended
Python 3.9 3.11+
RAM 8 GB 16 GB
GPU NVIDIA CUDA
OpenGL 3.2 4.5
Storage 2 GB 5 GB

Authors

LibuLux Studio was developed for Libu as part of an academic project at Institut d'Optique Graduate School (IOGS), France.


License

This project is licensed under a Proprietary License — see LICENSE.md for details.

Third-Party Licenses

  • Radiance — Licensed under the Radiance Software License, Version 2.0. See LICENSE-RADIANCE.txt.
  • PyTorch — BSD-style license
  • PyQt6 — GPL v3 / Commercial

Acknowledgments


Built with Radiance and PyTorch | Marwane Youssoufi (c) 2025-2026

About

Intelligent photometric audit tool combining AI-based floor plan analysis with Radiance lighting simulation.

Topics

Resources

License

Unknown, Unknown licenses found

Licenses found

Unknown
LICENSE.md
Unknown
LICENSE-RADIANCE.txt

Stars

Watchers

Forks

Contributors

Languages