GithubHelp home page GithubHelp logo

frudawski / lumos Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 1.0 1.31 MB

LUMOS is a spectral radiosity simulation tool that allows for spectral indoor light distribution simulation.

Home Page: https://www.frudawski.de/LUMOS

License: BSD 3-Clause "New" or "Revised" License

MATLAB 100.00%
radiosity light matlab spectral-simulation

lumos's Introduction

LUMOS

LUMOS

LUMOS is a spectral radiosity lighting simulation tool written in Matlab. It allows for spectral and spatial evaluation in arbitrary points and directions. To use LUMOS, a Matlab license is required. The LUMOS software comes with a GUI and an editor, allowing to create room geometries, add objects and luminaires, apply material data, luminaire data and daylight data as well as review the simulation results and export any data or illustrations.

LUMOS setup:

  • Get the LightingToolbox from here
  • Download LUMOS and move it to a location of your choice.
  • Start Matlab
  • Add LUMOS to Matlab’s search path:
    • Type: addpath(genpath(‘path_to_LUMOS’)) in the command window
    • Or click “Set Path” button under Matlab HOME tab -> “Add with Subfolders…” -> select LUMOS folder -> confirm -> “Save”
  • Test the Lighting Toolbox functionality:
    • Type: plotciexy in the command window
    • A plot of the CIE x and y chromaticity should appear
  • Start LUMOS by:
    • Type LUMOS in the command window,
    • or open the “spec_simulation.m” script file and click on the Run script button.

LUMOS Quickstart:

LUMOS workflow is from left to right in the tab menu.

  • Create a room geometry (in room menu):
    • Select the "sketch room layout" tool in the toolbar
    • Click in the 2D view to start drawing
    • Set room points with left mouse button, to close the polygon click again on the start point.
    • Alernative: right click in list on the left side and add a new room
    • You can adjust the room layout by editing the table
    • Right click in the table to delete or add points
  • Add windows (in room menu):
    • Select the "add windows" tool in the toolbar
    • Select any room surface in the 3D view, this surface will be displayed in the 2D view. You can rotate the 3D view with the rotate tool in the toolbar.
    • In the 2D view, use the left mouse button to add a window corner
    • Move the mouse to the desired opposite window corner and add the window using the left mouse button again.
    • You can adjust the window by editing the table, make sure you selected the corresponding window in the list on the left side.
  • Add Objects (in object menu):
    • Use the "add object" tool in the toolbar to add new objects. Added object are initially cubes and will appear at the same position.
    • You can change the object positions by selecting the room in the list on the left side and editing the table.
    • You can edit the object geometry by selecting the object in the list on the left side and editing the table. Use the right mouse button to add or delete polygon points.
    • Use the right mouse button in the table to add or delete polygon points.
    • You can group and ungroup objects using the "un/group objects" tool.
    • You can copy objects, save them and load them with the corresponding tools in the toolbar.
    • Note: LUMOS uses the radiosity approach and computation time increases significantly with increasing geometry complexity.
  • Add materials to surfaces (in material menu):
    • First add materials to the project by using the "add materials" tool in the toolbar. You can select multiple materials in one go. Materil data is provided in txt file format. First row give the wavelengths, the second row the spectral reflectance or transmittance for windows.
    • After loading the materials, these will be listed in the table.
    • To apply a material to a surface, first select the surface in the list on the left side.
    • Apply any material by checking the selection box of that material in the table list.
    • You can edit the integral reflectance of the material in the "rho" column for that surface.
    • You can apply one material to all room surfaces (not windows) by selecting the room in the list on the left side.
    • Each surface must have a material assigned, windows without material are treated as opening without material.
  • Add daylight data (in sky menu):
    • Daylight data is optional.
    • First load daylight data by using the "load sky data" tool in the toolbar, you can select multiple files in one go.
    • Note: LUMOS calculates the entire scenes for each daylight data set, and so increasing computation time.
    • Daylight data is provided in txt file format for Tregenza hemisphere data with 145 patches row-wise. First row gives the wavelength, the next 145 rows give the spectral radiance of the 145 Tregenza patches.
    • The Lighting Toolbox function specsky can be used to create spectral daylight radiance data for testing purposes.
  • Add luminaires (in luminaire menu):
    • Artificial lighting is optional.
    • First add luminaires by using the "add luminaire" tool in the toolbar.
    • You can change the luminaire position by selecting it in the list on the left side and edit the table.
    • Load luminous distribution curves with the "import EULUMDAT" tool in the toolbar. LUMOS supports currently only EULUMDAT .ldt files. You can load multiple files in one go.
    • Load spectral luminaire data using the "import luminaire spectrum" tool in the toolbar. You can load multiple files in one go.
    • You can use the Lighting Toolbox function ciespec to create standard illuminant spectra. The data is provided in txt file format, the first row gives the wavelengths the second row the spectral power distribution.
    • Select a luminaire in the list on the left side and apply the data by selecting a luminous intensitiy distribution and a spectrum for the luminaire. You can display the data by selecting the model or spectrum cell in the table.
  • Add calculation metrics (in metrics menu):
    • You can add observers (spectral fisheye image), single irradiance calculation points, Daylight Factor (DF) points and irradiance areas with multiple calculation points by using the corresponding tools in the toolbar.
    • Change metric positions by selecting it in the list on the left side and editing the table.
  • Simulation start and settings (in simulation menu):
    • Change the simulation settings in the table:
      • dens: sets the patch denisty per square meter (roughly)
      • refl: sets the number of internal reflexions
      • N°: changes the cardinal north direction
      • h: sets the room height above ground (currently no effect)
      • sim checkbox: enables or disables room in the simulation
    • Start the simulation with the "start simulation" tool in the toolbar.
    • Wait until simulation is finished, this can take several hours, depending on the scene complexity. Start with low complexity and low density values to get a feeling for the calculation time.
  • View results (in results menu)
    • Select any list item on the left side to view the corresponding simulation data.
    • You can save any table or image data with the tools in the toolbar.

How to cite:

LUMOS:

Rudawski, Frederic, The spectral radiosity simulation program LUMOS for lighting research applications, In: Proceedings LICHT 2023 – 25th European Lighting Congress, pp. 110-115, 2023.

Rudawski, Frederic, The spectral radiosity simulation program LUMOS, version 1.14, 2022, URL: https://github.com/Frudawski/LUMOS. DOI: 10.5281/zenodo.7275808

Lighting Toolbox:

Rudawski, Frederic, The Lighting Toolbox for Matlab and Octave, 2022, URL: https://github.com/Frudawski/LightingToolbox. DOI: 10.5281/zenodo.7457041

LUMOS accuracy:

Rudawski, Frederic; Knoop, Martine, Validation of the spectral radiosity calculation tool LUMOS in regards to the CIE TR 171 test scenarios for lighting simulation software, In: Tagungsband Lux junior 2021, pp. 225-248, Digitale Bibliothek Thüringen, 2021. DOI: 10.22032/dbt.49331

LUMOS materials:

Rudawski, Frederic; Aydınlı, Sırrı; Broszio, Kai, Spectral reflectance and transmittance of various materials, 2022, DOI: 10.14279/depositonce-11893.2

lumos's People

Contributors

frudawski avatar

Watchers

 avatar

Forkers

majusculeqc

lumos's Issues

LUMOS 'Index exceeds 0' error

Can I check the meaning of this error message:- 'Index exceeds the number of array elements. Index must not exceed 0.'

It has occurred, in this instance, when I simulate a long luminaire in a heptagonal room - the luminaire height is slightly less than the heigh of the room. The error occurs wherever the luminaire is placed - inside or outside of the room.
image0

LUMOS irradiance results

I've set up measuring points on an object illuminated by a fluorescent lamp in LUMOS. I get a chromaticity map but the spectral irradiance shows zero at each of three points (despite visible differences in the intensity of lighting on the object faces in the rendered image, see below). Any advice?

IMG_3591
IMG_3587
IMG_3586

LUMOS surfaces

I have a hexagonal room (8 surfaces incl walls, roof and floor) and an object consisting of 3 stacked boxes of different sizes sitting on top of each other, 18 surfaces). The luminaire is against on the the walls of the room. I would expect the simulation to run for 8+18=26 surfaces. In fact the simulation indicates it is working through 27 surfaces. I am guessing that the single room metric I have counts as the 27th. Is that correct?

The box surfaces are allocated as 'white' material. This means that part of the top surfaces of the lower boxes are largely 'hidden' by the box above, and part of the surfaces are 'unhidden'. Would one expect LUMOS to simulate the variation of irradiance across such a top surface? My aim is to measure irradiance at the unhidden part of the top facing surfaces of each of the stacked boxes. Since it takes a long time for the simulation - I thought I'd ask before working on this.

LUMOS - no metric results shown

I get a successful rendering (of an object consisting of three stacked cubes in a heptagonal room with 6 luminaires). It takes 5min, which is fine. I've defined two metric points. However, the results are not available (just a list of the room metrics and points, see below).

The error message is:-
'Warning: Duplicate data points have been detected and removed - corresponding values have
been averaged.

In hyperspecfisheye (line 299)
In surfaces_radiosity_calculation (line 1382)
In spec_simulation>uitoggletool17_ClickedCallback (line 5973)
In gui_mainfcn (line 95)
In spec_simulation (line 42)
In matlab.graphics.internal.figfile.FigFile/read>@(hObject,eventdata)spec_simulation('uitoggletool17_ClickedCallback',hObject,eventdata,guidata(hObject))
In plotGouraud (line 507)
In spec_simulation>simulation_listbox_callback (line 4586)
In spec_simulation>simulation_tab_Callback (line 6662)
In gui_mainfcn (line 95)
In spec_simulation (line 42)
In matlab.graphics.internal.figfile.FigFile/read>@(hObject,eventdata)spec_simulation('simulation_tab_Callback',hObject,eventdata,guidata(hObject))
Calcualtion time: 5.1 m

IMG_3984

Any ideas gratefully received.

LUMOS units

I assume the room dimensions need to be in units of meters if the simulated irradiance is to be in mW/m2. Also, can I check the definition of the simulation parameters N and h. Thanks

Luminaire

Looking for a tip as to whether it is possible to generate a luminaire of a particular shape - rather than a point, as provided by the 'add luminaire' facility. I'm particularly looking to use LUMOS to view a room illuminated by fluorescent tubes.

cannot import material and missing cierho function

I have an issue when importing materials:
Brace indexing is not supported for variables of this type.

`Error in spec_simulation>load_material (line 5573)
filename = [path file{i}];

Error while evaluating Menu Callback.

I have the same error with Matlab R2023a,R2022a,R2021a and I've tried different versions of LightToolBox and LUMOS.

Futhermore, when I try selecting multiple materials it gives me this error:
Unrecognized function or variable 'cierho'.
`Error in spec_simulation>load_material (line 5578)
mat{nr}.rho = cierho(material(1,:),material(2,:));

Error while evaluating Menu Callback.`

structRefFromNonStruct Error when simulating (and material assignement check error)

I have an issue during the simulation of a simple test. It gives me this error:
"Warning: 'One or more surface does not have a material assigned!'" even if I've attached materials to all meshes.
I was able to skip the check by commenting the lines in spec_simulation.m, but the real problem is that rendering doesn't work:

MATLAB:structRefFromNonStruct
Dot indexing is not supported for variables of this type.
Error at line: 94 in surfaces_radiosity_calculation.m:
Error at line: 5973 in uitoggletool17_ClickedCallback.m:
Error at line: 95 in gui_mainfcn.m:
Error at line: 42 in spec_simulation.m:
Error at line: 0 in @(hObject,eventdata)spec_simulation('uitoggletool17_ClickedCallback',hObject,eventdata,guidata(hObject)).m

I'm using the latest version of LUMOS and Lighting Toolbox with Matlab R2022b (tested also on 2023a and 2021a) without other addons

Use of objects in LUMOS

I need to simulate lighting in 5 different room designs. In each room I need to locate, in turn, 12 different pre-designed objects. Each object is composed of 3 stacked boxes (of different dimensions). In designing the objects I assume I can use the grouping option in the GUI. I am not entirely clear, however, if there is a way of storing these objects so that I can use them repeatedly in each different room design. Any tips useful before I embark on this.

Eulumdat file handiling

Currently I'm importing a Eulumdat file for a 1.8m fluorescent lamp with a 2cm circular cross section having a uniform directional output over 360 degrees. It works fine. However, rather than importing multiple such luminaire files to make a 1m wide bank of these lamps, it seems it is likely to be more efficient to redefine the Eulumdat file as a 1.8m long lamp with a rectangular cross section 2cmx100cm ie. a single wide flat lamp. Is this just a matter of inserting the appropriate dimensions in the Eulumdat file? Will LUMOS be able to handle this as a single lamp emitting uniformly in all directions. For example, I need the reflections from the wall immediately behind the large flat lamp to reflect light correctly into the room.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.