Repository navigation
Add a robotics page and production users #175
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
05692b3
7cdf609
05ad323
727b50f
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,68 @@ | ||
| --- | ||
| interface Props { | ||
| // Grid columns, since the reading column is too narrow for four across. | ||
| class?: string; | ||
| // Only show users of this use case. | ||
| useCase?: string; | ||
| } | ||
|
|
||
| const { class: columns = "sm:grid-cols-2", useCase } = Astro.props; | ||
|
|
||
| // Companies running MoQ in production. A null `name` renders as a redaction bar | ||
| // for users who can't be named yet; `redacted` sets the bar's width. | ||
| const users = [ | ||
| { | ||
| name: "Meta", | ||
| useCase: "contribution", | ||
| what: "Live ingest", | ||
| body: 'Spoke about "Shipping MoQ for Instagram and Facebook Live Ingest" at DEMOQED. Uses its own implementation of the standard, not ours.', | ||
| links: [{ text: "DEMOQED program", href: "https://moqalliance.org/demoqed-2026/" }], | ||
| }, | ||
| { | ||
| name: "Saronic", | ||
| useCase: "robotics", | ||
| what: "Autonomous boats", | ||
| body: "MoQ is the primary video system across its vessels. One uplink per boat, hundreds of viewers, and nothing sent when nobody is watching.", | ||
| links: [ | ||
| { text: "Their write-up", href: "https://medium.com/saronic-technologies/the-ground-moves-building-on-early-open-source-without-getting-burned-ba2af78beb78" }, | ||
| { text: "Corsair rescues two Army pilots", href: "https://www.navalnews.com/naval-news/2026/06/saronic-usv-rescues-two-u-s-army-pilots-downed-by-iran/" }, | ||
| ], | ||
| }, | ||
| { | ||
| name: "Evolve Robotics", | ||
| useCase: "robotics", | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win 🔎 Supported by static analysis🏁 Script executed: nl -ba src/components/users.astro | sed -n '8,40p'
nl -ba src/pages/robotics.mdx | sed -n '20,34p'Repository: moq-dev/moq.dev Length of output: 2867 🌐 Web query:
💡 Result: 🏁 Script executed: set -o pipefail
printf '%s\n' '--- users component ---'
nl -ba src/components/users.astro | sed -n '1,180p'
printf '%s\n' '--- relevant PR diff ---'
git diff --no-ext-diff --unified=30 9bc0bea30aa563a224b66bb750751914bf910f50 727b50fc9e092475e3c7efe9960e62e339c728ce -- src/components/users.astro src/pages/robotics.mdx src/pages/index.astroRepository: moq-dev/moq.dev Length of output: 18192 Do not list Evolve Robotics as in production. The robotics filter places Evolve Robotics under the page’s “In Production” heading, but its record only states that it spoke at DEMOQED. Remove the record until a production MoQ deployment is documented, or place it in a separate non-production list. Suggested fix- {
- name: "Evolve Robotics",
- useCase: "robotics",
- what: "Teleoperation",
- body: 'Spoke about "MoQ beyond media" at DEMOQED, the first MoQ conference.',
- links: [{ text: "evolverobotics.com", href: "https://evolverobotics.com/" }],
- },🤖 Prompt for AI Agents |
||
| what: "Teleoperation", | ||
| body: 'Spoke about "MoQ beyond media" at DEMOQED, the first MoQ conference.', | ||
| links: [{ text: "evolverobotics.com", href: "https://evolverobotics.com/" }], | ||
| }, | ||
| { name: null, useCase: "robotics", redacted: "w-32", what: "Drones", body: "That's all we're allowed to say.", links: [] }, | ||
| { name: null, useCase: "robotics", redacted: "w-24", what: "Drones", body: "Also drones. Also can't say.", links: [] }, | ||
| ]; | ||
| --- | ||
|
|
||
| <div class={`not-prose grid gap-5 ${columns}`}> | ||
| { | ||
| users | ||
| .filter((user) => !useCase || user.useCase === useCase) | ||
| .map((user) => ( | ||
| <div class="card flex flex-col gap-2 p-5"> | ||
| <span class="label">{user.what}</span> | ||
| {user.name ? ( | ||
| <h3 class="text-[1.2rem] font-semibold text-white">{user.name}</h3> | ||
| ) : ( | ||
| <h3 class={`my-0.5 h-6 ${user.redacted} -rotate-1 bg-black`} aria-label="Redacted" /> | ||
| )} | ||
| <p class="text-[0.9rem] leading-relaxed text-slate-400">{user.body}</p> | ||
| {user.links.length > 0 && ( | ||
| <div class="mt-auto flex flex-col gap-1 pt-2 text-[0.9rem]"> | ||
| {user.links.map((link) => ( | ||
| <a href={link.href} class="green-link"> | ||
| {link.text} | ||
| </a> | ||
| ))} | ||
| </div> | ||
| )} | ||
| </div> | ||
| )) | ||
| } | ||
| </div> | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,34 @@ | ||
| --- | ||
| layout: "@/layouts/global.astro" | ||
| title: Robotics | ||
| description: MoQ streams video, telemetry, and control for robots on terrible networks. | ||
| --- | ||
|
|
||
| import Users from "@/components/users.astro"; | ||
|
|
||
| # Robotics | ||
|
|
||
| Robots have a lot of cameras. | ||
| They also tend to be somewhere with a terrible network: cellular, satellite, mesh radio, or nothing at all. | ||
| And everybody wants to watch: the operator, the fleet dashboard, the guy in the back with an iPad. | ||
|
|
||
| Existing protocols make the robot pay for every viewer, and for every frame nobody is watching. | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win Qualify the viewer-bandwidth claim. WebRTC with an SFU can forward one robot uplink to multiple viewers. The current sentence incorrectly describes that cost as a property of all existing protocols. Specify direct viewer-to-robot connections instead. (docs.livekit.io) 🤖 Prompt for AI Agents |
||
|
|
||
| ## Why MoQ | ||
|
|
||
| - **Pull, not push.** A robot only sends the tracks somebody subscribed to. Nobody watching camera 7? Camera 7 doesn't touch the uplink. | ||
| - **One uplink, any number of viewers.** The robot publishes once to a relay, and the relay fans out. Viewer #100 costs the robot nothing. | ||
| - **Latency over quality.** When the link degrades, MoQ skips old frames instead of buffering them. An operator wants what's happening *now*. | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
When a subscriber permits a backlog, MoQ buffers reliable groups and may later backfill them; skipping is controlled by the subscription's maximum-age budget rather than happening automatically whenever the link degrades. This sentence contradicts the detailed behavior documented in Useful? React with 👍 / 👎. |
||
| - **More than video.** Telemetry, control, and logs are just more tracks on the same connection and the same relays. | ||
| - **Watch in a browser.** Operators open a tab. No plugins, no WebRTC signaling servers, no VPN to the robot. | ||
|
|
||
| I wrote about the pull model in more detail in [On a Boat](/blog/on-a-boat). | ||
|
|
||
| ## In Production | ||
|
|
||
| <Users useCase="robotics" /> | ||
|
|
||
| ## Yours? | ||
|
|
||
| Running MoQ on something that moves? [Tell us](mailto:me@kixel.me), we'd love to brag about it. | ||
| Or don't, and we'll add another black bar. | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🔎 Supported by static analysis
🏁 Script executed:
sed -n '9,22p' src/components/users.astroRepository: moq-dev/moq.dev
Length of output: 888
🌐 Web query:
Naval News "Corsair rescues two Army pilots" MoQ💡 Result:
🌐 Web query:
"Saronic USV Rescues Two U.S. Army Pilots Downed by Iran" MoQ video system💡 Result:
🏁 Script executed:
Repository: moq-dev/moq.dev
Length of output: 286
Qualify the Corsair rescue link.
The Naval News article reports the rescue but does not identify MoQ as the video system. Placing the link beside the claim that MoQ is used across Saronic’s vessels can imply that MoQ was used during the rescue. Qualify the link to prevent that unsupported attribution.
Suggested fix
📝 Committable suggestion
🤖 Prompt for AI Agents