Cell types
Ganimede supports two cell types:Code cells
Execute Python code with output streaming:- An input area with syntax highlighting (Monaco editor)
- Execution count (
[1]:,[2]:, etc.) - Output area for results, plots, and errors
Markdown cells
Display formatted text, headings, and documentation:#.
Cell properties
Every cell has a comprehensive set of properties:Unique identifier (8-character random string by default)
Either “code” or “markdown”
Cell content as a list of strings (one per line)
Number of times this cell has been executed (code cells only)
Output objects from execution (code cells only)
Vertical position on the canvas (pixels from origin)
Horizontal position on the canvas (pixels from origin)
Cell height in pixels
Cell width in pixels
Current execution state: “idle”, “running”, “queued”, or “done”
Cell states
Cells transition through execution states automatically:- idle
- queued
- running
- done
Cell is not running and has no pending execution. This is the default state.
Cell identification
Each cell has a unique ID generated using a cryptographically secure random function:- No collisions between cells
- IDs are URL-safe for WebSocket communication
- Consistent 8-character length for clean display
Creating cells
Create a new cell by:- Using the context menu (right-click on canvas)
- Using keyboard shortcuts
- Programmatically through the API
- Type:
"code" - State:
"idle" - Position: Where you created it (or 0, 0)
- No execution count or outputs
Positioning cells
Cell position properties control layout on the canvas:- Drag cells to new positions
- Resize cells by dragging edges
- Align cells using grid snapping
Cell outputs
Code cells accumulate outputs as they execute:- Stream output:
print()statements - Display data: Images, plots, HTML
- Error output: Exceptions and tracebacks
Saving cell data
When saving a notebook, cells are serialized with their metadata:gm metadata section stores Ganimede-specific properties like position and size, keeping them separate from standard Jupyter notebook metadata.
Cell operations
Common operations you can perform on cells:Execute
Run code cells and see outputs in real-time
Edit
Modify cell content with full syntax highlighting
Move
Drag cells anywhere on the infinite canvas
Resize
Adjust cell dimensions to fit your content
Delete
Remove cells from your notebook
Convert
Switch between code and markdown types
Heading cells
Markdown cells with headings have special properties:Next steps
Code execution
Learn how cells execute and produce outputs
Tissue grouping
Organize cells into hierarchical groups
Canvas
Master the 2D workspace for cell layout