Bench beta
How Version Diff works
Load two builds (A = older, B = newer). See exactly what changed: signals added/removed/renamed, type changes (D↔A↔S), module counts, and parameter changes (wiring unchanged but a setting edited — the silent “lost programming” case). Runs in your browser.

A — Baseline (older build)

Drop the older .smw / .zip

or click to browse

B — Current (newer build)

Drop the newer .smw / .zip

or click to browse

Load both files to compare.
How the Audit works
Drop a program (.zip / .smw / .smft / .dip) for a full as-built: devices + IP-IDs + physical ports, serial/IR/relay, touchpanels, signals, custom modules. Click anything underlined or a row with › to drill in. The amber bar flags what’s worth a look. Lighting: to read a D3 Pro system, zip the D3 project folder (the one containing the data and Documentation folders) and drop it — not a .d3a archive. Whole-job backup? If the zip holds several processors or D3 projects, it audits one and tells you up top what else is inside (so nothing gets mixed). Nothing is uploaded.

Drop the program .zip — or a .smw / .umc / .smft / .dip

full audit · runs in your browser

Devices, IPs and structure — without opening Crestron software.

Brand the As-Built reports & punchlists with your company (instead of Kaizen Logic). Stored in this browser only; the small “Generated by Bench” credit stays.

How the Log Analyzer works
Drop a processor error log or Info-Tool / PLOG .zip. Triages recurring errors by rate, socket drops, logic-solve timeouts, CPU load, login surges. Tip: load the program in Audit too — the log then names the dropping devices and ties timeouts to feedback loops.

Drop a processor error log or Info-Tool dump

.err / .log / .txt / .zip · or click to browse

How Triage works
Paste messy job intake (emails, texts, punch list). AI turns it into your punch list — your words, your order — grounded against the program facts (Audit) and the runtime evidence (Log Analyzer) whichever you’ve loaded. Reorder, edit, add, delete, check off, export. Opt-in, your key, off by default — the one feature that sends data off your machine. Output is an AI draft — verify on site.
  1. Drop the job backup .zip in Audit — pins issues to exact devices / IP-IDs.
  2. Drop an Info-Tool / console dump in Log Analyzer — adds what’s actually failing + which build is live.
  3. Paste the customer’s complaints below — get an editable punch list in their order, grounded.

⚠ This tab sends your pasted text + the loaded program’s facts to the provider you pick. Everything else in Bench stays on your machine. Use local Ollama / LM Studio for sensitive jobs.

Advanced — Base URL (usually leave as-is)

Your API key is sent to this host with every request. Only change it for a provider or proxy you trust.

paste and/or attach — both go in together (text files)
Turn on AI settings to start.

What this is

Drop a Crestron program, a whole project archive, or a processor log — see the entire system down to the exact device, IP-ID, signal, keypad button and dim level, without opening Crestron software. Read-only; nothing leaves your machine.

Version Diff — two .smw / .zip
What changed between two builds: signals added / removed / renamed, type changes (D↔A↔S), module instance counts, and parameter changes on unchanged wiring (the silent “lost programming” edits). Drop two archives to compare a whole project. The one thing Git can’t do for an .smw.
Audit — program .zip / .smw / .smft / .dip
The whole as-built at a glance: every device + IP-ID + the port it lands on, the full IP-ID table, third-party IP gear, serial / IR / relay, touchpanels, signals, custom modules, and a checks pass (loops, contention, unconnected). Search everything up top; export any table.
Whole-system map — drop the whole job folder
Drop a multi-processor backup and Bench parses every processor + D3 project on its own (never mixing them), then shows the system: totals, each processor, and the cross-processor EISC links — how the programs actually talk to each other (bridges matched by shared EISC IP-ID; a loopback 127.x IP means the two programs live on the same box, a real IP means separate boxes). A view no Crestron tool gives you. Click any processor for its full audit.
Lighting (D3 Pro) — the D3 project folder
Zip the D3 project folder (the one containing data + Documentation) and drop it — not a .d3a. Every load → its module / output / feed / enclosure; every room and scene; and the big one: each keypad button → what it recalls → the loads at their exact levels, plus the engraved label. Answer “what does this button do?” on the phone, no D3.
Log Analyzer — .err / Info-Tool dump / .zip
Leads with a triage summary, then recurring errors by rate (a boot burst reads differently from a steady hum), solve-timeout vs restart correlation, processor load as logged, and socket drops. Load the program in Audit too and the log cross-references it — naming the dropping devices.
Triage — opt-in AI, your key
Paste messy job intake (and/or drop files); AI turns it into an editable punch list in the reporter’s own words and order, grounding each line against this program’s facts + any loaded log. Reorder / edit / add / delete / check off / export. Off by default, your key (Anthropic / OpenAI / local Ollama / LM Studio) — the one feature that sends data off your machine. Output is an AI draft — verify on site.

How to read a result

Everything is read straight from the files — no guessing. Anything inferred (a rename, a likely cause) is labeled. Static analysis sees structure and what the box wrote down, not live runtime values or the inside of compiled .umc/.clz modules. Open the real software only to change something or run a live test — never just to look.