The 3D Viewer renders every drillhole in your project in three-dimensional space, coloured by interval data. It’s the right tool for sanity-checking a drilling program at a glance — spatial coverage, plunge consistency, and the geological story across the property.
Open the viewer
From the Dashboard, click 3D View in the header. The viewer takes over the screen.
The first time you open it, holes won’t render until you’ve configured a coordinate mapping (next section).
Configure mapping
Blue Butterfly doesn’t assume which of your collar fields hold X, Y, and Z. You tell it once, and the mapping is saved with the project.
Click Settings in the top-right (or Configure Mapping if no coordinate data is found). The mapping dialog has two sections:
Collar fields
Pick which drillhole template field maps to each spatial property:
| Mapping | What it is |
|---|---|
| Easting (X) | The collar field with the easting / X coordinate |
| Northing (Y) | The collar field with the northing / Y coordinate |
| Elevation (Z) | The collar field with elevation / RL / Z |
| Max Depth | The total hole depth (used when no full survey is available) |
| Dip | The hole’s dip angle. Mining convention: negative = downhole |
| Azimuth | The hole’s bearing in degrees (0 = north, 90 = east) |
If your project doesn’t have a separate dip and azimuth field, the viewer falls back to drawing each hole as a vertical line of length max_depth from the collar. You’ll still see the spatial layout, just without trajectories.
Lithology / Interval table
Pick a data table to colour the segments by. This is what turns the 3D view into a geology view.
| Mapping | What it is |
|---|---|
| Table | The data table that drives segment colours |
| Depth From / Depth To | Usually auto-filled from the table’s depth markers |
| Value Column | The column whose values determine segment colour (e.g., rock_type) |
The colour for each value is taken from the Strip Log colour map for the same column, so your strip log and 3D viewer use a consistent palette.
Click Save Mapping to apply. The viewer re-renders.
Navigate the scene
| Action | Mouse / trackpad |
|---|---|
| Orbit | Click and drag |
| Pan | Right-click drag, or two-finger drag on a trackpad |
| Zoom | Scroll wheel, or pinch on a trackpad |
| Reset view | Double-click in empty space |
What you see
- Each drillhole is drawn from its collar coordinates downhole along its trajectory
- Each segment is coloured by the value of the mapped Value Column at that depth
- A Legend panel in the bottom-right shows the colour map and the value count for each category visible in the current selection
- Holes without complete coordinates are skipped (with a count in the legend so you know they’re missing)
Trajectories
If you have only a collar and a Max Depth, the hole is drawn as a straight line from the collar to a point computed by dip and azimuth.
For more detailed trajectories using survey stations, the underlying engine supports the Minimum Curvature method, but configuring per-station survey data isn’t yet exposed in the standard UI — the default in this beta is collar + dip + azimuth + max depth.
Tips
- Easting/Northing axes. If holes plot in the wrong place, double-check the X/Y mapping — it’s easy to swap them. The legend won’t tell you; the spatial layout will.
- Dip sign matters. A
dipof-60(mining) and+60(some surveying tools) put the hole in opposite directions. If holes plot upward, flip the sign in your data or switch fields. - Re-use Strip Log colours. Setting up the Strip Log colour map for
rock_typefirst means the 3D Viewer’s colour byrock_typematches automatically. - Coordinate-system consistency. All holes should be in the same projection (UTM zone, local grid, etc.). The viewer doesn’t reproject. If you have multi-zone data, split into separate projects.