Skip to content

Fusion Data Platform Installation

There are two ways to install the Fusion Data Platform:

  • Method 1: the fdp-core conda package puts the whole FDP stack in one environment. Quickest for interactive analysis or a shared environment.
  • Method 2: the installer bootstraps a self-contained, pixi-based project directory. Use it when you want a per-project environment whose pixi.toml you can commit and share.

Both pull the same blessed set of packages from the ga-fdp channel. You can substitute mamba or micromamba for conda below.

Method 1: conda package

Install the fdp-core metapackage directly into a new environment:

conda create -c ga-fdp -c conda-forge -n fdp fdp-core
conda activate fdp

This gives you the full data-access stack (DIII-D and MAST/MAST-U signal classes, MDSplus/IMAS access) and the fdp command-line tool. It also gives you fdp-install, since fdp-installer is itself part of fdp-core, which is handy for spinning up pixi projects later (see Method 2).

Two flavors are available:

  • fdp-core, the stable, exact-pinned set. Recommended.
  • fdp-core-latest, a rolling set tracking the newest compatible versions:
conda create -c ga-fdp -c conda-forge -n fdp fdp-core-latest

Method 2: the installer

The installer creates a pixi-managed project directory. First install the fdp-installer conda package and then run the fdp-install script:

conda create -c ga-fdp -c conda-forge -n fdp-installer fdp-installer
conda activate fdp-installer   # or whatever you named the environment

Install into the current directory:

fdp-install

...or a specific directory:

fdp-install --directory /path/to/project
# or
fdp-install -d /path/to/project

The installer will:

  1. Create the specified directory if it doesn't exist
  2. Write a pixi.toml that depends on the fdp-core metapackage
  3. Install all dependencies with pixi
  4. Print how to activate the environment and select a tokamak

To activate the environment afterward:

cd /path/to/project
pixi shell

Tip: you don't need a separate installer environment. Since fdp-install ships inside fdp-core, you can run fdp-install -d /path/to/project from a Method 1 environment to scaffold new pixi projects.

Optional add-ons

By default fdp-install deploys the stable fdp-core set. A few opt-in flags are available:

fdp-install --latest           # track fdp-core-latest (newest compatible versions)
fdp-install --install-skills   # also install the AI-assistant skills to ~/.claude/skills
fdp-install --with-labeler     # add ga-dfl-labeler

These may be combined, e.g. fdp-install -d /path/to/project --latest.

Note: the CMF provenance layer used to need an opt-in --with-cmf flag, because ml-metadata was pip-only. Both cmflib and toksearch_cmf are now conda packages and ordinary members of fdp-core, so provenance ships by default and the flag is gone. See Provenance and CMF.

Choosing a tokamak

fdp-core is multi-device: it provides data access for both DIII-D (d3d) and MAST/MAST-U (mast) regardless of which install method you used. Python signal usage (e.g. from toksearch_d3d import PtDataSignal, from toksearch_mast import MastSignal) works without any extra configuration.

Most fdp commands need no device selection at all:

  • fdp env and fdp run compose the environments of all installed devices. Their variables are disjoint, so the union is well-defined. If two devices ever set the same variable differently, fdp names the conflicting variable and asks you to choose.
  • fdp ls uses the device that has an origin server.
  • fdp login / fdp logout use the device that requires a bearer token.

When you do want to pin one explicitly, in increasing order of persistence:

# Per command (either side of the subcommand):
fdp --device d3d run python my_script.py
fdp run --device d3d python my_script.py
fdp ls -D d3d /archives

# For the whole shell session:
export FDP_DEFAULT_DEVICE=d3d

# Persistently:
fdp device use d3d          # records it in ~/.fdp/config.toml
fdp device use --clear      # undo

fdp device list shows each installed device and what it can do. Substitute mast for d3d to work with MAST/MAST-U.