A tiny C library for heightmap, normal map, and distance field generation with no dependencies.
Heman is a C99 library for generating and processing heightmaps, normal maps, distance fields, and related image data. It provides tools for procedural terrain generation, lighting calculations, and 3D mesh export, all with a minimal, dependency-free design.
C/C++ developers working on computer graphics, procedural content generation, terrain rendering, or image processing projects who need lightweight, efficient utilities.
Developers choose Heman for its simplicity, lack of dependencies, and implementation of modern algorithms like efficient ambient occlusion and Poisson disk sampling in a single-header library.
C99 heightmap utilities.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Heman has only one header file and no external dependencies, making integration straightforward without build system complications, as emphasized in the README.
Implements efficient 21st-century algorithms like Sean Barrett's 16-sweep ambient occlusion and Felzenszwalb-Huttenlocher distance transform, providing optimized performance for common tasks.
Images are represented as flat arrays of floats, allowing direct memory access and fine-tuned optimization for performance-critical C applications.
Includes functions for simplex noise, fractional Brownian motion, and Poisson disk sampling, enabling versatile terrain and point generation from minimal code.
The low-level API requires developers to handle image allocation and deallocation manually, increasing the risk of memory leaks and errors in C code.
Only supports PLY format for 3D mesh export, lacking built-in support for common image formats like PNG or OBJ, which necessitates additional libraries for I/O.
The README is minimal with few examples beyond a basic test file, and there's no detailed API reference, making debugging and advanced usage challenging.