Custom collection · End-to-end as a service

Custom data collection as a service, end-to-end.

You send the problem. We run the whole collection — spec, contributors, hardware, capture, annotation, anonymization, QA — and hand back a dataset you own. One team, one contract, no vendors to stitch together.
Reach
150+ countries
Stages owned
7 of 7
Your work
Approve spec + pilot
License
Buyer-owned
A contributor wearing a head-mounted dual-lens 360 camera, beside a graphic of his egocentric first-person view with hand-pose skeletons, depth and bounding-box annotation layers linked to his head camera.
The service in one frame: a contributor we recruited, hardware we shipped, and the annotation layers we added — delivered as one owned dataset.
10,585hours

Validated hours delivered

how we count ›

Hours that passed sync + QA and shipped to a buyer. Recaptured and rejected hours excluded.

1.12ms

Median cross-stream sync error

how we count ›

Median absolute timestamp offset between head camera and every other stream, over 12,480 measured frames.

100%

Documented consent

how we count ›

Every participant signs a written commercial release before capture. Bystanders are de-identified or the clip is discarded.

48hours

Median time to first delivery

how we count ›

Signed spec to first validated batch in your hands. Measured across Spec Pilot engagements in environments where coverage is already deep — thin scenarios take longer to staff.

What it is

Data collection you buy as an outcome, not a toolset.

Most teams that need custom AI data end up acting as a general contractor: a crowd here, a labelling shop there, a QA script to referee. Custom collection as a service replaces all of it with one accountable owner.

What we run

  • 01Scoping & specWe turn your model failure into a written spec with accept and reject criteria. You approve it.
  • 02Recruiting & consentContributors sourced, paid, and signed — releases stored per item, per jurisdiction.
  • 03Hardware & capturePhone mounts, 360 head-mounts, or the full synchronized rig, shipped and briefed by us.
  • 04AnnotationHand pose, depth, segmentation, action labels, transcripts — whatever the spec names.
  • 05AnonymizationFaces, plates, and screens detected, boxed, and blurred before anything leaves QA.
  • 06QA & rejectsEvery take scored against the spec. Failures are discarded, logged, and replaced, not downgraded.
  • 07Delivery & licenseYour format, your bucket, a data card, and a perpetual buyer-owned commercial license.

What you do

  1. Describe the gapWhere the model fails — a task, an environment, a population, a language.
  2. Approve the specOne sign-off on what counts as a good sample before anyone is briefed.
  3. Review the pilotA small first batch to confirm the data trains the way you expect.
  4. Receive batchesScheduled drops at the agreed cadence until the target volume is met.

Four touchpoints. Everything between them is ours.

Global mobilization

5,000 videos. 16 countries. Under three weeks.

When a lab needed a rare manipulation skill covered fast and worldwide, we stood up a vetted operator network across four continents and delivered a full spec — not a teaser — in nineteen days. Off-the-shelf corpora take quarters to license; a bespoke shoot on this footprint is the kind of international turnaround most vendors quote in months.

Capture velocity

cumulative to 5,000

1,100
Week 1+1,1006 countries live
3,250
Week 2+2,15012 countries live
5,000
Week 3+1,75016 countries live

Illustrative engagement, anonymised at the buyer's request. Only sync- and QA-passed videos counted.

5,000videos
Validated & delivered
19days
Signed spec to final batch
16countries
Live capture, 4 continents
260/day
Peak validated throughput

International footprint

  • United States
  • Canada
  • Mexico
  • Brazil
  • United Kingdom
  • Germany
  • Poland
  • Spain
  • Nigeria
  • Kenya
  • India
  • Philippines
  • Vietnam
  • Japan
  • South Korea
  • Australia
Scope a global capture →

Custom collection

End-to-end custom data collection for AI.

When the training data you need does not exist yet, we build it — from the first problem statement to an owned, licensed dataset. One team owns spec, sourcing, capture, annotation, QA, and delivery, so you brief once instead of stitching together crowds, tools, and reviewers.

  1. 01Discovery
  2. 02Specification
  3. 03Sourcing & staffing
  4. 04Capture
  5. 05Annotation & structuring
  6. 06QA & anonymization
  7. 07Licensed delivery
LLMs & assistantsSpeech & ASRComputer visionEmbodied AI & roboticsMultimodal modelsSafety & evaluation

Explore custom data collection for AI training by model type, or run the same pipeline worldwide with custom collection across 150+ countries. Need it fast? Try on-demand data collection, fast data collection, stereoscopic video, embodied AI data collection, or pretraining data collection for robot foundation models.

How we capture

One clock domain, or it isn't a dataset.

Ten streams recorded on separate sensors are ten separate videos until something forces them onto the same timebase. We hardware-trigger every sensor from a single PTP grandmaster, and we publish the resulting error distribution.

A head-mounted capture rig disassembled and laid out: head camera, two wrist cameras, depth sensor, IMU pucks, cables and battery pack.
FIG 1 — Rig v3, 640 g total worn weight. Every part is off-the-shelf and named below, so you can reproduce our capture conditions.
A person wearing the head-mounted rig while chopping vegetables in a real, cluttered home kitchen.
Bill of materials
Head cameraSony IMX585 global shutter · 120° M12Carbon headband, 42 g
Wrist camerasIMX290 ×2 · 100° M12Velcro cuff, rigid plate
DepthIntel RealSense D435ifForehead, 18 mm below head cam
IMUBosch BMI088 ×3 · 200 HzHead, both wrists
ClockPTP grandmaster + hardware triggerBelt pack, 190 g
Storage2 TB NVMe · 6 h continuousBelt pack
A contributor photographed indoors wearing a compact dual-lens 360 camera clipped to a quick-release buckle on an elastic head strap, positioned above the forehead.
FIG 2 — A contributor's own setup, photographed before a session: a dual-lens 360 camera on a quick-release buckle over an elastic head strap.

Two capture tiers

The bill of materials above describes our instrumented rig — the tier that carries wrist cameras, depth and a hardware-triggered clock, and the only tier the sync figure below applies to. FIG 2 shows the other tier: a contributor-worn 360 camera on a head strap. It gives up depth, wrist views and sub-millisecond sync, and in exchange it goes anywhere a person is willing to wear it, which is how coverage reaches every country on the map.

The three sample clips published on this site come from the 360 tier, which is why each one is a circular fisheye image circle rather than the rectilinear frame the head camera in the table produces. Read every multi-stream claim on this page — extrinsics, depth validity, the 2.0 ms ceiling — as scoped to the instrumented rig. Single-stream RGB from the 360 tier is labelled as such in the episode metadata, so you can filter on tier rather than infer it.

Rig architecture

Four device groups, one trigger, one episode file. The clock node is the only part of this diagram that is hard.

Rig architecturerig-04 · v3 payload
HEAD CAM3840×2160 · 60 fpsglobal shutter · 120° HFOVWRIST CAM ×21920×1080 · 60 fpsrigid mount · 100° HFOVDEPTH848×480 · 30 fpsactive stereo · 0.3–4 mIMU200 Hz · 6-DoFbias-calibrated accel + gyroPTP CLOCKhardware triggerΔ < 2 ms across allone clock domain · no post-hoc alignUNIFIED EPISODEtimeStampNs (int64)cameraIntrinsics / extrinsicshandJoints[2][21][3]bodyJoints[24][3]instanceMasks[objects]actionSegments[verb, noun]RLDS · LeRobot · WebDataset · HDF5 · zarr · .rrd

Measured sync error

Absolute timestamp offset between the head camera and every other stream, sampled across randomly selected frames from shipped episodes.

Cross-stream sync errorn = 12,480 frames
0%25%50%75%100%SPEC CEILING 2.0 msMEDIAN 1.12 msp99 1.940.01.02.03.04.0ABSOLUTE OFFSET FROM HEAD CAMERA (ms)
12,480 measured frames. p99 = 1.94 ms. Frames above the ceiling are rejected and the segment is recaptured.

Method, tooling and the raw CSV behind this plot are in the sync measurement guide. Nobody else in this category publishes this number, which is exactly why we do.

A checkerboard calibration target on a tripod facing a camera rig in a plain room.
FIG 3 — Intrinsics and extrinsics are re-solved at the start and end of every session. Drift between the two solves is recorded in the episode metadata, so it is detectable rather than assumed.

What ships with every clip

Ten streams, one clock, one episode file.

Not an à la carte menu. Every validated hour we deliver carries the whole stack, in the schema below, whether you asked for depth or not.

StreamSpecDetail
Head camera3840 × 2160 · 60 fpsGlobal-shutter, 120° HFOV, rolling-shutter-free, H.265 + lossless keyframes
Wrist cameras × 21920 × 1080 · 60 fpsLeft + right, 100° HFOV, rigid mount, extrinsics re-solved per session
Depth848 × 480 · 30 fpsActive stereo, 0.3–4 m range, metric millimetres, per-frame confidence map
IMU200 Hz · 6-DoFAccel + gyro, bias-calibrated, hardware-timestamped on the same clock domain
Hand pose21 keypoints × 2 hands3D metric, per-joint visibility flag, contact events on grasp and release
Body pose24 joints3D, root-relative and world-frame, torso and forearm chains resolved
SegmentationInstance masksManipulated objects + target surfaces, tracked IDs across the episode
Action segmentsVerb + noun taxonomy97 verbs, 512 nouns, start/end to the frame, human-reviewed
FormatsRLDS · LeRobot · WebDatasetAlso HDF5, zarr, and .rrd for Rerun. Converters shipped as source.
LicenseCommercial · buyer-ownedPerpetual, irrevocable, model-weights-clean. Exclusivity available.

Colour dots map to the modality legend used in every chart on this site. Full field-level schema in the episode schema docs.

Coverage — and what we don't have

Everyone publishes a bigger number. We publish the histogram, including the gaps.

If your task lives in a thin column, that is a spec conversation, not a no. Thin cells are where we are actively accepting specs, and where a pilot buys you exclusivity on the capture.

Validated hours by scenarioas of 2026-07
01k2k3kKitchen & food prep2,840Household chores2,310Tool use & assembly1,680Warehouse & logistics1,420Retail & shelf ops890Automotive service640Construction & trades410Clinical & care180Agriculture120Hospitality95VALIDATED HOURS
DEEP — SHIPPING NOWTHIN — ACCEPTING SPEC
Coverage matrix · environment × conditionindex 0–100
DaylightMixedLow lightClutteredMulti-personFailure cases94886179442890825571512272763866581968713362641477644183293158421247369KitchenLiving spaceWarehouseRetail floorWorkshopOutdoor site
Index = validated hours in that cell, normalised against our deepest cell. Failure cases are deliberate mistakes, drops, and recoveries — the hardest thing to source and the column we are shortest on.

Service vs. do-it-yourself

Where assembled pipelines break, and why a service does not.

The failures in AI data live in the handoffs. Owning every stage is what keeps the spec, the consent chain, and the reject bar intact from the first brief to the last delivery.

Custom data collection as a service compared with assembling vendors yourself
 Assemble it yourselfFirsthand as a service
Vendors to manageCrowd platform + labelling shop + QA toolOne team, one contract
Who owns the specYou, re-explained at every handoffUs, enforced at every stage
Consent chainScattered across platformsPer-item releases, one record
PrivacySeparate redaction tool, if anyAnonymization built into QA
Bad dataDiscovered after deliveryRejected, logged, and replaced
RightsVaries by platform termsPerpetual, buyer-owned license

Weighing a service against buying a finished dataset instead? Compare custom collection with off-the-shelf datasets.

Provenance and consent

The license is a product surface, not a footnote.

Your legal team will read this section before your research team reads the specs. So here is the actual release language, the actual pay, and the actual de-identification pipeline.

Participant release — verbatim

PARTICIPANT RELEASE — COMMERCIAL TRAINING USE
Version 3.2 · effective 2026-01-14

1. GRANT. I grant Firsthand Data, Inc. ("Firsthand") a perpetual,
   irrevocable, worldwide, sublicensable, royalty-free right to
   record, store, process, reproduce, and distribute the audio,
   video, depth, and motion recordings captured of me during the
   session(s) described in Schedule A (the "Recordings"), and to
   license the Recordings to third parties for the purpose of
   training, evaluating, and deploying machine learning models,
   including commercial models.

2. SCOPE. The grant covers derivative representations of the
   Recordings, including but not limited to depth maps, hand and
   body pose estimates, segmentation masks, textual action labels,
   and model weights derived from any of the foregoing.

3. COMPENSATION. I will be paid the hourly rate stated in
   Schedule A for all time spent in session, including setup,
   calibration, and breaks. Payment is not contingent on the
   Recordings being accepted, delivered, or licensed.

4. WITHDRAWAL. I may withdraw consent for future sessions at any
   time. I may request deletion of any Recording not yet delivered
   to a licensee by written notice to support@cloudpano.com.
   Recordings already delivered cannot be recalled from a licensee,
   and I acknowledge this limitation.

5. BYSTANDERS. I confirm that I have not knowingly recorded any
   person who has not signed this release. Where an unidentified
   person appears, Firsthand will de-identify them or discard the
   affected footage.

6. NO IDENTITY LICENSE. This release does not grant the right to
   use my name, likeness, or voice for advertising or endorsement.

7. GOVERNING LAW. Delaware, USA, without regard to conflict of
   laws principles.

Participant signature: ______________________  Date: __________
Operator signature:    ______________________  Date: __________

What contributors are paid

Base session rate
$38 / hour
Includes
Setup, calibration, breaks, travel over 20 min
Thin-coverage premium
+$12 / hour (clinical, construction, agriculture)
Payment terms
Net 7, no per-task bounty, no rejection clawback

Published because a per-task bounty produces rushed, unusable footage. Collector standards.

De-identification pipeline

Faces
Bystander faces detected and blurred; participant faces mostly out of frame by rig geometry
Plates
Licence plates and street numbers blurred on all outdoor and automotive footage
Audio
Speech scrubbed of names, addresses and card numbers; ambient audio retained
Screens
Visible phone and monitor content masked unless it is the manipulated object
Bystanders
If a person cannot be de-identified, the clip is discarded rather than shipped

Jurisdictions of capture

  • United States
  • Canada
  • United Kingdom
  • Germany
  • Netherlands
  • Poland
  • Portugal
  • Japan
  • South Korea
  • Singapore
  • Mexico
  • Brazil
  • GDPR ART. 6(1)(a)
  • CCPA / CPRA
  • UK GDPR
  • APPI (JP)
  • PIPEDA (CA)
  • SOC 2 TYPE II — IN AUDIT

Anonymization as a service

The de-identification pass we run on every dataset, open to your footage.

Computer vision detects every face, plate, and legible screen, draws a bounding box, and blurs it irreversibly into the delivered pixels — confirmed by a human before anything ships. Send hours or millions of frames; run it by hand or straight from the batch API.

Bounding box + confidence · internal
A first-person cycling frame with a green bounding box labelled face 0.80 drawn around the rider’s detected face.face · 0.80
Stage one. A vision model scans the frame and returns a bounding box around every face, with a confidence score. Nothing is altered yet — this labelled view stays internal.

Detect, box, blur

Stage one returns a box and a confidence for each face — here, face · 0.80. Stage two links those boxes across frames and burns an irreversible blur into the output. Toggle the frame to see the delivered result. Explore the full pipeline on the anonymization page.

Available as a standalone service — anonymization as a service.

Run it programmatically with the batch API.

One POST submits a whole batch for de-identification. The job runs asynchronously; you get a webhook when it clears human review, then download the anonymized output and its per-file certificate.

RequestPOST /v1/anonymize
curl -X POST https://api.firsthand.dev/v1/anonymize \
  -H "Authorization: Bearer $FIRSTHAND_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "input_url": "s3://acme-dashcam/2026-09-23/*.mp4",
    "redact": ["faces", "plates", "screens"],
    "recall_target": 0.995,
    "review": "human",
    "source": "delete_after_delivery",
    "webhook_url": "https://acme.dev/hooks/firsthand"
  }'
Response202 Accepted
{
  "batch_id": "anon_9f2c71a4",
  "status": "processing",
  "files": 1284,
  "redact": ["faces", "plates", "screens"],
  "recall_target": 0.995,
  "estimated_completion": "2026-09-23T18:40:00Z",
  "certificate_url": null
}
Async batch jobs
Submit one clip or a glob of hundreds of hours in a single call. Throughput scales with GPU allocation, not with headcount.
Webhooks & polling
Get a callback the moment a batch clears review, or poll GET /v1/anonymize/:id. No long-held connections.
Per-file certificate
Every completed batch returns a certificate_url — detector version, reviewer sign-off, blur settings, and measured recall per file.
Idempotent & auditable
Retries are keyed so a re-sent job never double-processes, and each file is checkable against its own record.

The batch API runs the exact five-stage pass described on /anonymization, including the human review step — endpoints and keys are provisioned per engagement.

Pipeline

Five steps. Spec to delivery.

Step 03 is the one most vendors leave out, and it is the reason you are not paying for footage you will throw away.

  1. 01SPECNamed skill list, coverage targets, accept/reject criteria
  2. 02CAPTURECalibrated rigs, vetted and trained operators, real environments
  3. 03VALIDATESync check, QA pass, reject and recapture — you see the reject log
  4. 04ENRICHDepth, body pose, hand pose, action segments, instance masks
  5. 05DELIVERRLDS, LeRobot, WebDataset, HDF5 — plus the data card

Engagement models

Start small, scale on the same pipeline.

Every engagement runs through the same managed service. What changes is how long it runs and how often you re-point it.

Prove it trainsPilotA tightly scoped first collection — a handful of tasks, a few environments — to validate the spec and the pipeline against your own evals before you commit to volume.
Fixed targetProgramA defined dataset: hours, clips, or episodes to a signed spec, delivered in scheduled batches with a running accept/reject ledger until the target is met.
Always-on supplyContinuousA standing collection capacity you re-point as the model improves — new tasks, new regions, new edge cases — without re-contracting or re-onboarding a vendor.

Each stage of the service is broken down — what happens, what you get, and how it is measured — on the end-to-end pipeline page. For the model-by-model view, see custom data collection for AI training, or go deeper on embodied AI training data. For the definition of the term itself, see what data collection as a service is. Deciding whether to run collection yourself instead? See in-house vs outsourced egocentric data collection.

How we prove it trains better

The only number that matters is the one downstream of the data.

Same architecture, same eval suite, same seeds — only the pretraining corpus changes. The protocol is fixed and public; measured head-to-head results publish once they reproduce independently.

Evaluation protocol · fixed and pre-registered

We pretrain one fixed policy architecture on each corpus, then score it on a held-out manipulation suite with fixed seeds and a rubric we do not grade ourselves. Only the pretraining data changes between arms, and hours are reported so any win is visibly about fitness, not volume.

Measured results publishing Q4 2026. The methodology and full eval harness are open now.

methodology on /benchmarks →eval harness →
Architecture
Identical diffusion policy, 210 M params, no per-dataset tuning
Eval suite
40 unseen manipulation tasks, 20 trials each, fixed seeds
Success criterion
Task-completion predicate, scored by held-out rubric, not by us
Confound
The Firsthand arm is 1,200 h vs EgoScale 20,854 h — the delta is fitness, not volume

Case study

A bimanual loading policy that kept failing on half-full racks.

Anonymised at the buyer's request: a US humanoid lab, Series B, training a bimanual dishwasher-loading policy. Their footage was clean and their policy still failed the moment a rack was partially occupied.

620hours
Validated hours delivered in 11 weeks
11skills
Named skills in the spec, all cells filled
+21pts
Success rate on their internal dishwasher eval
7.4%
Batch reject rate — recaptured at our cost

The lab had 4,000 hours of public egocentric footage and a policy that scored well in simulation. In the real world it stalled on any rack that was already half loaded, because almost nothing in the public corpora shows a person recovering from a bad grasp inside a cluttered fixture.

We wrote a spec with a hard quota: 15% of every batch had to be a failure and recovery — dropped plate, wrong slot, tine collision — with the recovery captured through to completion. That quota is the whole case study.

Their words, lightly trimmed: “The failure cases were the only part we couldn’t buy anywhere else, and they moved the eval more than the other 500 hours combined.”

A dim multi-monitor QA workstation showing synchronized video tracks on a timeline next to a spreadsheet of measurements.
QA station — every batch is reviewed frame-accurate against the accept criteria before it ships. Rejects and their reasons go to the buyer with the batch.

Engagement timeline

  1. WEEK 0Spec written together: 11 skills, 6 kitchens, explicit failure-case quota of 15%
  2. WEEK 1Rig calibration on their object set — 34 SKUs of real crockery shipped to us
  3. WEEK 2First 50 h batch delivered in RLDS. They found a wrist extrinsics error. We recaptured 12 h.
  4. WEEK 4Cadence at 70 h/week. Coverage report per batch with the reject log attached.
  5. WEEK 11620 h delivered. Failure cases turned out to be the highest-value slice.

Anonymised with permission. Reference call available under NDA once a spec is scoped.

The sample

See the data before you talk to anyone.

Start with an unedited clip off the head camera, then the schema that ships on top of it — same enrichment layers, same license terms as a production batch. No form, no call, no NDA.

Real footage first, then the annotation schema that ships on top of it.

1 · Raw capture6 clips, unedited — see all →
Raw · unprocessed
EP_0411_HOME_C
00:00.0000:00.00
Frame
960 × 540
Length
8 s
File
4.7 MB
Audio
Present in source, muted here

A transit segment — carrying a tool between floors. Exactly the footage staged datasets cut, and a reason policies fail to move between rooms. The image circle is letterboxed into a 16:9 canvas, so the black margins are the proxy container, not lost data.

2 · Annotation schematoggle layers
bowl 0.97cutting_board 0.94mug 0.99bottle 0.91WRIST_RWRIST_LBODY 24 JOINTS · 3DHANDS 21 × 2 · 3D METRICGAZE · mugREC 00:04:18:163840×2160 · 60 FPSSYNC Δ 1.5 msEP_0117_KITCHEN_A / rig-04
00:04:18:16054/300 f

A different episode, drawn from the schema rather than filmed — the clip on the left is RGB only, and depth, pose and masks arrive as separate synchronized streams. Download the pack to see them on real frames.

The full pack

2.4GB

Every stream at native rate, drawn from the same production batches you would license — not a curated highlight reel. Add an email and the download link lands in your inbox.

40
episodes
4
environments
8
synced streams

Free and ungated after the clips above — no call, no NDA. Latest release: Egocentric-10K coverage release, warehouse + retail.

Get the download link

FAQ

Custom collection as a service, answered.

01

What is custom data collection as a service?

It is a managed service where one provider runs the entire data collection for you — scoping the spec, recruiting and consenting contributors, supplying hardware, capturing, annotating, anonymizing, QA-ing, and delivering a licensed dataset. You describe what the model needs; the provider carries it end-to-end and hands over data you own.

02

How is it different from a crowdsourcing platform?

A crowdsourcing platform gives you access to workers and leaves the spec, briefing, QA, and rights to you. A collection service owns the outcome: we write and enforce the spec, reject and replace failed takes, document consent per item, and deliver under a single buyer-owned license.

03

What kinds of data can you collect as a service?

Our specialism is egocentric first-person video for embodied AI and robotics — hands, pose, depth, and synchronized multi-camera streams. The same managed pipeline runs speech and audio, image, video, text, and multimodal sensor collections.

04

Do we need our own hardware or annotation team?

No. We supply and ship the capture hardware — from phone mounts to 360 head-mounts to the full instrumented rig — and run annotation, anonymization, and QA in-house. You only approve the spec and review the pilot.

05

Who owns the data at the end?

You do. Every delivery ships under a perpetual, buyer-owned commercial license with signed contributor releases, an anonymization record, a visible reject log, and a data card documenting jurisdictions.

06

How do engagements start?

With a short description of the gap. We return a scoped estimate — reach, timeline, and price — and usually recommend a pilot batch first, so you can validate the data against your own evals before committing to volume.

Request a quote

Tell us what you're training.

We quote per engagement rather than off a rate card, because price depends on which environments you need, how thin our coverage is in them, and how dense the annotation has to be. Fill this in and you get real numbers back.

Reply time
One business day, with a scoped estimate
You receive
Hours, price, delivery date, coverage cells to fill
First call
30 minutes, technical, no deck
Then
A written spec you own, whether or not you buy
Billing unit
Validated hours only — rejects are never billed

Or skip the form entirely — support@cloudpano.com. A research engineer reads it, not a sales inbox.

Hand us the problem. Keep the dataset.

No finished spec required. You will get a scoped estimate with reach, timeline, and price — and a pilot batch — before any commitment.