Catalog – Item Management
The Catalog is the heart of Art.Works! Studio. Here you organize all your artworks, assets, and projects.
Concept
Each item in the Catalog has:
- Sidecar file – Metadata as JSON
- Artwork folder – Your creative code
- Attachments – Additional files
- Snapshots – Saved states
Directory Structure
workspace/catalog/items/
├── item-001/
│ ├── sidecar.json # Metadata
│ ├── Artwork/ # Creative Code
│ │ ├── package.json
│ │ ├── src/
│ │ └── dist/
│ ├── Attachments/ # PDFs, images, etc.
│ └── Snapshots/ # Saved states
├── item-002/
└── ...Creating Items
Via UI
- Click + New in the toolbar
- Choose a template (Blank, Particles, Grid, etc.)
- Enter name and labels
- Click Create
Via CLI
npm run create:artwork -- --name "My Artwork" --template particlesSidecar File
The sidecar.json contains all metadata:
{
"id": "item-001",
"name": "Entities",
"alias": "entities-001",
"type": "cc-artwork",
"labels": ["generative", "particles"],
"tags": ["animation", "interactive"],
"created": "2024-01-15T10:30:00Z",
"modified": "2024-06-20T14:22:00Z",
"description": "Agent-based particle system",
"thumbnail": "Snapshots/thumb.png"
}Labels & Tags
| Concept | Purpose | Examples |
|---|---|---|
| Labels | Categorization | generative, plotter, interactive |
| Tags | Free keywords | animation, p5js, wip |
Using Filters
// Filter by labels
const filtered = items.filter(item =>
item.labels.includes('generative')
);
// Search by tags
const tagged = items.filter(item =>
item.tags.some(tag => tag.includes('animation'))
);Aliases
Aliases enable readable URLs:
| ID | Alias |
|---|---|
item-001 |
entities-001 |
item-002 |
particles-wind |
Mapping in index.json:
{
"aliases": {
"entities-001": "item-001",
"particles-wind": "item-002"
}
}Number Sequence
IDs are automatically assigned:
item-001, item-002, item-003, ...The NumberSequenceManager handles the sequence and prevents conflicts.
Import / Export
Export
# Export as ZIP
npm run export:item -- item-001 --output ./exports/Import
# Import ZIP
npm run import:item -- ./exports/item-001.zip