{"id":47300628,"url":"https://github.com/arrufat/zignal","last_synced_at":"2026-03-31T06:00:52.088Z","repository":{"id":233838846,"uuid":"786012561","full_name":"arrufat/zignal","owner":"arrufat","description":"zero-dependency image processing library","archived":false,"fork":false,"pushed_at":"2026-03-21T15:50:28.000Z","size":4339,"stargazers_count":356,"open_issues_count":0,"forks_count":10,"subscribers_count":4,"default_branch":"master","last_synced_at":"2026-03-22T06:02:27.700Z","etag":null,"topics":["drawing","geometry","image-processing","python","svd-matrix-factorisation","wasm","webassembly","zero-dependency","zig","zig-package"],"latest_commit_sha":null,"homepage":"https://arrufat.github.io/zignal/","language":"Zig","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/arrufat.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-04-13T06:47:14.000Z","updated_at":"2026-03-21T15:50:31.000Z","dependencies_parsed_at":"2024-08-19T03:22:26.022Z","dependency_job_id":"7a6457ca-f5f5-4386-88c7-540ea102b285","html_url":"https://github.com/arrufat/zignal","commit_stats":null,"previous_names":["bfactory-ai/zignal","arrufat/zignal"],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/arrufat/zignal","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arrufat%2Fzignal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arrufat%2Fzignal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arrufat%2Fzignal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arrufat%2Fzignal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arrufat","download_url":"https://codeload.github.com/arrufat/zignal/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arrufat%2Fzignal/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31223292,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-31T04:08:55.938Z","status":"ssl_error","status_checked_at":"2026-03-31T04:08:47.883Z","response_time":111,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["drawing","geometry","image-processing","python","svd-matrix-factorisation","wasm","webassembly","zero-dependency","zig","zig-package"],"created_at":"2026-03-17T01:38:20.002Z","updated_at":"2026-03-31T06:00:52.076Z","avatar_url":"https://github.com/arrufat.png","language":"Zig","readme":"# Zignal\n[![tests](https://github.com/arrufat/zignal/actions/workflows/test.yml/badge.svg)](https://github.com/arrufat/zignal/actions/workflows/test.yml)\n[![docs](https://github.com/arrufat/zignal/actions/workflows/documentation.yml/badge.svg)](https://github.com/arrufat/zignal/actions/workflows/documentation.yml)\n[![PyPI version](https://badge.fury.io/py/zignal-processing.svg)](https://badge.fury.io/py/zignal-processing)\n\nZignal is a zero-dependency image processing library inspired by [dlib](https://dlib.net).\n\n## Features\n\n- **Core Math:** Matrices (`SMatrix`, `Matrix`, SVD), PCA, ND Geometry (SIMD Points, affine/projective transforms, convex hull), Statistics, Optimization.\n- **Computer Vision:** Feature detection and matching (FAST, ORB), Edge detection (Shen-Castan), Hough Transform, Feature Distribution Matching (style transfer).\n- **Image Processing:** Spatial transforms (resize, crop, rotate), morphology, convolution filters (blur, sharpen), thresholding, advanced Color Spaces (Lab, Oklab, Oklch, Xyb, Lms, etc.), Perlin noise generation.\n- **I/O \u0026 Graphics:** Pure-Zig PNG/JPEG codecs, Canvas API (antialiasing, Bézier curves), Bitmap/PCF Fonts, Colormaps, Terminal graphics (Kitty/Sixel).\n- **Platform Support:** Native Zig, first-class Python bindings, and WASM compilation for the web.\n\n## Status\n\nZignal is under active development and powers production workloads at [Ameli](https://ameli.co.kr/) for their makeup virtual try-on.\nThe API continues to evolve, so expect occasional breaking changes between minor releases.\n\n\u003cimg src=\"https://github.com/arrufat/zignal/blob/master/assets/liza.jpg\" width=400\u003e\n\n## Installation\n\n### Zig\n\n```console\nzig fetch --save git+https://github.com/arrufat/zignal\n```\n\nThen, in your `build.zig`\n```zig\nconst zignal = b.dependency(\"zignal\", .{ .target = target, .optimize = optimize });\n// And assuming that your b.addExecutable `exe`:\nexe.root_module.addImport(\"zignal\", zignal.module(\"zignal\"));\n// If you're creating a `module` using b.createModule, then:\nmodule.addImport(\"zignal\", zignal.module(\"zignal\"));\n```\n\n[Examples](examples) | [Documentation](https://arrufat.github.io/zignal/)\n\n### Python\n\n```console\npip install zignal-processing\n```\n\nRequires Python 3.10+, no external dependencies\n\n\u003cimg src=\"./assets/python_print.gif\" width=600\u003e\n\n[Bindings](bindings/python) | [PyPI Package](https://pypi.org/project/zignal-processing/) | [Documentation](https://arrufat.github.io/zignal/python/zignal.html)\n\n### CLI\n\nZignal includes a command-line interface for common operations.\n\n```bash\n# Build the CLI\nzig build\n\n# Run commands\nzig-out/bin/zignal \u003ccommand\u003e [options]\n```\n\n**Available commands:**\n- `display` - View images in the terminal (supports Kitty, Sixel, etc.)\n- `resize` - Resize images with various filters\n- `tile` - Combine multiple images into a grid\n- `fdm` - Apply style transfer (Feature Distribution Matching)\n- `info` - Show image metadata\n\n## Examples\n\n[Interactive demos](https://arrufat.github.io/zignal/examples) showcasing Zignal's capabilities:\n\n- [Color space conversions](https://arrufat.github.io/zignal/examples/colorspaces.html) - Convert between RGB, HSL, Lab, Oklab, and more\n- [Face alignment](https://arrufat.github.io/zignal/examples/face-alignment.html) - Facial landmark detection and alignment\n- [Perlin noise generation](https://arrufat.github.io/zignal/examples/perlin-noise.html) - Procedural texture generation\n- [Seam carving](https://arrufat.github.io/zignal/examples/seam-carving.html) - Content-aware image resizing\n- [Feature distribution matching](https://arrufat.github.io/zignal/examples/fdm.html) - Statistical color transfer\n- [Contrast enhancement](https://arrufat.github.io/zignal/examples/contrast-enhancement.html) - Autocontrast and histogram equalization side-by-side\n- [White balance](https://arrufat.github.io/zignal/examples/white-balance.html) - Automatic color correction\n- [Feature matching](https://arrufat.github.io/zignal/examples/feature_matching.html) - ORB feature detection and matching between images\n- [Hough transform animation](https://arrufat.github.io/zignal/examples/hough-animation.html) - Real-time visualization of line detection\n- [Metrics analyzer](https://arrufat.github.io/zignal/examples/metrics.html) - PSNR and SSIM comparison for reference vs. distorted images\n\n## Sponsors\n\nSpecial thanks to **[B Factory, Inc](https://www.bfactory.ai/)**, the **Founding Sponsor** of Zignal.\nI originally developed this library internally for our virtual makeup try-on system, and B Factory\ngraciously transferred ownership to the community to ensure its long-term maintenance and growth.\n\n\u003cbr\u003e\u003c/br\u003e\n[![Star History Chart](https://api.star-history.com/svg?repos=arrufat/zignal\u0026type=Date)](https://www.star-history.com/#arrufat/zignal\u0026Date)","funding_links":[],"categories":["Zig"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farrufat%2Fzignal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farrufat%2Fzignal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farrufat%2Fzignal/lists"}