v0.1.0 / previewregion · global
00 / productthe event engine

The hard problem isn't recognition.
It's collapsing forty sightings into one event.

Recognition models are commodity. Identity event orchestration at port scale, under partial chaos, with audit guarantees — is not. This is what ports.io owns.

01The seven layers

From a frame to an event.

layer 01
Detection

Each camera frame is scored. Faces and objects are extracted with a tight bounding box and a quality score. Only what's worth processing moves to the next layer.

{
  "face_detected": true,
  "bbox": [x, y, w, h],
  "quality_score": 0.93
}
layer 02
Tracking

ByteTrack / OC-SORT links frames into a single track per camera. A worker walking through a lane is no longer 40 detections — it is one track_id.

track_id: gate3_lane2_track18
layer 03
Quality filtering

Blur, occlusion, side profile, low illumination and small bounding boxes are rejected. Only the top-K candidate frames per track survive. Compute drops by an order of magnitude.

no schema · operational layer
layer 04
Embedding

ArcFace / InsightFace produces a 512-dimensional biometric vector. The vector is the only thing that crosses the network — never the raw face.

embedding: float32[512]
layer 05
Identity matching

Vector search (pgvector now, Qdrant later) returns the closest worker_id with a confidence score. Below the threshold, the sighting is logged as unknown and surfaced to operators.

{
  "worker_id": "PORT_EMP_9382",
  "confidence": 0.98
}
layer 06
Cross-camera dedupe

Same identity, same gate, within a 20-second window — collapsed into one logical event. This is the layer that turns chaos into a clean operational signal.

no schema · operational layer
layer 07
Attendance policy

Shift windows, IN/OUT inference, contractor rules, blacklist routing. The output is a single attendance_event your HRMS, payroll and audit log can trust.

no schema · operational layer