kirra-docs

Electronic Timing Constructs

Electronic Timing builds a temporal mesh: a triangulated surface in plan view where Z represents firing time in milliseconds, not ground elevation. You draw one or two timing contours (polylines or sampled Bézier curves), set timing parameters, then assign electronic detonators in the charging design so their fire times follow that surface.

This workflow is separate from connector timing (each hole’s From Hole and Delay, shown as tie arrows between collars). Electronic timing writes primer detonator fields for initiators marked Electronic in the charge design.

Availability: Open the dialog with the Electronic Timing Panel button on the Connect toolbar. The button is always shown; it does not depend on the charging design containing electronic detonators.


Quick reference glossary

Term Meaning
Timing construct One complete temporal mesh: stored geometry, generated mesh, visibility, assigned holes, and parameters.
Timing contour User-drawn polyline (or Bézier control structure); every vertex on that contour shares the same time at the ridge (relief mode) or lies on a fixed-time boundary (range mode).
Contour polyline Connected chain of segments forming one continuous contour.
Contour vertex Point where two segments meet; offset geometry uses interior vertex logic (bisector / mitre).
Relief Rate of change of time with distance (ms/m). Treat it as a “velocity” of the timing wave along the offset direction, not acceleration.
Bisector At an interior vertex, the direction used to place a single mitre offset point from the two adjacent segment normals.
Mitre join One offset point along the bisector ray (normal case).
Mitre limit Maximum mitre distance as a multiple of offset distance (implementation uses 3× the strip offset).
Mitre clamping When the geometric mitre distance would exceed the limit, it is capped to avoid blow-outs and preserve vertex count.
Collapse Adjacent offset vertices converge; strip generation stops for that direction.
Strip One offset copy of the contour at a given perpendicular distance; assigned a single time value for that row of the mesh.
Quad strip Corresponding points on two adjacent strips form quads, split into two triangles each.
Self-intersection Offset polylines can fold back on themselves at large offsets or sharp corners.
Smooth temporal mesh When enabled, the generator subdivides the triangulated temporal mesh (two midpoint passes) then applies Laplacian smoothing in X, Y, and Z (time). Smoothing strength is controlled by a numeric field (fractional passes supported, e.g. 1 = one full pass blend toward neighbours).
Bézier handle Each knot has an in and an out control point; the two handles stay in line, with independent lengths, when editing.
Timing Relief tool One contour plus explicit start time and relief (ms/m) → offset strips in both time directions.
Time Range tool Two contours plus Line 1 and Line 2 times → stitched mesh; effective relief is derived between the boundaries.
Manual offset Extra milliseconds added in the Electronic Timing dialog with + / − (per selected holes’ Electronic detonators). Cleared by Apply & Reset Offsets (on re-apply) or Reset Selected Hole Offsets.
Loading-stage offset The Offset Delay (ms) set in Deck Builder for the detonator; always kept when you apply timing or reset manual offsets — it is separate from the manual offset.

How it fits with charging and connectors

  1. Charge the holes with at least one Electronic detonator on primers that should follow the mesh.
  2. Create a timing construct and draw geometry (see below).
  3. Assign holes to the construct (only assigned holes are considered when applying times).
  4. Use Apply & Keep Offsets or Apply & Reset Offsets to re-sample times from the temporal surface at each assigned hole’s collar XY and write electronic detonator fields (including a link back to the construct id). See Apply timing and offsets below.

Connector-based hole-to-hole delays and electronic mesh times can coexist in one project; they address different initiation models.


Opening the Electronic Timing dialog

When the Blast Holes toolbar shows the control (see Availability above): toggle Electronic Timing. The dialog is a dockable FloatingDialog titled Electronic Timing (default size about 340×680 px).

Closing the dialog deactivates drawing mode and removes draw-complete listeners.


Dialog sections (what each control does)

Firing Group and Timing Construct (the dialog header)

(Updated v1.1.32.31 — the header is now two matching columns, and there is no longer a separate “Name” field.)

Firing Group  [ 406-407-BLAST  ▾ ]     Timing Construct  [ CAMMEY  ▾ ]
              [ + ] [ ✎ ] [ 🗑 ]                          [ + ] [ ✎ ] [ 🗑 ]

Each column works the same way:

What a Firing Group is

A firing group is the shot: the set of timing constructs that fire together. A construct belongs to exactly one firing group; a group can hold many constructs.

You must create a firing group before you can create a timing construct. The + on the construct column is disabled until a group is selected. This is deliberate — a construct with no parent cannot be told which shot it belongs to, and that is how constructs used to go missing from a KAP file.

Why it matters beyond tidiness: two blasts that fire together are drawn as one field. See Timing Contours — contours, first movement, relief and slope all stop splitting at the join once the blasts share a construct or a firing group.

Projects made before v1.1.32.30 have no groups. On first load Kirra creates one and adopts any parentless constructs into it, so nothing is lost. This runs once, not once per load.

Colour and visibility

Tool and curve mode

Edit on canvas (dialog open)

With the Electronic Timing dialog open (and the draw tool idle), hover and drag contour knots and Bézier handles in 2D or 3D. Dragging a knot or handle does not pan the canvas, and moving one side of a handle pair keeps the curve smooth through the knot.

Drawing

While drawing, canvas panning is suspended.

Segments (Relief / sampled Bézier)

For each polyline segment between consecutive vertices:

Holes

Offset (ms)

With holes selected, + / − adjust the manual offset on Electronic detonators (step from the numeric field, default 5 ms). The detonator delay is updated to the interpolated time plus the offset. Charging data is saved when the database handle exists.

Time gradient

Colour stops define how time maps to colours on the canvas for construct visualisation, in 2D and 3D. They do not change numerical firing times.

Surface


Missing constructs and releasing holes

(v1.1.32.45)

Every hole a construct times remembers which construct timed it. If that construct is no longer in the project — deleted, or not included in a file you imported — Kirra shows Timing construct missing when the project loads or the file is imported.

Nothing is lost when this happens:

The warning offers three choices:

Button What it does
Release All Releases the holes from every missing construct, after one confirmation.
Release from List Opens the list below so you can release one construct at a time.
Close Leaves the links. Importing a project that still contains the construct reattaches its holes automatically.

Release from List

The list shows every construct your holes are timed by, and says which are missing:

Column Meaning
Construct The construct’s name, or its id if it is missing.
Status Orphan — the construct is gone. Valid — it still exists.
Holes How many holes it timed.
Blast List The blasts those holes belong to.
Release Releases that construct’s holes. Only Orphan rows can be released.

Valid constructs are listed so you can see they are safe. Their Release button is greyed out, and a construct that still exists is never released.

What a release changes


Persistence

Timing constructs are saved automatically in the browser’s local database for the current workspace, so they survive a page reload.

KAP project files (v1.0.47+): Exporting a .kap project includes the timing constructs, and importing it restores them. Use KAP for full project round-trips that include electronic timing geometry.