Depth across fixtures, tools and the floor
The site states that a stereo pair at human-eye spacing makes depth recoverable from every frame pair, so a toilet, a urinal, a sink, a sprayer and a mop sit in one frame with the hands that hold them.
Now recruiting capture teams worldwide. Get paid to record first-person video of real work.
Apply to captureTask family
Why stereo and MCAP here
The site states that a stereo pair at human-eye spacing makes depth recoverable from every frame pair, so a toilet, a urinal, a sink, a sprayer and a mop sit in one frame with the hands that hold them.
3D hand pose carries a per-joint visibility flag, so a finger hidden behind a fixture or a sprayer is flagged as hidden rather than silently guessed, and contact events mark when a hand takes hold of an item.
The catalog rows chain spraying disinfectant, scrubbing, mopping and restocking. Streams are hardware-triggered onto one clock with a 2.0 ms cross-stream ceiling, and action segments carry start, end, verb and noun as the skill spec defines them.
MCAP stores multiple channels of timestamped, pre-serialized data, so a stereo pair, hand pose and IMU can share one file on one log-time axis. Which streams go in the file is set in the skill spec.
Definition
It is first-person video of a person cleaning and disinfecting a restroom: spraying disinfectant on fixtures, scrubbing toilets, urinals and sinks, wiping surfaces, mopping the restroom floor and restocking paper and soap. It is recorded from their own point of view with two calibrated cameras, with hand pose and sensor streams alongside. The task is the one the site’s catalog lists in four rows. Stereo describes the capture, and MCAP describes the container. They are separate choices.
The site does not state that stereo is already running on these rows. The catalog lists a head-mounted phone or a multiview rig as the capture setup, and a stereo pair is a capture choice agreed in the skill spec and confirmed on a Spec Pilot. The data is human capture by paid, consented contributors, not robot or teleoperation data. It describes task video only and makes no hygiene, sanitation, disinfection-result, chemical, safety or certification claim. Firsthand is not affiliated with Foxglove or the MCAP maintainers.
Catalog rows
Four, all in the Commercial Cleaning & Janitorial environment of the Facilities & Cleaning sector, and all rated Easy. Two are listed as Active collection: "Clean and disinfect restrooms using disinfectant sprayers and mops" ("Spray disinfectant on fixtures, scrub toilets and sinks and mop the restroom floor.") and "Restroom cleaning" ("Scrub toilets, urinals and sinks, wipe surfaces and restock paper and soap."). Two are listed as Ready to deploy: "Restroom Restock & Disinfection" ("Refill dispensers and disinfect all restroom fixtures and touch points.") and "Event Restroom Sanitation" ("Clean and disinfect event restrooms between sessions and restock paper and soap.").
All four list a head-mounted phone or a multiview rig as the capture setup. The catalog lists the environment examples as an office building, a shopping mall, an airport and an industrial facility, and does not say which building a row was captured in. The site says nothing further about what Active collection or Ready to deploy means in volume, hours or delivered stereo footage, so this page claims none. It names only the tools and items that appear in the rows: disinfectant sprayers, mops, fixtures, toilets, urinals, sinks, surfaces, dispensers, touch points, paper and soap. The first table below reproduces the four rows as the catalog states them.
Difference
The egocentric bathroom cleaning page covers hotel guest bathrooms and commercial restrooms as first-person capture. The egocentric commercial janitorial page covers the whole Commercial Cleaning & Janitorial environment, which holds 15 rows, with the restroom rows as four of them. The stereo floor mopping page gives stereo and MCAP treatment to nine floor-care rows, and counts one restroom row for its mopping step.
This page is the stereo and MCAP treatment of the four restroom rows alone, with their own stream map and failure modes. The comparison table below sets the pages side by side.
Why stereo
Restroom work is about where a tool or a hand meets a fixture: which fixture has been sprayed, which has been scrubbed, whether a dispenser has been refilled. A stereo pair recovers depth from the calibrated frame pair rather than from a standalone depth sensor, so the fixture, the tool and the hands share a frame. The site gives no depth accuracy figure for these rows and no cleanliness, coverage or task-completion label, so what a buyer does with that depth is their pipeline’s question.
The site also states that depth degrades on wet and reflective surfaces and handles that with per-frame confidence maps shipped so a buyer can mask rather than guess. How depth behaves on the fixtures, the floor and any mirror or glass in a restroom frame is Not stated, and a spec should check it on a Spec Pilot. Capture at your own facility is listed as not offered.
Hand pose
The site states 3D hand pose of 21 joints per hand with a per-joint visibility flag, and contact and grasp events that mark when fingers meet a tool or an item. In restroom cleaning that is the hand on a sprayer, the two-handed hold on a mop, the scrubbing hand at a fixture and the hand that refills a dispenser or restocks paper and soap.
The site does not say whether a sprayer, a mop, a fixture or a dispenser counts as the object for contact events, so settle it in the spec. Wrist cameras give a closer view of the hands, and a multiview rig adds synchronized third-person angles when the spec asks for them.
Capture setup
The site describes two stereo setups and does not say which one a restroom order uses. The hard-environments stack is a global-shutter 4K/60 head camera with a 120° lens, two 1080p/60 wrist cameras, a depth sensor at 848×480 and 30 fps, and 200 Hz 6-DoF IMUs. The off-the-shelf stereo head rig, dataset 06, is dual fisheye cameras at 1080p per eye, a 62 mm baseline, per-unit calibration, a 9-axis IMU and hand-tracking output.
Which rig, resolution and streams a restroom order uses is Not stated on the site, and the third table below sets what is stated beside what is not. Intrinsics and extrinsics are re-solved at the start and end of every session, and streams are hardware-triggered onto one clock with a 2.0 ms cross-stream ceiling. The site’s bathroom page describes bathroom cleaning as a chain of small two-handed steps in tight spaces. Stall size, room layout and camera clearance are Not stated, and the site does not describe how a recording handles spray or droplets, so any requirement is settled in the spec.
MCAP
MCAP is an open source container file format for multimodal log data, supporting multiple channels of timestamped pre-serialized data. It is serialization-agnostic, so messages can be Protobuf, DDS (CDR), ROS, JSON and more. Its design is row-oriented and append-only, it stores schemas alongside the data, and it offers an optional index plus optional LZ4 or Zstandard chunk compression.
Reader and writer libraries exist for C++, Go, Python, Rust, Swift and TypeScript, and the mcap CLI can inspect, merge and split files. The foxglove/mcap repository is MIT-licensed; that is the MCAP project’s licence, not the licence of a Firsthand delivery. The MCAP hub page and the glossary entry cover the format in full.
Streams
Firsthand offers MCAP delivery, and dataset 06 is stated as shipping as MCAP. For restroom work the site states hand pose, a stereo-derived depth stream with confidence maps, IMU, contact events, action segments and per-frame instance masks elsewhere. What it does not state is which of those are channels in an MCAP file, how they are named, what encoding they use or at what rate.
No topic name, message schema or rate is stated on this page, and none should be assumed. Name the streams that matter in the skill spec and confirm them on a Spec Pilot batch. The fourth table below sets each stream beside what the site states about it.
Failure modes
Reflective and wet surfaces are the first risk. The site states that depth degrades on wet and reflective surfaces, with per-frame confidence maps to mask low-confidence regions, and an episode is rejected when more than 35 percent of depth pixels in the manipulation region are invalid. How a stereo pair behaves on restroom fixtures, a freshly mopped floor or a mirror in frame is Not stated, and this page makes no claim about it.
Occlusion and blur are the second. A fixture, a sprayer or a mop handle can hide the fingers that hold a tool. The visibility flag on each joint is the answer the site gives, contact events mark when a hand takes hold of an item, and a spec can ask for wrist views or a second angle so a grip the head camera loses is still recorded. The head camera is global-shutter, which avoids rolling-shutter skew, and the site notes that reach and grasp frames are where blur and occlusion show up.
Sequence is the third. The rows chain spraying, scrubbing, wiping, mopping and restocking, so a spec naming each step and the fixture it applies to gives a sequence that can be sliced by step, while a spec saying "clean the restroom" gives one long action segment. The rows do not say what one episode covers, so the spec decides. Disinfectant names, dwell times, hygiene or infection-control certifications, facility or customer names and throughput are Not stated and are not claimed on this page.
Calibration is the fourth, because stereo depth is only as good as the rectification behind it: calibration is measured at the start and end of every session under a 0.28 px RMS gate. An episode is also rejected when the manipulated object is out of frame for more than 15 percent of it or when an undocumented bystander appears, and a reject log ships with every batch.
Privacy
For every delivered episode the site states that faces, plates and screens are blurred irreversibly, and that footage that cannot be de-identified is discarded. The anonymization record ships with the data, and an undocumented bystander is a stated reject criterion.
The site does not state a restroom-specific privacy rule, a rule for who may be in a restroom while it is recorded, or how that differs between office, mall, airport, industrial and event settings, so this page makes no such claim. Settle it in the spec.
Scale
The October 2026 off-the-shelf catalog lists ~324,800 hours across 18 datasets, of which stereo is ~64,800 hours across 9 datasets. The site lists no off-the-shelf restroom cleaning or disinfection dataset, so stereo restroom cleaning in MCAP is custom collection: custom collection at scale through a network of thousands of capture providers, for a consistent, recurring data flow to labs. The off-the-shelf stereo and hand-tracking video page shows what the rig delivers, and the custom order applies it to your task.
Where coverage is deep, the median time from signed spec to first validated batch is a median of 48 hours; where it is thin, turnaround runs three to four weeks. Two of the four rows are Active collection and two are Ready to deploy, and the site does not say which speed applies to a stereo restroom order, so the timeline is quoted against your spec. Collections are billed per validated hour, and rejected episodes and recaptures are never billed.
Ordering
Describe the steps and where each starts and ends: spraying disinfectant on fixtures, scrubbing toilets, urinals and sinks, wiping surfaces, mopping the floor, refilling dispensers and restocking paper and soap. Name the tools you expect to see, whether an episode covers one fixture or a whole restroom, what counts as a reject and the variation your pipeline is missing. Then name the streams you want in the file, the topic naming and message encoding your reader expects, whether calibration ships inside the file or beside it, and whether MCAP is the only delivery or sits beside RLDS, LeRobot or WebDataset.
Most programs begin with a Spec Pilot, a small first batch that proves the spec and accept criteria on real footage before you scale. The fifth table below shows what each spec element decides.
At a glance
Every collection runs through the same seven-stage end-to-end custom collection pipeline. End-to-end custom data collection is a managed service that takes an AI data need from problem to owned dataset in a single accountable pipeline.
Catalog rows
| Task (as listed) | Description (as listed) | Environment | Skill | Capture setup | Status |
|---|---|---|---|---|---|
| Clean and disinfect restrooms using disinfectant sprayers and mops | Spray disinfectant on fixtures, scrub toilets and sinks and mop the restroom floor. | Commercial Cleaning & Janitorial | Easy | Phone (head-mounted) / multiview rig | Active collection |
| Restroom cleaning | Scrub toilets, urinals and sinks, wipe surfaces and restock paper and soap. | Commercial Cleaning & Janitorial | Easy | Phone (head-mounted) / multiview rig | Active collection |
| Restroom Restock & Disinfection | Refill dispensers and disinfect all restroom fixtures and touch points. | Commercial Cleaning & Janitorial | Easy | Phone (head-mounted) / multiview rig | Ready to deploy |
| Event Restroom Sanitation | Clean and disinfect event restrooms between sessions and restock paper and soap. | Commercial Cleaning & Janitorial | Easy | Phone (head-mounted) / multiview rig | Ready to deploy |
Compared pages
| Page | What it covers | Treatment of restroom cleaning and disinfection |
|---|---|---|
| This page: stereo restroom cleaning and disinfection data | The four restroom rows in Commercial Cleaning & Janitorial | Stereo pair and MCAP delivery, stream map and failure modes for these rows only |
| Egocentric bathroom cleaning video data | Hotel guest bathrooms and commercial restrooms, as the catalog lists them | First-person capture of bathroom and restroom cleaning; not a stereo and MCAP treatment |
| Egocentric commercial janitorial data | The Commercial Cleaning & Janitorial environment, 15 rows | Restroom rows are four of the 15; first-person capture across all of them |
| Stereo floor mopping data | Nine mopping, floor-care and janitorial rows | One restroom row counted for its mopping step; the other restroom rows are not covered |
| Egocentric stereo data in MCAP | The stereo and MCAP hub across tasks | General stereo and MCAP treatment; not specific to restroom cleaning |
Stated vs not stated
| Item | What the site states | For a restroom order |
|---|---|---|
| Catalog capture setup | Phone (head-mounted) / multiview rig on all four rows | A stereo pair is a spec choice; not stated on the rows |
| Stereo head rig (dataset 06) | Dual fisheye, 1080p per eye, 62 mm baseline, per-unit calibration, 9-axis IMU, hand-tracking output; shipped as MCAP | Whether a restroom order uses it: Not stated |
| Hard-environments stack | 4K/60 head camera, 120° lens; two 1080p/60 wrist cameras; depth 848×480 at 30 fps; 200 Hz 6-DoF IMU | Whether a restroom order uses it: Not stated |
| Objects, hands and masks | Per-frame instance masks stored at 848×480; per-joint visibility flag on hand pose; contact events | Stated; whether a sprayer, a mop, a fixture or a dispenser counts as the object is Not stated |
| Depth on wet and reflective surfaces | Depth degrades on wet and reflective surfaces; per-frame confidence maps ship so a buyer can mask | Behavior on restroom fixtures, a mopped floor or a mirror in frame: Not stated |
| Calibration | Measured every session and shipped with the episode; 0.28 px RMS reprojection gate | Stated |
| Synchronization | Hardware-triggered onto one clock; 2.0 ms cross-stream ceiling | Stated |
| Row status | Two rows Active collection, two rows Ready to deploy | No volume, hours or delivered stereo footage is claimed on this page |
| Stall size, room layout, camera clearance, spray or droplet handling | Not stated | Agreed in the skill spec, or not claimed on this page |
| Disinfectant names, dwell times, hygiene or infection-control certifications | Not stated beyond the words "disinfectant", "disinfect" and "sanitation" in the rows | Not claimed on this page |
| Facility or customer names; throughput | Not stated | Not claimed on this page |
| MCAP topics, schemas, rates | Not stated | Agreed in the skill spec |
Stream map
| Stream or item | What the site states | In an MCAP delivery, as the site states it |
|---|---|---|
| Stereo pair | Dual fisheye, 1080p per eye, 62 mm baseline (dataset 06) | Dataset 06 is stated as shipped as MCAP; channel layout not stated |
| Depth with confidence maps | Recovered from the calibrated stereo pair; confidence map masks low-confidence regions | Not stated |
| Hand pose | 21 joints per hand with a per-joint visibility flag | Channel layout and joint order not stated |
| IMU | 9-axis (dataset 06); 6-DoF at 200 Hz (hard-environments stack) | Channel layout and rate not stated |
| Contact events, action segments, instance masks | Listed in the site’s episode schema; masks stored at 848×480 | Not stated |
| Task instruction | One per episode | Not stated |
| Calibration | Measured every session and shipped with the episode | Placement in the file not stated |
| Topic names, schemas, encoding, rates | Not stated | Agreed in the skill spec |
Skill spec
| Spec element | What it decides | Where it shows up |
|---|---|---|
| Steps and order | What one step is: spray fixtures, scrub toilets, urinals and sinks, wipe surfaces, mop the floor, refill dispensers, restock paper and soap | Episode boundaries and action segments; set per program |
| Episode scope | One fixture or a whole restroom | Set per program; the site does not state an episode length for these rows |
| Rig and streams | Stereo pair, wrist views, a second angle, hand pose, IMU and any others | The channels you can read; confirm on the Spec Pilot |
| Object definition | Whether a sprayer, a mop, a fixture or a dispenser counts as the object | Contact events; set per program |
| Reflective-surface handling | Whether confidence maps and depth-quality flags ship with each episode | Delivered streams; set per program |
| MCAP topics and encoding | What your reader expects | Set per program |
| Calibration delivery | Inside the file or beside it | Set per program |
| Delivery format | How the data is packaged | MCAP alone, or beside RLDS, LeRobot, WebDataset, HDF5 or zarr |
| Accept criteria | What passes QA, including what counts as a reject | Reject log per batch |
| Privacy | How people and screens in frame are protected | Faces, plates and screens blurred at ingest |
| License | Who owns the dataset | Perpetual, irrevocable, buyer-owned, non-exclusive by default |
Example footage
One real clip already published on this site, shown as a format and rig example: a head-mounted stereo capture with hands in frame. It does not show restroom cleaning or disinfection work.
No restroom cleaning or disinfection clip is published on the site, so this is labelled as a format and rig example. Request a sample to see delivered files. See stereo sample page, stereo + wrist-cam example videos, request an egocentric data sample.
FAQ
Sources
Tell us the steps and where each starts and ends, the tools you expect to see, whether an episode covers one fixture or a whole restroom, the streams you want in the file and whether MCAP sits alone or beside a training format. We will quote reach, timeline and price against a written spec.