Class LightingSimulator
java.lang.Object
org.episteme.social.architecture.LightingSimulator
Provides mathematical models for lighting simulation and illuminance
calculations in architectural design. It implements the inverse-square law
for point sources and the lumen method for estimating luminaire requirements.
- Since:
- 1.0
- Version:
- 2.0
- Author:
- Silvere Martin-Michiellot, Gemini AI (Google DeepMind)
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final recordRepresents a point light source in 3D space. -
Method Summary
Modifier and TypeMethodDescriptionstatic RealilluminanceFromPoint(LightingSimulator.LightSource source, double pointX, double pointY, double pointZ, double normalX, double normalY, double normalZ) Calculates the illuminance (Lux) at a specific point on a surface from a single point source using the inverse-square law.static RealrequiredIntensity(Real targetLux, Quantity<Length> distance) Calculates the required luminous intensity (in candelas) to achieve a target illuminance at a specific distance.static intrequiredLuminaires(Real targetLux, Quantity<Area> area, double lumensPerLamp, int lampsPerFixture, double utilizationFactor, double maintenanceFactor) Estimates the number of luminaires needed to achieve a target average illuminance over an area using the Lumen Method.static RealtotalIlluminance(List<LightingSimulator.LightSource> sources, double pointX, double pointY, double pointZ, double normalX, double normalY, double normalZ) Calculates the total illuminance at a point from multiple light sources.
-
Method Details
-
illuminanceFromPoint
public static Real illuminanceFromPoint(LightingSimulator.LightSource source, double pointX, double pointY, double pointZ, double normalX, double normalY, double normalZ) Calculates the illuminance (Lux) at a specific point on a surface from a single point source using the inverse-square law. Formula: E = (I * cos(theta)) / d^2- Parameters:
source- the light sourcepointX- X coordinate of measurement pointpointY- Y coordinate of measurement pointpointZ- Z coordinate of measurement pointnormalX- surface normal X vectornormalY- surface normal Y vectornormalZ- surface normal Z vector- Returns:
- illuminance in Lux (lx)
-
totalIlluminance
public static Real totalIlluminance(List<LightingSimulator.LightSource> sources, double pointX, double pointY, double pointZ, double normalX, double normalY, double normalZ) Calculates the total illuminance at a point from multiple light sources.- Parameters:
sources- list of light sourcespointX- target point XpointY- target point YpointZ- target point ZnormalX- surface normal XnormalY- surface normal YnormalZ- surface normal Z- Returns:
- combined illuminance in Lux
-
requiredIntensity
Calculates the required luminous intensity (in candelas) to achieve a target illuminance at a specific distance.- Parameters:
targetLux- desired light level in Luxdistance- distance to the source- Returns:
- required intensity in candelas
-
requiredLuminaires
public static int requiredLuminaires(Real targetLux, Quantity<Area> area, double lumensPerLamp, int lampsPerFixture, double utilizationFactor, double maintenanceFactor) Estimates the number of luminaires needed to achieve a target average illuminance over an area using the Lumen Method. Formula: N = (E * A) / (n * F * U * M)- Parameters:
targetLux- average target illuminancearea- total surface area to lightlumensPerLamp- lumens emitted per lamp (Flux)lampsPerFixture- number of lamps per fixtureutilizationFactor- (U) efficiency of the roommaintenanceFactor- (M) factor for dirt and aging- Returns:
- required number of fixtures (rounded up)
-