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.
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
| KPI | Baseline | Result | Impact |
|---|---|---|---|
| Not DEM, stated up front | A name that implies a particle simulation | A closed-form Whiten population balance solved live by LU in sub-millisecond; the 3D chamber is a kinematic animation | Interactive exploration without a hours-long particle solve, and no DEM claim |
| Calibrated against real surveys | Illustrative constants, no ground truth | 10 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 controls | A single held-out score | LOO 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 honesty | A plant anomaly detector claim | ONNX surrogate emulates the engine at R2 0.995 (P80) / 0.998 (t/h); the AE is a surrogate-extrapolation guard | Fidelity is to the engine, not to a plant; the AE flags off-manifold queries, not plant faults |
Architecture
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.
Technology Stack
In action
A short tour of the live app — the real interface, recorded from the deployed site.

Application Screenshots

