Raycounting is a method for generating customized light-shading constructions by registering the intensity and orientation of light rays within a given environment. 3D surfaces of double curvature are the result of assigning light parameters to flat planes. The algorithm calculates the intensity, position, and direction of one or multiple light sources placed in a given environment, and assigns local curvature values to each point in space corresponding to the reference plane and the light dimension. Light performance analysis tools are reconstructed programmatically to allow for morphological synthesis based on intensity, frequency, and polarization of light parameters as defined by the user.