--- title: Working on Projects --- # Working on Projects A project in XOD groups multiple patches together and forms a single storable/shareable entity. Usually, you create a XOD project per a real-world project, whatever it means. It could be a digital art installation for some upcoming event, a program to teach students, or a throw-away experiment for one evening. One project may target multiple physical devices if they are parts of a whole. To be more precise, XOD places no technical restrictions on what a project should contain or not contain. It is purely an organizational object. ## How to create a project Starting a new project in XOD IDE is as simple as hitting “File → New Project” in the main menu. A new project starts with a single patch called `main`, which has no special treatment. You can rename or delete it right away if you'd like to do so. ## Saving a project XOD stores projects locally on your computer in a file or files. In that sense, it is similar to numerous of other classic applications: You can save, save as, open, move, copy, or delete your project files on your PC or across machines. A subtle difference from other applications is that although XOD IDE can look like a multi-document editor (you open patches in tabs), the save operation is atomic and stores/updates every part of a project in a single shot. This behavior is necessary to avoid node reference inconsistencies and support the two possible storage flavors described below. ### Packed .xodball The default option to store a project is saving it as a so-called xodball, a format in which the whole project is dumped to a single file with the `.xodball` extension. Once you have a xodball, you can do with it the same things you would do with an office document file: send it to someone via e-mail, put it in Dropbox to share it with another PC, or duplicate it to make a quick backup.
| /path/to/project-directory | |
|---|---|
| dc-motors | Folder for the patch |
| patch.xodp | JSON describing the patch |
| README.md | Detailed description for the node |
| wiring_motorz.png | Arbitrary media file referred by README.md |
| servo | Folder for another patch |
| patch.cpp | C++ implementation for the patch node |
| patch.xodp | JSON describing the patch |
| project.xod | Project manifest: name, version, license, etc |
C:\Program Files\).