Skip to content

Commit 32cbd52

Browse files
sbryngelsonclaude
andcommitted
Add terminal TUI (--tui) for 1D/2D interactive visualization
Adds a Textual-based terminal UI that works over SSH with no browser or port-forwarding. Features: variable sidebar, step navigation (,/./←/→), viridis heatmap with colorbar for 2D, colormap cycling with [c] (viridis/plasma/inferno/magma/cividis/coolwarm/RdBu_r/seismic/gray). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent d94f437 commit 32cbd52

4 files changed

Lines changed: 408 additions & 9 deletions

File tree

toolchain/mfc/cli/commands.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1031,13 +1031,20 @@
10311031
default=8050,
10321032
metavar="PORT",
10331033
),
1034+
Argument(
1035+
name="tui",
1036+
help="Launch an interactive terminal UI (1D/2D only). Works over SSH with no browser.",
1037+
action=ArgAction.STORE_TRUE,
1038+
default=False,
1039+
),
10341040
],
10351041
examples=[
10361042
Example("./mfc.sh viz case_dir/ --var pres --step 1000", "Plot pressure at step 1000"),
10371043
Example("./mfc.sh viz case_dir/ --list-vars --step 0", "List available variables"),
10381044
Example("./mfc.sh viz case_dir/ --list-steps", "List available timesteps"),
10391045
Example("./mfc.sh viz case_dir/ --var schlieren --step 0:10000:500 --mp4", "Generate video"),
10401046
Example("./mfc.sh viz case_dir/ --var pres --step 500 --slice-axis z", "3D slice at z midplane"),
1047+
Example("./mfc.sh viz case_dir/ --var pres --tui", "Terminal UI over SSH (1D/2D)"),
10411048
],
10421049
key_options=[
10431050
("--var NAME", "Variable to visualize"),
@@ -1046,6 +1053,7 @@
10461053
("--list-steps", "List available timesteps"),
10471054
("--mp4", "Generate MP4 video"),
10481055
("--interactive / -i", "Launch interactive Dash web UI"),
1056+
("--tui", "Launch terminal UI (1D/2D, works over SSH)"),
10491057
("--cmap NAME", "Matplotlib colormap"),
10501058
("--slice-axis x|y|z", "Axis for 3D slice"),
10511059
],

0 commit comments

Comments
 (0)