import os import uuid import json import sqlite3 import threading import numpy as np import uvicorn import gradio as gr from fastapi import FastAPI, HTTPException, WebSocket, WebSocketDisconnect from fastapi.middleware.cors import CORSMiddleware from fastapi.responses import FileResponse, HTMLResponse from pydantic import BaseModel from sklearn.decomposition import PCA from sklearn.cluster import KMeans PORT = int(os.environ.get("PORT", 7860)) STATIC_DIR = "./static" DB_PATH = "./neuraxon.db" class Centroid3D(BaseModel): id: int position: list class PuzzleSubmission(BaseModel): puzzle_id: str player_centroids: list[Centroid3D] player_name: str = "Satoshi_Quant" PUZZLE_CACHE = {} MP_ROOMS: dict[str, dict[str, dict]] = {} def calculate_snr_db(points, centroids, labels): signal_power = float(np.mean(points ** 2)) if signal_power == 0: return -999.0 reconstructed = centroids[labels] noise_power = float(np.mean((points - reconstructed) ** 2)) if noise_power <= 1e-12: return 999.0 return float(10 * np.log10(signal_power / noise_power)) def nearest_cluster_labels(points: np.ndarray, centroids: np.ndarray) -> np.ndarray: """Assign each point to its nearest centroid (matches client Slam / drag math).""" dists = np.linalg.norm(points[:, None, :] - centroids[None, :, :], axis=2) return np.argmin(dists, axis=1) def get_db(): conn = sqlite3.connect(DB_PATH) conn.row_factory = sqlite3.Row return conn def init_db(): conn = get_db() conn.executescript(""" CREATE TABLE IF NOT EXISTS recipes ( id INTEGER PRIMARY KEY AUTOINCREMENT, puzzle_id TEXT NOT NULL, tensor_source TEXT NOT NULL, player_name TEXT, baseline_snr_db REAL NOT NULL, player_snr_db REAL NOT NULL, snr_delta_db REAL NOT NULL, trust_level TEXT DEFAULT 'THEORETICAL', centroid_positions TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE INDEX IF NOT EXISTS idx_player ON recipes(player_name); CREATE TABLE IF NOT EXISTS players ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT UNIQUE NOT NULL, synaptic_weight REAL DEFAULT 0.0, total_snr_improved REAL DEFAULT 0.0, recipes_submitted INTEGER DEFAULT 0, highest_snr_delta REAL DEFAULT 0.0 ); """) conn.commit() conn.close() DOMAIN_CONFIG = { "qwen": {"num_vectors": 1000, "dimensions": 256, "num_clusters": 6, "baseline_snr": 3.2, "target_snr": 11.5}, "mri": {"num_vectors": 800, "dimensions": 128, "num_clusters": 8, "baseline_snr": 4.1, "target_snr": 13.8}, "genomic": {"num_vectors": 1200, "dimensions": 64, "num_clusters": 4, "baseline_snr": 5.6, "target_snr": 14.2}, "neural": {"num_vectors": 600, "dimensions": 512, "num_clusters": 10, "baseline_snr": 2.1, "target_snr": 10.9} } def generate_puzzle(domain: str) -> dict: cfg = DOMAIN_CONFIG.get(domain, DOMAIN_CONFIG["qwen"]) n, dims, k = cfg["num_vectors"], cfg["dimensions"], cfg["num_clusters"] raw = np.zeros((n, dims), dtype=np.float32) centers = np.random.randn(k, dims).astype(np.float32) * 5.0 for i in range(n): raw[i] = centers[i % k] + np.random.randn(dims).astype(np.float32) * 1.5 pca = PCA(n_components=3) pts_3d = pca.fit_transform(raw).astype(np.float32) km = KMeans(n_clusters=k, n_init=10, random_state=42) labels = km.fit_predict(pts_3d) base_cents = km.cluster_centers_.astype(np.float32) base_snr = calculate_snr_db(pts_3d, base_cents, labels) # Target is always baseline + domain improvement delta (not a fixed 11.5 dB) improve_db = float(cfg["target_snr"] - cfg["baseline_snr"]) target_snr = round(base_snr + improve_db, 2) pid = str(uuid.uuid4()) PUZZLE_CACHE[pid] = { "points_3d": pts_3d, "labels": labels, "baseline_centroids": base_cents, "baseline_snr": base_snr, "target_snr": target_snr, "improve_db": improve_db, "domain": domain, "config": cfg } return { "puzzle_id": pid, "explained_variance_ratio": round(float(np.sum(pca.explained_variance_ratio_)), 4), "baseline_snr_db": round(base_snr, 2), "target_snr_db": target_snr, "improve_db": round(improve_db, 2), "points": [{"pos": pts_3d[i].tolist(), "cluster": int(labels[i])} for i in range(n)], "centroids": [{"id": i, "position": base_cents[i].tolist()} for i in range(k)], "data_domain": domain } api = FastAPI(title="VectorVoid", version="1.0.0") api.add_middleware(CORSMiddleware, allow_origins=["*"], allow_methods=["*"], allow_headers=["*"]) def mp_players_list(room: dict[str, dict]) -> list: return [ {"id": pid, "name": p["name"], "x": p["x"], "y": p["y"], "z": p["z"], "rotY": p["rotY"]} for pid, p in room.items() ] async def mp_broadcast(room_id: str, payload: dict, except_id: str | None = None): room = MP_ROOMS.get(room_id, {}) msg = json.dumps(payload) dead = [] for pid, p in room.items(): if pid == except_id: continue try: await p["ws"].send_text(msg) except Exception: dead.append(pid) for pid in dead: room.pop(pid, None) @api.websocket("/ws/multiplayer") async def multiplayer_ws(websocket: WebSocket): await websocket.accept() room_id = None player_id = None try: while True: data = json.loads(await websocket.receive_text()) if data.get("type") == "join": room_id = str(data.get("room", "")).upper()[:8] if not room_id: await websocket.send_text(json.dumps({"type": "error", "message": "Room required"})) continue room = MP_ROOMS.setdefault(room_id, {}) if len(room) >= 2: await websocket.send_text(json.dumps({"type": "full"})) await websocket.close() return player_id = f"p_{uuid.uuid4().hex[:8]}" room[player_id] = { "name": data.get("name") or "Player", "x": 0.0, "y": 2.4, "z": 18.0, "rotY": 0.0, "ws": websocket, } await websocket.send_text(json.dumps({ "type": "joined", "room": room_id, "playerId": player_id, "players": mp_players_list(room), })) await mp_broadcast(room_id, {"type": "players", "players": mp_players_list(room)}, player_id) elif data.get("type") == "update" and room_id and player_id: room = MP_ROOMS.get(room_id, {}) p = room.get(player_id) if not p: continue p["x"] = float(data.get("x", p["x"])) p["y"] = float(data.get("y", p["y"])) p["z"] = float(data.get("z", p["z"])) p["rotY"] = float(data.get("rotY", p["rotY"])) await mp_broadcast(room_id, {"type": "players", "players": mp_players_list(room)}, player_id) except WebSocketDisconnect: pass finally: if room_id and player_id: room = MP_ROOMS.get(room_id, {}) room.pop(player_id, None) if room: await mp_broadcast(room_id, {"type": "players", "players": mp_players_list(room)}) else: MP_ROOMS.pop(room_id, None) @api.get("/api/health") def health(): return {"status": "VectorVoid Online", "version": "1.0.0", "gamepad": "PS4 supported"} @api.get("/api/puzzle/get") def get_puzzle(domain: str = "qwen"): if domain not in DOMAIN_CONFIG: raise HTTPException(400, f"Unknown domain. Use: {list(DOMAIN_CONFIG.keys())}") return generate_puzzle(domain) @api.post("/api/puzzle/submit") def submit_puzzle(sub: PuzzleSubmission): pid = sub.puzzle_id if pid not in PUZZLE_CACHE: raise HTTPException(404, "Puzzle expired. Generate a new one.") cache = PUZZLE_CACHE[pid] pts, base_snr = cache["points_3d"], cache["baseline_snr"] domain = cache["domain"] pd = {c.id: np.array(c.position, dtype=np.float32) for c in sub.player_centroids} k = cache["config"]["num_clusters"] pc = np.zeros((k, 3), dtype=np.float32) for i in range(k): pc[i] = pd.get(i, cache["baseline_centroids"][i]) labels = nearest_cluster_labels(pts, pc) ps = calculate_snr_db(pts, pc, labels) delta = ps - base_snr improved = delta > 0.001 if improved: conn = get_db() try: conn.execute("""INSERT INTO recipes (puzzle_id,tensor_source,player_name, baseline_snr_db,player_snr_db,snr_delta_db,trust_level,centroid_positions) VALUES (?,?,?,?,?,?,?,?)""", (pid, domain, sub.player_name, round(base_snr, 4), round(ps, 4), round(delta, 4), 'THEORETICAL', json.dumps([c.position for c in sub.player_centroids]))) conn.execute("""INSERT INTO players (name,synaptic_weight,total_snr_improved,recipes_submitted,highest_snr_delta) VALUES (?,0.1,?,1,?) ON CONFLICT(name) DO UPDATE SET synaptic_weight=synaptic_weight+0.1, total_snr_improved=total_snr_improved+?, recipes_submitted=recipes_submitted+1, highest_snr_delta=MAX(highest_snr_delta,?)""", (sub.player_name, delta, delta, delta, delta)) conn.commit() finally: conn.close() return {"status": "success", "is_improvement": improved, "baseline_snr_db": round(base_snr, 2), "player_snr_db": round(ps, 2), "snr_delta_db": round(delta, 4)} @api.get("/api/leaderboard") def leaderboard(domain: str = "all", limit: int = 20): conn = get_db() try: if domain == "all": rows = conn.execute("""SELECT player_name,MAX(player_snr_db)as best,COUNT(*)as n FROM recipes GROUP BY player_name ORDER BY best DESC LIMIT ?""", (limit,)).fetchall() else: rows = conn.execute("""SELECT player_name,MAX(player_snr_db)as best,COUNT(*)as n FROM recipes WHERE tensor_source=? GROUP BY player_name ORDER BY best DESC LIMIT ?""", (domain, limit)).fetchall() return {"leaderboard": [{"player": r["player_name"], "best_snr": round(r["best"], 2), "games": r["n"]} for r in rows]} finally: conn.close() @api.get("/api/domains") def domains(): return {"domains": [{"id": k, "baseline": v["baseline_snr"], "target": v["target_snr"]} for k, v in DOMAIN_CONFIG.items()]} @api.get("/api/impact") def impact(): conn = get_db() try: total = conn.execute("SELECT COUNT(*)as c FROM recipes").fetchone()["c"] total_snr = conn.execute("SELECT COALESCE(SUM(snr_delta_db),0)as s FROM recipes").fetchone()["s"] return {"metrics": { "mri_slices_compressed": 14262 + total * 3, "clinics_equipped": 146, "genomes_mapped_bp": 360531 + total * 50, "comms_lines_meters": 984131 + total * 100, "bandwidth_saved_gb": round(1870.1 + total_snr * 0.5, 1), "active_grid": "QWEN TENSOR", "total_submissions": total, "total_snr_improved_db": round(total_snr, 2) }} finally: conn.close() @api.get("/", include_in_schema=False) def root(): idx = os.path.join(STATIC_DIR, "index.html") if os.path.exists(idx): return FileResponse(idx) return HTMLResponse("""
Every Shot Advances Science
Backend Online. Upload static/ for full game.