Use cases
Problems Tatolab helps with, each with an example of streams that solve it, what you'd write yourself, and what isn't built yet.
These pages start from a problem, not from a feature list. Each shows streams that solve it, with code you can run, says which parts you’d write yourself, and lists the limits that matter for that job.
| Problem | Where it comes up |
|---|---|
| An agent should see what’s happening now | Operations, support, monitoring: anywhere a person checks a screen to answer a question |
| Several programs need the same camera | Security and operations cameras, labs, studios: a detector, a recorder and a dashboard on one camera |
| One camera, many destinations | Streamers, teachers, small productions: a look applied once, then a call, OBS and a recording |
| Several sources, one record | Research labs: video, audio and instrument readings recorded together and lined up afterwards |
What they have in common
Section titled “What they have in common”- Streams share instead of copying. The stream that owns a device exposes its output; everything else reads it from streams of its own, which start, stop and change independently. A recorder, a detector or a dashboard can come and go without touching the camera.
- Your nodes can use any package. Each one runs in its own process with your project’s packages, so a model, a driver or an HTTP client is one
uv addaway, and one failing node doesn’t take the rest down. - Everything is visible.
tatolab graphshows what’s running and what’s been dropped, each stream keeps a JSON Lines log, and an agent can see the same things.
What you’ll write yourself
Section titled “What you’ll write yourself”Tatolab ships the parts with deadlines: cameras the operating system sees, microphones and speakers, windows, hardware H.264 and H.265, Opus and MP4 recording, and a virtual camera on Linux. Integrations are nodes you write with the library you already use:
- IP cameras over RTSP, and anything with a vendor SDK
- Alerts, webhooks and dashboards
- Message queues and databases
- RTMP, SRT and NDI
Write a node covers sources driven by a timer or by their own thread, which is the shape most integrations take.
Limits that apply everywhere
Section titled “Limits that apply everywhere”- Platforms. Linux on x86_64 with a Vulkan GPU, tested on NVIDIA, and Apple silicon Macs with macOS 15 or later.
- Cameras. On Linux,
CameraSourcereads uncompressed video only, so most USB 2.0 webcams run at 5 to 10 frames per second in HD; there are no exposure, focus or frame-rate settings yet. See Built-in nodes. - Failures. A Python node that crashes stays down, and shows as failed in
tatolab graph, until its stream loads again; the rest of the stream keeps running. Watch for outputs that go quiet. - Recordings. A kept stream starts its recording over each time it reloads, so record from a separate stream. See Recordings and restarts.
- Not a control system. Tatolab isn’t hard real-time, isn’t a safety system, and has no certifications.