from fastapi import FastAPI, WebSocket from fastapi.responses import HTMLResponse import asyncio import json import random from pathlib import Path app = FastAPI() # Path to the AVM gold traces for playback simulation TRACE_PATH = Path("/home/allaun/Documents/Research Stack/shared-data/burgers_avm_gold_traces.json") HTML_TEMPLATE = """ Sovereign NUVMAP Live

Sovereign NUVMAP Live

Connecting to AVM-R node...

Spectral Complexity (Ω)

Effective Viscosity (νeff)

""" @app.get("/") async def get(): return HTMLResponse(HTML_TEMPLATE) @app.websocket("/ws") async def websocket_endpoint(websocket: WebSocket): await websocket.accept() # Load gold traces for simulation playback gold_data = {} if TRACE_PATH.exists(): with open(TRACE_PATH, 'r') as f: gold_data = json.load(f) # Initial simulated state omega = 0.5 nu0 = 0.1 try: while True: # Simulate a slight drift in Omega omega += random.uniform(-0.05, 0.05) omega = max(0.1, min(1.0, omega)) # Compute nu_eff (Burgers AVM law) nu_eff = nu0 * (1.0 + omega) payload = { "omega": omega, "nu_eff": nu_eff, "status": "CALIBRATED" } await websocket.send_text(json.dumps(payload)) await asyncio.sleep(0.5) # 2Hz refresh except Exception as e: print(f"WS Error: {e}") finally: await websocket.close() if __name__ == "__main__": import uvicorn uvicorn.run(app, host="0.0.0.0", port=8000)