Goptical is the GNU Optical design and simulation library. It provides model classes for optical components, surfaces, and materials and enables building of optical systems by creating and placing various optical components in a 3D space and simulating light propagation through the system. Classical optical design analysis tools can be used on optical systems. It takes advantages of the C++ object model to allow the building of complex optical systems with a few class instantiations, as optical components are represented by language objects.