What is CMF?
The Common Model Format (CMF) is a packaging standard that lets any detection model be loaded and run inside RIME — without custom integration code.
The problem CMF solves
Today, each lab's FOG detection model is a standalone script. It reads data in one format, produces output in another, and cannot be connected to an annotation tool without significant engineering work.
flowchart TD
A[Lab A annotates video] -->|manual scripts| B[Lab A trains FOG detector]
B -->|standalone model| C[Cannot load into annotation tool]
C -->|Lab B wants to test it| D[Lab B writes custom integration]
D --> E[Lab B reformats data]
E --> F[Lab B interprets output manually]
The result: models accumulate in papers but cannot be compared, reused, or evaluated against gold-standard annotations without significant effort.
The CMF contract
A CMF package declares:
- What it needs — which signal channels, at what sampling rate; or video
- What it produces — probabilities, event intervals, or point events
- Where to display output — which annotation lane and label
- How to run inference — sliding window or whole-signal
- What parameters the user can adjust — thresholds, window sizes
flowchart LR
subgraph pkg [".rime package"]
cfg[config.json]
wrap[wrapper.py]
end
RIME -->|reads| cfg
RIME -->|runs| wrap
cfg -->|tells RIME| i["Inputs: channels, Hz, shape"]
cfg -->|tells RIME| o["Outputs: probability / intervals / points"]
cfg -->|tells RIME| d["Display: lane + label"]
What a .rime package looks like
freeze-index.rime/
├── config.json # the contract
└── wrapper.py # the model
Any model that implements this contract can be loaded by RIME and run on any compatible session — no integration work required.
See Loading a Model to get started.