feat: add UE5 LED display client — backend API, C++ source, stereo framework

Backend:
- Add /api/v1/ue/* endpoints (compute-points, cables, landing-points, satellites, status)
  returning flat JSON optimised for UE5 C++ parsing

UE5 client (ue_client/):
- PlanetDataManager: HTTP fetch + local mock JSON loader, spawns ComputePointActors
- ComputePointActor / InteractiveObjectBase: hover/select state, material switching
- GlobeInteractionComponent: drag-to-rotate via CesiumGeoreference origin shift, inertia, zoom
- StereoRenderingManager: runtime SbS/TbB stereo toggle, IPD control (format TBD)
- MotionCaptureInterface: protocol-agnostic gesture/rotate/zoom delegate interface (impl TBD)
- PlanetPlayerController: unified mouse + motion-capture input routing
- PlanetGameMode, Build.cs, Config, mock data

Docs:
- ue5_mvp_fused_plan.md updated to v3.0 for LED display context
- ue_client_setup_guide.md: step-by-step editor setup guide
- ue_todo.md: pending items blocked on vendor answers (stereo format + mocap protocol)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
linkong
2026-04-14 18:39:05 +08:00
parent d9adaf4134
commit 1e6f4b338b
28 changed files with 2781 additions and 949 deletions

View File

@@ -0,0 +1,135 @@
{
"count": 10,
"items": [
{
"id": "top500_1",
"name": "Frontier",
"latitude": 36.01,
"longitude": -84.26,
"country": "United States",
"city": "Oak Ridge",
"rank": 1,
"rmax_tflops": 1194000.0,
"rpeak_tflops": 1679616.0,
"cores": 8730112,
"power_kw": 22703.0
},
{
"id": "top500_2",
"name": "Aurora",
"latitude": 41.71,
"longitude": -87.98,
"country": "United States",
"city": "Lemont",
"rank": 2,
"rmax_tflops": 1012000.0,
"rpeak_tflops": 1321000.0,
"cores": 9264128,
"power_kw": 38698.0
},
{
"id": "top500_3",
"name": "Eagle",
"latitude": 52.36,
"longitude": 4.90,
"country": "Netherlands",
"city": "Amsterdam",
"rank": 3,
"rmax_tflops": 561200.0,
"rpeak_tflops": 736000.0,
"cores": 4620800,
"power_kw": 12410.0
},
{
"id": "top500_4",
"name": "Fugaku",
"latitude": 34.66,
"longitude": 135.22,
"country": "Japan",
"city": "Kobe",
"rank": 4,
"rmax_tflops": 442010.0,
"rpeak_tflops": 537212.0,
"cores": 7630848,
"power_kw": 29899.0
},
{
"id": "top500_5",
"name": "LUMI",
"latitude": 65.01,
"longitude": 25.46,
"country": "Finland",
"city": "Kajaani",
"rank": 5,
"rmax_tflops": 379700.0,
"rpeak_tflops": 531000.0,
"cores": 2748384,
"power_kw": 6016.0
},
{
"id": "top500_6",
"name": "MareNostrum 5",
"latitude": 41.39,
"longitude": 2.11,
"country": "Spain",
"city": "Barcelona",
"rank": 6,
"rmax_tflops": 138200.0,
"rpeak_tflops": 314000.0,
"cores": 2764800,
"power_kw": 10000.0
},
{
"id": "top500_7",
"name": "Summit",
"latitude": 35.93,
"longitude": -84.31,
"country": "United States",
"city": "Oak Ridge",
"rank": 7,
"rmax_tflops": 148600.0,
"rpeak_tflops": 200795.0,
"cores": 2414592,
"power_kw": 10096.0
},
{
"id": "top500_8",
"name": "Tianhe-2A",
"latitude": 23.13,
"longitude": 113.27,
"country": "China",
"city": "Guangzhou",
"rank": 8,
"rmax_tflops": 100679.0,
"rpeak_tflops": 100679.0,
"cores": 4981760,
"power_kw": 18482.0
},
{
"id": "top500_9",
"name": "Selene",
"latitude": 40.82,
"longitude": -74.17,
"country": "United States",
"city": "Santa Clara",
"rank": 9,
"rmax_tflops": 63460.0,
"rpeak_tflops": 79200.0,
"cores": 555520,
"power_kw": 2646.0
},
{
"id": "top500_10",
"name": "Perlmutter",
"latitude": 37.88,
"longitude": -122.25,
"country": "United States",
"city": "Berkeley",
"rank": 10,
"rmax_tflops": 93750.0,
"rpeak_tflops": 120000.0,
"cores": 761856,
"power_kw": 3060.0
}
]
}