  Increasing popularity of augmented and mixed reality systems has seen a
similar increase of interest in 2D and 3D computer generated holography (CGH).
Unlike stereoscopic approaches, CGH can fully represent a light field including
depth of focus, accommodation and vergence. Along with existing
telecommunications, imaging, projection, lithography, beam shaping and optical
tweezing applications, CGH is an exciting technique applicable to a wide array
of photonic problems including full 3D representation. Traditionally, the
primary roadblock to acceptance has been the significant numerical processing
required to generate holograms requiring both significant expertise and
significant computational power. This article discusses the structure and
design of HoloGen. HoloGen is an MIT licensed application that may be used to
generate holograms using a wide array of algorithms without expert guidance.
HoloGen uses a Cuda C and C++ backend with a C# and Windows Presentation
Framework graphical user interface. The article begins by introducing HoloGen
before providing an in-depth discussion of its design and structure. Particular
focus is given to the communication, data transfer and algorithmic aspects.
