mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-04 10:24:02 +00:00
keep contacts counts, rows, scope and provenance on one retained snapshot report capped cohorts as lower bounds separate sibling tool cancellation from newer user turns align track_entity validation across runtime and benchmark paths
69 lines
2.2 KiB
JavaScript
69 lines
2.2 KiB
JavaScript
export const AIRCRAFT_DEPENDENCIES = ['flights', 'military'];
|
|
|
|
export const DEFERRED_DEPENDENCIES = [
|
|
'ais-live-vessels',
|
|
'military-installations',
|
|
];
|
|
|
|
export const DEPENDENCIES = [
|
|
...AIRCRAFT_DEPENDENCIES,
|
|
...DEFERRED_DEPENDENCIES,
|
|
];
|
|
|
|
export const AWARENESS_REFRESH_MS = 750;
|
|
|
|
/** @constant {number} Refresh cadence while the camera pose is CHANGING.
|
|
* Owner playtest 2026-08-18: the Contacts direction arrows and card readouts
|
|
* "feel sluggish when you look around" — at the parked 750 ms cadence the
|
|
* arrows lag the view by up to three quarters of a second. */
|
|
|
|
export const AWARENESS_MOTION_REFRESH_MS = 175;
|
|
|
|
/** @constant {number} How long the pose signature must stay UNCHANGED before
|
|
* the view counts as parked again. The signature is quantized, so a slow drag
|
|
* crosses a bin only every few frames; without this hysteresis every crossing
|
|
* read as a motion-end and refreshed at nearly display rate. */
|
|
|
|
export const AWARENESS_MOTION_SETTLE_MS = 250;
|
|
|
|
export const AWARENESS_REEVALUATE_DISTANCE_M = 250;
|
|
|
|
export const AWARENESS_PAGE_ROTATE_MS = 10000;
|
|
|
|
export const AWARENESS_PAGE_SIZE = 3;
|
|
|
|
export const AWARENESS_MAX_EXAMPLES = 10;
|
|
|
|
// Navigation walks the whole 250 km cohort, not the ten rows the panel shows,
|
|
// so these caps sit far above any realistic in-range population rather than at
|
|
// the display limit. They are still FINITE: an unbounded materialization would
|
|
// let a pathological feed sort an eleven-thousand-contact array on every
|
|
// refresh. Callers sample beyond this cap and carry explicit completeness, so
|
|
// a saturated cohort is a lower bound rather than a silently exact count.
|
|
|
|
export const AWARENESS_QUERY_LIMIT = 20000;
|
|
|
|
export const AWARENESS_MAX_NAVIGATION_EXAMPLES = 10000;
|
|
|
|
export const CONTEXT_RIM_HEIGHT_M = 2500;
|
|
|
|
export const VESSEL_FOCUS_RADIUS_M = 3000;
|
|
|
|
export const SOURCE_LABEL = {
|
|
flights: 'OpenSky',
|
|
military: 'adsb.lol',
|
|
'ais-live-vessels': 'AISStream',
|
|
'military-installations': 'OpenStreetMap',
|
|
};
|
|
|
|
/**
|
|
* Whether a refresh tick could confirm the subject in its source collection.
|
|
* UNCHECKED means the tick did not look — it must never change the verdict.
|
|
*/
|
|
|
|
export const SUBJECT_PRESENCE = Object.freeze({
|
|
LIVE: 'live',
|
|
MISSING: 'missing',
|
|
UNCHECKED: 'unchecked',
|
|
});
|