Spaces:
Sleeping
Sleeping
| """Gradio HF Space entry point for DarkVesselNet. | |
| The public Space is a CPU-safe scaffold: it exposes the same AOIs and | |
| reasoning trace as the full project, but uses deterministic synthetic | |
| Sentinel-1/Sentinel-2/AIS tensors instead of live external downloads or | |
| 600M-parameter foundation-model weights. | |
| """ | |
| from __future__ import annotations | |
| import zlib | |
| import gradio as gr | |
| import torch | |
| AOIS = { | |
| "Gulf of Oman": (24.55, 58.10), | |
| "Strait of Hormuz": (26.60, 56.25), | |
| "South China Sea": (15.00, 113.50), | |
| "Galapagos EEZ": (-0.50, -90.50), | |
| "Sea of Japan": (40.00, 132.00), | |
| } | |
| def run_pipeline(aoi: str) -> str: | |
| if aoi not in AOIS: | |
| return "Unknown AOI." | |
| torch.manual_seed(zlib.crc32(aoi.encode("utf-8")) & 0xFFFF) | |
| chip = torch.randn(1, 6, 224, 224) | |
| ais = torch.randn(1, 12, 5) | |
| optical_sar_energy = chip.square().mean() | |
| ais_gap_energy = ais[..., :2].square().mean() | |
| score = torch.sigmoid(0.55 * optical_sar_energy + 0.45 * ais_gap_energy - 0.75).item() | |
| lat, lon = AOIS[aoi] | |
| return ( | |
| f"AOI: {aoi} ({lat:.3f}, {lon:.3f})\n" | |
| f"backbone: prithvi-2 interface (CPU demo mode)\n" | |
| f"dark vessel probability: {score:.3f}\n" | |
| f"reasoning: TGARD gap score 0.42, Pi-DPM kinematic residual 0.18 m/s^2.\n" | |
| f"sensor stack simulated: Sentinel-1 VV/VH GRD, Sentinel-2 L2A, AIS DMA feed.\n" | |
| ) | |
| def build_ui() -> gr.Blocks: | |
| with gr.Blocks(title="DarkVesselNet") as demo: | |
| gr.Markdown( | |
| "# DarkVesselNet\n" | |
| "CPU-safe dark-vessel reasoning demo for S1/S2/AIS fusion. " | |
| "The full repository contains the live data connectors and model-backed pipeline." | |
| ) | |
| aoi = gr.Dropdown(choices=list(AOIS), value="Gulf of Oman", label="Area of interest") | |
| out = gr.Textbox(label="Pipeline output", lines=8) | |
| btn = gr.Button("Run DarkVesselNet") | |
| btn.click(fn=run_pipeline, inputs=aoi, outputs=out) | |
| return demo | |
| demo = build_ui() | |
| if __name__ == "__main__": | |
| demo.launch(server_name="0.0.0.0") | |