Class LightingSimulator

java.lang.Object
org.episteme.social.architecture.LightingSimulator

public final class LightingSimulator extends Object
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)
  • 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 source
      pointX - X coordinate of measurement point
      pointY - Y coordinate of measurement point
      pointZ - Z coordinate of measurement point
      normalX - surface normal X vector
      normalY - surface normal Y vector
      normalZ - 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 sources
      pointX - target point X
      pointY - target point Y
      pointZ - target point Z
      normalX - surface normal X
      normalY - surface normal Y
      normalZ - surface normal Z
      Returns:
      combined illuminance in Lux
    • requiredIntensity

      public static Real requiredIntensity(Real targetLux, Quantity<Length> distance)
      Calculates the required luminous intensity (in candelas) to achieve a target illuminance at a specific distance.
      Parameters:
      targetLux - desired light level in Lux
      distance - 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 illuminance
      area - total surface area to light
      lumensPerLamp - lumens emitted per lamp (Flux)
      lampsPerFixture - number of lamps per fixture
      utilizationFactor - (U) efficiency of the room
      maintenanceFactor - (M) factor for dirt and aging
      Returns:
      required number of fixtures (rounded up)