This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| timi [2026/04/26 13:14] – elevated gopro-scicam to key player in architecture and components timi | timi [2026/04/27 15:49] (current) – Update main page: top changelog, v1.5 sidecars, inline gopro timi | ||
|---|---|---|---|
| Line 3: | Line 3: | ||
| //TAMI Inventory Management Interface// | //TAMI Inventory Management Interface// | ||
| - | //" | + | //" |
| TIMI is the combined weekend-hackathon brainchild of TAMI folks building an **audio-visual inventory dataset** for the space — and eventually a **space-aware inventory tagging, logging and querying system**. It is critical infrastructure. It is also complete and utter bullshit. This is a hackerspace. | TIMI is the combined weekend-hackathon brainchild of TAMI folks building an **audio-visual inventory dataset** for the space — and eventually a **space-aware inventory tagging, logging and querying system**. It is critical infrastructure. It is also complete and utter bullshit. This is a hackerspace. | ||
| + | |||
| + | ===== Recent Changes ===== | ||
| + | |||
| + | * **2026-04-27** — Rerun-based **dataset viewer** for browsing local and remote captures; agent tmux workflow for dashboard, viewer, and GoPro services. | ||
| + | * **2026-04-27** — **gopro-scicam merged inline** from submodule to simplify builds and eliminate sync friction. | ||
| + | * **2026-04-26** — **Unified sidecar schema v1.5** across Android and GoPro: '' | ||
| + | * **2026-04-26** — **Dashboard enhancements**: | ||
| + | * **2026-04-25** — **GoPro station mode**: split-screen live preview + last capture; QR debounce (2× consecutive); | ||
| + | |||
| + | Full history: [[timi: | ||
| ===== What is TIMI? ===== | ===== What is TIMI? ===== | ||
| Line 20: | Line 30: | ||
| ===== Architecture ===== | ===== Architecture ===== | ||
| - | < | + | {{timi: |
| - | +-------------+ | + | |
| - | | | + | All capture sources broadcast **UDP multicast |
| - | | (Android) | + | |
| - | | : | + | The current focus is **capturing and collecting the dataset**. More processing stages will follow: |
| - | +-------------+ | + | |
| - | | + | * **Segmentation** — isolating objects from backgrounds |
| - | v | | + | |
| - | MediaStore (Pictures/ | + | |
| - | | | + | |
| - | +-------------+ | + | These ML workloads will likely run on the **Fedora workstation** with its **NVIDIA P40 GPU**. |
| - | | GoPro Bridge| -------------------------------+ | + | |
| - | | (Flask) | + | |
| - | | USB+WiFi | + | |
| - | +-------------+ | + | |
| - | </ | + | |
| ==== Components ==== | ==== Components ==== | ||
| Line 44: | Line 49: | ||
| * **Photo capture** with CameraX, saved to '' | * **Photo capture** with CameraX, saved to '' | ||
| * **Video recording** — toggle with '' | * **Video recording** — toggle with '' | ||
| - | * **JSON sidecars** — every capture gets a '' | + | * **JSON sidecars |
| * **QR auto-capture** — point the camera at a QR code, the app snaps automatically. Great for rapid inventory sweeps. | * **QR auto-capture** — point the camera at a QR code, the app snaps automatically. Great for rapid inventory sweeps. | ||
| * **SSE stream** — live events at ''/ | * **SSE stream** — live events at ''/ | ||
| Line 54: | Line 59: | ||
| * **Motion-based auto-capture** — monitors the live preview stream for structural change inside a masked region. Only fires when something actually stays on the table (ignores hands passing through). Adjustable motion and structural thresholds. | * **Motion-based auto-capture** — monitors the live preview stream for structural change inside a masked region. Only fires when something actually stays on the table (ignores hands passing through). Adjustable motion and structural thresholds. | ||
| * **Background sync** — on startup, pulls every photo/video from the GoPro SD card that hasn't been downloaded yet. Persists sync history so clearing local files doesn' | * **Background sync** — on startup, pulls every photo/video from the GoPro SD card that hasn't been downloaded yet. Persists sync history so clearing local files doesn' | ||
| - | * **SciCam-compatible sidecars** — writes the same '' | + | * **SciCam-compatible sidecars** — writes the same '' |
| * **Live QR detection** — scans preview frames and downloaded images; updates '' | * **Live QR detection** — scans preview frames and downloaded images; updates '' | ||
| * **Multicast beacons** — broadcasts UDP presence just like SciCam, so the Rust dashboard can discover it. | * **Multicast beacons** — broadcasts UDP presence just like SciCam, so the Rust dashboard can discover it. | ||
| - | === Dashboard === | + | === Dashboard |
| * Rust terminal UI. | * Rust terminal UI. | ||
| - | * Auto-discovers devices every 5 s via UDP beacons. | + | |
| + | * **Syncs** '' | ||
| * Hotkeys: '' | * Hotkeys: '' | ||
| - | * Mirrors '' | ||
| * Config lives in repo-root '' | * Config lives in repo-root '' | ||
| Line 100: | Line 105: | ||
| | POST | /capture | Trigger photo | | | POST | /capture | Trigger photo | | ||
| | POST | /record | Toggle video recording | | | POST | /record | Toggle video recording | | ||
| - | | POST | /settings | Set item_id, tags, lock, debug, capture_alert | | + | | POST | /settings | Set qr_item_id, tags, lock, debug, capture_alert | |
| | POST | / | | POST | / | ||
| - | | GET | /status | Current state (item_id, tags, locked, last_qr, ...) | | + | | GET | /status | Current state (qr_item_id, tags, locked, last_qr, ...) | |
| | GET | /captures | List all images/ | | GET | /captures | List all images/ | ||
| | GET | /photo/last | Download latest JPEG | | | GET | /photo/last | Download latest JPEG | | ||
| Line 127: | Line 132: | ||
| │ | │ | ||
| │ | │ | ||
| - | │ └── gopro-scicam/ | + | │ ├── gopro-scicam/ |
| ├── api_spec.yaml | ├── api_spec.yaml | ||
| ├── timi.conf | ├── timi.conf | ||