# A Feat Project OPTHA GMP-PS-2022-A Note: Preliminary pass from ~/Downloads/optha.pdf (the 2022 two-page study). This looks like the Soofa image platform from the CV (50%+ per-device cost cut, vendor artifacting, FlexBox/Grid). Confirm before naming Soofa on a slide. --- ## The Statement A wholesale replacement of a 3rd-party vendor's web-based e-ink rasterization pipeline Visualized with Phoenix LiveView --- ## The Motive - The vendor platform was effectively deprecated <!-- .element: class="fragment" --> - Web support on par with 2012 Safari <!-- .element: class="fragment" --> - Visual corruption in the renders <!-- .element: class="fragment" --> - No history, only a "live" view <!-- .element: class="fragment" --> - Per-device costs, for that level of support <!-- .element: class="fragment" --> --- ## The Requirements - Long-term platform support <!-- .element: class="fragment" --> - Modern layout: Grid & Flexbox <!-- .element: class="fragment" --> - Historical playback of rasters <!-- .element: class="fragment" --> - Lower per-device cost <!-- .element: class="fragment" --> - Less load on the vendor, to negotiate rates down <!-- .element: class="fragment" --> --- ## The Implementation - A containerized browser fleet, driven by RabbitMQ <!-- .element: class="fragment" --> - Queued via API by the existing systems <!-- .element: class="fragment" --> - Post-processing (8bGr) and quantization for storage <!-- .element: class="fragment" --> - A GenServer per field device <!-- .element: class="fragment" --> - LiveView for the fleet and each device's history <!-- .element: class="fragment" --> -- ## The Result # 50% lower per-device cost --- ## Architecture  -- ## Render - The existing app asks for new imagery <!-- .element: class="fragment" --> - Queue API & timers feed one render queue <!-- .element: class="fragment" --> - Per-resolution renderers, one per device generation <!-- .element: class="fragment" --> -- ## Track - One GenServer per device <!-- .element: class="fragment" --> - The source of truth for device status <!-- .element: class="fragment" --> - Published over Phoenix PubSub <!-- .element: class="fragment" --> -- ## Keep - Rasters quantized for long-term storage <!-- .element: class="fragment" --> - Image histograms along the way <!-- .element: class="fragment" --> - ~96% smaller on average <!-- .element: class="fragment" --> --- ## Fleet Visualizer  -- ## Fleet Visualizer - Real-time, every device at once <!-- .element: class="fragment" --> - Sort by newest raster or name <!-- .element: class="fragment" --> - Filter by label or region <!-- .element: class="fragment" --> - Border colour shows raster age <!-- .element: class="fragment" --> - Pause to stop the live updates <!-- .element: class="fragment" --> --- ## History Viewer  -- ## History Viewer - Watch one device live, or pause <!-- .element: class="fragment" --> - Page back in time, indefinitely <!-- .element: class="fragment" --> - Keyboard shortcuts, deep links to a moment <!-- .element: class="fragment" --> - The device's sync state, for field issues <!-- .element: class="fragment" --> - Fit-to-screen or 1:1 <!-- .element: class="fragment" --> --- ## The Study <div class="cols">   </div> --- # fin