Intelligent Photometric Audit Environment
Features • Quick Start • Vision AI • Documentation • License
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).
- 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
- 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
- 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
.libuArchives: Portable, reproducible project snapshots- Session Sandboxing: Non-destructive editing with workspace isolation
- Manifest-Driven: Single source of truth for all project parameters
- 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
# 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 the studio (recommended)
python launcher.py
# Or run headless simulation
python app/main.py --scene project.libuThe Vision module transforms 2D floor plans into simulation-ready 3D geometry through a four-stage pipeline:
- Preprocessing — Image normalization and preparation
- Inference — Neural network segmentation (walls, rooms, openings)
- Postprocessing — Contour extraction and polygon simplification
- Extrusion — 3D geometry generation with materials
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")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:
-
splitfloor_best_miou.pth (219 MB)
https://github.com/Nouni2/LibuLux/releases/download/ModelWeights/splitfloor_best_miou.pth -
best_semafloor_model.pth (711 MB)
https://github.com/Nouni2/LibuLux/releases/download/ModelWeights/best_semafloor_model.pth
After downloading, place both files in the following directory:
app/vision/weights/
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
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
| Policy | Contents | Use Case |
|---|---|---|
minimal |
Manifest + geometry | Sharing source files |
standard |
+ Radiance assets | Reproducible simulations |
full |
+ Results & outputs | Complete archive |
- Create new projects or open existing
.libuarchives - Configure project parameters and simulation settings
- Access recent projects from the landing page
- Import floor plan images (PNG, JPG)
- Preview AI segmentation results
- Adjust wall height and processing parameters
- Generate 3D geometry
- Explore 3D geometry in interactive viewport
- View illuminance heatmaps with isolux contours
- Use probe tool for point measurements
- Export visualizations
- 2D floor plan visualization
- Room labeling and analysis grid overlay
# Vision module smoke test
python -m app.vision.smoke_test
# Launch in development mode
python launcher.py- Type hints for all public APIs
- Doxygen-style docstrings
- Logging through
app/radiance/core/logger.py
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open a Pull Request
| 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 |
LibuLux Studio was developed for Libu as part of an academic project at Institut d'Optique Graduate School (IOGS), France.
- Marwane Youssoufi — Application Development — marwane.youssoufi03@gmail.com
- Brahim Amanis — Vision AI Pipeline
This project is licensed under a Proprietary License — see LICENSE.md for details.
- Radiance — Licensed under the Radiance Software License, Version 2.0. See LICENSE-RADIANCE.txt.
- PyTorch — BSD-style license
- PyQt6 — GPL v3 / Commercial
- Radiance — The industry-standard lighting simulation engine
- Lawrence Berkeley National Laboratory — Radiance development and maintenance
- PyVista — 3D visualization framework
- PyTorch — Deep learning framework
Built with Radiance and PyTorch | Marwane Youssoufi (c) 2025-2026


