Skip to main content
Mining & mineral resources

Resource models a reviewer can audit, not just admire

From logged drillholes to grade shells, block models, and grade–tonnage reports — with the parameters, inputs, and identity behind every number carried on the result itself.

A kriged block model in the 3D viewer — banded grade classes with block counts, merged block edges, a scale bar, and an axis triad.

The problem

A resource model is only worth its record

Mineral resource work is judged on defensibility. A block model that cannot say which samples informed it, which variogram was used, who ran it, and whether it can be reproduced is a picture, not evidence. GeoMine Scientist runs the estimation and modelling chain on a separately certified numerical foundation and attaches that record to every artifact it produces.

30+

Governed compute kernels — the whole chain to a resource statement

3

Epistemic classes every artifact declares: observation, estimate, interpretation

4

Refusal categories, each with its own action

0

Client-side numerics — nothing is recomputed to draw

Provenance that reaches back to the database: the tables read, the canonical project, the analyte, and the drilling behind the estimate — labelled as capture evidence, not a claim the kernel makes.

The resource modelling chain

From logged hole to reported tonnage

Each stage consumes the artifact the last one produced, and every result names the inputs it came from.

  1. Step 1

    Log & desurvey

    Collars, surveys, logged intervals, and assays come from the governed database, and traces are computed from surveyed attitude — refusing to continue past the deepest survey station.

  2. Step 2

    Screen (QA/QC)

    Assay eligibility resolves each batch and interval from reference materials, blanks, duplicates, and checks — with every threshold a declared input and none defaulted.

  3. Step 3

    Composite & decluster

    Assays are composited to a declared support inside a single domain, and declustering weights correct clustered sampling instead of biasing the mean.

  4. Step 4

    Model & domain

    Implicit fields fit logged contacts, isosurfaces turn them into watertight shells, and estimation domains are read against the interval log.

  5. Step 5

    Characterise

    Top-cut evidence, variography, and a declared block-model lattice are assembled — evidence a Competent Person selects over, never a silent default.

  6. Step 6

    Estimate & simulate

    Ordinary kriging returns an estimate and variance per block inside a declared search, and sequential Gaussian simulation produces a realization stack.

  7. Step 7

    Validate

    Kriging neighbourhood analysis, cross-validation, and swath plots show the estimate against the data — and density gives every block a tonne.

  8. Step 8

    Classify & report

    A classification policy assigns a category from the run's own evidence, and the resource statement reports tonnage, grade, and metal by category and cut-off.

What the mining module does

Geometry, estimation, uncertainty, reporting, assumptions, and the record behind all of it.

Drillhole to 3D model

Desurvey logged holes, model contacts implicitly, and contour the result into nested grade or boundary shells — then read all of it in one 3D scene with sections, vertical exaggeration, a ruler, and synced-camera comparison.

  • Desurveying from collars and surveys
  • Implicit contact and stratigraphic modelling
  • Watertight isosurface shells
  • Drillhole traces coloured by logged unit

Estimation and uncertainty

Krige a block model with an anisotropic variogram and a declared search neighbourhood, then run conditional simulation to see the spread the single estimate hides.

  • Ordinary kriging with estimate and variance
  • Anisotropy as an ordered parameterisation
  • Sequential Gaussian realization stacks
  • Exceedance probability against a cut-off

Reporting that states its limits

Grade–tonnage curves carry a P10–P90 band across realizations, contained metal is computed per realization rather than multiplied from two means, and the report says plainly that it is a quantity and not a resource classification.

  • Grade–tonnage curves by cut-off
  • P10 / P50 / P90 bands
  • Correct contained-metal arithmetic
  • Classification left to the Competent Person

Provenance on every artifact

Each result is identified by the hash of its own content. Its manifest records the kernel and its digest, the input identities, the parameter hash, the randomness root, the acting identity, and the toolchain pins.

  • Content-addressed results
  • Lineage walked from manifests alone
  • Units, support, and epistemic class declared
  • Source database and tables recorded at capture

Assumptions you have to make

Parameters that decide the answer — the variogram, the tail models, the search neighbourhood, the stationarity mean — are required fields with no pre-filled value, and each explains why no default exists.

  • No silent defaults on assumptions
  • The reason shown beside each field
  • Validation before submit, re-validated at the boundary
  • Uninformed blocks refused, not estimated

Refusals instead of bad numbers

When a job is invalid the system refuses with a code, a category, and the stage it failed at — four categories, each demanding a different response — rather than returning a plausible number nobody can defend.

  • Validation refusals
  • Scientific refusals
  • Execution failures
  • Infrastructure failures

Inside the workflow

Screens from the working application — the same evidence a technical reviewer would be handed.

The deposit, as the drilling actually recorded it

Collars, downhole surveys, logged intervals, and assays come from the governed project database rather than a spreadsheet export. Desurveying computes each trace from surveyed attitude — and refuses to continue past the deepest survey station, because carrying on down the last known bearing is an assumption about ground nobody measured. Traces render in 3D coloured by the unit logged at each station, with nothing interpolated between them.

A geological reading, made geometric

Logged contacts become anchor points, an implicit scalar field fits a declared stratigraphic column through them, and isosurfaces contour that field into watertight shells. Nested shells contoured from the same field render as layers of one model, ordered by isovalue, each carrying its own recorded volume, surface area, and Euler characteristic — and an open stratigraphic surface is declared open rather than reported with a meaningless volume.

Estimation, and the uncertainty it hides

Ordinary kriging returns an estimate and its kriging variance per block, inside a search neighbourhood the job had to declare — a block with no sample in range is refused, not quietly interpolated from data the variogram says is uncorrelated. Sequential Gaussian simulation then produces a stack of equally probable realizations, and an exceedance model turns that stack into the probability each block clears a stated cut-off.

Reporting that states what it is — and what it is not

Grade–tonnage curves report tonnage above cut-off as P10, P50, and P90 across realizations. Contained metal is computed per realization and then averaged, because multiplying the reported mean tonnage by the reported mean grade gives a different — and wrong — number. And the report says plainly that it states a quantity, not a resource classification: classification under a reporting code is a Competent Person's judgement, and no category label is emitted here.

The foundation

A certified numerical foundation, consumed as a black box

The science does not live in the browser. GeoMine Scientist consumes a separate, governed compute platform through a machine-readable contract — the kernel registry, the job structure, the artifact manifests, and the refusal vocabulary — and performs no client-side numerics of its own. That platform now spans the full chain: 30+ governed kernels carry a deposit from desurveying and QA/QC through estimation and simulation to classification and a resource statement, each stage a content-addressed artifact.

Drillholescollars · surveysassaysPREPAREDesurveyQA/QCCompositeDeclusterMODELImplicit fieldIsosurfacesDomainsCHARACTERISECappingVariographyBlock modelESTIMATESearchKriging (OK)Simulation (SGS)VALIDATEKNA · x-valSwath plotsDensityClassifyMeas · Ind · InfResourcestatementtonnage · grade · metalContent-addressed provenance · reproducible to the bit · assumptions carry no defaults — the kernel refuses rather than guesses
The governed compute chain — 30+ kernels carry a deposit from logged drillholes to a classified resource statement, every stage a content-addressed artifact.

Deterministic by declaration

Kernels declare a determinism class and an execution class, and a job whose declared policy disagrees with the kernel's is refused before anything runs.

Reproducible to the bit

The same job returns the same artifact identity — numerical behaviour is a contract down to the order of floating-point operations, and worker count or restart changes nothing.

Verified on every read

Stored artifacts are content-addressed and re-verified when retrieved — a tampered byte or a dangling reference is an error, not a silent answer.

Two implementations, held in lockstep

A Rust engine and an independent Python reference are held bit-exact against each other, so the numbers are a checked agreement rather than one implementation's word.

The mining estate

The resource model is the centre of gravity, not the whole of it. Exploration geochemistry, pit planning, grade control, mine dewatering, and tailings are their own applications — each governed, each on the same drillholes, projects, and records.

01Explore&samplePlato GISGeoChem Scientist02Capture&governData Hub03Model&estimateGeoMine Scientist04PlanthepitOpen Pit Planning05Ground&waterGeoTech ScientistMine Dewatering06Mine&reconcileGrade Control07Store&assureTailings ScientistShared foundation — one map, one governed data backbone, one certified compute layer, one AI layer
One governed estate across the mine — every stage works the same drillholes, projects, and records, not seven disconnected packages.

See it end to end

Watch a mine problem get solved from plan to finish

A maiden resource, a profitable pit, a wet cutback, a mill-versus-model gap, a tailings review — each carried across the modules as one thread of evidence, with the value stated plainly.

Explore use cases

Beyond the resource model

A resource model is one stage. Ground engineering, mine water, lease-wide monitoring, and field operations run on the same governed foundation — so the drillholes behind a block model and the boreholes behind a pit slope are one dataset, not two.

GeoMine Scientist is one module of the platform

Mining runs on the same governed foundation as the GIS, groundwater, and geotechnical modules — so the drillholes behind a resource model and the ground investigation behind a pit wall are the same estate, not two systems.

Explore GeoMine Scientist

Mining FAQ

Straight answers on scope, classification, reproducibility, and where the geologist's judgement stays.

What is GeoMine Scientist?

GeoMine Scientist is the mining module of the SpatialTechSolutions geoscience platform. It covers the resource-modelling chain — drillhole desurveying, compositing, implicit geological modelling, ordinary kriging, sequential Gaussian simulation, exceedance probability, and grade–tonnage reporting — and attaches full provenance to every result.

Is the output a JORC or NI 43-101 resource statement?

Not on its own. The chain now runs all the way to a classification and a resource statement — tonnage, grade, and contained metal by category, domain, and cut-off. But the classifier computes a category from the run's own evidence and approves nothing, the resource kernel asserts no conformance to any reporting code, and every statement it produces is provisional until a Competent Person signs it. It makes the reading reproducible; it does not replace the judgement or the sign-off.

How is a result reproducible?

Every artifact is identified by the hash of its own content, and its manifest records the kernel and digest, input identities, parameter hash, randomness root, acting identity, and toolchain pins. Re-running the same job returns the same identity, so a reviewer can confirm a figure rather than take it on trust.

Why does the job builder refuse to pre-fill some parameters?

Parameters marked as assumptions — the variogram model, the tail models, the search neighbourhood, the stationarity mean — decide the reported answer. A pre-filled dropdown would be a decision nobody actually made, so those fields are required, empty, and each explains why no default exists.

Can it model more than one element?

Each modelled element needs its own variogram and its own reading of continuity. Additional assayed elements are carried through the data chain, and each is modelled deliberately rather than by stamping one continuity model across all of them.

Does it replace the geologist?

No. The geological interpretation — the stratigraphic column, contact polarity, anisotropy orientation, and classification — is supplied by the geologist and recorded as their claim, including the identity of the person who ran the job. The platform makes that reading geometric and reproducible; it does not invent it.

Request demo

Put your drillholes through it

Walk through desurveying, implicit modelling, kriging, simulation, and grade–tonnage reporting on a deposit your team already knows — and see what the provenance record looks like at the end of it.