Block Models
Overview
A block model is a 3D representation of a deposit built from a regular grid of blocks. It is used to organize, visualize, and analyze spatial values such as grade, density, and domain information.
Typical workflow:
- Prepare composites.
- Define the block model grid.
- Apply envelope limits (if required).
- Populate variables (estimated, calculated, or assigned).
- Review and extract results for downstream workflows.
What a block contains
Each block stores:
- its 3D position
- Tonnage calculated as being the volume of the block * thickness * density,
- density,
- variable values (input, estimated, calculated, predefined),
- optional envelope linkage (type, tag and fraction)
Creating a block model
Open the Block Models list with B (keyboard) or from the Set panel, then use File > New….
Genesis can copy schema and grid settings from an existing block model during creation. This is useful when you need consistency between models.
Main setup tabs
- Schema
- Block Grid
- Envelope

Creation flow and decisions
During creation, the typical sequence is:
- Define or copy schema/grid settings.
- Select one or more envelopes (optional).
- Configure density and optional percent behavior.
- Choose model type when multiple envelopes are selected.
- Generate model(s).
If selected envelopes are not fully inside the current grid extents, Genesis warns you before creation so you can adjust the grid or continue intentionally.
Multiple-envelope behavior
When you select more than one envelope, Genesis prompts for the block model type:

- One block model containing all envelopes: all selected envelopes are combined into one model.
- Multiple block models (one per envelope): creates one independent block model for each selected envelope.
- Multifolder: creates one multifolder model designed to manage multiple overlapping envelope percentages.
Use one model per envelope when each domain must be managed independently. Use one combined model for simpler global workflows. You can easily use views to manage multiple domains if you need. Use multifolder when each block can be in multiple envelopes
Schema tab
The schema defines which variables are stored in the model.
Typical variable groups:
- main variables,
- calculated variables,
- predefined variables,
- optional fraction fields.
Predefined variables (common)
Predefined variables are system-ready fields used to store workflow diagnostics, geometry context, and helper tags. They are useful for filtering, QA/QC, reporting, and view creation.
Core model and envelope fields
- Percent / Percent_Env: stores the fraction of a block that is inside an envelope. Use it for partial-block tonnage/volume logic and for filtering blocks by inclusion percentage. Generally created automatically when creating a new block model with percent
- Tag: Usually for matching each block with its envelope. Generated automatically when creating a new block model.
Optional Estimation details
- Sample_Avg_Dist: average distance from the block to composites used in the latest estimation/classification workflow.
- Sample_WAvg_Dist (weighted average distance): same concept as above, but weighted by contribution. Useful to compare support quality between blocks.
- Pass_Number (per variable): estimation pass identifier written during multi-pass workflows. Useful to audit which pass estimated each block.
Variable orientation fields
- Azimuth / Dip / Spin / Azimuth2: stores local orientation values used by variable ellipsoid workflows. Needs to be generated for using variable ellipsoid
Estimation/classification diagnostics
These fields are typically created per variable (for example, AU_...) and help evaluate data support:
- …_EBS_NbSampleFound / …_EBS_NbSampleUsed: number of composites found and effectively used in estimation-by-script.
- …_EBS_NbHoles: number of distinct drillholes contributing to the estimate.
- …_KRIG_NbSampleFound / …_KRIG_NbSampleUsed: number of composites found/used during kriging.
- …_KRIG_StdError / …_KRIG_RelStdError: kriging uncertainty indicators.
- …_KRIG_LocalMean: local mean used in simple-kriging style workflows.
- …_KRIG_NbHoles: number of distinct drillholes used by kriging.
advanced kriging/KNA diagnostics for estimate quality review.
- …_KRIG_Efficiency : the proportion of the difference between the natural variance and the kriging. The more it’s close to 1, the more the kriging variance is small compared to the natural variance and the estimate can be considered good.
- …_KRIG_Slope : the regression slope between the true value of a block and the estimated value of the block
- …_KRIG_Lagrange : Lagrange coefficient value; it is the weight of the local mean to the detriment of composites. If it is 1, then no composite is used in the estimation. This corresponds to a pure nugget effect.
- …_KRIG_FracNegWeight: Proportion of negative weight; they indicate strange phenomena like screen effect.
- …_KRIG_WeightOfMean: Equivalent in simple kriging to the coefficient of Lagrange; it is the weight given to the global mean in simple kriging. If this variable is selected by ordinary kriging, a double kriging (SINGLE followed by ordinary) will be conducted to determine its value. If this value is 1, the simple kriging considers composites used are too far away to have any connection with the estimated block and the block would have the average grade of all composite if a simple kriging was made
classification
- CLASS_NbSampleFound: number of composites found during classification.
Block Grid tab
The Block Grid defines the extent of the block model. All blocks are generated within the defined grid extents.

Block setup
Define:
- Origin (X, Y, Z),
- Block size (X, Y, Z),
- Discretization (X, Y, Z).
Discretization is only for estimation, it splits blocks into sub-units for distance-based calculations. Higher values improve resolution but increase runtime.
Model extents
You can define extents by coordinates or by indices:
- start coordinates / start indices,
- end coordinates / end indices.
These values stay synchronized in the dialog.
Transformation
Rotation (transformation) can be enabled in grid setup. By default, the rotation reference follows the model origin unless a custom reference point is set.
Envelope tab
Envelope settings define model limits and partial block handling.

Limit by envelope
Use selected envelope geometry to limit block generation.
- With no envelope selected, blocks are generated from the full grid extent.
- With one or more envelopes selected, blocks are generated inside envelope geometry.
Block fraction (partial blocks)
When enabled, Genesis computes how much of each block is inside selected envelope(s). Fraction values are written to schema fraction fields.
This is the key option when envelope boundaries cut through blocks and you need partial-block support.
Percent calculation modes
- Fast percent: faster fraction computation for large models.
- Classic/normal percent: fraction is evaluated using piercing logic and related settings.
Piercing direction (classic mode)
In classic mode, piercing direction controls how intersection checks are performed:
- YZ
- XY
- XZ
- All (available when percent mode is enabled)
Choose the direction that best matches your geometry when needed.
Precision and search level for piercing (classic mode)
- Higher precision/search settings improve capture of small intersections.
- This is especially useful when block size is large relative to envelope thickness.
- Higher settings increase processing time.
Selecting Fast percent vs Classic percent
Usually Fast percent is sufficient for most workflows. Make sure to validate the results visually and compare the volume of the generated block model with the envelope Select Classic percent with piercing if you have any problem with Fast Percent. Fast percent is generally very effective, but needs more verification and may fail in complex case
Density
Density can be assigned from:
- fixed density,
- envelope-linked density,
- variable-based density workflows.
Optional tagging by envelope
During creation, envelope-based tagging can be enabled so created blocks receive a tag associated with the selected envelope. This is useful for immediate filtering and for later view creation. This should always be selected when creating a block model with multiple envelopes.
Display and review
In the Block Models list, each model can be shown/hidden and displayed with different rendering options. Block model visibility must also be enabled in the main scene display controls.
By default, block model uses the same search table of the assays. There is a specific color table panel for the block model, where you can change witch color table you want to use. You must understand that you can use different table than the assays, but the definition of each tables are shared between the block model and the assays
Block Models list: command reference
The Block Models list is the central control point for block model operations.

File menu
- New…: create a new block model.
- Import: import a block model from supported formats.
- Export: export selected model(s).
- Import+ / Export+: import/export combined Genesis block model package (data + schema + grid).
- Export SubBlocks…: export percent-style models as subblocks for compatibility workflows.
- Refresh: refresh the list.
- Status: open detailed status for the selected model.
- View: open the model data table.
Import
- import into a new model,
- import into the current selected model,
When importing you can choose:
- Import SubBlock: for a sub blocked file
- Import From Gems: for a file generated by gems, will handle their specific convention
- Import MultiFolder: for importing a multifolder block model, usually generated by Genesis
Edit menu
- Copy: duplicate selected model(s).
- Remove: delete selected model(s).
- Schema…: edit schema and predefined fields.
- Add Global Variable…: add a global variable.
- Merge Selected Block Model: merge selected models.
- Transformation…: edit transformation settings.
- Density…: apply/update density.
- Fill Block Model…: fill missing blocks in the grid.
- Create View…: create a filtered view from criteria.
- Create View Automatic…: create one view per distinct value.
- Copy View To Another Bm…: copy view definitions to another compatible model.
- Create Panels…: create panel-related model structures.
- Create Blocks Touching Surfaces…: create blocks based on surface contact.
- Find and Replace…: value find/replace workflow.
Estimation menu (high-level)
- Estimation Settings…: define estimation method, search setup, and variable-level estimation options.
- Copy Estimation To…: copy estimation settings from one block model to other compatible block model(s).
- Clear Estimation…: clear existing estimation results for selected variable(s).
- Estimate: run estimation using the current settings.
- Test One Block…: run a single-block test to validate settings before full estimation.
- Estimate Distances…: calculate distance-based diagnostics between blocks and supporting composites.
- Upgrade Variance…: update variance-related estimation outputs to newer workflow expectations.
- Classification Settings…: define classification criteria and related parameters.
- Clear Classification…: clear current classification results.
- Classify: run classification using the current classification settings.
- Copy Classification…: copy classification settings between compatible block models.
- Simulation Variable Settings…: configure simulation-related variable behavior.
- Advanced Settings…: manage execution options (for example memory/disk strategy for large models).
- Import or Export Parameters…: import/export estimation and classification parameter sets for reuse.
Detailed estimation and classification procedures are covered in their dedicated chapters.
Report menu (high-level)
- Ressource Report…: generate resource-style summaries from selected block model data.
- Striping Ratio…: generate striping/stripping ratio summaries from selected model inputs.
- Volume Report…: generate volume-focused summaries by selected criteria.
Detailed reporting workflows are documented in dedicated report pages.
Optimization menu (high-level)
- Pit Optimization Settings…: configure economic and operational parameters used by pit optimization.
- Generate Pit Surface from Block Model…: create a pit surface from block model values and rules.
- Optimize Pit: run pit optimization from the current settings.
- Optimize Pit with Reblocked One…: run pit optimization using a reblocked model support.
- Generate Pit Profit Blocks: generate block-level profit values used in pit optimization workflows.
- Optimize Pit Profit: run optimization directly from profit-block information.
- Stopes Optimization Settings…: configure settings for stope optimization workflows.
- Optimize Stopes: run stope optimization with the current settings.
- Reblock…: create a reblocked version of the model for optimization or other workflows.
Detailed optimization workflows are documented in dedicated optimization pages.
Extract menu
- From Envelope…: extract blocks by envelope.
- From Envelope With %…: extract blocks and keep envelope fraction.
- From Pit Surface…: extract by pit surface volume.
- From 2D Prisms…: extract by prism geometry.
- Estimated Blocks… / Unestimated Blocks…: split by estimation state.
- Classified Blocks / Unclassified Blocks: split by classification state.
- From Calculated Boolean Function…: extract with expression criteria.
- From SQL Query…: extract with SQL criteria.
- From Extent…: extract by coordinate extent.
- From Index…: extract by block indices.
- Substract Block Models: subtract one block model from another (menu label spelling as shown).
- Intersection Block Models: keep common blocks between two models.
- Substract Envelope…: remove blocks inside selected envelope (menu label spelling as shown).
- Rarefy…: create a lighter random subset for display/performance.
Operation menu
- Generate Isosurface…: generate a surface from cutoff values.
- Generate Face Envelope: generate the model shell envelope.
- Generate Percent from Envelope…: compute envelope fraction field.
- Tag by Envelope…: assign tags from envelope membership.
- Set Variable Value…: assign/update variable values with optional constraints.
- Add Blocks from Block Model…: add missing blocks from a compatible model.
- Generate Variable Ellipsoid…: generate ellipsoid orientation fields.
- Set Variable Z Surface Coord…: assign surface Z values to blocks.
- Generate 2D Map…: generate 2D map output from block data.
- Manage Multiple Percent…: manage percent fields when multiple envelopes are involved.
- Remove Blocks Near Envelope…: clean blocks near envelope boundaries.
Multifolder menu (high-level)
- Manage Multifolder… : edit which envelope is associated to which variable for multifolder block model
- Add Envelope to Multifolder… : Add an envelope to the selected multifolder block model
- Remove Envelope from Multifolder… : Remove an envelope from the selected multifolder block model
- Cap Multifolder Percent… : For multifolder, cap the sum of the fraction to 100% with a priority order. This can be use when there is small intersection of envelope.
Multifolder workflows are documented in a dedicated chapter.
Minerals menu
- Manage Minerals…
- Generate Mineral Blocks…
Log menu
- View Log: open operation history.
- Clear Log: clear model history log.
Status window
Use File > Status to open a detailed summary for the selected model. Typical information includes:
- model identity,
- number of blocks,
- grid definition,
- envelope usage,
- estimation/classification status indicators.
If you need any information about your block model, the status window is the first place to check.
Block model views
Block model views are lightweight filtered instances of a parent block model. They allow focused work by zone, panel, or domain without duplicating full model data.
Typical workflow:
- Populate a criteria field (often Tag).
- Create views with Create View… or Create View Automatic….
- Work within each view as needed.
Practical notes:
- Views are shown distinctly in the list.
- Views are linked to their parent model data.
- Automatic view creation can generate one view per distinct value.
Practical recommendations
- Finalize naming and schema design before large runs.
- Verify origin, block size, and extents before model generation.
- When creating multiple block model, try to have the same block grid for all the block model in the project
- Prefer views over multiple full model copies for large projects.
- When importing, use the function Create grid from file… to generate the correct block grid before importing the block model.