Shutter Expert — Order Check (TEST)

Prototype for Ryan Abbott · Norman Woodlore / Woodlore Plus / Normandy · rules engine v…

1 Window photo

Upload a photo for preview. Photo analysis runs through the xAI Grok proxy (server-side key).

Drop a window photo here or click to choose
JPG/PNG · installer measure photos preferred
Window photo preview
Load sample:

2 Order / measure form


Quick scenarios:

4 Photo check (separate)

Clearly separated from the measurement rules engine. Vision model call is designed but not wired.

Photo AI: xAI Grok (decided)

  • Provider: xAI Grok vision via OpenAI-compatible https://api.x.ai/v1/chat/completions with image_url input (JSON mode)
  • Default model: grok-4.3 (reasoning none; image downscaled) (override with env XAI_VISION_MODEL)
  • API key: env XAI_API_KEY on the box / Worker only — never in browser JS
  • Local proxy: run python3 server.py → POST /api/vision-analyze; if the key is unset, this step shows “photo AI not connected”
  • Later: same handler as a Cloudflare Worker / Netlify function — see VISION.md