Add analytical radiation pattern models for 5 antenna types (dipole, monopole, EFHW, loop, patch) driven by S11 impedance measurements. Pure Python math with closed-form far-field equations — no numpy or simulation dependencies. New MCP tools: - radiation_pattern: scan S11 → find resonance → compute 3D pattern - radiation_pattern_from_data: compute from known impedance (no hardware) - radiation_pattern_multi: patterns across a frequency band for animation Web UI (opt-in via MCNANOVNA_WEB_PORT env var): - Three.js gain-mapped sphere with OrbitControls - Surface/wireframe/plane cut display modes with teal→amber color ramp - Smith chart overlay, dBi reference rings, E/H plane cross-sections - Real-time WebSocket push on new pattern computation - FastAPI backend shares process with MCP server, zero new core deps Frontend: Vite + TypeScript + Three.js, built assets committed to webui/static/. Optional dependencies: fastapi + uvicorn via pip install mcnanovna[webui].
18 lines
537 B
HTML
18 lines
537 B
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>mcnanovna -- Radiation Pattern</title>
|
|
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap" rel="stylesheet">
|
|
</head>
|
|
<body>
|
|
<div id="app">
|
|
<div id="controls"></div>
|
|
<div id="scene-container"></div>
|
|
<canvas id="smith-chart" width="200" height="200"></canvas>
|
|
</div>
|
|
<script type="module" src="/src/main.ts"></script>
|
|
</body>
|
|
</html>
|