Technical Specification ยท Architecture & Lifecycle

Technical Detail & System Flow

In-depth state machines, capture loops, data schemas, and privacy governance models underpinning the Jarvis classroom perception pipeline.

Each capture cycle creates a timestamped observation. Jarvis preserves the original frame, processes it through YOLO and SAM 3, and compares the result with recent observations before changing the room model.

sequenceDiagram
    participant Cam as Classroom Cameras
    participant Cap as FFmpeg Capture
    participant AI as YOLO + SAM 3
    participant Track as Tracking Logic
    participant Room as Room Model

    loop At each configured interval
        Cam->>Cap: provide current frame
        Cap->>Cap: save original with camera ID + timestamp
        Cap->>AI: submit frame for inference
        AI->>Track: classes + confidence + boxes + masks
        Track->>Track: compare with recent observations
        Track->>Room: confirm new, moved, continuing, or missing objects
    end
    Note over Track: One weak or missed detection does not immediately change the room model
flowchart LR
    A[YOLO detection] --> B["SAM 3 mask
and observation record"]
    B --> C{Matches an existing track?}
    C -->|Yes| D[Update object history]
    C -->|No| E[Create candidate track]
    E -->|Repeated evidence| F[Confirm object]
    E -->|Not repeated| G[Expire candidate]
    D -->|Position changed| H[Record moved event]
    D -->|Evidence disappears| I[Mark occluded]
    I -->|Still absent after threshold| J[Mark missing]

Data the system needs to persist

This is the current entity list, not a final database schema.

  • Cameras โ€” id, device name, host computer, viewpoint, resolution, status
  • Frames โ€” id, camera, capture timestamp, original-file path, processing status
  • YOLO Classes โ€” class id, object label, and training-version metadata
  • Detections โ€” frame, class, confidence, bounding box, model version
  • Segmentation Masks โ€” detection, mask-file path or encoded mask, SAM 3 model version
  • Object Tracks โ€” persistent object id, current class, state, first seen, last seen
  • Locations / Zones โ€” camera-relative coordinates and eventual room-relative position
  • Observations โ€” track, frame, camera, position, confidence, mask, timestamp
  • Change Events โ€” new, moved, missing, reappeared, or camera-conflict event
  • Model Runs โ€” configuration, thresholds, processing time, errors, and output version
Two cameras, opposite sides

Fewer blind spots, backup view.

Still frames, not video

Less storage and CPU load.

10-second interval

Frequent enough, easy to tune.

YOLO before materials

Objects first, materials later.

Six core classes

Small, manageable first dataset.

SAM 3 for masks

Precise pixels, not new labels.

Material ID deferred

Separate task, later milestone.

OpenCV pipeline

Load, crop, compare, save frames.

Class confidence โ‰  track confidence

Doubt in one doesn't mean doubt in the other.

Multiple observations required

One miss doesn't mean a change.

80% success threshold

Clear, testable bar for v1.

Central processing

One machine, one room model.

Jarvis is designed to understand classroom objects, not identify or monitor individual people:

DecisionDetail
No identity recognitionJarvis does not use face recognition, names, student IDs, biometric enrollment, or any other method to determine who a person is.
Generic person detection onlyA person may be represented only as the class person, allowing Jarvis to recognize that a classroom object may be temporarily blocked from view.
No persistent person trackingPerson detections are not assigned lasting identities and are not included in the classroom object inventory or movement history.
Object-focused outputsSaved detections, masks, and change events focus on classroom objects; people are treated as temporary occluders rather than subjects of analysis.
Local prototype scopeThe first version runs on the project's Linux computers for testing in the selected classroom rather than serving as a school-wide surveillance system.
Controlled evaluationInitial accuracy testing should use team-controlled scenes and objects, with classroom testing conducted only under the permission rules established for the project.
A generic person mask may explain why a previously confirmed object is temporarily invisible. In that case, Jarvis should prefer OCCLUDED over immediately changing the object to MISSING.

Generic person detections are counted, not identified, to produce a room occupancy number and flag presence at unexpected hours.

flowchart LR
    A["Person detections
per camera, per frame"] --> B["De-duplicate across
overlapping views"]
    B --> C["Room occupancy
count"]
    C --> D{"Matches bell
schedule?"}
    D -->|Yes| E["Normal presence"]
    D -->|No| F["Flag odd-hour
occupancy"]
0
8a
32
9a
38
11a
40
1p
34
3p
30
3:35p
4
4p
2
6p
1
8p
0
9p+
Counts only, no identity — consistent with the privacy design above.
Logitech BRIO webcam
Logitech BRIO 4K webcam
CURRENTOwned

Primary classroom camera.

Linux mini PC
Main Linux computer
CURRENTOwned

Runs capture + YOLO/SAM 3.

Second Logitech BRIO webcam
Second BRIO camera
PLANNED~$199

Opposite-side viewpoint.

Second Linux mini PC
Second Linux computer
PLANNEDTBD

Captures + transfers 2nd feed.

Camera mount
Camera mounts
PLANNED~$15–25 ea

Stable elevated placement.

USB extension cable
USB extension cable
AS NEEDED~$10–20

Reaches elevated mounts.

NetBird logo
NetBird
TESTEDFree tier

Cross-network SSH + transfer.

Costs are rough estimates; camera mount and Linux computer photos are representative, not the exact model.
Open problem: camera height, angle, overlap, and cable routing still need on-site testing.

Build schedule through end of November. First two weeks are camera research only, no recognition work.

Phase 1
Phase 2
Phase 3
Sep 5Sep 19Nov 7Nov 30
Phase 1 · Camera research
Phase 2 · Recognition & segmentation
Phase 3 · Tracking & room model
Dates track the Project Phases on the Overview tab and may shift with CPU benchmarking results.