Open Canvas Working Group logo

Open Canvas Working Group

Subscribe
Archives
January 18, 2025

Announcing OCIF 0.2 is ready for implementation

TL;DR: The OCWG has released a draft specification of the Open Canvas Interchange Format (OCIF) specification. While still a draft, it is considered ready for implementation.

An Example OCIF File

Here's a simple OCIF file containing a circle with "Hello, World!" in it:

{ 
  "ocif": "https://canvasprotocol.org/ocif/0.2",
  "nodes": [{
    "id": "n1",
    "position": [100, 100],
    "size": [50, 50],
    "resource": "r1",
    "data": [{ 
      "type": "@ocwg/circle", 
      "radius": 50
    }]
  }],
  "resources": [{
    "id": "r1",
    "representations": [{ 
      "mime-type": "text/plain", 
      "content": "Hello, World!" 
    }]
  }],
  "relations": [], // Sets, edges, hyper-edges, etc
  "schemas": [{
    "uri": "https://spec.canvasprotocol.com/node/circle/0.2",
    "name": "@ocwg/circle",
    "schema": {
      "properties": { 
        "radius": { "type": "integer" } },
      "required": ["radius"]
    }
  }]
}

OCIF files are a collection of:

  • Nodes: visual items, placed on the canvas.

  • Resources: content displayed by Nodes, such as text, vector drawings, raster images, videos, or audio files.

  • Relations: logical connections between Nodes (and other Relations).

  • Schemas: definitions of the structure of Nodes and Relations, including Extensions to the main spec.

What's Next

On March 14, 2024, Orion Reed and Jess Martin announced the Open Canvas Working Group with a goal of establishing interoperability between infinite canvas tools. Over the last nine months, we've met together bi-weekly (see Meeting Summaries with links to recordings) and worked through a lot of design challenges (see Design Decisions for a summary).

Over the next few months, we'll be focusing on adoption. Specific objectives include:

  • Documentation and examples

  • Define the core extensions (rectangles, circles, arrows, images, etc)

  • Build a validator for OCIF files

  • Build two-way converters between other canvas tools and OCIF (Obsidian Canvas, TLDraw, Excalidraw, etc)

If you're interested in helping out with any of these efforts, you can find all the necessary info on GitHub, join us in Discord, or join the next meeting on Tuesday, January 21 at noon ET.

A few special thanks for helping us get to this point:

  • Max Völkel for leading the charge on documenting and editing the spec.

  • Maikel van de Lisdonk for implementing OCIF in CodeFlowCanvas and organizing meeting logistics.

  • Aaron Franke for bringing insights from the glTF community.

Don't miss what's next. Subscribe to Open Canvas Working Group:
GitHub https://canvasproto…