Aeion Bridge Module Technical Specifications

Local image generation (txt2img / img2img / inpainting / upscaling), text-to-speech, video/music/3D generation, hardware capture, and code execution — 10 admin views, 3 device/audit/model data stores, 50+ MCP tools, outbound WebSocket only.

System Metrics

Image generation

txt2img, img2img, inpainting, upscaling

Text-to-speech

voice generation + voice listing

Video generation

local video synthesis

Music generation

local music/audio generation

Native capture

screen, camera, mic, system info

Code execution

local code execution + terminal

3D rendering

local 3D rendering pipeline

Data stores

3 (device registry, capability audit log, model installations)

Admin views

10 (dashboard, models, compute, terminal, docker, git, system, media, sync, tools)

Nav sections

4 (AI & Compute, DevOps, Hardware, Bridge Dashboard)

MCP tools

50+ (auto-registered whenever a Bridge client connects)

Architecture Overview

DomainWhat it handles
**Connection mgmt**Connection manager, WebSocket session, MCP tool registry
**Image generation**Stable Diffusion / ComfyUI integration
**TTS**Local text-to-speech generation
**Video generation**Local video synthesis
**Music generation**Local audio synthesis
**Native capture**Screen, camera, microphone capture
**Code execution**Local code execution + terminal
**3D rendering**Local 3D rendering pipeline
**MCP HTTP routes**MCP tool HTTP endpoints + TTS streaming
**Data stores**Device registry, capability audit log, model installs

Connection Manager

A connection manager on the cloud side owns the Bridge WebSocket session for your tenant. It handles discovery (configured URL first, then mDNS/SSDP on the local network), the initial handshake, exponential-backoff reconnection (5s → 10s → 20s → up to 60s, 10 attempts before giving up), and dispatching MCP tool calls to whichever Bridge client is currently connected. If no Bridge client is connected, cloud-only operations continue unaffected and Bridge-dependent calls return a clear "not connected" response.

MCP tool registration:

```typescript // When a Bridge client connects, it registers its available tools: { "method": "tools/register", "params": { "tools": [ { "name": "compute.image.generate", "schema": { ... } }, { "name": "compute.tts.generate", "schema": { ... } }, { "name": "docker.logs", "schema": { ... } }, // ... 50+ tools total ] } }

// Cloud calls a tool the same way it calls any MCP tool: { "method": "tools/call", "params": { "name": "compute.image.generate", "arguments": { "prompt": "...", "model": "flux-schnell" } } } // → Forwarded to the Bridge client over WebSocket // → Executed locally, on your hardware // → Result returned to cloud ```

Image Generation — txt2img, img2img, Inpainting, Upscaling

All image generation is exposed as Bridge MCP tools — compute.image.generate (text-to-image and img2img), compute.image.edit (inpainting), compute.image.upscale, and compute.image.models for listing installed models.

Generation parameters: prompt, negativePrompt, model ("flux-schnell" / "sdxl-turbo" / "sd-3.5" / etc.), width / height (default 1024), steps (default 20), cfgScale (default 7.5), seed, batchSize (default 1), plus optional sourceImage + strength for img2img, controlNet (canny / depth / pose / scribble / tile guidance with guidanceStart / guidanceEnd), and lora (one or more LoRA models with a weight 0.0–2.0).

Result shape: a list of base64-encoded images, the model used, generation time, seed, steps, and cfgScale.

img2img example:

typescript // Transform product photo to a different style const result = await bridge.call("compute.image.generate", { prompt: "professional studio photography, white background, soft lighting", negativePrompt: "blurry, noise, distorted", model: "flux-schnell", width: 1024, height: 1024, steps: 25, cfgScale: 7.5, // img2img mode: sourceImage: base64ProductPhoto, strength: 0.7, // 70% influenced by prompt // ControlNet for pose preservation: controlNet: { model: "canny", image: base64EdgeMap, guidanceStart: 0.0, guidanceEnd: 0.8, }, });

Inpainting example (parameters: image, mask — white = keep, black = regenerate — prompt, model, strength, default 0.75):

typescript const inpainted = await bridge.call("compute.image.edit", { image: base64ProductPhoto, mask: base64MaskOfBackground, // White = keep product, Black = new background prompt: "dreamy outdoor garden background, bokeh lights", model: "flux-schnell", strength: 0.8, });

Upscaling (parameters: image, scaleFactor — 2 or 4 — model, default "real-esrgan"):

typescript const upscaled = await bridge.call("compute.image.upscale", { image: base64Generated1024, scaleFactor: 4, // 1024 → 4096 model: "real-esrgan", });

Model listing:

typescript const models = await bridge.call("compute.image.models", {}); // → [{ id: "flux-schnell", name: "FLUX.1 [schnell]", type: "txt2img", vramRequired: 8, installed: true, ... }]

Text-to-Speech

TTS is exposed as Bridge MCP tools — compute.tts.generate (generate speech), compute.tts.stream (progressive streaming for real-time use), compute.tts.models (list voices/models), compute.tts.clone (voice cloning), and model management tools for installing/removing local voice models.

Request parameters: text (up to 10,000 characters), voice (voice ID), model ("kokoro" / "bark" / "f5-tts"), speed (0.5–2.0), format ("mp3" / "wav" / "ogg"), sampleRate (24000 / 44100 / 48000). Result: base64-encoded audio, duration, format, model, voice, and text length. Voices carry an id, display name, language, gender, and provider.

TTS streaming (for real-time):

```typescript // For applications that need progressive audio output const stream = await bridge.call("compute.tts.stream", { text: "Welcome to Acme Corp. Your call may be recorded for quality assurance.", model: "kokoro", format: "mp3", speed: 1.0, });

// stream is a ReadableStream<Uint8Array> // Can pipe directly to audio element or WebSocket

// Or use the TTS route directly: POST /bridge/tts/stream { "voice": "en-US-Neural2-F", "model": "kokoro" } // → Starts a streaming TTS session; response carries a session handle ```

Native Capture — System Capabilities

Native capture is exposed as Bridge MCP tools: screen capture (source: screen or a specific window/display, format png/jpg/webp, quality, cursor inclusion), camera capture, microphone recording, and system info (platform, architecture, CPU count, total/free memory, attached GPUs with VRAM and compute capability, OS version, hostname, uptime).

3 Data Stores — Device Registry, Audit Log, Model Installs

Behind the Bridge admin views, the platform keeps three records per tenant:

  • Device registry — every Bridge client that has ever connected: name, type (computer / server / IoT / printer / scanner / camera), online/offline/error status, advertised capabilities, first/last seen, client version, network identity (IP, hostname, MAC where available), OS, and attached GPU (name, VRAM, compute capability).
  • Audit log — every MCP tool call made through Bridge: which device, which user, which tool, a redacted copy of the arguments, success/error/timeout status, execution time, and a timestamp. This is what powers the compliance exports described below.
  • Model installations — what's installed on each device: model type (image / TTS / video / audio / 3D / code), model id and name, install status, size, VRAM required, install/last-used timestamps, and version.

Security — Scope-Based Authorization

API key scopes:

typescript { "type": "bridge_client", "tenantId": "tenant_acme", "scopes": [ "bridge:read", // List devices, capabilities "bridge:write", // Configure devices "ai:generate", // Image generation, TTS, video "docker:manage", // Docker operations "terminal:execute", // Shell commands "git:manage", // Git operations "files:local", // Local file access "media:capture", // Screen, camera, mic ], "deviceId": "bridge_device_id", "expiresAt": "2027-05-11", }

Per-tool authorization: every Bridge tool is mapped to exactly one required scope — image/TTS/video generation tools require ai:generate, Docker tools require docker:manage, terminal execution requires terminal:execute, Git tools require git:manage, media capture requires media:capture, and read-only status tools require bridge:read. A tool call is rejected outright if it isn't in that map (unknown tool) or if the calling key's scopes don't include the required one.

Key Architecture Decisions

Connection

Outbound WebSocket only — No firewall/NAT traversal needed, works from any network

Discovery

mDNS + SSDP + config — Auto-finds Bridge on local network, manual config for remote

Authentication

Tenant-scoped API key — Each Bridge device gets scoped key, revokable

Authorization

Scope-based — Minimum privilege, per-capability access control

Transport

WebSocket over HTTPS — Bypasses most corporate firewalls

Offline mode

Cloud-only fallback — If Bridge disconnected, cloud-only operations continue

Reconnection

Exponential backoff — 5s → 10s → 20s → max 60s

Image generation

MCP tool passthrough — Stable Diffusion runs on Bridge, not cloud

WASM Plugin Host + Industrial Protocols

The Bridge desktop client (Tauri/Rust) isn't a fixed binary — it's an extensible local edge:

  • Sandboxed WASM plugin host. Third-party plugins ship as WebAssembly modules that the Bridge compiles and runs in an isolated runtime, invoked through plugin hooks. Plugins extend the local agent — new device drivers, data transforms, compute — without host-system access. Autostart-on-login keeps the Bridge and its plugins running headless.
  • Modbus — PLC / SCADA control. A native Modbus client lets the platform read and command industrial controllers and equipment on the local network — factory floors, building automation, energy systems — bridging the cloud OS to physical PLCs.

These compose with the Bridge's existing local-AI and hardware paths (image generation, TTS, native capture, local compute) so a customer's own machine becomes a secure execution edge. _(Note: OpenXR / haptics and OFX video-plugin hosting are roadmap, not shipped — the Bridge today covers USB / serial / Bluetooth / HID / camera / printer / Modbus + WASM compute.)_

Local AI + Hardware Control