Cells and hierarchy
Cells are how GDS organises geometry. One cell is the top cell (the root of what gets saved); other cells are reusable stamps.
The Cells panel lists every cell with its shape / SRef / ARef counts. Each row's tooltip also shows the cell's content extent and how many flattened instances of it exist across the whole design (AREFs counted as rows × cols); a cell instanced many times shows a small ×N badge. In flat view a header button cycles the sort between name, instance count, and area — handy for finding "which cell is placed 50 000 times" or the largest cells. Breadcrumb at the top of the canvas shows the edit context.
| Action | How |
|---|---|
| Add cell | + button at the top of the panel |
| Enter a cell (start editing its contents) | Double-click the cell row, or enter via an SRef/ARef in the canvas |
| Exit a cell (back to parent) | Click a breadcrumb crumb above the canvas |
| Rename | Click the pencil icon on the cell row, type, Enter |
| Delete | × button on the cell row (the top cell cannot be deleted) |
| Hide / show cell instances | Eye icon on the cell row. While hidden, every SRef/AREF that targets that cell is omitted from the canvas (the cell itself, its shapes, and the row stay — only the instances are muted). Useful for "mute the dummy fill" without changing layers. The hidden flag is per-document, undoable, and is not written to the .gds. |
| Group selection into a new cell | Right-click selection → Group. Selection is replaced by an SRef to the new cell. |
| Flatten hierarchy | Arrange → Flatten hierarchy: inlines every SRef/AREF in the active cell. |
Each cell row also shows a small shapes·refs count next to the cell name so you can scan the hierarchy at a glance.
Cell-model guarantees (what Glyph does differently than the raw GDS spec)
- Rename is safe. Renaming a cell also rewrites every SREF / AREF that pointed to it, and updates
topCellif needed. No dangling refs. - Cyclic references are refused at insert time. You cannot place cell A inside cell A, and you cannot place B inside A if A is already (directly or transitively) inside B.
- Deleting a cell cascades. All SRef/ARef instances of the deleted cell are also removed from every containing cell in the same command. A single
Undorestores the cell and every ref that pointed to it.
These guarantees mirror KLayout's cell model (refs-by-name, cycle-guarded inserts, cascade-delete) so files written by Glyph load cleanly in other tools.