ES
← Back to Portfolio
Mining & Optimization July 2026

ChancaDEM — Crusher-Comminution Studio (Population-Balance Engine)

An in-browser crusher-comminution studio: you set the machine, closed-side setting, eccentric throw and speed and the feed gradation, and a pure-TypeScript closed-form engine (Whiten population balance + Evertsson capacity + Bond power) computes the product gradation, throughput and power in sub-millisecond. Despite the name it does NOT run DEM: the 3D chamber is a kinematic animation. The secondary-cone lane is calibrated against 10 published HP500 surveys (Rocha et al. 2024), with a leave-one-out cross-validation that includes negative controls.

Engine
Closed-form (NOT DEM): Whiten population balance solved live by LU over a 28-class root-2 sieve grid + JKMRC t10 + Austin appearance + Evertsson capacity + Bond power
Machines
5 types (gyratory, jaw, secondary/tertiary cone, short-head); only the secondary cone has a calibrated lane, the rest are illustrative
Real data
10 industrial HP500 secondary-cone surveys, Minas Rio (Anglo American), itabirite iron ore; transcribed from Rocha et al., Minerals 2024, DOI 10.3390/min14090919, CC BY (not the author own campaign)
Real-data validation
Leave-one-out ridge CV over 10 surveys: throughput MAPE 12.09% vs constant-mean 18.29% and label-shuffle 25.04%; 80% throughput interval empirical coverage 0.90 (n=10, coarse)
Learned tier (ONNX)
MLP surrogate of the engine (R2 0.995 P80 / 0.998 t/h on an independent LHS draw, monotone-vs-CSS gate) + denoising AE as a surrogate-extrapolation guard, not a plant anomaly detector
Compute
100% in-browser: TypeScript engine + three.js kinematic chamber + onnxruntime-web; 15 Python + 15 TS tests; static GitHub Pages, no backend
ChancaDEM — Crusher-Comminution Studio (Population-Balance Engine) — Architecture
#mining-optimization #comminution #crushing #population-balance #whiten #evertsson #bond #cone-crusher #onnx #mining

Business Context

Comminution is where a concentrator spends most of its energy, and the crusher circuit sets the feed to everything downstream. Being able to explore the effect of a closed-side setting or a throw change on product size, throughput and power, in real time and grounded in the accepted model families (Whiten, Evertsson, Bond), is directly useful for teaching, scoping and screening operating changes before they touch a plant. The value is a fast engine that reproduces the correct physical trends and, on the one machine where public survey data exists, is calibrated and cross-validated against it with negative controls, while being explicit that it is a cheap closed-form model rather than a particle simulation or a plant twin.

Strategic Value

ChancaDEM demonstrates a fast, physically-grounded comminution engine (a real Whiten population balance solved live by LU, plus Evertsson capacity and Bond power) running entirely client-side, and it is disciplined about what it is not. Despite the name it does NOT run DEM: the 3D chamber is a kinematic animation, the offline 2-D DEM tracer is unwired, and the app states this up front. Only the secondary cone has a calibrated lane, fitted to 10 published HP500 surveys at Minas Rio credited to Rocha et al. 2024 (CC BY), not to any campaign of the author. The rigor shows in a leave-one-out cross-validation over those 10 surveys with negative controls: throughput MAPE 12.09 percent, beating both a constant-mean control (18.29 percent) and a label-shuffle control (25.04 percent), a real if modest signal on a small sample. The learned autoencoder is honestly a surrogate-extrapolation guard, not a plant anomaly detector, since it is trained on the engine own sweep. Publishing the optimism gap and the control baselines is the reusable pattern.

The Challenge

A crusher turns coarse feed into a controlled product size, and the operating levers (closed-side setting, eccentric throw, speed, feed gradation) trade product fineness against throughput and power draw in ways that are not intuitive. A full particle-scale DEM simulation captures the physics but takes hours per run, far too slow to explore a setting or to sit behind an interactive tool. The practical need is a fast, physically-grounded model that reproduces the correct trends (finer setting gives finer product; capacity peaks at an optimal speed) and can be checked against real industrial survey data, without pretending to be a particle solve it is not.

Our Approach

ChancaDEM is a browser studio built on a pure-TypeScript closed-form comminution engine that runs in sub-millisecond, so despite the name it is a population-balance model, not a DEM solve. You set the machine (gyratory, jaw, secondary or tertiary cone, short-head), the closed-side setting, eccentric throw and speed, and the feed gradation, and the engine computes the product gradation, throughput and power over a 28-class root-2 sieve grid. The chain: a Whiten classification-breakage population balance solved live by LU (p = (I-C)(I-B*C)^-1 * f, never forming the inverse), a JKMRC t10 energy-fineness law (Narayanan and Whiten 1988), an Austin, Klimpel and Luckie 1984 appearance function, an Evertsson reduced-form flow capacity with its unimodal speed hump, and Bond 1952 power, plus nip-angle geometry and regime detection. A calibrated lane fits the secondary cone to 10 published HP500 surveys. Two ONNX models run in-browser: an MLP surrogate that emulates the engine, and a denoising autoencoder over the product-gradation signature that acts as a surrogate-extrapolation guard. The 3D chamber view is an explicitly kinematic animation driven by the engine gradation, not a particle solve. Everything is client-side, static on GitHub Pages.

Key Performance Indicators

KPIBaselineResultImpact
Not DEM, stated up frontA name that implies a particle simulationA closed-form Whiten population balance solved live by LU in sub-millisecond; the 3D chamber is a kinematic animationInteractive exploration without a hours-long particle solve, and no DEM claim
Calibrated against real surveysIllustrative constants, no ground truth10 published HP500 surveys (Rocha et al. 2024, CC BY, Minas Rio); leave-one-out throughput MAPE 12.09%Credited to the paper, not to the author; only the secondary cone has a calibrated lane
Validation with negative controlsA single held-out scoreLOO 12.09% beats a constant-mean control (18.29%) and a label-shuffle control (25.04%)A real signal, and the repo also shows the leaky (non-LOO) optimism gap
Surrogate honestyA plant anomaly detector claimONNX surrogate emulates the engine at R2 0.995 (P80) / 0.998 (t/h); the AE is a surrogate-extrapolation guardFidelity is to the engine, not to a plant; the AE flags off-manifold queries, not plant faults

Architecture

chancadem pipeline

chancadem pipeline

A fast comminution engine, and it is not DEM

ChancaDEM is an in-browser crusher-comminution studio. You set the machine, closed-side setting, eccentric throw and speed and the feed gradation, and a pure-TypeScript closed-form engine computes the product gradation, throughput and power in sub-millisecond. Despite the name it does not run DEM: the 3D chamber is a kinematic animation, the offline 2-D DEM tracer is unwired and unbaked, and the app says so on its Introduction page. Live at chancadem.fasl-work.com, part of the Faena mining-analytics hub.

The model chain

A Whiten classification-breakage population balance solved live by LU (p = (I-C)(I-B*C)^-1 * f, never forming the inverse) over a 28-class root-2 sieve grid, a JKMRC t10 energy-fineness law (Narayanan and Whiten 1988), an Austin, Klimpel and Luckie 1984 appearance function, an Evertsson reduced-form flow capacity with its unimodal speed hump, and Bond 1952 power, plus nip-angle geometry and regime detection (choke / trickle / pass-through). Two ONNX models run in-browser: an MLP surrogate that emulates the engine, and a denoising autoencoder over the product-gradation signature that acts as a surrogate-extrapolation guard (high score means the query is off the surrogate training manifold), not a plant anomaly detector, since it is trained on the engine own sweep.

The data, stated plainly

Only the secondary cone has a calibrated lane. It is fitted to 10 published HP500 surveys of a Metso HP500 secondary cone at Minas Rio (Anglo American), crushing itabirite iron ore, transcribed from Rocha et al., Minerals 2024 (DOI 10.3390/min14090919, CC BY), not from any campaign of the author. Two caveats travel with it: the feed is reconstructed from measured f80 via a Rosin-Rammler band (the paper PSD curves are figure-only), and the real-lane power is a current-based estimate, not a dynamometer reading. Jaw, gyratory, tertiary and short-head use illustrative constants that reproduce the correct trends, not any plant absolute numbers.

Validation with negative controls

The rigor is in a leave-one-out ridge cross-validation over the 10 real surveys, with negative controls. Strict LOO throughput MAPE 12.09 percent beats both a constant-mean control (18.29 percent) and a label-shuffle control (25.04 percent), a real if modest signal on n=10, and the repo also stores the leaky non-LOO block to show the optimism gap. The 80 percent throughput interval reaches 0.90 empirical coverage against a 0.80 nominal (n=10 makes this coarse, and the repo says so). The ONNX surrogate emulates the engine at R-squared 0.995 (P80) and 0.998 (throughput) on an independent LHS draw with a monotone-versus-CSS gate: that is fidelity to the engine, never accuracy against a plant. A post-release physics correction is shipped, so eccentric throw now coarsens the product through the classification window (open-side = closed-side + throw) instead of fining it through specific energy.

Live demo · Source on GitHub

Technology Stack

TypeScript React Vite three.js ONNX onnxruntime-web PyTorch uPlot KaTeX

In action

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

ChancaDEM — Crusher-Comminution Studio (Population-Balance Engine) in action

Application Screenshots

ChancaDEM — Crusher-Comminution Studio (Population-Balance Engine)
ChancaDEM — Crusher-Comminution Studio (Population-Balance Engine)