{"slug": "sharp", "name": "Sharp", "category": "dev-libs", "category_name": "Libraries and frameworks", "description": "", "recommenders": 5, "commenters": 12, "warners": 2, "score": 3.734, "rising": -1.64, "first": "2025-12-15", "latest": "2026-08-18", "why": "It is an amazing library!  Been using it for years.", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 4, "neutral": 6, "compare": 1, "warn": 2}, "spark": [0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "It is an amazing library!  Been using it for years.", "kind": "", "icon": false, "domain": "pixelplumbing.com", "github_repo": null, "official_url": "https://sharp.pixelplumbing.com", "pricing": "", "aliases": ["Sharp", "SHARP", "sharp"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 773895760, "item_id": 48368485, "url": "https://news.ycombinator.com/item?id=48368485", "by": "jcupitt", "date": "2026-06-02", "stance": "recommend", "quote": "sharp does this too", "excerpt": "sharp does this too: https://sharp.pixelplumbing.com/install/#prebuilt-binaries it can sometimes need to compile the C++ shim that sits between node and libvips, but that's rare.", "context": "", "use_case": "Node image processing", "switched_from": "", "story": "NPM packages from RedHat have been compromised"}, {"id": 772041520, "item_id": 48252595, "url": "https://news.ycombinator.com/item?id=48252595", "by": "wxw", "date": "2026-05-23", "stance": "recommend", "quote": "Good! I like the pipeline workflow.", "excerpt": "> The API is shaped after Sharp: construct from an input, chain transforms, pick an output format, then await a terminal method. (https://sharp.pixelplumbing.com/) Good! I like the pipeline workflow.", "context": "", "use_case": "Image processing pipelines", "switched_from": "", "story": "Bun.Image"}, {"id": 767994368, "item_id": 47999648, "url": "https://news.ycombinator.com/item?id=47999648", "by": "echelon", "date": "2026-05-03", "stance": "recommend", "quote": "This is impressive as hell", "excerpt": "> inference itself is a few seconds on a recent Mac This is impressive as hell Very cool demo. It works in about ~9 seconds on my machine. A few asks if you're going to devote more time to the project: can you make a full orbital camera - it seems to not be able to orbit 360? Also, can you use double click drag to move the camera in non-orbiting mode for view refinement? (Super minor nitpicks - this demo is really co", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: Apple's Sharp Running in the Browser via ONNX Runtime Web"}, {"id": 741375408, "item_id": 46335963, "url": "https://news.ycombinator.com/item?id=46335963", "by": "bhouston", "date": "2025-12-20", "stance": "recommend", "quote": "It is an amazing library!  Been using it for years.", "excerpt": "It is an amazing library! Been using it for years. It is used in a number of projects I've created including https://benhouston3d.com and https://threekit.com for auto image resizing, format conversion and optimization.", "context": "", "use_case": "image resizing and optimization", "switched_from": "", "story": "Sharp: High performance Node.js image processing/optimization"}, {"id": 740568192, "item_id": 46285512, "url": "https://news.ycombinator.com/item?id=46285512", "by": "diimdeep", "date": "2025-12-15", "stance": "recommend", "quote": "Works great, model file is 2.8 GB", "excerpt": "Works great, model file is 2.8 GB, on M2 rendering took a few seconds, result is guassian .ply file but repo implementation requires CUDA card to render video, I have used one of webgl live renderers from here https://github.com/scier/MetalSplatter?tab=readme-ov-file#resources", "context": "", "use_case": "single-image view synthesis", "switched_from": "", "story": "SHARP, an approach to photorealistic view synthesis from a single image"}]}], "caveats": [{"label": "", "summary": "", "quotes": [{"id": 789721745, "item_id": 49357609, "url": "https://news.ycombinator.com/item?id=49357609", "by": "franciscop", "date": "2026-08-18", "stance": "warn", "quote": "a redeploy that recompiled Sharp just crashed the full VM (out of memory)", "excerpt": "Bun has been nothing but amazing wins for me, and I really like what it enabled me to do. Two examples: - I have a couple of projects that handle images. I was including Sharp, but since these are side projects in a small VM, often a redeploy that recompiled Sharp just crashed the full VM (out of memory). Bun includes Bun.Image[1] natively, which is built around Sharp's API, so swapping Sharp out was very easy, and n", "context": "runs side projects on a small VM", "use_case": "image processing", "switched_from": "", "story": "Bun 1.4 Rust rewrite is not looking good"}, {"id": 740565040, "item_id": 46285315, "url": "https://news.ycombinator.com/item?id=46285315", "by": "moondev", "date": "2025-12-15", "stance": "warn", "quote": "cuda gpu only", "excerpt": "cuda gpu only https://github.com/apple/ml-sharp#rendering-trajectories-cuda-gpu-only", "context": "", "use_case": "", "switched_from": "", "story": "SHARP, an approach to photorealistic view synthesis from a single image"}]}], "who": [], "tags": [], "use_cases": ["image processing", "node image processing", "image processing pipelines", "single-image 3d reconstruction", "image resizing and optimization", "single-image view synthesis"], "compared": [{"slug": "libvips", "name": "libvips", "co": 3, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=46284658", "title": "SHARP, an approach to photorealistic view synthesis from a single image", "mentions": 3}, {"url": "https://news.ycombinator.com/item?id=48356625", "title": "NPM packages from RedHat have been compromised", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=46291477", "title": "Sharp: High performance Node.js image processing/optimization", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=49357401", "title": "Bun 1.4 Rust rewrite is not looking good", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48252442", "title": "Bun.Image", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47995037", "title": "Show HN: Apple's Sharp Running in the Browser via ONNX Runtime Web", "mentions": 1}], "sentiment_by_month": {"2025-11": {}, "2025-12": {"warn": 1, "neutral": 3, "recommend": 2, "compare": 1}, "2026-01": {"neutral": 1}, "2026-02": {}, "2026-03": {"neutral": 1}, "2026-04": {}, "2026-05": {"recommend": 2}, "2026-06": {"neutral": 1}, "2026-07": {}, "2026-08": {"warn": 1}, "2026-09": {}, "2026-10": {}}, "quotes": [{"id": 789721745, "item_id": 49357609, "url": "https://news.ycombinator.com/item?id=49357609", "by": "franciscop", "date": "2026-08-18", "stance": "warn", "quote": "a redeploy that recompiled Sharp just crashed the full VM (out of memory)", "excerpt": "Bun has been nothing but amazing wins for me, and I really like what it enabled me to do. Two examples: - I have a couple of projects that handle images. I was including Sharp, but since these are side projects in a small VM, often a redeploy that recompiled Sharp just crashed the full VM (out of memory). Bun includes Bun.Image[1] natively, which is built around Sharp's API, so swapping Sharp out was very easy, and n", "context": "runs side projects on a small VM", "use_case": "image processing", "switched_from": "", "story": "Bun 1.4 Rust rewrite is not looking good"}, {"id": 773895760, "item_id": 48368485, "url": "https://news.ycombinator.com/item?id=48368485", "by": "jcupitt", "date": "2026-06-02", "stance": "recommend", "quote": "sharp does this too", "excerpt": "sharp does this too: https://sharp.pixelplumbing.com/install/#prebuilt-binaries it can sometimes need to compile the C++ shim that sits between node and libvips, but that's rare.", "context": "", "use_case": "Node image processing", "switched_from": "", "story": "NPM packages from RedHat have been compromised"}, {"id": 773895536, "item_id": 48368471, "url": "https://news.ycombinator.com/item?id=48368471", "by": "jcupitt", "date": "2026-06-02", "stance": "neutral", "quote": "sharp does not rebuild libvips, it downloads a pre-compiled libvips", "excerpt": "sharp does not rebuild libvips, it downloads a pre-compiled libvips for your platform. https://sharp.pixelplumbing.com/install/#prebuilt-binaries It can usually also download a precompiled binary for the C++ shim that sits between node and libvips, but if your node / arch / etc. is not supported, it'll compile that (that's what the build.js file you linked does).", "context": "", "use_case": "", "switched_from": "", "story": "NPM packages from RedHat have been compromised"}, {"id": 772041520, "item_id": 48252595, "url": "https://news.ycombinator.com/item?id=48252595", "by": "wxw", "date": "2026-05-23", "stance": "recommend", "quote": "Good! I like the pipeline workflow.", "excerpt": "> The API is shaped after Sharp: construct from an input, chain transforms, pick an output format, then await a terminal method. (https://sharp.pixelplumbing.com/) Good! I like the pipeline workflow.", "context": "", "use_case": "Image processing pipelines", "switched_from": "", "story": "Bun.Image"}, {"id": 767994368, "item_id": 47999648, "url": "https://news.ycombinator.com/item?id=47999648", "by": "echelon", "date": "2026-05-03", "stance": "recommend", "quote": "This is impressive as hell", "excerpt": "> inference itself is a few seconds on a recent Mac This is impressive as hell Very cool demo. It works in about ~9 seconds on my machine. A few asks if you're going to devote more time to the project: can you make a full orbital camera - it seems to not be able to orbit 360? Also, can you use double click drag to move the camera in non-orbiting mode for view refinement? (Super minor nitpicks - this demo is really co", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: Apple's Sharp Running in the Browser via ONNX Runtime Web"}, {"id": 758015027, "item_id": 47375939, "url": "https://news.ycombinator.com/item?id=47375939", "by": "swimmingkiim", "date": "2026-03-14", "stance": "neutral", "quote": "Happy to discuss the details if anyone is building on Sharp + SVG compositing.", "excerpt": "I\u2019ve been maintaining react-image-editor (530 stars) and noticed a pattern: every time an AI agent needs to do anything with images \u2014 crop, resize, add text, apply a gradient \u2014 it either tries to write raw Sharp boilerplate from scratch or calls a generative model that rewrites the whole image nondeterministically. Neither is good in an agentic pipeline. So I built image-edit-tools. *What it is* A TypeScript-first im", "context": "", "use_case": "Image processing", "switched_from": "", "story": null}, {"id": 744975696, "item_id": 46560981, "url": "https://news.ycombinator.com/item?id=46560981", "by": "milleramp", "date": "2026-01-09", "stance": "neutral", "quote": "It's using Apple's SHARP method, which is monocular.", "excerpt": "It's using Apple's SHARP method, which is monocular. https://apple.github.io/ml-sharp/", "context": "", "use_case": "single-image 3D reconstruction", "switched_from": "", "story": "Revelium Studio turns a single image into a navigable 3D Gaussian Splat model"}, {"id": 743125617, "item_id": 46445351, "url": "https://news.ycombinator.com/item?id=46445351", "by": "einshutoin", "date": "2025-12-31", "stance": "compare", "quote": "Where Sharp still wins (blur, crop, etc.)", "excerpt": "Hi HN, I recently shared `lazy-image`, a Rust-powered Node.js image library meant to be a drop-in replacement for Sharp in serverless environments. Some of you asked for reproducible benchmarks. So I built a Dockerized test environment with a React frontend to compare them side-by-side. *Repo:* https://github.com/albert-einshutoin/lazy-image-test *How to run:* 1. `git clone ...` 2. `docker-compose up --build` 3. Open", "context": "", "use_case": "image processing", "switched_from": "", "story": "Show HN: Dockerized benchmark suite for Sharp vs. Lazy-Image (Rust-based)"}, {"id": 742440224, "item_id": 46402514, "url": "https://news.ycombinator.com/item?id=46402514", "by": "victormustar", "date": "2025-12-27", "stance": "neutral", "quote": "Hugging Face model: https://huggingface.co/apple/Sharp", "excerpt": "Hugging Face model: https://huggingface.co/apple/Sharp and demo: https://huggingface.co/spaces/ronedgecomb/ml-sharp", "context": "", "use_case": "", "switched_from": "", "story": "Apple releases open-source model that instantly turns 2D photos into 3D views"}, {"id": 741501889, "item_id": 46343868, "url": "https://news.ycombinator.com/item?id=46343868", "by": "jcupitt", "date": "2025-12-21", "stance": "neutral", "quote": "This should all be coming to sharp in the next six month or so.", "excerpt": "libvips, the library behind sharp, has just released version 8.18.0: https://www.libvips.org/2025/12/04/What's-new-in-8.18.html It includes support for UltraHDR (HDR and SDR in one JPEG file), camera RAW images, and the Oklab colourspace. This should all be coming to sharp in the next six month or so.", "context": "", "use_case": "", "switched_from": "", "story": "Sharp: High performance Node.js image processing/optimization"}, {"id": 741375408, "item_id": 46335963, "url": "https://news.ycombinator.com/item?id=46335963", "by": "bhouston", "date": "2025-12-20", "stance": "recommend", "quote": "It is an amazing library!  Been using it for years.", "excerpt": "It is an amazing library! Been using it for years. It is used in a number of projects I've created including https://benhouston3d.com and https://threekit.com for auto image resizing, format conversion and optimization.", "context": "", "use_case": "image resizing and optimization", "switched_from": "", "story": "Sharp: High performance Node.js image processing/optimization"}, {"id": 740568192, "item_id": 46285512, "url": "https://news.ycombinator.com/item?id=46285512", "by": "diimdeep", "date": "2025-12-15", "stance": "recommend", "quote": "Works great, model file is 2.8 GB", "excerpt": "Works great, model file is 2.8 GB, on M2 rendering took a few seconds, result is guassian .ply file but repo implementation requires CUDA card to render video, I have used one of webgl live renderers from here https://github.com/scier/MetalSplatter?tab=readme-ov-file#resources", "context": "", "use_case": "single-image view synthesis", "switched_from": "", "story": "SHARP, an approach to photorealistic view synthesis from a single image"}, {"id": 740565232, "item_id": 46285327, "url": "https://news.ycombinator.com/item?id=46285327", "by": "avaer", "date": "2025-12-15", "stance": "neutral", "quote": "I did it myself, if anyone wants to check out the result", "excerpt": "Is there a link with some sample gaussian splat files coming from this model? I couldn't find it. Without that that it's hard to tell how cherry-picked the NVS video samples are. EDIT: I did it myself, if anyone wants to check out the result (caveat, n=1): https://github.com/avaer/ml-sharp-example", "context": "", "use_case": "generating gaussian splats from images", "switched_from": "", "story": "SHARP, an approach to photorealistic view synthesis from a single image"}, {"id": 740565040, "item_id": 46285315, "url": "https://news.ycombinator.com/item?id=46285315", "by": "moondev", "date": "2025-12-15", "stance": "warn", "quote": "cuda gpu only", "excerpt": "cuda gpu only https://github.com/apple/ml-sharp#rendering-trajectories-cuda-gpu-only", "context": "", "use_case": "", "switched_from": "", "story": "SHARP, an approach to photorealistic view synthesis from a single image"}]}