Disclaimer: Independent product concept by Kaushal Khodifad. Not a live commercial product.return to portfolio
Disclaimer: Independent product concept by Kaushal Khodifad.

Live demo · working prototype

Ask a video what happened.

Upload a short clip. FactoryLens reads it frame by frame, then answers your plain-language questions with the timestamps as proof. Click any timestamp to jump the video to the evidence.

1
Perceive
Read the footage frame by frame
2
Retrieve
Match against the factory ontology
3
Answer
Cite the timestamp - or stay silent
We ride the model · we add the domain layer
Video foundation model
Twelve Labs
Marengo 3.0 + Pegasus · on Bedrock since Dec 2025
FactoryLens adds
Ontology · edge privacy · grounded-or-silent
the manufacturing answer layer
vs. safety-vision incumbents like Voxel - they ship alerts & dashboards; we make the same camera estate answerable in plain language.
Clips- pick a sample or your upload, then ask it anything

Samples are Pexels stock footage (not customer or factory data). Each carries human-annotated expected-content labels the evals harness grades answers against.

Privacy
  • Private to this browser. Your clip is never uploaded to the server or shown to anyone else; uploads are remembered only on this device.
  • Only ~10 downsized stills are sent for analysis - not the video.
  • In production, raw video never leaves the plant - perception runs at the edge. (This browser demo is the exception, by necessity.)
Ask the footage

Pick a clip from the bar above (or drop your own), then ask it anything.

Trust & governance · query audit loghash-chain unavailable

The control an EU works-council review actually inspects: who asked what, of which footage, answered from where, at what measured faithfulness. Each entry’s SHA-256 covers the previous entry’s hash - edit one in devtools (localStorage) and the badge above flips to chain broken on reload.

No queries logged yet this browser - ask the footage something and the entry appears here, hashed onto the chain.

Query audit logP0.6 · running here Every question is appended to a SHA-256 hash-chained log and the chain is re-verified on load (src/prototypes/factorylens/lib/auditLog.ts).

Evals faithfulness gateP0.7 · running here Each answer is graded by the deterministic rubric; below-gate answers are flagged in the UI, and the score lands in the audit log.

Grounded-or-silentP0.3 · running here The model must cite [m:ss] frames or decline; silence is logged as a declined query, never dressed as an answer.

Worker anonymizationP0.5 · design-stage Design-stage. Nothing in this demo blurs faces; production runs blur at the edge before storage.

RBAC + SSOP0.6 · design-stage Design-stage. The demo has no roles; production scopes queries and playback by role.

Honest scope: this log lives in your browser’s localStorage and is clearable - a working demo of the tamper-evidence mechanism, not the deployment. Production writes the same chain server-side to write-once storage under RBAC, where “clear log” does not exist.

The manufacturing event ontology - in code, not copy

These typed definitions live in src/lib/factorylens/ontology.ts and are load-bearing twice: injected into the vision model’s system prompt (so it is held to the observable cue, with the false-positive guard), and used by the evals grader to score answers. The guard column is the domain knowledge - what must not count.

EventDomain · severityObservable cueGuard (must NOT count)
Hard-hat compliancesafetyhighA person in an active work area without a rigid-shell protective helmet. A hard-hat is a rigid shell with a brim, usually a solid bright colour.A baseball cap, beanie, hood, or bare head styled like headwear is NOT a hard-hat - the single most common VLM confusion. If the shell/brim cannot be resolved, report 'unsure', never 'yes'.
Hi-vis compliancesafetymediumA person in a vehicle/equipment area without a high-visibility garment (fluorescent yellow/orange vest or jacket, usually with reflective strips).A plain bright-coloured shirt without reflective strips is a weak cue - report 'unsure' rather than counting it as hi-vis.
LOTO breach (lockout/tagout)safetycriticalA person with body parts inside a machine's guarded envelope or service area while no lockout device (padlock/hasp/tag on the isolation point) is visible.Standing NEAR a stopped machine is not a breach. Energization state usually cannot be read from a still frame - if no isolation point or lock is visible, say the frames cannot support a LOTO judgement rather than inventing one.
Forklift-pedestrian proximitysafetycriticalA powered industrial truck (forklift, reach truck) moving within roughly one vehicle-length of a person on foot in a shared aisle, with no physical separation.A parked or unmanned forklift is NOT a proximity event. A hand pallet jack is not a powered truck. If no forklift is visible in any frame, the grounded answer is 'none' - not a guess.
Restricted-zone entrysafetyhighA person crossing visible floor markings, barriers, or gates into a marked exclusion or machine-guarded area.Only count when the marking/barrier itself is visible in frame. Faded or ambiguous markings -> 'unsure'. Do not infer zones that are not visible.
Spill / walkway obstructionsafetymediumLiquid, debris, or stored material blocking a pedestrian walkway or emergency route.Normal work-in-progress material at a workstation is not an obstruction; the cue is material IN a walkway/aisle.
Micro-stoppageopsmediumA station that is inactive in some frames while adjacent stations remain active - visible as an operator waiting, a machine stopped mid-cycle, or material starved/blocked. Requires evidence across at least TWO frames.A single still frame cannot prove a stoppage (it may be mid-cycle dwell). One-frame evidence -> 'unsure, needs temporal confirmation'.
Idle station / lineopsmediumA workstation or machine unmanned or inactive across consecutive frames while the area is otherwise in an active shift.An empty area with no evidence of an active shift is just an empty area - do not label it idle time.
Cycle completeopsinfoA unit of work visibly completed - a piece leaves a station, a weld/stitch/assembly step finishes, a package is sealed.Motion alone is not a completed cycle; the cue is a unit visibly finishing or leaving the station.

What’s real here, and what isn’t

A trust product should not oversell its own demo. Each row names the code path so the claim is checkable - tap to expand the proof.

6 run for real in this demo 3 honestly labelled design-stage- tap any row for the code-path proof
Real - running in this demo
Simulated / design-stage - honestly labelled

Sample clips are Pexels stock footage, labelled as such, with human-annotated expected-content labels committed in code (src/lib/factorylens/evals.ts) so the grading is auditable.

↑ Independent product concept by Kaushal Khodifad. FactoryLens is an independent product concept by Kaushal Khodifad; it is not a real company or a commercial product. It explores the natural-language intelligence over factory video space. Not a live commercial product. Data is illustrative.

Return to portfolioOpen the live demo