cgltf is a single-file, stb-style C library for parsing and writing glTF 2.0 files. It provides a comprehensive set of data structures mirroring the glTF spec, along with functions to parse JSON/GLB, load buffers, validate data, and write back glTF/GLB. The library is self-contained, requires no external dependencies, and includes an embedded copy of the JSMN JSON parser. It supports core glTF 2.0 and many extensions (KHR_materials_*, KHR_lights_punctual, EXT_mesh_gpu_instancing, etc.). The code is well-structured, uses C99, and is designed for easy integration into any C or C++ project. It is used by major projects like bgfx, Filament, and raylib. The writer component (cgltf_write.h) is separate but similarly crafted. The repository includes a comprehensive test suite and fuzz testing setup.
par is a collection of single-file C libraries, stb-style, focused primarily on graphics, geometry, and utility functionality. The code is not an end-user application; each header is the unit of delivery. To use a library, a consumer defines the corresponding IMPLEMENTATION macro before including the header, which expands the implementation into one translation unit. This imposes a straightforward integration model for C and C++ projects. Core shipped capabilities include procedural mesh generation (par_shapes), triangulation of streamlines and curves (par_streamlines), blue-noise sampling via recursive Wang tiles (par_bluenoise), circle packing for hierarchical bubble diagrams (par_bubbles), camera controls, easings, file caching with optional LZ4 (par_filecache), string blocks, spatial pruning (par_sprune), and an experimental marching-squares image-to-mesh converter (par_msquares), which the README explicitly marks as unmaintained. The test suite is unusually thorough for a header library: it builds with CMake, runs under gcc and clang through Travis CI, checks C/C++ linkage, and uses vendored LodePNG, LZ4, SDS, and cgltf to validate outputs and exercise edge cases. Though not a data-research repository, several algorithms are grounded in published research (e.g., Kopf recursive Wang tiles, Wang circle packing) and are implemented with reusable, self-contained patterns. The main risks are drift in vendored third-party code, some POSIX assumptions that can hamper Windows portability, and the deprecated par_msquares component. Overall, the code demonstrates strong craftsmanship in the single-header genre.