ES
← Back to Portfolio
Mining & Optimization September 2026

Fragmenta, Blast Fragmentation Prediction Where the Learned Arms Explain Nothing on an Unseen Site

Twelve arms predict the mean fragment size of a bench blast over sixteen cases and are scored under three ways of splitting the same table: six classical closed forms (Kuznetsov, Kuz-Ram, Swebrec, crush-zone, two published regressions) and six learned (a back-propagation network, support-vector regression, random forest, gradient boosting, a stack, a refit of the published regression). The result the product exists to report is negative: under leave-one-site-out not one of the six learned arms explains any variance, the best scoring -0.034 against a null model at -0.216, while the only two arms that stay positive on a site they have never seen are the two with fixed coefficients, the published regression at 0.802 and Kuznetsov at 0.311. The engine is the separately published blastfrag package. Lifecycle: building.

Arms
6 classical (Kuznetsov, Kuz-Ram, Swebrec, crush-zone, two published regressions) and 6 learned (Levenberg-Marquardt network, SVR, random forest, gradient boosting, a stack, a refit), every one on every case with a number or a named refusal
Corpus
97 published bench blasts, a 14-blast published hold-out, 5 open-access field blasts (CC BY); the copyrighted source articles stay in a private vault and a CI guard fails the build if a PDF is tracked
Engine
blastfrag, published separately from its own repository (PyPI 0.2.2 since 2026-09-26); the product declares no package and a guard fails the build if a project table appears
Gates
51 Python tests, 16 TypeScript parity tests scoring the browser engine against the baked numbers, a release gate that re-reads and re-hashes what it wrote, a cross-environment tolerance gate, and a browser gate over the built site before the deploy publishes it
Lifecycle and deploy
Building (deployed is a fact; at-bar is the owner's call); GitHub Pages at a custom domain with HTTPS enforced; version 0.04.005; MIT; part of the Faena hub
Architecture diagram of Fragmenta, Blast Fragmentation Prediction Where the Learned Arms Explain Nothing on an Unseen Site
#drill-and-blast #fragmentation #kuz-ram #swebrec #machine-learning #benchmark #negative-result #leave-one-site-out #mining #faena

Business Context

A blast engineer choosing a predictor for a new site wants to know which arm to trust before the first shot. Fragmenta answers with the honest protocol: on a site the model has never seen, the fitted arms are not skill, and the two fixed-coefficient formulas are the only ones that stay positive; the classical arm improves under leave-one-site-out, from negative on a random split, because it has nothing to overfit. The kill criterion, requiring both a positive score and a 0.10 margin, was rewritten after an earlier version had declared success on two failures, and it fired. Reproducibility is stated precisely: byte-identical within an environment, better than 3e-08 relative across operating systems, because two builds of the same pinned numpy reduce a dot product in a different order; both halves are gated in CI.

Strategic Value

Fragmenta is the Faena member that reports a negative result as its headline and keeps it on the front page. The 0.03.000 release audited the frontend against the quantified ADR floors after its owner flagged the left rail: the rail had been 1,717 px tall in an 800 px viewport, the case control sixteen chips under six headings, the instrument 0.22 to 0.32 of the screen; every route now composes the shared shell, the case control is a select with groups, the rail ends inside the viewport, and 204 browser checks run over the deployed site. Its hub lifecycle is building: deployed is a fact, at-bar is its owner's call, and the card says so.

The Challenge

Fragmentation prediction has a published ladder from Kuznetsov in 1973 to stacking ensembles, and most learned papers report a random split of blasts from the same site, where a model that memorises the site looks skilful. The question a mine planner needs answered is different: what does a method know about a site it has never seen? Answering it requires the same table scored three ways, a kill criterion written down before the run, and arms that refuse rather than guess when an input is missing. The source articles that hold the measured blasts are copyrighted and cannot be redistributed, so the corpus has to be reused as cited experimental facts with the PDFs kept out of the repository by a guard.

Our Approach

Sixteen cases across six categories, from a corpus of 97 published bench blasts (doi:10.1002/nag.957), a 14-blast published hold-out (doi:10.1007/s10706-012-9496-3) and 5 open-access field blasts (doi:10.3390/app15031254, CC BY). Twelve arms appear on every case with either a number or a refusal that names the missing input: Kuznetsov, Kuz-Ram, Swebrec, the crush-zone model and two published regressions on the classical side; a Levenberg-Marquardt back-propagation network, support-vector regression, random forest, gradient boosting, a stack and a refit of the published regression on the learned side. Three split protocols score the same table: random, the published hold-out, and leave-one-site-out. The science lives upstream in blastfrag, a separately published package consumed as a pinned dependency (from PyPI since 0.04.005, with numbers identical to the git-tag pin); the product declares no package of its own and a CI guard fails the build if a project table ever appears. The bake runs through nine stages and a release gate that re-reads and re-hashes what it wrote and fails on a single unexplained abstention; a browser gate walks every route, six workbench tabs, three viewports and both themes over the built site before the deploy publishes it.

Key Performance Indicators

KPIBaselineResultImpact
The honest protocolA random split of blasts from the same site: memorising the site looks like skillLeave-one-site-out: best learned arm -0.034 against a null at -0.216; published regression 0.802 and Kuznetsov 0.311 the only positivesThe fitted arms are not skill on a site they have not seen
A kill criterion that firedAn earlier version declared success on two failuresBoth a positive score and a 0.10 margin required, written down before the run; the learned arms fail itThe site reports the failure instead of the margin
Reproducibility stated as measuredA hash match or nothingByte-identical within an environment; better than 3e-08 relative across operating systems over all sixteen cases; both gated in CIThe pin can change and the diff decides

Architecture

fragmenta pipeline

fragmenta pipeline

Technology Stack

Python blastfrag NumPy scikit-learn XGBoost TypeScript React Vite uPlot

Application Screenshots

Fragmenta, Blast Fragmentation Prediction Where the Learned Arms Explain Nothing on an Unseen Site
Fragmenta, Blast Fragmentation Prediction Where the Learned Arms Explain Nothing on an Unseen Site