sim-dashboard Overview¶
sim-dashboard is a two-part application that provides a realistic e-ink display simulator with live preview capabilities. It serves as the visual frontend for devices simulated by sim-hw.
Repository: Inklet-2026/sim-dashboard
Architecture¶
sim-dashboard consists of two components running on separate ports:
Fastify Server (port 3001)¶
A lightweight Node.js server that:
- Receives framebuffers --- Accepts 800x480 PNG images from sim-hw devices via HTTP POST
- Stores framebuffers --- Maintains the latest framebuffer for each device in memory
- WebSocket broadcast --- Pushes framebuffer updates to all connected browser clients in real time
- Device registry --- Tracks which devices have pushed frames
React Frontend (port 5173)¶
A Vite-powered React application that:
- Authenticates users --- Login via the Inklet backend to see your bound devices
- Lists devices --- Shows all devices bound to the authenticated user
- Renders e-ink display --- Displays the device framebuffer with realistic e-ink visual effects
- Live updates --- Receives framebuffer updates via WebSocket for real-time display preview
- Public device view ---
/device/{hwid}shows a single device's display without requiring login
E-ink Display Effects¶
The React frontend applies several visual effects to faithfully simulate the look and behavior of a real e-ink display:
| Effect | Description |
|---|---|
| Full refresh animation | Simulates the black-white-black flash that occurs during a full e-ink panel refresh |
| Partial refresh animation | Smoother transition for incremental display updates |
| Ghosting | Faint remnants of the previous image bleed through, mimicking real e-ink persistence |
| Paper texture | Subtle off-white background with fiber-like texture, matching real e-ink paper |
| Noise | Light pixel noise simulating the analog imperfections of physical displays |
| Dark/light theme | The simulator UI supports both dark and light themes, though the simulated display itself always uses e-ink appropriate colors |
Tip
The e-ink effects make the simulator useful for verifying how content will actually look on a physical device --- including readability, contrast, and layout at the native 800x480 resolution.
System Diagram¶
sim-hw (Python) sim-dashboard
────────────── ──────────────
MQTT command received Fastify Server (:3001)
│ │
▼ │
Render 800×480 PNG ──── HTTP POST ────▶ │
│
Store framebuffer
│
WebSocket broadcast
│
▼
React Frontend (:5173)
│
Apply e-ink effects
│
Display in browser
Features at a Glance¶
- Real-time preview --- See exactly what the e-ink display shows as commands are sent
- Multi-device support --- View multiple simulated devices simultaneously in the dashboard
- Realistic rendering --- E-ink effects help catch visual issues before deploying to hardware
- No hardware required --- Full development and testing workflow without physical devices
- Authentication integrated --- Uses the same Inklet account system as the production portal
- Public device URLs --- Share a direct link to a device's display for demos or monitoring
Next Steps¶
- Getting Started --- Install and run sim-dashboard locally
- Device Binding --- Bind simulated devices to your account