Discussion Note (Tapway x Appomax)
SamurAI Copilot Event Requirements for Steel Product Tracking
https://docs.google.com/document/d/1drNQrbwhccOEKqZcogAaUPUb0rVXw0a3wFWLAwuoeps/edit?usp=sharing
Prepared by: Vikan
Purpose: Discussion and alignment with Tapway on Vision AI event outputs for the Steel Product Tracking System
1. Background
Appomax is designing a Steel Product Tracking System based on an event-driven architecture, in which Vision AI serves as the upstream event source, and the downstream platform performs normalisation, persistence, tracking logic, traceability, and visualisation. The intended role of SamurAI Copilot is therefore to detect and publish reliable machine vision events, rather than serve as the full business tracking engine.
The project objective is to record deterministic product movement events and preserve them as a traceable event history, so that downstream systems can interpret them into tracking transitions such as product entering, leaving, transferring, or completing a process step.
2. Discussion Objective with Tapway
This document is intended to align on what Appomax needs from SamurAI Copilot for the steel tracking use case, especially in relation to:
multi-camera zone-based monitoring
direction-aware event generation
raw event semantics
tracking continuity
event quality and reliability
compatibility with downstream tracking logic
At the current stage, Appomax assumes that the system will use 8 cameras, with one or more Areas of Interest (AOI) / zones configured per camera. The expected behavior is that SamurAI Copilot detects steel products entering or leaving a defined zone based on configured movement direction and publishes corresponding events.
3. Proposed Functional Role of SamurAI Copilot
Appomax proposes that SamurAI Copilot should primarily function as a Vision Event Source, with the following responsibilities:
receive RTSP video streams from cameras / NVR
run object detection and tracking inference
apply zone-based and direction-based event logic
publish raw movement events with sufficient context
provide image / clip references when available
maintain stable track continuity as much as possible while object is visible
Appomax does not expect SamurAI Copilot to perform the full downstream business interpretation, such as final process-state mapping, cross-camera route logic, or authoritative product lifecycle decisions. Those responsibilities remain in the downstream event normalisation and tracking logic layers.
4. Proposed Event Model
For the steel tracking use case, Appomax believes that the most useful and scalable Vision AI output is not merely raw object detection per frame, but meaningful movement events associated with configured zones.
The preferred model is:
zone-based monitoring
direction-aware event generation
one raw event per meaningful occurrence
stable identity references where possible
optional supporting state signals for diagnostics and analytics
5. Recommended Event Types
5.1 Core Event Types
These are the key event types Appomax expects to support the tracking use case.
A. INGenerated when an object enters a configured zone according to the configured inbound movement logic. Example interpretation:
| B. OUTGenerated when an object leaves a configured zone according to the configured outbound movement logic. Example interpretation:
|
These two event types are considered the most important for downstream event-based tracking.
5.2 Optional Supporting Event Types
These are useful but secondary. Appomax would like to discuss whether and how they can be supported.
C. DWELL
Generated when an object remains inside a configured zone longer than a specified threshold.
Potential use:
congestion / blockage detection
station waiting analysis
exception detection
process delay monitoring
This should be threshold-based and configurable.
D. PRESENT / OCCUPIED
Represents that an object is currently occupying a zone.
This may be implemented either as:
a state signal, or
an event generated after a configurable presence duration
Appomax would like to clarify with Tapway whether this should be:
continuously represented as current occupancy state only, or
triggered as an event only after the object remains in the zone for a certain minimum duration
Potential use:
live visualization
operator awareness
supporting evidence for movement events
analytics
Appomax does not intend to use PRESENT / OCCUPIED alone as the main tracking event, but it may be useful as a supporting signal.
E. LOST TRACK / REAPPEAR
Represents a tracking continuity issue, for example:
object temporarily lost due to occlusion
object leaves view unexpectedly
object is re-identified after being lost
Potential use:
diagnostic monitoring
track continuity quality assessment
handling ambiguous tracking cases
This is optional but may become valuable where steel objects overlap, occlude one another, or move under challenging visual conditions.
6. Areas of Interest and Direction Logic
Appomax proposes that each camera should support one or more configured AOIs / zones. Each zone should ideally support:
named zone/zone ID
polygon-based or flexible zone shape
configurable business purpose
configurable expected movement direction
association with specific event logic
For each zone, Appomax would like to define expected interpretations such as:
inbound direction = generate IN
outbound direction = generate OUT
It is also important to clarify the distinction between:
event direction: business interpretation such as IN / OUT
object direction: physical movement direction in image space, such as LEFT / RIGHT / UP / DOWN
The sample Copilot payload already appears to contain both event_direction and object_direction, which is promising, but Appomax would like to confirm the exact semantics and rules behind these fields.
7. Current MQTT Output and Alignment Points
Based on the MQTT sample provided by Tapway, Appomax understands that SamurAI Copilot already publishes zone-based movement-related events with event identity, timestamp, camera context, direction indicators, track references, and media references. This is generally aligned with Appomax’s intended event-driven integration approach.
{
"siteID": "APPOMAX",
"subgroupID": "Template-v3",
"cameraID": "05",
"cameraIP": "192.168.6.144",
"cameraStage": 1,
"uniqueEventID": "9QNVTVV4V9",
"eventTimeStamp": "2026-04-02T07:59:02.877911",
"camResolution": [720, 1280, 3],
"eventClipFilename": "/videos/05/2026-04-02_145903_9QNVTVV4V9.mp4",
"siteCustom": null,
"customMain": {},
"inout": {
"zone5": {
"class_id": [0],
"class_name": ["yellow_steel"],
"event_direction": ["IN"],
"object_direction": ["LEFT"],
"speed": [0.0],
"dwell_duration": [0.79],
"reID": [{}],
"model_name": "Steeldetection-2026-9-1",
"uniqueTrackID": ["e38991"],
"occupancy": 1,
"filename": "/images/Steeldetection-2026-9-1/05/instance_1_2026-04-02_145903_9QNVTVV4V9.jpg"
}
},
"occupancy": null,
"dwell": null,
"detection": null,
"tracker": null,
"model-1": {
"modelName": "Steeldetection-2026-9-1",
"modelVersion": "1.0.0",
"className": ["yellow_steel"],
"imgResolution": [720, 1280, 3],
"classIDs": [0],
"confidence": [0.44],
"boundingBoxes": [
[714.0, 455.0, 762.0, 511.0]
],
"zoneIDs": ["zone5"],
"zoneOccupancy": [true],
"logicType": ["INOUT"],
"custom": {},
"trackID": [97],
"frameCount": [2],
"dwellDuration": [0.79],
"speed": [0.0],
"reID": [{}],
"objectDirection": ["LEFT"],
"uniqueTrackID": ["e38991"]
}
}For integration alignment, Appomax would like to confirm the following points:
- whether uniqueEventID is stable for retries / republishes
- whether eventTimeStamp represents the actual event occurrence time
- whether inout.zoneX.event_direction is the primary field to use for IN / OUT logic
- the exact semantic difference between event_direction and object_direction
- how trackID and uniqueTrackID behave during temporary loss/re-identification
- whether occupancy and dwell are state-only indicators or can also drive event semantics
- whether the MQTT schema is stable across model versions
8. Important Discussion Points
8.1 Movement Events vs Occupancy State
Appomax’s preference is for SamurAI Copilot to publish movement events such as IN / OUT as the primary event model.
Occupancy or current presence is useful, but by itself it is not sufficient for deterministic tracking because it does not fully capture the transition history required for downstream traceability logic.
8.2 Event Uniqueness and Reprocessing
Because downstream systems may store raw events as immutable records and apply idempotent ingestion logic, Appomax needs to understand how unique event identity is handled.
In particular, Appomax needs to know whether:
each event is guaranteed to have a unique identifier
the same event may be republished
retries can occur
duplicate deliveries are possible
8.3 Tracking Continuity
Where track-based logic is involved, Appomax needs to understand the behavior of:
trackID
uniqueTrackID
re-identification
occlusion handling
temporary loss of object visibility
This is especially relevant if downstream logic later uses historical event data to validate and improve tracking behavior analytically.
9. Questions Appomax Needs to Verify with Tapway
Below is the list of specific questions Appomax would like to verify.
Zone and AOI Configuration
Can SamurAI Copilot support multiple AOIs / zones per camera?
Can each zone be drawn as a polygon, or only as a rectangle?
Can each zone be assigned a business-friendly zone name / zone ID?
Can zones overlap or be placed adjacent to each other if required?
Direction and Event Semantics
Can each zone be configured with expected movement direction logic?
Can SamurAI Copilot generate both IN and OUT events explicitly?
What is the exact difference between event_direction and object_direction?
Is event_direction derived from zone logic, line-crossing logic, or some other rule?
Can bidirectional movement be supported in the same zone if needed?
PRESENT / OCCUPIED Logic
Is PRESENT / OCCUPIED available as a real-time state only, or can it also be published as an event?
If it can be published as an event, is it triggered only after the object remains in the zone for a configurable period?
Can the occupancy threshold or presence duration be configured per camera or per zone?
DWELL Logic
Can DWELL events be generated when an object remains in a zone longer than a configurable threshold?
Is the dwell threshold configurable per zone?
Can dwell time be included in both the event payload and the live zone state?
LOST TRACK / REAPPEAR Logic
Can SamurAI Copilot identify or flag temporary loss of tracking?
Can it indicate when an object is re-identified or reappears?
Under what conditions would LOST TRACK / REAPPEAR be emitted?
Is re-identification based on appearance, trajectory, or another method?
Identity and Event Reliability
Is uniqueEventID guaranteed to be unique?
Can the same event ever be resent or republished?
If the same event is resent, does it preserve the same uniqueEventID?
Is event ordering guaranteed per camera?
Can delayed or out-of-order events occur?
Track Identity
How stable is trackID and uniqueTrackID while the object is visible?
When does a track ID reset?
Can uniqueTrackID survive short-term occlusion?
Is there any camera-to-camera identity continuity, or is track identity only local to a single camera?
Event Filtering and Quality
Can confidence threshold be configured per model, class, camera, or zone?
Can repeated noisy events from the same object be suppressed?
Can minimum object size or filtering rules be configured?
Can event logic be tuned differently for different steel product classes?
Media and Auditability
Can every event include an image reference and/or event clip reference?
Are image and clip files retained for a configurable period?
Are file paths guaranteed to be available when the event is published?
Can the media reference be used later for audit / review purposes?
Integration and Output Format
Is the output schema stable across model versions?
Can Tapway provide a formal field definition for each output field?
Can Copilot publish a canonical event schema for external integration?
Can event payloads include custom fields if Appomax needs future extension?
10. Suggested Alignment Outcome
For Appomax, the preferred alignment outcome with Tapway is:
SamurAI Copilot publishes reliable raw movement events
zone-based and direction-based logic are configurable
IN and OUT are the primary event types
DWELL and PRESENT / OCCUPIED are optional supporting features
LOST TRACK / REAPPEAR is optional diagnostic support
event IDs, timestamps, and track IDs are clearly defined
payload semantics are documented and stable
downstream systems remain responsible for authoritative business tracking interpretation
11. Closing Position
Appomax sees SamurAI Copilot as a strong candidate to provide the upstream vision event layer for steel tracking, provided that the event semantics, zone logic, identity behavior, and reliability expectations are clearly aligned.
The key requirement is that the Vision AI output should be structured in a way that supports event-based downstream traceability, immutable event storage, and later business-level tracking logic, rather than merely producing frame-by-frame detection results.
I can also turn this into a more formal meeting memo format with sections like “Objectives / Assumptions / Open Questions / Proposed Next Steps” if you want.