Sameh Khamis
dc81cf585c
refactor: separate application UI state owners
2026-09-14 15:29:10 -07:00
Sameh Khamis
2d68841783
refactor: separate layer lifecycle from presentation
2026-09-14 15:04:28 -07:00
Sameh Khamis
ac977bd8bc
refactor: own application request operations and surface caches
2026-09-14 14:49:04 -07:00
Sameh Khamis
8160ac5fe4
refactor: construct application layers from supplied sources
2026-09-14 14:20:01 -07:00
Sameh Khamis
c3de679c61
refactor: supply application catalogs explicitly
2026-09-14 13:56:51 -07:00
Sameh Khamis
fb8f9e1c49
refactor: expose portable FIRMS CSV helpers
2026-09-14 12:58:57 -07:00
Rehaan Delmotra
18869a82f0
chore: adopt satellitePass formatting
2026-09-14 22:50:57 +05:30
Rehaan Delmotra
096f533efe
feat(satellites): precise pass rise/set and peak times
...
- Add satellitePass.js: bisected rise/set, parabolic peak fit
- Add getNextSatellitePass for any loaded catalog satellite
- Keep findNextIssPass as a wrapper
2026-09-14 22:49:48 +05:30
Gustavo Beneduzi
deb34ebe35
feat(wind): add keyless NOAA GFS wind layer with animated particles
...
Add a Wind layer animating the global 10 m wind field from NOAA GFS.
The /api/wind proxy selects the latest available 0.25° cycle, reads its .idx
inventory, byte-range fetches only the UGRD/VGRD 10 m GRIB2 messages (~1 MB
each instead of the whole ~500 MB file), decodes them with ecCodes (WASM),
resamples to a compact grid (1° default), and serves a manifest plus a Float32
U/V payload cached per cycle for an hour (single-flight, last-good on failure).
The client renders nullschool-style particles in a canvas overlay: bilinear
field sampling with longitude wrap, per-frame advection, Cesium camera
projection, and globe-occlusion culling via EllipsoidalOccluder.
Validated end-to-end against the real 2026-09-14 06z cycle on Node 25
(180x91 grid at 2°, 131,040-byte payload, plausible mean |u|/|v|). The WASM
decoder requires Node >=24, which the repo already requires.
Registered as `wind` (token k) with attribution and docs. Verified: npm test
(3412 pass, 0 fail), npm run check:boundaries.
2026-09-14 12:59:18 -03:00
Sameh Khamis
6d5478ffa9
refactor(tools): support an explicit project directory
2026-09-14 07:35:38 -07:00
Sameh Khamis
a67bc60a29
refactor(app): share application components and request services
2026-09-13 22:41:11 -07:00
Sameh Khamis
1a1cbadf5b
refactor: separate voice controls and configurable Realtime connections
2026-09-13 21:54:51 -07:00
Sameh Khamis
8b36c28b06
refactor: compose configurable geocoding and route services
2026-09-13 21:23:13 -07:00
Sameh Khamis
7068ee7dc7
Merge current main into ALPR camera candidate
2026-09-13 20:08:54 -07:00
Bilawal Sidhu
41c416e329
docs(cctv): describe the ground-height data plainly ( #443 )
...
Follow-up to #433 .
2026-09-13 21:54:29 -05:00
12790b36c6
feat(cctv): seven camera packs, semantic labels, terrain-clear monitor planes ( #433 )
...
Seven contributed CCTV camera packs (Ontario 511, Fintraffic Finland, DriveBC, TxDOT Texas, Estonia Tallinn + Tarktee, Warendorf, Live Traffic NSW) on a fair per-pack catalog cap; semantic camera labels; monitor planes lifted clear of the terrain from a precomputed, bundled ground-height dataset. Default catalog 800 → 3,446 cameras. Full context in PR #433 .
Co-authored-by: sendmebits <[email protected] >
Co-authored-by: avocadoAgent <[email protected] >
Co-authored-by: Alex Harvey <[email protected] >
Co-authored-by: Jason Meredith <[email protected] >
Co-authored-by: Daniel Smith <[email protected] >
Co-authored-by: Vladimir Sobolev <[email protected] >
Co-authored-by: Matthias Schneider <[email protected] >
Co-authored-by: Cyber Knight <[email protected] >
Co-authored-by: NovaSoft Australia <[email protected] >
2026-09-13 21:48:33 -05:00
Sameh Khamis
277cd45154
test(tracking): keep the synthetic floor above refreshed contact altitude
2026-09-13 19:39:00 -07:00
Sameh Khamis
211eb70eed
Merge remote-tracking branch 'origin/main' into refactor/alpr-camera-source
...
# Conflicts:
# package.json
# scripts/format-scope.json
# scripts/package-boundaries.json
2026-09-13 19:21:57 -07:00
Sameh Khamis
8024813792
fix(maps): settle failed recovery and update registry QA
2026-09-13 19:01:23 -07:00
Sameh Khamis
e59282dc9c
refactor(maps): separate source factories and scene coordination
2026-09-13 18:59:29 -07:00
Sameh Khamis
3ce5d2e454
refactor(geography): separate cable sources and bundled lookup modules
2026-09-13 18:36:33 -07:00
Sameh Khamis
2808fc1707
test(radio): settle HUD geometry and expose the tuner drag target
2026-09-13 18:25:38 -07:00
Sameh Khamis
0feaab0a72
refactor(alpr): accept normalized camera snapshots and source attribution
2026-09-13 17:33:48 -07:00
Sameh Khamis
1180274081
test(radio): settle both lanes in the paused Cockpit fixture
2026-09-13 17:28:35 -07:00
Sameh Khamis
41b3cc1705
refactor(radio): separate directory and playback components
2026-09-13 17:28:35 -07:00
Tom-Neverwinter and Bilawal Sidhu
4374c0fa60
feat: add mapped ALPR cameras with bounded source loading
...
Adapt the ALPR camera contribution to reusable layer components, retaining source attribution, bounded queries, selection and voice controls.
Co-authored-by: Bilawal Sidhu <[email protected] >
2026-09-13 17:21:42 -07:00
Sameh Khamis
519bc6c362
refactor(cctv): separate camera source and scene components
2026-09-13 15:02:32 -07:00
Sameh Khamis
bf6c401e27
feat(ui): toggle rendered frame rate with backtick
2026-09-13 14:51:24 -07:00
Sameh Khamis
0732f8f95c
fix(traffic): recover road loading after city navigation
2026-09-13 14:47:26 -07:00
Sameh Khamis
903fe6ba37
refactor: separate traffic and bikeshare components
2026-09-13 14:10:38 -07:00
Sameh Khamis
3b77277883
refactor: separate installation and proximity context components
2026-09-13 13:36:32 -07:00
Sameh Khamis
ce0568983a
refactor(space): separate satellite and mission layer components
2026-09-13 13:12:34 -07:00
Sameh Khamis
6a9f13eab8
refactor(fires): separate source, rendering and interaction components
2026-09-13 12:48:26 -07:00
Sameh Khamis
d1d938babe
refactor: separate earthquake source and display ownership
2026-09-13 12:14:44 -07:00
Sameh Khamis
a0b2d9f6aa
Format extracted vessel components
2026-09-13 10:54:35 -07:00
Sameh Khamis
2f4839e8f2
Extract vessel components and preserve source lifecycle
2026-09-13 10:54:32 -07:00
Sameh Khamis
cb790ddea1
Extract military-flight components and shared aircraft mechanics
2026-09-13 10:23:13 -07:00
Sameh Khamis
6bbfeae9f2
Use a launch catalog fixture in Cockpit lifecycle QA
2026-09-13 10:04:01 -07:00
Sameh Khamis
f177b213f2
Keep structural and terrain regression pins on component owners
2026-09-13 09:54:55 -07:00
Sameh Khamis
7c7e83c9e3
Extract instance-owned civil-flight components
2026-09-13 09:50:14 -07:00
Sameh Khamis
0007ace064
Capture vessel cards after first-run chrome and camera settling
2026-09-13 09:13:29 -07:00
Sameh Khamis
80c5a09f15
Format live source modules and adopt their formatting checks
2026-09-13 08:58:59 -07:00
Sameh Khamis
e968053d2c
Separate live observation sources from aircraft and vessel layers
2026-09-13 08:58:56 -07:00
Sameh Khamis
ed172009e6
build: declare scene policy ownership in the director export
2026-09-13 05:45:20 -07:00
Sameh Khamis
e0652b19f2
style: format state subscriptions and their adopted controls
2026-09-13 05:43:05 -07:00
Sameh Khamis
45d97376d0
refactor: drive share, location and scene controls through product state
2026-09-13 05:42:49 -07:00
Sameh Khamis
d11b612dca
test: send the loading fixture event to its feedback owner
2026-09-13 04:52:24 -07:00
Sameh Khamis
841da87ca4
test: follow formatted shell owners and make playback keyboard focus explicit
2026-09-13 04:49:02 -07:00
Sameh Khamis
945a809994
fix: retain shell feedback bindings and stop disposed panel work
2026-09-13 04:49:02 -07:00
Sameh Khamis
03ad8142e6
style: format the UI shell and component styles
2026-09-13 04:26:11 -07:00