Instead of comparing the exit position of each ray to predefined x/y coordinates, we now compare the exit surface of each ray to predefined collector surfaces, where PV cells may be placed on the LSC. In this approach, three distinct methods may be used to identify collector or non-collector surfaces. In each case, the collector surface is nominally on the edge of the LSC, orthogonal to the light-harvesting surface. The conglomeration of all pvTrace modifications is referred to as pvTrace v2.1.sv and is freely available on GitHub. First, is labeling using surface normals. This method calculates the normal of the surface hit by the exiting ray. If this normal is in the desired output direction, the ray is counted. This method is most useful for modeling LSCs that have PV cells installed on their edges, but any desired output direction can be chosen. Figure shows an example of the surface normal approach applied to a rectangular box. Rays exiting from the top will have a surface normal of (0,0,1), while rays exiting from the right side will have a surface normal of (0,1,0). If PV cells are placed on the right side of the LSC, it would suffice to count all rays with exit surface normal (0,1,0) as output rays. Figure shows the more complex geometry of a "leaf" LSC. In this case, we assume flexible solar cells are placed along the edges of the leaf; thus, any exit ray with surface normal with z-value equal to 0 counts as an output ray. This method is advantageous since we no longer need to create a complex formula to describe the coordinates of the leaf edges against which exiting rays are compared.