Kirra includes a GPU-accelerated blast analytics system that overlays vibration, damage, and energy predictions directly on your blast pattern. Most models run in real-time on the GPU via WebGL fragment shaders, enabling interactive what-if analysis as you move holes or adjust charges.
Recent builds (e.g. v1.0.60): shader code paths were tuned for heavier multi-deck columns and large patterns (loop limits and per-model iteration in GLSL, plus related dialog/helper updates). Very deep deck counts may still hit GPU static limits on some models — use PPV Per-Deck, Temporal Lifecycle, or Blair Heavy where per-deck fidelity or detonation timing along the column matters most.
Screenshot coming soon – analytics dialog with model selection and parameter controls
Kirra provides 11 analytics models in the Blast Analysis dialog:
| # | Model | Output | Best For |
|---|---|---|---|
| 1 | PPV Site Law | mm/s | Compliance prediction, comparison with monitoring data |
| 2 | PPV Per-Deck | mm/s | Multi-deck configurations, scaled-distance PPV per deck (no VOD burn front) |
| 3 | Heelan Original | mm/s | Physics-based directional vibration (Heelan 1953) |
| 4 | Scaled Heelan | mm/s | Site-calibrated directional vibration (Blair & Minchinton 2006) |
| 5 | Blair Lite (Scaled Heelan 90%) | mm/s | Updated Blair radiation patterns (Blair 2015) |
| 6 | Temporal Lifecycle (VOD ramp) | mm/s | Detonation as a ramp from primer along the charge at VOD; time animation of burn fronts (still incoherent RMS sum — not wave interference) |
| 7 | Blair Heavy (Time-Domain) | mm/s | Full coherent waveform synthesis — only path that can show constructive/destructive interference; runs on CPU |
| 8 | Non-Linear Damage | Damage Index 0-1 | Fragmentation, overbreak, damage zone mapping |
| 9 | Jointed Rock Damage | Damage Ratio | Structural assessment near joints, wall control |
| 10 | Borehole Pressure | MPa | Near-field wall damage, presplit design |
| 11 | Volumetric Powder Factor | kg/m3 | Energy distribution, fragmentation prediction |
None of the GPU fragment shaders visualise classical wave collision (constructive or destructive interference between overlapping P/S wave trains in the phase-coherent sense). What they implement instead is summarised below. Blair Heavy (CPU) is the only model that performs true coherent superposition with phase; it can produce cancellation and reinforcement in the time domain. All GPU models use incoherent summation (RMS / energy-style stacking): contributions add energy, they do not cancel like coherent interference fringes.
| Model | Superposition method | Shows collision / interference? |
|---|---|---|
| PPV, PPV Per-Deck | Scaled distance — no waveform synthesis | No |
| Heelan, Scaled Heelan | Incoherent (RMS) sum of energies | No — RMS cannot cancel |
| Blair Lite (Scaled Heelan 90%), +COH path family | Incoherent (RMS) with directional radiation | No |
| Temporal Lifecycle | Incoherent (RMS) with VOD ramp from primer, time filtering (uDisplayTime) |
No — shows burn-front timing and primer-relative ordering, not interference |
| Blair Heavy (Blair & Minchinton) | Full time-domain waveform synthesis | Yes — coherent superposition; phases can constructively or destructively combine |
For a deeper model-by-model read, see PPV & Vibration Models.
Alongside the 11 shader models above, Kirra v1.0.75 adds a per-hole Voronoi PPV suite with four output modes (A/B/C/E) and user-configurable monitor points (receptors). This path is complementary to the shaders:
| Shader analytics (this page) | Voronoi PPV modes | |
|---|---|---|
| Granularity | Per-pixel over a surface / plane | Per Voronoi cell, one per hole |
| Physics | Site law, Heelan, Blair (Lite / Heavy), Temporal Lifecycle VOD ramp | Empirical scaled-distance law evaluated per deck |
| Receptor-aware | No — paints a spatial field | Yes — every cell is evaluated against every enabled monitor |
| Multi-receptor compliance | Not directly | Mode C collapses to pass/fail per hole across all monitors |
| RMS timing window | Temporal Lifecycle / Blair Heavy | Mode A only (configurable coherence window, optional P-wave arrival-time gate) |
| Runs on | GPU (or CPU Workers for Blair Heavy) | CPU, real-time |
The four Voronoi PPV modes are:
thisHolePPV / monitorTarget)Open the Voronoi Options dialog, pick a PPV mode, and add monitors with + Add Monitor or Pick from KAD points. Full reference: PPV Voronoi Modes.
Access the Blast Analysis Shader from the Surface toolbar. The dialog presents:
| Field | Description |
|---|---|
| Analytics Model | Select from the 11 models listed above (including Temporal Lifecycle) |
| Render On | Choose a loaded surface or “Generate Analysis Plane” for a flat rectangle |
| Blast Pattern | Filter to a specific entity or “All Blast Holes” |
| Apply Mode | “Overlay on Original” or “Create Duplicate Surface” |
| Bake as Texture | UV-map the result as a persistent texture on the surface |
| Analysis Plane Distance | Padding (m) around blast extent when using the generated plane (default 200m) |
Each model has an expandable Model Parameters section for tuning site constants and rock properties.
Note: Blair Heavy runs as a one-shot CPU computation via Web Workers. A progress dialog shows completion status. It does not support real-time hole-drag updates.
| Mode | Description |
|---|---|
| Analysis Plane | Flat rectangle covering the blast extent with configurable padding. Uses the drawing RL elevation. Good for quick overview. |
| Surface Overlay | Applies the shader directly to an existing loaded surface. The original is hidden. |
| Duplicate Surface | Creates a copy of the surface with the shader applied. Original remains untouched. |
| Baked Texture | Renders to a persistent UV-mapped texture saved to IndexedDB. Visible in 2D and 3D without the shader running. |
Timing-capable models (including Temporal Lifecycle) support animated playback via the Interact button — the shader advances uDisplayTime so you see which decks/holes have fired by that instant. This is not the same as displaying wave interference; for coherent superposition use Blair Heavy (one-shot CPU run, no Interact slider).
Controls:
| Control | Description |
|---|---|
| Time Slider | Drag to set display time – only holes fired by this time are shown |
| Play | Animate from current position to end at real-time speed |
| Pause | Stop at current position |
| Reset | Return to time 0 |
| Generate | Create a permanent surface at the current time slice |
Double-click Play to cycle through 1x, 2x, and 5x speed.
Note: Blair Heavy does not support time interaction.
| Ramp | Colours | Used By |
|---|---|---|
| PPV | Green-yellow-orange-red | PPV, Scaled Heelan |
| Jet | Blue-cyan-green-yellow-red | Heelan Original, Blair Heavy |
| Damage | Blue-green-yellow-red-dark red | Non-Linear Damage, Jointed Rock |
| Pressure | Blue-green-yellow-orange-red | Borehole Pressure |
| Spectrum | Blue-cyan-green-yellow-red-magenta | Powder Factor |
| Viridis | Purple-teal-green-yellow | General scientific |
| Compliance | Green-yellow-red | Pass/fail assessments |
| Grey | Black-white | Greyscale output |
When charging data is assigned to holes, the analytics models use:
When no charging data exists, models estimate the charged length as 70% of hole depth.
You can adjust the transparency of an analysis mesh after it has been generated without re-running the analysis. The mesh is preserved and only the visual opacity changes. This applies to both GPU shader overlays and CPU-generated results (Blair Heavy).
Analysis surfaces can be exported to GLB format for archiving or use in external 3D viewers. Blair Heavy results are automatically exported to GLB and persisted to IndexedDB, so they survive page reloads without needing to recompute the CPU model.
When reloading a project, analysis meshes from previous sessions are automatically restored from their GLB representation in IndexedDB.
When using the Generate Analysis Plane render mode, the flat analysis plane is placed at the Drawing RL (reduced level) elevation. For 2D baked images on existing mesh surfaces, a flat bake plane is created at the Drawing RL to produce a flattened overhead view.