pluto-ecss

A PLUTO (ECSS-E-ST-70-32C) to Python transpiler and runtime.

Take a spacecraft operations procedure written in PLUTO and get back a runnable Python program.

procedure
    declare
      event chaos described by Total disaster
    end declare
    main
      initiate Switch on Star Tracker2
      in parallel until all complete
        initiate and confirm step BRING UP REACTION WHEEL
          main
            initiate and confirm Switch on Reaction Wheel3 of AOC of Satellite;
          end main
        end step;
        initiate and confirm step BRING UP STAR TRACKER
          main
            initiate and confirm Switch on Star Tracker1;
          end main
        end step;
      end parallel
    end main
end procedure
$ pip install pluto-ecss
$ pluto-ecss run script.pluto
[ACTIVITY] Switch on Star Tracker2
[ACTIVITY] Switch on Reaction Wheel3 of AOC of Satellite
[ACTIVITY] Switch on Star Tracker1

Highlights

  • Real transpiler, not a tree-walker. PLUTO → readable Python source that imports a small runtime library.
  • Live TUI demo. pluto-ecss demo visualises a fake satellite reacting to your procedure in real time.
  • Friendly errors. Parse failures show source line, column, and a caret with a structural hint.
  • Modern Python packaging. pip install pluto-ecss, console script, GitHub Actions matrix on 3.9 / 3.11 / 3.13.
  • Pygments syntax highlighter. pygmentize -l pluto … (and these very docs use it).

Continue reading