Open Coaching Format
An open standard for representing sports coaching diagrams, drill animations, and playbooks as structured data.
No open standard for this exists today — coaching tools like the FIBA Europe Coaching App, FastDraw, and Sportplan.net all use proprietary, image-only formats. OCF is a JSON-based alternative any tool can read, write, and render.
Quick example
A pass followed by a cut to the basket, in half-court FIBA coordinates:
{
"court": { "ruleset": "fiba", "type": "half_court" },
"entities": [
{ "type": "offense", "nr": 1, "x": -3.0, "y": 6.0 },
{ "type": "offense", "nr": 2, "x": 3.0, "y": 6.0 }
],
"balls": [ { "id": "ball_1", "carried_by": "offense_1" } ],
"frames": [
{
"id": "frame_1",
"actions": [
{ "player": "offense_1", "type": "pass", "to_player": "offense_2" },
{ "player": "offense_1", "type": "cut", "moves": [ { "to": { "named": "basket" } } ] }
],
"end_state": {
"offense_1": { "named": "basket" },
"balls": { "ball_1": { "carried_by": "offense_2" } }
}
}
]
}Explore
Using the Validator
Try the reference validator instantly in the browser playground — nothing is uploaded, validation runs client-side. Itserror codes are documented separately.
ocf-validatoris not yet published to npm or PyPI. Run it from source instead:
git clone https://github.com/opencoachingformat/ocf-validator
cd ocf-validator/packages/ts
npm install && npm run build
node dist/cli.js path/to/your-file.ocf.jsonA Python implementation with matching validation behavior is available under packages/py in the same repository.