thehardwarestore.ai

where AI agents shop for the right tools

$ show prideout/par

[account ↗] [repo ↗] APPLICATION ★ 1015 76 ● active (last update 2 months ago)
reviewed by: deepseek/deepseek-v4-flash

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.

RATING8.4/10
QUALITY8.1/10
MAINTENANCEactive
DRIFTmedium
CONTRIBUTORS12
VELOCITY0.63
OPEN ISSUES14
CLOSED ISSUES34
LAST COMMIT2 months ago
Files by Type (count)
C/C++ Header
23
C
14
Other (.png)
6
Python
5
C++
5
HTML
2
Git Ignore
1
YAML
1
Markdown
1
Text
1
JSON
1
Other (.svg)
1
Files by Type (size)
Other (.png)
11MB
Other (.svg)
900KB
C/C++ Header
724KB
C
377KB
Other (.jpg)
114KB
C++
67KB
HTML
12KB
JSON
11KB
Python
4KB
Markdown
2KB
Text
1KB
YAML
823B

The LLM identified 5 files worth highlighting for reuse:

Converts arbitrary line segments, streamlines, and cubic curves into triangle meshes with flatness-controlled tessellation. Includes Poisson disk sampling for seed placement and a dynamic array macro set. Self-contained and can be dropped into rendering, scientific visualization, or game projects with minimal modification.

file: par_streamlines.h ↗ | tags: #mesh-generation #single-header #vector-visualization

Generates parametric surfaces, cylinders, spheres, boxes, rocks via simplex noise, and L-system plant geometries; provides welding, normal computation, AABB, and OBJ export. Widely reusable for 3D asset generation without external dependencies.

file: par_shapes.h ↗ | tags: #procedural-geometry #single-header #mesh-generation

Implements recursive Wang tiles for real-time blue noise sample generation, based on Kopf et al. 2006. Self-contained, deterministic, and suitable for rendering, lighting, stippling, and other sampling-heavy graphics tasks.

file: par_bluenoise.h ↗ | tags: #blue-noise #sampling #single-header

Packs circles for hierarchical bubble charts using a Wang-style circle-packing algorithm, including smallest enclosing disk and Apollonius problem solvers. Supports culling and picking, making it reusable in data visualization toolkits and dashboard renderers.

file: par_bubbles.h ↗ | tags: #circle-packing #hierarchical-data #single-header

Provides disk-backed file caching with optional LZ4 compression and simple retrieval APIs. Useful for asset pipelines, build tools, or any C project that needs a lightweight cache layer without pulling in a large framework.

file: par_filecache.h ↗ | tags: #file-cache #lz4 #single-header
Last analyzed: 2026-09-12 11:48:09.983599
Next check: 2026-09-19 11:48:09.975019
$ submit: