# signal:// ASCII > Convert images and video into ASCII / ANSI art. The browser studio streams > video and webcam in real time; the HTTP API renders single images for agents > and automations. Version 1.0.0. ## What it does - Live video-to-ASCII studio (runs entirely client-side in the browser). - Server API to convert any image to text, ANSI (24-bit color), HTML, JSON, or SVG. - MCP server so agents can render ASCII as a tool call. ## Math under the hood - Linear-light perceptual luminance (sRGB -> linear -> Rec.709 -> re-encode). - High-quality pyramid downscaling for clean, alias-free source sampling. - Unsharp-mask detail enhancement that restores fine texture lost when the frame is shrunk to the character grid. - Floyd-Steinberg error-diffusion dithering for gradient fidelity. - Adaptive recursive Bayesian temporal filter (Kalman-style gain) that denoises static regions while staying crisp on motion — the key to a stable stream. ## Endpoints - GET https://platphorm-v2a-57qwg7h22-platphormnews.vercel.app/api/health — liveness + capabilities - POST https://platphorm-v2a-57qwg7h22-platphormnews.vercel.app/api/v1/render — image -> ascii (multipart image, or JSON { imageUrl | imageBase64 }) - POST https://platphorm-v2a-57qwg7h22-platphormnews.vercel.app/api/mcp — Model Context Protocol (JSON-RPC 2.0), tool: render_ascii - GET https://platphorm-v2a-57qwg7h22-platphormnews.vercel.app/api/openapi.json — OpenAPI 3.1 spec ## Render parameters - columns (integer 8–400, default 120): Output width in characters. - charset (enum, default detailed): One of: standard, detailed, blocks, binary, dots, minimal. - format (enum, default text): text | ansi | html | json | svg. - color (boolean, default false): Per-cell 24-bit color (ignored by plain text). - invert (boolean, default false): Invert luminance mapping. - contrast (float 0.2–4, default 1.15): Tonal contrast multiplier. - brightness (float -150–150, default 0): Luminance offset. - saturation (float 0–4, default 1.4): Color-mode saturation boost. - gamma (float 0.2–3, default 1): Perceptual midtone response. - edges (boolean, default false): Sobel edge-detection line-art mode. - edgeStrength (float 0.1–5, default 1.8): Edge magnitude multiplier. - dither (boolean, default false): Floyd–Steinberg error diffusion. - sharpen (float 0–1, default 0.35): Unsharp-mask detail enhancement. - autoLevels (float 0–1, default 0.9): Automatic percentile histogram stretch. - structure (float 0–1, default 0.55): Contour-aware directional glyph substitution ( - / | \ ). - monoColor (hex, default #e5e5e5): Color for mono/ansi/svg/html output. ## Quick start curl -F "image=@photo.jpg" "https://platphorm-v2a-57qwg7h22-platphormnews.vercel.app/api/v1/render?columns=120&format=ansi&color=true" curl -X POST https://platphorm-v2a-57qwg7h22-platphormnews.vercel.app/api/v1/render \ -H "Content-Type: application/json" \ -d '{"imageUrl":"https://example.com/cat.jpg","columns":160,"format":"html","color":true}' ## MCP POST https://platphorm-v2a-57qwg7h22-platphormnews.vercel.app/api/mcp with a JSON-RPC body: {"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"render_ascii","arguments":{"imageUrl":"https://example.com/cat.jpg","columns":100,"color":true}}}