How lumina-layer-studio/lumina-layers works
Lumina Studio turns a user image and a material-calibration preset into a multi-material 3D model for slicing and printing. The documented 1.x workflow first produces and photographs a fixed calibration board to build a preset; conversion then color-matches the image against that preset and generates a 3MF. The tree also exposes separate calibration, extraction, five-color, and slicer domains. The API factory and converter excerpts establish some backend wiring; unsampled router and UI internals are represented only where their paths and roles are clear.
Main entry points: app.py FastAPI app · core/converter.py Conversion coordinator · routers/converter.py Converter routes · lut.py LUT routes
Components 24
Calibration assets
- Calibration processing
core/calibration.py - Preset management
utils/lut_manager.py
User interfaces
- Gradio studio
ui/layout_new.py - FastAPI app
api/app.py - Calibration routes
api/routers/calibration.py - Converter routes
api/routers/converter.py - Process pool
api/worker_pool.py - Conversion workers
api/workers/converter_workers.py - Conversion sessions
api/session_store.py - LUT routes
api/routers/lut.py
Image conversion
- Conversion coordinator
core/converter.py - Image processing
core/image_processing.py - Color matching
core/color_matching_hue_aware.py - Mesh generation
core/mesh_generators.py - SVG vector engine
core/vector_engine.py
Print workflows
- Extractor routes
api/routers/extractor.py - Image extraction
core/extractor.py - Five-color routes
api/routers/five_color.py - Five-color combinations
core/five_color_combination.py - Slicer routes
api/routers/slicer.py - Slicer preparation
core/slicer.py - 3MF writer
utils/bambu_3mf_writer.py
Other components
- Studio user
- Slicer and printer
Connections 27
- Studio user → Gradio studio: uses
- Studio user → FastAPI app: submits image
- FastAPI app → Calibration routes: registers routes
- FastAPI app → Converter routes: registers routes
- FastAPI app → LUT routes: registers routes
- FastAPI app → Extractor routes: registers routes
- FastAPI app → Five-color routes: registers routes
- FastAPI app → Slicer routes: registers routes
- Studio user → Calibration processing: calibrates materials
- Calibration processing → Preset management: builds preset
- Studio user → LUT routes: manages presets
- LUT routes → Preset management: accesses presets
- Converter routes → Conversion sessions: stores conversion state
- Converter routes → Process pool: submits CPU tasks
- Process pool → Conversion workers: dispatches tasks
- Conversion workers → Conversion coordinator: calls conversion
- Conversion coordinator → Image processing: processes image
- Conversion coordinator → Color matching: matches colors
- Conversion coordinator → Mesh generation: builds geometry
- Conversion coordinator → SVG vector engine: uses vector path
- Conversion coordinator → Preset management: loads preset
- Conversion coordinator → 3MF writer: exports 3MF
- 3MF writer → Slicer and printer: provides model
- Extractor routes → Image extraction: handles extraction
- Five-color routes → Five-color combinations: handles combinations
- Slicer routes → Slicer preparation: handles slicing
- Slicer preparation → Slicer and printer: prepares print