ES
← Back to Portfolio
Mining Analytics July 2026

FragmentIQ — Post-Blast Muckpile Fragmentation Analysis Workbench

A post-blast fragmentation workbench that delineates muckpile fragments by watershed in the browser and derives a mass-weighted particle-size distribution with a Rosin-Rammler fit and P10/P50/P80. It is scored against generator truth on synthetic muckpiles, with a real-photo lane of 5 CC BY images from an Iranian iron-ore mine where every number is explicitly RELATIVE, because no sieve ground truth exists, the scale is unknown, and n is small. Honest by design: the over-segmentation bias is shown directly in the artifact (116 recovered vs 70 true fragments), and the learned refinement gain is reported as indicative, not significant, on n=8.

Classical chain (live)
Otsu -> distance transform -> marker non-maximum suppression -> watershed -> connected components -> mass-weighted PSD (diameter^3) -> Rosin-Rammler least-squares fit -> P10/P50/P80, xc, n, r2
Learned refinement
frag-edge boundary CNN (ONNX, live) cuts P50 error 27.2% -> 23.8% and boundary F1 0.9974; hyperparameters selected on a disjoint tune bank, reported on a disjoint test bank (n=8, indicative not significant)
Synthetic data
7 synthetic muckpile cases (size regimes, lighting/imaging, closed-form analytic controls) scored against per-pixel generator truth; over-segmentation visible (116 recovered vs 70 true on R-COARSE)
Real data (relative-only)
5 post-blast photos, Gole-Gohar iron-ore mine, Iran (Hadi Yaghoobi, DOI 10.17632/z78ghz96bn.1, CC BY 4.0); label RELATIVE, scale unset, no sieve ground truth; every real number is pixel-relative
Cited, not implemented
Kuz-Ram, Swebrec and Segment Anything (SAM) are cited in the literature but NOT implemented; FragmentIQ fits Rosin-Rammler and delineates by watershed, and borrows only the images from a SAM-named mirror
Compute
100% in-browser: TypeScript CV + onnxruntime-web (frag-edge live; fines regressor offline-only); offline precompute imports the same TS engine, so baked and live numbers match by construction
FragmentIQ — Post-Blast Muckpile Fragmentation Analysis Workbench — Architecture
#mining-analytics #fragmentation #muckpile #watershed #particle-size #rosin-rammler #computer-vision #onnx #blasting #mining

Business Context

A fragmentation curve is only actionable if its bias and its uncertainty are known. FragmentIQ's value is that it surfaces both: the over-segmentation bias is visible directly in the artifact (116 recovered fragments against 70 true on one case), and the real-photo lane refuses to attach any accuracy or millimetre size to a photo that has no sieve truth and no known scale, calling every real number relative in the app in both languages. The learned refinement is reported honestly, a P50-error improvement that is indicative not significant at n=8, with hyperparameters selected on a disjoint tune bank and reported on a disjoint test bank. That discipline is what separates a fragmentation aid from a plausible-looking curve.

Strategic Value

FragmentIQ's honesty asset is that it shows its own bias and refuses accuracy claims where truth does not exist. The over-segmentation bias is quantified in the artifact (116 recovered vs 70 true fragments), not hidden; the 5 real Gole-Gohar photos are shipped as an explicitly RELATIVE lane with scale unset and no sieve ground truth, so no millimetre P80 is ever printed for a real photo; and the learned frag-edge CNN gain (P50 error 27.2% -> 23.8%) is stated as indicative not significant at n=8, with clean tune/test bank separation. The card also names what is cited but not built: no Kuz-Ram, no Swebrec, and no Segment Anything, the last being the highest overclaim risk because the source images come from a mirror named for SAM while FragmentIQ borrows only the images. It is a reusable pattern for image-based fragmentation analysis that states its bias, its scale limits and its sample size.

The Challenge

Post-blast fragmentation drives loader productivity, crusher throughput and downstream grinding energy, so measuring the muckpile particle-size distribution is worth a lot. Image-based delineation is the practical way to do it, and it has a known bias: watershed methods over-segment, cutting single blocks into several fragments and skewing the size curve fine. Two further traps make it easy to overclaim: benchmarks on a handful of samples read a few points of gain as real when it is noise, and real muckpile photos rarely have a sieve-measured ground truth or a known scale, so any millimetre number attached to a real photo is unfounded.

Our Approach

FragmentIQ runs a full classical computer-vision chain live in the browser over 7 synthetic muckpile cases: grayscale foreground and Otsu thresholding, a distance transform, marker non-maximum suppression (one marker per fragment), a descending distance-transform flood to labelled fragments (the WipFrag / Split-style watershed method), connected-component labelling and morphological granulometry. Areas become equivalent diameters, a mass-weighted percent-passing curve is built proportional to diameter cubed, and a Rosin-Rammler fit by linearised least squares yields P10/P50/P80 with xc, n and r-squared. A learned frag-edge CNN (ONNX) refines the foreground to reduce over-segmentation and is the one learned model that runs live; a separate fines-bias regressor is committed but evaluated offline only. A real-photo lane loads 5 CC BY images from the Gole-Gohar iron-ore mine, marked RELATIVE with scale unset. Kuz-Ram, Swebrec and Segment Anything are cited in the literature but not implemented. Static on GitHub Pages, offline bake importing the same TypeScript engine the browser runs.

Key Performance Indicators

KPIBaselineResultImpact
What the result gives youA single size numberA mass-weighted particle-size distribution with a Rosin-Rammler fit and P10/P50/P80, live in the browserThe whole size curve, not one point
Over-segmentation, shown not hiddenReport the fragment count as truth116 recovered vs 70 true fragments on R-COARSE - the bias is in the artifactA known property of image-based delineation, quantified
Learned gain, honestly scopedPresent a benchmark delta as significantfrag-edge CNN cuts P50 error 27.2% -> 23.8%, indicative not significant at n=8, tune/test banks disjointA 3.4-point delta on 8 samples is called what it is
Real photos are relative-onlyPrint a millimetre P80 for a field photo5 real Gole-Gohar photos marked RELATIVE: scale unset, no sieve truth, stated in EN + ESNo accuracy claim where no ground truth exists

Architecture

fragmentiq pipeline

fragmentiq pipeline

The size curve, its bias, and what a real photo cannot tell you

FragmentIQ is a post-blast fragmentation workbench. It delineates muckpile fragments by watershed in the browser and derives a mass-weighted particle-size distribution with a Rosin-Rammler fit and P10/P50/P80. Live at fragmentiq.fasl-work.com, part of the Faena mining-analytics hub.

The full classical chain, run live

Grayscale foreground and Otsu thresholding, a distance transform, marker non-maximum suppression (one marker per fragment), a descending-flood watershed to labelled fragments (the WipFrag / Split-style method), connected components and morphological granulometry. Areas become equivalent diameters, percent-passing is built proportional to diameter cubed, and a Rosin-Rammler least-squares fit gives P10/P50/P80 with xc, n and r-squared. A learned frag-edge CNN (ONNX) refines the foreground to reduce over-segmentation and is the one learned model that runs live; a separate fines-bias regressor is committed but evaluated offline only.

What is cited, and what is not built

To be exact: Kuz-Ram, Swebrec and Segment Anything (SAM) are cited but not implemented. FragmentIQ fits Rosin-Rammler (which underlies Kuz-Ram) and delineates by watershed; there is no SAM, no SAM weights, no SAM inference. The real images come from a public mirror that happens to be named for SAM, and FragmentIQ borrows only the images.

Honest about bias, sample size and scale

The over-segmentation bias is shown directly in the artifact: on one coarse case the method recovers 116 fragments against 70 true, skewing the curve fine, which is a known property of image-based delineation. The learned refinement cuts P50 error 27.2% -> 23.8% with boundary F1 0.9974, but this is stated as indicative not significant at n=8, with hyperparameters selected on a disjoint tune bank and reported on a disjoint test bank. And the 5 real Gole-Gohar photos (CC BY 4.0, DOI 10.17632/z78ghz96bn.1) ship as an explicitly RELATIVE lane: the scale is unset, no sieve ground truth exists, and the app says so in English and Spanish, so no millimetre P80 is ever printed for a real photo.

Live demo · Source on GitHub

Technology Stack

TypeScript React Vite ONNX onnxruntime-web PyTorch uPlot KaTeX

In action

A short tour of the live app — the real interface, recorded from the deployed site.

FragmentIQ — Post-Blast Muckpile Fragmentation Analysis Workbench in action

Application Screenshots

FragmentIQ — Post-Blast Muckpile Fragmentation Analysis Workbench
FragmentIQ — Post-Blast Muckpile Fragmentation Analysis Workbench