All optical design and analysis software computer codes possess some form of ray tracing capability. Optical design software computer codes have made do with sequential ray tracing algorithms for the past 40 to 50 years. In developing a general non-sequential ray trace tool at TRW, a new paradigm had to be adopted in order to make this new software tool completely general and flexible. This paper compares and contrasts existing sequential ray tracing algorithms and then describes how we went about crafting our own solution to the general non-sequential ray tracing problem