HoloGen: An open-source toolbox for high-speed hologram generation
The rise of virtual and augmented reality systems has prompted an increase in interest in the fields of 2D and 3D computer-generated holography (CGH). The numerical processing required to generate a hologram is high and requires significant domain expertise. This has historically slowed the adoption of CGH in emerging fields. In this paper we introduce HoloGen, an open-source Cuda C and C++ framework for computer-generated holography. HoloGen unites, for the first time, a wide array of existing hologram generation algorithms with state of the art performance while attempting to remain intuitive and easy to use. This is enabled by a IC# and Windows Presentation Framework (WPF) graphical user interface (GUI). A novel reflection based parameter hierarchy is used to ensure ease of modification. Extensive use of C++ templates based on the Standard Template Library (STL), compile time flexibility is preserved while maintaining runtime performance. The current release of HoloGen unites implementations of well known generation algorithms including Gerchberg-Saxton (GS), Liu-Taghizadeh (LT), direct search (DS), simulated annealing (SA) and one-step phase-retrieval (OSPR) with less known specialist variants including weighted GS and Adaptive OSPR. Benchmarking results are presented for several key algorithms. The software is freely available under an MIT license.