File reference

What a Zeon project looks like on disk, and which page documents each file.

A project is a folder of plain text files. The CLI, the web IDE, and the sync service all read and write the same layout, so anything you see in one place exists as a file you can open in another.

my-project/
├── project.json
├── skills/
│   └── <skill_id>/
│       ├── metadata.yaml
│       └── robotic_code.py
├── workflows/
│   └── <workflow_id>.json
├── worlds/
│   └── <world_id>/
│       └── world_state.json
├── objects/
│   └── <object_name>/
│       ├── <object_name>.urdf
│       ├── <object_name>.object_model.yaml
│       └── tag_collections/       # optional: one file per tagged physical unit
│           └── <handle>.yaml
├── canvas/
│   └── <workflow_id>_screen.tsx
├── inputs/                     # optional: input presets a canvas can offer
│   └── <name>.json
└── data/                       # generated during runs, synced to the cloud
    ├── captures/<run>/
    ├── logs/<run>/
    └── api/<run>/

Item names are lowercase, start with a letter or underscore, and may contain letters, digits, underscores, and hyphens, up to 64 characters.

The last two folders are not something you hand-write. data/ holds the run output you opt to keep (captured images, saved API responses, mirrored run logs), keyed per run, and is pushed to the cloud when a run finishes. See the project data folder. A run can also send that output to a bucket your lab owns, which is a separate destination and leaves nothing here; see Data Export. inputs/ is optional and holds input presets a canvas can offer as a dropdown.

tag_collections/ is optional too. It holds one small file per physical copy of an object that carries fiducial tags, and it ships with the object rather than being something you author. See The object model file.

FileWhat it holdsReference
project.jsonProject manifest and the active workflow and world pointersProject.json
skills/<id>/metadata.yamlSkill id, parameters, preconditions, postconditionsSkill metadata.yaml
workflows/<id>.jsonThe workflow graph: nodes, edges, inputsWorkflow JSON
worlds/<id>/world_state.jsonScene contents and simulation configWorld state JSON
objects/<name>/<name>.object_model.yamlParts, articulations, anchors, and motions for one objectObject model YAML
📝

These pages describe files the tools write for you. Creating items through the CLI or the IDE produces valid files, and the editors keep them valid as you work. Read these pages to understand a file you are looking at, to review a change before you sync, or to fix something a tool cannot express. Hand editing is the exception, not the normal path.

Skills also carry Python that runs on the robot. For how that code is structured, see Authoring a skill.


Did this page help you?