Remove un needed files

This commit is contained in:
2026-05-21 20:12:32 -07:00
parent f01db5e6b4
commit b781d2af2f
7 changed files with 90 additions and 2115 deletions

136
CLAUDE.md
View File

@@ -78,7 +78,11 @@ struct target_data_structure {
TargetType type;
};
To optimize memory bandwidth on the Radeon 780M GPU, the traffic_cop packs raw telemetry down into a lightweight structure passed directly into a standard OpenGL Shader Storage Buffer Object (SSBO) with a layout(std430) alignment.C++struct target_data_to_shader_structure {
To optimize memory bandwidth on the Radeon 780M GPU, the traffic_cop packs raw telemetry
down into a lightweight structure passed directly into a standard OpenGL Shader
Storage Buffer Object (SSBO) with a layout(std430) alignment.
C++struct target_data_to_shader_structure {
float target_x; // Local Cartesian offset East (meters from radar origin)
float target_y; // Local Cartesian offset North (meters from radar origin)
float length; // Vessel length bounding box size (meters)
@@ -87,7 +91,76 @@ To optimize memory bandwidth on the Radeon 780M GPU, the traffic_cop packs raw t
float altitude; // Target altitude profile (meters)
long long timestamp;// Data alignment padding field
};
Ingestion ProtocolThread Isolation: The traffic_cop handles parsing, scaling, and double-buffering completely isolated on its own thread to prevent blocking the frame rendering pipeline.Precision Correction: Coordinate projections (converting Lat/Long maps to local relative meters) are performed on the CPU using double-precision calculations before passing parameters down as 32-bit floating-point numbers to protect against rounding distortions.Boundary & Ceiling Filters: Targets residing beyond the selected scope's maximum range are immediately culled. Marine installations enforce an absolute <= 40-meter altitude cap; any aircraft target exceeding this height is dropped.Synchronized Dispatch: The traffic_cop writes updates into the graphics pipeline using a std::mutex critical section precisely when the PPI radar line swings past 0.0 radians (True North).4. Operational Exhibit ScopesUsers step through the available scope list in a continuous loop using the forward (1) and backward (2) keys. Scopes reset to their baseline parameters upon entry.Exhibit Introduction: Displays static informational text on the left panel. The right view panel remains blank until navigation keys are pressed.Chain Home A-Scope (1940s): Simulated 1D electrostatic vector trace. Features an inverted top-down baseline. All video signals deflect downward. Includes crystal-controlled 20-mile reference pips and a wide $150^\circ$ floodlight footprint. Target azimuth coordinates are evaluated manually via a radiogoniometer search coil nulling control.Marine A-Scope (1940s): Represents early surface-search systems like the British Type 271. Features a bottom-up baseline trace showing signal power versus range. The antenna is rotated manually using a servo motor console knob to sweep for target peak voltages.Marine Traffic Control PPI Scope (1960s): Stationary shore installation tracking Bellingham Bay. Features a high-power $25\text{ kW}$ transmitter, a highly directional 12-foot linear waveguide array ($0.7^\circ$ horizontal beamwidth), and a slow 15 RPM rotation rate. The screen top is locked to True North.Shipborne Marine PPI Scope (1960s): Simulates a moving patrol boat or Coast Guard cutter. Features a $15\text{ kW}$ tactical transmitter, a 4-to-6-foot antenna ($1.2^\circ$ horizontal beamwidth), and a fast 25 RPM sweep. The screen top is locked to the vessel's bow, and the graticule ring dynamically adjusts using gyrocompass inputs.5. Shader Modularization StrategyThe rendering engine decomposes processing tasks across distinct, optimized shader sets to isolate raw signal generation from persistent phosphor simulations. [Target SSBO Data] & [GDAL Elevation Maps]
Ingestion ProtocolThread Isolation:
The traffic_cop handles parsing, scaling, and double-buffering completely
isolated on its own thread to prevent blocking the frame rendering pipeline.
Precision Correction: Coordinate projections (converting Lat/Long maps to
local relative meters) are performed on the CPU using double-precision
calculations before passing parameters down as 32-bit floating-point
numbers to protect against rounding distortions.
Boundary & Ceiling Filters:
Targets residing beyond the selected scope's maximum range are immediately culled.
Marine installations enforce an absolute <= 40-meter altitude cap; any
aircraft target exceeding this height is dropped.
Synchronized Dispatch:
The traffic_cop writes updates into the graphics pipeline using a
std::mutex critical section precisely when the PPI radar
line swings past 0.0 radians (True North).
4. Operational Exhibit Scopes
Users step through the available scope list in a continuous loop using the
forward (1) and backward (2) keys.
Scopes reset to their baseline parameters upon entry.
Exhibit Introduction: Displays static informational text on the left panel.
The right view panel remains blank until navigation keys are pressed.
Chain Home A-Scope (1940s):
Simulated 1D electrostatic vector trace. Features an inverted top-down baseline. All video signals
deflect downward. Includes crystal-controlled 20-mile reference pips and a
wide $150^\circ$ floodlight footprint.
Target azimuth coordinates are evaluated manually
via a radiogoniometer search coil nulling control.
Marine A-Scope (1940s):
Represents early surface-search systems like the British Type 271. Features a
bottom-up baseline trace showing signal power versus range. The antenna is
rotated manually using a servo motor console knob to sweep for target peak voltages.
Marine Traffic Control PPI Scope (1960s):
Stationary shore installation tracking Bellingham Bay. Features a high-power $25\text{ kW}$
transmitter, a highly directional 12-foot linear waveguide array ($0.7^\circ$ horizontal beamwidth),
and a slow 15 RPM rotation rate. The screen top is locked to True North.
Shipborne Marine PPI Scope (1960s):
Simulates a moving patrol boat or Coast Guard cutter. Features a $15\text{ kW}$ tactical
transmitter, a 4-to-6-foot antenna ($1.2^\circ$ horizontal beamwidth), and a
fast 25 RPM sweep. The screen top is locked to the vessel's bow,
and the graticule ring dynamically adjusts using gyrocompass inputs.
5. Shader Modularization Strategy
The rendering engine decomposes processing tasks across distinct, optimized
shader sets to isolate raw signal generation from persistent phosphor
simulations.
[Target SSBO Data] & [GDAL Elevation Maps]
┌──────────────────────────────────────────────────┐
@@ -106,58 +179,28 @@ Ingestion ProtocolThread Isolation: The traffic_cop handles parsing, scaling, an
│ PASS C: Orthographic 2D UI & Graticule Overlay │
│ (Applies Backlit Vector Rings and Text Overlays) │
└──────────────────────────────────────────────────┘
Pass A (Signal Generation & Terrain Pipeline): Evaluates the radar equation, target cross-sections, and landscape masks on a per-pixel basis. It writes output results directly into a high-precision floating-point Framebuffer Object (FBO) texture, preventing signal clipping and rounding artifacts.Pass B (P7 Phosphor Integration & Persistence Pass): Emulates vintage cathode-ray tube long-persistence phosphors. It blends the newly generated excitation texture from Pass A into a historical ping-pong frame buffer tracking multi-stage exponential decay.Pass C (Orthographic 2D UI & Graticule Overlay): Draws edge-lit vector rings, angular graduation marks, baseline coordinates, and text glyph textures directly onto screen coordinates.6. Complete Compilation Blueprint Natively for UbuntuCMakeLists.txtCMakecmake_minimum_required(VERSION 3.22)
project(RadarSimulator SYSTEM CXX)
# Target configuration details: Mark Allyn, 2026
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
Pass A (Signal Generation & Terrain Pipeline):
# Enforce architectural optimizations for the Geekom A8 Max (Ryzen 9 8945HS)
if(CMAKE_COMPILER_IS_GNUCXX)
add_compile_options(-Wall -Wextra -O3 -march=native -pthread)
endif()
Evaluates the radar equation, target cross-sections, and landscape masks on a
per-pixel basis. It writes output results directly into a high-precision
floating-point Framebuffer Object (FBO) texture, preventing signal clipping and
rounding artifacts.
# Find systemic hardware dependencies inside Ubuntu
find_package(PkgConfig REQUIRED)
pkg_check_modules(FREETYPE REQUIRED freetype2)
pkg_check_modules(GLFW3 REQUIRED glfw3)
Pass B (P7 Phosphor Integration & Persistence Pass):
find_package(PostgreSQL REQUIRED)
Emulates vintage cathode-ray tube long-persistence phosphors. It blends the
newly generated excitation texture from Pass A into a historical ping-pong
frame buffer tracking multi-stage exponential decay.
find_path(GDAL_INCLUDE_DIR gdal.h PATH_SUFFIXES gdal)
find_library(GDAL_LIBRARY NAMES gdal)
Pass C (Orthographic 2D UI & Graticule Overlay):
if(NOT GDAL_LIBRARY OR NOT GDAL_INCLUDE_DIR)
message(FATAL_ERROR "GDAL structural development assets not found in ecosystem.")
endif()
Draws edge-lit vector rings, angular graduation marks, baseline coordinates,
and text glyph textures directly onto screen coordinates.6.
# Define the primary radar simulator executable target
add_executable(radar_simulator
main.cpp
settings.h
)
Settings file used for troubleshooting and tuning parameters without
having to re-compile.
# Explicit target layout inclusion bounds
target_include_directories(radar_simulator PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}
${FREETYPE_INCLUDE_DIRS}
${GLFW3_INCLUDE_DIRS}
${PostgreSQL_INCLUDE_DIRS}
${GDAL_INCLUDE_DIR}
)
# Core library synchronization
target_link_libraries(radar_simulator PRIVATE
${GLFW3_LIBRARIES}
${FREETYPE_LIBRARIES}
${PostgreSQL_LIBRARIES}
${GDAL_LIBRARY}
GL
dl
pthread
)
settings.hC++/*
* MIT License
* Copyright (c) 2026 Mark Allyn
@@ -260,6 +303,7 @@ namespace MarineBoatPPI {
const float ANTENNA_RPM = 25.0f; /* 25 RPM high-frequency sweep */
const float ANTENNA_GAIN = 1258.93f; /* 31 dB linear converter multiplier */
}
main.cppC++/*
* MIT License
* Copyright (c) 2026 Mark Allyn