Specification Document

IGSSA Rebuild Requirements

Functional and technical specifications for engineering the web-based Integrated Ground Sensor & Surveillance Array (IGSSA) Live Map Training Simulator.

Module & ID Functional Requirement Description Technical Specifications & Math Logic Acceptance Criteria
Core Engine
REQ-ENG-01
Node Matrix Initialization
Dynamically generate and render a precise grid array containing a minimum of 48 individual physical hardware sensor points (structured in 6 rows by 8 columns). Each node requires tracking uniquely identified instances.
State Parameters: Each node must map an object schema: id (1-48), x/y canvas coordinates, status ('ONLINE', 'DEGRADED', 'CRITICAL_OUT'), missedHeartbeats (int counter), lastSeismic, lastThermal, and lastPir boolean states. Alternating rows should shift right by 20px horizontally to replicate an offset mesh structure. Grid initializes automatically on load with 48 distinct coordinate instances matching the baseline array grid overlay without visual lag.
Core Engine
REQ-ENG-02
Proximity Sensor Logic & Signal Attenuation
The system must continuously compute spatial attenuation distances between the active simulated threat (vehicle target) and all nodes in the workspace at high frequency (500ms loops).
Mathematical Formula: Distance d = sqrt((node.x - target.x)² + (node.y - target.y)²). If d < 100px, compute signal attenuation multiplier: att = 1 - (d / 100). Node parameters dynamically scale:
  • seismic = globalSeismic * att
  • thermal = 18.0 + (globalThermal - 18.0) * att
  • pir = globalPirEnabled && (att > 0.25)
Nodes within a 100px radial distance from the target element transition seamlessly into sensor state modification without manual overriding.
Core Engine
REQ-ENG-03
Node Threshold & Fused Alarm Triggering
Evaluate proximity parameters against defined detection metrics to dynamically flag node alarms and bundle overlapping node alerts into structural single notifications.
Trigger Logic: If a node reflects pir == true OR thermal > 45°C OR seismic > 0.3, switch visual state class to node-triggered. Combine all intersecting active node IDs into a singular FUSED_GRID_INTRUSION map registry key rather than separate standalone spam. Triggered nodes instantly transition to a glowing red status state. Alerts pipeline summarizes multiple triggering elements under one active row.
Threat Motion
REQ-MOT-01
Manual Drag & Drop Navigation
Users must be able to click, drag, and position the red vehicle target anywhere inside the live perimeter map tracking context using precise real-time interaction.
Capture mousedown, mousemove, and mouseup global listeners clamped to boundary limits. Setting dragging = true must temporarily halt any conflicting automated background autopilot routines. Target follows the pointer fluently during mouse-down drag states and snaps to true coordinates upon release without breaking boundaries.
Threat Motion
REQ-MOT-02
Automated Autopilot Routing Profiles
Provide configurable automated motion tracks using an autopilot toggle and a selectable drop-down menu containing native routines.
Autopilot Modes:
  • Random Threat Bounce: Target paths using vector components vx/vy; invert vector dimensions upon contacting absolute perimeter bounds.
  • Perimeter Loop: Iterates across static array vertices: [(40,40), (W-40,40), (W-40,H-40), (40,H-40)].
  • Tactical Zig-Zag: Steps alternatingly sideways down the page coordinates.
Changing the dropdown selection immediately recalculates active vector lines or waypoint indexes and paths smoothly without jump cuts.
Threat Motion
REQ-MOT-03
Custom Waypoint Plotting Engine
When the custom mode is toggled, users must be able to draw an isolated routing path by clicking empty space zones on the map canvas.
Clicking the map workspaces pushes coordinate maps into an array structure and creates a visual numbered marker child node (waypoint-marker). Implement a Clear Waypoints workflow button to clear markers and index parameters. Clicking targets plots numbers 1, 2, 3 chronologically. When active, autopilot loops sequentially from coordinate to coordinate and halts at the final destination.
Fault Drills
REQ-FLT-01
Drop Single Frame (Degradation Injection)
Simulate a sporadic local RF drop by forcing a single running node into a degraded status category.
Randomly choose an element from the filtered subset array containing active ONLINE nodes. Increment its missedHeartbeats property to 1 and modify the element layout token to node-degraded (orange pulse animation). Clicking the action button shifts one random node to orange pulsing state and populates a WARNING level alert in the active pipeline.
Fault Drills
REQ-FLT-02
Mass Mesh Crash Simulator
Simulate severe multi-node backhaul drops across at least 4 contiguous hardware positions to force array topology strain.
Target explicit index sequences (e.g., indices 12 through 16). Force status flags to CRITICAL_OUT, remove standard coloring classes, append node-failed styles (grey scale color), and explicitly set a persistent system-level banner to display: block. Clicking the trigger instantly locks out nodes 13-17 to dead states and displays a red critical network emergency alarm bar across the global page header.
Fault Drills
REQ-FLT-03
Manual Network Failover Protocol
Simulate a hot-swap link failover procedure that moves data pipelines from primary wireless RF channels into physical fallback structures.
Transition a UI link indicator state from 900MHz PRIMARY to an amber intermediate state (FAILING OVER...). Fire a delayed asynchronous trigger callback function (2500ms timeout window) to finalize state to green ETH FALLBACK SECURED. Audit trails correctly parse and update statuses sequentially, and intermediate states change asynchronously matching specified delays.
Visualizer
REQ-OSC-01
HTML5 Geophone Matrix Oscilloscope
Build a real-time running timeline oscilloscope visualizing signal responses using HTML5 Canvas rendering.
Execute rendering using a high-priority requestAnimationFrame loop mapping a sine/cosine frequency combination formula: y = CenterY + clutter + (sin(i * 0.12 + slice) * (globalSeismicAmplitude * 40 * realTimeArrayGain)). Color code dynamic stroke colors: Green (baseline), Orange (medium transit), Red (severe vibration spike). Smooth wave updates running at 60 FPS without performance stutter. Wave amplitudes dynamically compress/expand relative to target-to-node proximity.
User Interface
REQ-UI-01
Node Telemetry Interaction Modal
Clicking an active sensor node point must interrupt workflows and map detailed low-level attribute states onto a clean overlays container panel window.
Construct a hidden global backdrop div wrapper employing a modal content frame layout. Dynamically inject live node parameters: GUID, Seismic Voltage, Temperature, and accurate Heartbeat metrics. Provide a functional callback trigger execution button labeled Execute Reset. Clicking a node brings up a clear information pane overlay. Clicking Execute Reset maps the selected target back to ONLINE, clears dropped packets, and updates dashboards.
User Interface
REQ-UI-02
Audit Logging & Pipeline Management
Maintain comprehensive read-only state logs tracking historical events alongside interactive dismissible lists tracking alerts.
Implement dynamic data rendering pipes. Active alerts must show Tier flags, timestamps, and an ACK / CLEAR button that shifts the state string descriptor to CLEARED. Audit logging strings prepend newest events into container views with local timestamps. Operator actions, path changes, and injected failures instantly display at the top of the history feed. Clearing alerts visually strikes through or alters active state tags.