Vignette Configuration
A training vignette is one JSON file that describes a site, its
terrain, the rounds, the units and aircraft, and a timeline of cues.
Launch it with --vignette <file.json> (add
--run to start in simulation mode and play).
In edit mode every unit and round type appears in the scene tree.
Selecting one shows its parameters in the property pane: bounded values
are drawn as sliders, and edits are saved as overrides in a case file
(--case <file.case.json>). The baseline JSON is never
rewritten.
Top level
| Key | Meaning |
|---|---|
title |
Display name |
site |
{lat, lon, alt_m}: the vignette's origin; the local
frame is the tangent plane here |
seed |
Integer seed for every random draw (dispersion, hit, kill), so runs are repeatable |
terrain |
Lidar DEM terrain; see Terrain |
models |
Per model type: path, real-world length_m
/ width_m, up axis and yaw_deg
fix-ups, optional interior crew-view model,
turret_root and recoil meshes |
rounds |
Per round type (below) |
units |
Ground units (below) |
aircraft |
Rotorcraft (below) |
cues |
Timed actions (below) |
Rounds
| Key | Meaning |
|---|---|
name |
Display name |
muzzle_mps, mass_kg,
drag_coeff, area_m2 |
Point-mass ballistics with drag |
dispersion_mil |
Seeded Gaussian dispersion |
reload_sec |
Reload time |
ph_at_reference, ph_reference_range_m,
ph_falloff_per_km, ph_moving_penalty |
Hit probability as an operator input |
pk_given_hit |
Kill probability given a hit |
Effectiveness values (pH, pK, dispersion and timings) are inputs that the operator or Government data set. They are not derived by the software. Shipped values are labelled placeholders.
Units
{"id": "A11", "name": "Abrams A11", "type": "m1a2", "side": "blue",
"lat": 35.3282784, "lon": -116.4680858, "alt_m": 700, "heading_deg": 90,
"speed_mps": 0, "primary_round": "m829", "ammo": {"m829": 12},
"sector_az_deg": [55, 125], "sector_max_m": 3000, "lase_sec": 0.0}sector_az_deg and sector_max_m define the
unit's fire-distribution sector: it engages live targets inside that
sector. Optional waypoints move a unit.
Aircraft
{"id": "H1", "name": "Apache H1", "type": "ah64", "side": "blue",
"lat": 35.332316, "lon": -116.473836, "heading_deg": 90, "liftoff_sec": 3,
"primary_round": "hellfire", "ammo": {"hellfire": 8, "m789": 300},
"hold": {"lat": 35.332316, "lon": -116.473836, "masked_agl_ft": 40, "unmasked_agl_ft": 180}}Cues
action |
Fields | Effect |
|---|---|---|
engage |
unit, target, optional
rounds, range_error_m |
The unit lases and engages the target |
designate |
unit, target |
A spotter designates a target and hands it over |
call_for_fire |
unit, target, battery,
round, rounds, delay_s |
A spotter calls for fire; the battery fires after the delay |
unmask / mask |
unit |
An aircraft rises from or returns behind cover |
move |
unit |
A unit starts along its waypoints |
Every cue has a time t in seconds. Each engagement
publishes records on the event stream.