Perception and vision

Screen understanding, OCR, camera, hand landmarks and gestures, built so that perception is evidence and never authority. The camera is off by default, frames cannot be saved, screen text is treated as possible prompt injection, and gestures pass eight gates to move windows.

IMPLEMENTED , rung 2 of 8 Screen observation and OCR are TESTED. Governed gestures (Z11) are IMPLEMENTED, with a safe local live proof on isolated ports on 19 August 2026 that opened no camera and moved no window. Physical acceptance on the owner's hardware is still owed.

PARTIAL Parts of this system sit at different rungs. The breakdown below shows each one.

As of
Parts tracked
7
Catalogued capabilities
16

Status breakdown

Where each part stands

2 tested 5 implemented

  1. Screen observation and OCR Registry CAP-PERC-01 and 02 were demoted for reachability in an August audit.
    TESTED , rung 3 of 8 TESTED Where: Production branch
  2. Hand tracking (journey J10) Fixture-tested only.
    TESTED , rung 3 of 8 FIXTURE Where: Production branch
  3. Governed spatial cognition and gestures (Z11) Safe local live proof 2026-08-19 on isolated ports; opened no camera and moved no window.
    IMPLEMENTED , rung 2 of 8 OBSERVED Where: Production branch
  4. Gesture recognition CAP-PERC-08 was LIVE after an earlier phase and was withdrawn to IMPLEMENTED when Z11 rewrote the recogniser.
    IMPLEMENTED , rung 2 of 8 DOCUMENTED Where: Production branch
  5. Camera privacy constraints Off by default, 300 s maximum lease, frames with no path that refuse saving and pickling.
    IMPLEMENTED , rung 2 of 8 DOCUMENTED Where: Production branch
  6. Pose context CAP-PERC-19 failed its probe.
    IMPLEMENTED PARTIAL , rung 2 of 8 TESTED Where: Production branch
  7. Physical acceptance on owner hardware Camera FPS, calibration precision, follow latency and false activations are NOT_PROBED_OWNER_HARDWARE.
    IMPLEMENTED , rung 2 of 8 NONE Where: Production branch

Pipeline

How it flows

A gesture, from camera to verified window move

  1. Camera session off by default; lease at most 300 s (can stop the request)
  2. Frame ephemeral, cannot be saved
  3. MediaPipe landmarks
  4. Gesture state machine
  5. Target resolver typed screen and UIA targets
  6. Eight gates presence to cancellation (can stop the request)
  7. Effect coordinator
  8. SemanticOperator window actions only
  9. Read-back (can stop the request)
  10. Receipt or compensation
Any amber gate can stop the gesture. The effects feature is off by default.

Diagrams are simplified from the code paths named in the sources below. They are illustrative, not screenshots.

Perception gives JARVIS eyes: on the screen, through OCR, and through a camera. Eyes are also an attack surface and a privacy risk. Text on screen can carry instructions, a camera can record things it should not, and a mis-read gesture can move the wrong window. JARVIS’s perception layer is built on one principle: perception is evidence, never authority.

Libraries

Job Library Note
Screen capture Windows GDI
OCR Windows OCR, with RapidOCR as fallback
Camera OpenCV
Hand, pose and face landmarks MediaPipe Tasks
Object detection RT-DETR Chosen for its Apache-2.0 licence

The perception modules cover the camera, landmarks, gestures, a controller, activation, the processing pipeline, targeting, the screen, OCR, addressee cues and general awareness.

Privacy by construction

The privacy rules are built into the data types, not left to policy text:

  • The camera is off by default. It can be reached only inside a purpose-named session with a bounded lease of at most 300 seconds.
  • Frames cannot be kept. A camera frame object has no file path, cannot be saved, and refuses to be pickled (serialised). Raw frames are ephemeral. Only derived landmarks and evidence are retained.
  • Screenshots are not persisted.
  • OCR text is quarantined as possible prompt injection. Words read from the screen are data about the screen, never instructions to JARVIS.

The frame rule has a stated cost. The project notes that it “intentionally makes later pixel-level forensic replay impossible”. If something goes wrong, there is no stored video to review, only the landmarks and receipts. That trade was chosen on purpose: a system that does not keep pixels has no stored pixels to leak.

Screen grounding

Screen capture, OCR and a targeting module map regions of the screen to UI Automation or browser elements. JARVIS uses this to understand what it is looking at, and every resulting action still goes through the governance chain and the identity rules on the computer operation page.

Gestures (Z11)

The Z11 work adds governed hand gestures. The pipeline is: frame, landmarks, gesture state machine, target resolver, all eight gates, effect coordinator, SemanticOperator, then a verified receipt or compensation.

The project names eight gates, and each one can stop the gesture:

  1. Presence
  2. Zone
  3. Engagement
  4. Confidence
  5. Hysteresis, so a flickering recognition does not trigger anything
  6. Consequence, decided by PolicyEngine like any other effect
  7. Preview, so the intended result is shown first
  8. Cancellation, so the owner can call it off

The first five ask, in different ways, whether this is really a deliberate gesture by the owner. The last three tie the gesture to governance: policy decides, the owner sees a preview, and the owner can cancel. A gesture system that moves windows on a false positive is worse than none, so any single gate is enough to stop a gesture.

What gestures may do

Gestures are limited to window actions: minimise and maximise, moving a window to a previewed rectangle, and moving a window to another monitor. The gesture-effects feature is off by default.

Two rules keep gestures from becoming a back door:

  • POINT “never becomes effect authority”. Pointing can select or indicate, but cannot by itself make something happen.
  • An open palm “can only remove authority”. It can stop or cancel, never start.

The HUD shows the gesture pipeline’s stage, the tracked skeleton, how fresh the data is, and why a gesture was refused, so a refusal is visible rather than mysterious. See HUD.

Status

  • Screen observation and OCR are tested. Their registry rows were demoted for reachability in an August audit.
  • Governed gestures are implemented. A safe local live proof ran on 19 August 2026 on isolated ports. It deliberately opened no camera and moved no window, so it shows the software path, not physical behaviour.
  • Gesture recognition was once recorded LIVE. It was withdrawn to IMPLEMENTED when Z11 rewrote the recogniser. An older live reading does not carry over to new code.
  • Hand tracking (journey J10) is fixture-tested only.
  • Pose context failed its probe.

What is not proven yet

  • Physical acceptance on the owner’s hardware has not been done. Camera frame rate, calibration precision, follow latency and false-activation rate are all recorded as not probed on the owner’s hardware.
  • No live gesture has moved a real window in the evidence cited here. The live proof opened no camera and moved no window.
  • Pose context failed its probe.
  • Screen grounding has not been re-proven live since its reachability demotion.
  • No object-detection accuracy figure is published here.

Invariants

Rules the code enforces

  • never becomes effect authority

    docs/proof/Z11_LIMITATIONS.md (POINT gesture)

  • can only remove authority

    Z11 gesture rules (open palm)

  • intentionally makes later pixel-level forensic replay impossible

    docs/proof/Z11_LIMITATIONS.md

Capabilities

Related capabilities

All 16 catalogued capabilities in this area

Sources

Sources

Paths are relative to the private JARVIS repository. They are listed so the claims above can be audited by the owner and reviewers; the files themselves are not published.

  • doc docs/proof/Z11_LIVE_EVIDENCE.md
  • doc docs/proof/Z11_LIMITATIONS.md
  • doc docs/hud/Z11_TRUTH_MAP.md
  • ledger docs/ledger/CAPABILITY_TRUTH.json
  • ledger docs/orders/post-lm/ACCEPTANCE_JOURNEYS.json