TOTAL OVERWATCH PRODUCTIONS · FREE ALPHA

Your team already shares a map in ATAK. MeshFlow lets you share what you see on it, too. Point a GoPro, a drone app or your phone's camera at something, and it shows up as a marker on every teammate's map. Tap it to watch. It works over your own mesh with no internet, or across the world when you have a connection, and there's no media server to set up.

Android 0.1.23 on Google Play · web app in your browser · iPhone coming soon.

What is MeshFlow?

MeshFlow is live video for small teams in the field. Every phone running it can share a feed and watch everyone else’s, and every feed lands on the ATAK map where your team already works.

Any feed, on the mapYour camera, your screen, a GoPro or a drone app. Each one becomes an ATAK marker you can tap to watch.
Nothing moves until someone watchesFeeds are pulled, not pushed. A busy mesh link carries what your team is watching and nothing else.
No media server to hostEvery phone, and every MeshFlow node, already is one.
Your own private networkA network name and password. Only people on your network see your feeds. Video between phones is encrypted in transit, and your network's messages are encrypted.

Get started

  1. Install. Get MeshFlow on Google Play (Android). No install? Open the web app in Chrome or Edge.
  2. Join your team's network. Enter the same network name and password as your team. MeshFlow remembers it. Without one you're on the shared default network with everyone else in the alpha, which is fine for looking around but not for a real team.
  3. Share or watch. Share your camera or screen, or tap any feed on the Streams tab to watch it.
  4. Optional: turn on ATAK. In Settings, turn on Share to ATAK and every feed shows up on your ATAK map. See See every feed in ATAK.

On iPhone you'll join your team's private network; there's no shared default network there.
Terms · Privacy · support: info@totaloverwatchproductions.com

What you can do

Each section says where it works today: Android (Google Play), Web (the browser app) and iPhone (coming soon).

Share your camera or screen

Share your phone’s camera with one tap, or share your screen to put anything on it in front of your team: a drone controller app, a thermal viewer, a map. Screen share carries your voice, with a mute button. On the web app, you can share a camera or your screen from a desktop browser.

Android: yes · Web: yes (desktop Chrome or Edge; Android Chrome can't share its screen) · iPhone: coming

Share a GoPro

Start a GoPro livestream from MeshFlow over Bluetooth with one tap. Your phone never has to join the camera’s Wi-Fi. On a MeshFlow node, anything that can publish RTSP or RTMP works too, which covers most IP cameras and encoders.

Android: yes · Web: no · iPhone: coming

Go Live to YouTube or any streaming service

Open the Live tab and tap Go Live on any feed: your camera, your screen, a camera streaming into your phone, or a teammate’s feed. Add the destination once under Settings → Live destinations: pick YouTube, Twitch, Kick, Facebook or another preset, or Custom for any RTMP/RTMPS server, and paste the stream URL and key from that platform. Check tests the connection without going live. One stream at a time. While you’re live, a LIVE ON badge with the platform’s name shows with a Stop button, and you can see how many people are watching and restreaming your feed. When someone restreams your feed, its chat says so; you end it by stopping your own share. Who can watch depends on the stream’s visibility on that platform. Your stream key stays on your phone.

Android: yes · Web: no · iPhone: coming

Watch your team’s feeds

The Streams tab lists every feed on your network. Tap one to watch. A feed is only fetched when someone chooses to watch it, and a second viewer next to the first adds nothing on the link between them. Team chat sits beside the video.

Android: yes · Web: yes · iPhone: coming

See every feed in ATAK

Turn on Share to ATAK in Settings. Every feed MeshFlow can see becomes a marker on your ATAK map. Tap it, and ATAK’s own video player opens the feed. It works with ATAK on the same phone with no plugin and no ATAK setup: MeshFlow serves the video to ATAK on the phone, and only while ATAK is actually watching. Markers sit at the source’s location when it has a real position fix. MeshFlow never makes one up.

Android: yes · Web: no · iPhone: coming

Share ATAK positions and chat with your team

In Settings, tap Connect ATAK. One tap gives ATAK its own certificate for your network and connects it to your network’s TAK server and to the TAK bridge (MeshFlow on your phone). No account, nothing to type. It also turns on Share ATAK positions & chat with my network, so your team on that network sees your position and chat in their ATAK, and you see theirs. On the public default network, everyone on it sees them. Files, maps and missions go through the TAK server. Turn sharing off at any time with the same switch.

Prefer to set it up by hand? Turn on Share ATAK positions & chat with my network and add MeshFlow to ATAK once as a server: MeshFlow TAK bridge at 127.0.0.1, port 8088, TCP, SSL off (Settings shows the address with a Copy button).

Android: yes · Web: no · iPhone: coming

Bridge to Meshtastic (beta)

A phone running both MeshFlow and the Meshtastic app can turn on Bridge Meshtastic in Settings. ATAK positions and chat then cross between your Meshtastic (LoRa) mesh and your MeshFlow network, both ways, so a Meshtastic user with no internet shows up on your team’s ATAK maps, and your team on theirs. It’s off by default and needs Meshtastic firmware 2.7 or later (map markers need 2.8).

Android: yes (beta) · Web: no · iPhone: coming

Work with or without a node, with or without internet

On a local mesh no internet is needed, and nothing leaves the mesh. With a connection, separate teams on the same network find each other through our cloud and share feeds across the world. No node? A phone with a hotspot and a cell signal is a gateway on its own, and two phones on the same Wi-Fi already make a network. Add MeshFlow nodes for kilometres of HaLow range and a media server that sits in the field instead of in someone’s pocket.

Android: yes · Web: yes (joins over the internet) · iPhone: coming

What’s new

0.1.23

  • Go Live from the new Live tab: stream your camera, your screen or a team feed to YouTube or any RTMP/RTMPS server (Twitch, Kick, Facebook and more as presets).
  • See how many people are restreaming and watching your feed.
  • Ended feeds no longer reappear, and stopping a feed on a node takes it off everyone's list at once.
  • Two phones that open each other's feed at the same moment now connect.
  • Map labels show each feed's name, and the map no longer shows sample nodes when no node is nearby.
  • Your network password and stream keys are no longer offered to your password manager.
  • Connect ATAK in one tap works on every network: ATAK gets its own certificate and joins your network's TAK server.
  • Nodes accept control requests only from devices on your own network. Update the MeshFlow app on every phone when you update your nodes.

0.1.22

  • Screen share carries your voice, with a mute button.
  • Screen share, camera and ATAK video notifications show on Android 13 and later.
  • Smoother, more reliable video when you're connected to a node.
  • Watching a feed right after sharing your own now plays, and feeds stay up after a brief reconnect.
  • Chat's unread count is accurate again.
  • Web app: the rear camera is used by default, and switching cameras reaches your viewers.
  • Support MeshFlow from Settings.

0.1.20

  • Meshtastic bridge (beta): ATAK positions and chat cross between Meshtastic and MeshFlow.
  • Node feeds are back on the ATAK map, and markers stay fresh while ATAK is in front.
  • Walking onto or off a node's Wi-Fi is picked up without opening MeshFlow.
  • Stopping a feed takes it off everyone's list.
  • Nodes can relay video to viewers who can't reach them directly.

0.1.19

  • Share ATAK positions and chat with your team across your MeshFlow network.
  • MeshFlow remembers your network between launches.

Known issue: ATAK 4.6 may not show chat sent from ATAK 5.6. Updating ATAK fixes it.

State of the alpha

PlatformStatusHow to get it
Android● RELEASED · 0.1.23Google Play. Updates arrive through Play.
Web app● RELEASEDtotaloverwatchproductions.com/app. Nothing to install.
iPhone● COMING SOONEmail us to hear when it's available.
Mesh nodes● RELEASED · 0.1.23Optional. For OpenMANET 1.8 hardware: Build a node → (on OpenMANET 1.6, use node release 0.1.18).

Alpha means the core loop works and it's what we use in the field: share a feed, and see it on everyone's map. Some edges are still rough. Report anything you hit to info@totaloverwatchproductions.com.

The demos

Twelve short, narrated 8-bit demos, one per capability. Sound on. Each one loads only when you press play.

Prefer one page? Open the full gallery.

Try the web app

The same MeshFlow, in your browser. See and watch the feeds on your network with nothing to install:

Build your own node

Want range? Put MeshFlow on an OpenMANET HaLow radio. Flash OpenMANET on a Raspberry Pi 4 or a GL.iNet HaLowLink 2, copy in our node binary and dashboard, and enable one service. Every camera on the mesh then shows on the dashboard by name, with a media server on every node that phones can hand their feeds to. Node release 0.1.20 for ARM64 and MIPS.

🛠 Build a node: guide + downloads

Where it came from

MeshFlow started as the video layer for the OpenMANET open-source tactical mesh: B.A.T.M.A.N.-adv on HaLow radios. The mesh was already there; video was the piece nobody had solved. So MeshFlow is pull-based end to end, puts a media server on every node, speaks ATAK natively, and bridges separate teams to each other through a small cloud relay.

FAQ

Is it free?

Yes for personal, hobbyist and educational use. Businesses, agencies and other revenue-generating organisations need a commercial license: an annual flat rate per organisation, with no per-seat or per-node limits. Ask us — during the alpha the app itself has no paywall.

Does it need the internet? Does my video go through your servers?

On a local mesh, no internet is needed and nothing leaves the mesh. Our cloud only does two things: a rendezvous so islands that do have an uplink can find each other, and a relay for the case where two islands can't reach each other directly. Video goes peer to peer whenever it can. The node software has no telemetry at all and is built to run air-gapped. During the alpha the app checks in with the rendezvous whenever it has an internet path, so islands bridge with zero setup.

How much bandwidth does it use?

Only what's being watched. A feed nobody is watching costs nothing on the air. When one person watches, it crosses each hop between them and the source once; a second and third viewer next to them add nothing on that path, because the phone that already has it re-shares it. Under a bad link MeshFlow keeps resolution and drops frame rate rather than turning the picture to mush.

What do you collect?

From a node: nothing — no telemetry, no update pings, no license checks. From the app: what it takes to rendezvous when you have internet (a random peer id and which network name it's on). We don't see or store your video. Privacy · Terms.

I installed the APK from this page before. What now?

Uninstall it, then install MeshFlow from Google Play. The website build and the Play build are signed differently, so Android won't let one update the other. Uninstalling clears the app's settings, so enter your network again afterwards.

Something broke. Who do I tell?

info@totaloverwatchproductions.com. Say which platform, what you were sharing, and what the other end saw. Alpha reports are what set the order we fix things in.