◆ FORGE Suite
GitHubMechanical Neuroimaging Lab · Univ. of Delaware
Skip to content

Palette Card Authoring ​

The workflow palette is a library of pre-configured stage and step templates that can be inserted into any workflow from the Stages and Steps tabs in the workflow editor.


Card Types ​

There are two kinds of palette cards:

TypeKeyDescription
Stage cardstage:A complete stage with type, backend, and one or more pre-configured steps
Step cardstep:A single step with params, scoped to specific backends

Card Locations ​

LocationSourceRead/Write
resources/palette/ (in app bundle)Bundled cards shipped with FORGE StudioRead-only
~/.forge-studio/palette/User cards created via the UI or manuallyRead/Write

Cards in both locations are loaded at startup. The user palette directory is created automatically on first launch.


Stage Card Format ​

yaml
palette_version: 1                  # required — always 1
id: espirit-calib                   # required — unique slug (used as filename)
display_name: ESPIRiT Calibration   # required — shown in the palette
category: Sensitivity Maps          # required — used for grouping
description: Estimates coil sensitivity maps using ESPIRiT  # optional
tags: [calibration, preprocessing]  # optional — used in search

stage:                              # required — full WorkflowStage definition
  name: Sensitivity Calibration
  type: preprocessing               # preprocessing | reconstruction | postprocessing | custom | interactive
  backend: python                   # forge | matlab | runmat | python | julia
  steps:
    - id: espirit_calib
      name: ESPIRiT Calibration
      module: espirit_calib
      params:
        calibration_size:
          type: int
          label: Calibration region size
          default: 24
          min: 4
          max: 128
          step: 4

Step Card Format ​

Step cards additionally require compatible_backends so the UI can filter them when a particular stage backend is selected.

yaml
palette_version: 1
id: coil-compression
display_name: PCA Coil Compression
category: Preprocessing Utilities
description: Reduces coil count via PCA before reconstruction
tags: [preprocessing, coil, pca]
compatible_backends: [python, julia]   # required for step cards

step:                                  # required — full WorkflowStep definition
  id: coil_compress
  name: Coil Compression
  module: coil_compress
  params:
    target_coils:
      type: int
      label: Target coil count
      default: 8
      min: 1
      max: 64
    method:
      type: enum
      label: Compression method
      values: [pca, gcc, rss]
      labels:
        pca: PCA (recommended)
        gcc: GCC
        rss: Root-Sum-of-Squares
      default: pca

Interactive Gate Cards ​

Stage cards with type: interactive get amber visual treatment in the palette (instead of the standard accent blue) to signal that they pause the pipeline for user review.

yaml
palette_version: 1
id: brain-mask-gate
display_name: Brain Mask Gate
category: Interactive Gates
description: Pauses the pipeline for manual brain mask review

stage:
  name: Brain Mask Review
  type: interactive
  backend: python
  auto_approve: false           # false = always pause; true = skip gate in batch mode
  steps:
    - id: brain_mask
      name: Brain Mask
      module: brain_mask_auto
      params:
        threshold:
          type: float
          label: Mask threshold
          default: 0.1
          min: 0.0
          max: 1.0
          precision: 3

Categories ​

Categories are free-form strings — use whatever makes sense for your domain. Suggested conventions:

CategoryContents
Sensitivity MapsCoil sensitivity estimation (ESPIRiT, Walsh, etc.)
ReconstructionCore image reconstruction algorithms
Preprocessing UtilitiesSteps that run before reconstruction
PostprocessingImage-space filtering, normalisation
Interactive GatesStages that pause for user review
Transfer & ExportOutput formatting, file conversion

Cards within the same category are grouped together in the palette panel.


Search and Filtering ​

The palette search box matches against display_name, category, and tags. For step cards, when a stage is selected in the pipeline the Steps tab automatically filters to only show cards whose compatible_backends includes the selected stage's backend.


Adding Cards via the UI ​

  1. In the workflow editor, select a stage in the Pipeline tab.
  2. Click the + icon in the top-right of the stage inspector header.
  3. Fill in the display name, category, and optional description.
  4. Click Save to Palette — the card is written to ~/.forge-studio/palette/<id>.yaml.

The card will appear in the Stages tab of the palette immediately (no restart needed, as the palette is reloaded each time the editor opens).


Adding Cards Manually ​

Drop a .yaml file matching the format above into ~/.forge-studio/palette/. The filename should match the id field (e.g. espirit-calib.yaml for id: espirit-calib). The card will be loaded the next time the workflow editor is opened.


Exporting Cards ​

Right-click any user card in the palette and choose Export… to save it as a standalone YAML file that can be shared with colleagues or checked into a shared repository.


Bundled Cards ​

FORGE Studio ships with five bundled cards:

IDDisplay NameTypeCategory
espirit-calibESPIRiT CalibrationStageSensitivity Maps
cs-sense-reconCS-SENSE ReconstructionStageReconstruction
brain-mask-gateBrain Mask GateStage (interactive)Interactive Gates
coil-compressionPCA Coil CompressionStepPreprocessing Utilities
grappa-reconGRAPPA ReconstructionStageReconstruction

FORGE Studio