EtabExtension is a version-control, automation, and reporting platform for ETABS structural engineering workflows.
It is designed for engineers who work with ETABS models every day and need a more reproducible way to manage model versions, run analysis workflows, inspect results, compare design states, and generate engineering reports.
Status: active R&D / internal production prototype. The current focus is a reliable golden path from ETABS model to analysis results to report output.
Traditional ETABS workflows are usually file-based:
Project/
Tower_v1.edb
Tower_v2.edb
Tower_final.edb
Tower_final_revised.edb
This works for small studies, but it breaks down when a project has many design iterations, branches, reports, and review cycles.
EtabExtension explores a different workflow:
ETABS model
-> versioned design state
-> analysis / extraction
-> post-processing
-> charts and tables
-> reproducible report
The goal is not to replace ETABS. The goal is to add a computational layer around ETABS so model evolution, analysis output, and reporting become easier to track and reproduce.
EtabExtension treats each important model state as a design version. This allows engineers to track model history, compare alternatives, and connect engineering decisions to actual model snapshots.
The current workflow focuses on a practical end-to-end path:
Open / select model
-> run or reuse analysis
-> extract structured results
-> review results in the desktop UI
-> generate report output
This keeps the tool grounded in real structural engineering work instead of becoming a generic file manager.
The desktop application provides direct access to extracted analysis results, so engineers can inspect model output before producing final reports.
Reports are generated from structured calculation and rendering outputs rather than manual copy-paste workflows. The intended pipeline is:
Engineering data -> calculation / post-processing -> charts / tables -> Typst PDF report
The architecture is designed so future AI and MCP-style tools can call the same stable workflows as the CLI and desktop app. AI is treated as an orchestration layer with skills on top of explicit engineering tools, not as a replacement for engineering logic
EtabExtension is built as a Rust workspace with a thin CLI, a Tauri desktop application, and modular crates for domain workflows, data processing, reporting, and future agent integration.
ETABS
<-> C# sidecar / EtabSharp integration
<-> Rust API layer
<-> CLI / Tauri desktop UI
<-> calculation, rendering, reporting, and agent workflows
High-level workspace structure:
crates/
ext # CLI binary; thin clap layer
ext-api # Application workflows / single source of truth
ext-core # Domain logic, versioning, VCS, sidecar client file operations
ext-db # Config, project registry, state storage
ext-calc # Engineering calculation and post-processing layer
ext-render # Chart / figure rendering layer
ext-report # Typst-based report generation
ext-tauri # Desktop application shell
ext-agent # Agent workflow layer
ext-agent-llm # LLM provider abstraction
ext-e2k # E2K parsing / model text representation work
Frontend / desktop tooling:
Tauri 2
React / TypeScript
pnpm workspace
Storybook for UI development
The project is evolving quickly. Current work includes:
- CLI workflow foundation
- Tauri desktop UI
- ETABS-side workflow integration through a sidecar approach
- analysis-oriented results view
- calculation / rendering / reporting pipeline
- Typst-based PDF report direction
- version-control concepts for ETABS model states
- future MCP / agent workflow foundation
| Area | Technology |
|---|---|
| Desktop shell | Tauri 2 |
| Core engine | Rust |
| ETABS API bridge | C# / EtabSharp sidecar approach |
| CLI | clap |
| Frontend | React + TypeScript |
| Data processing | Polars |
| Reporting | Typst / Typst PDF |
| Storage / state | SQLite / project state files |
| Versioning | Git-backed concepts and model manifests |
| AI direction | MCP / agent-ready workflow layer |
Install dependencies:
pnpm installRun the desktop app:
pnpm devBuild the desktop app:
pnpm buildRun Rust tests:
cargo testGenerate TypeScript bindings from Rust types where applicable:
pnpm gen-typesShort-term focus:
- stabilize the model -> analysis -> results -> report golden path
- improve the desktop analysis tab and report workflow
- package a clear demonstration case
- keep the CLI and desktop app using the same Rust API layer
Long-term direction:
- semantic comparison between ETABS model states
- branch-based design alternatives
- reproducible engineering reports
- AI-assisted engineering summaries and workflow orchestration
- MCP / agent tools that operate on explicit structural engineering commands
Structural engineering models are complex, iterative, and long-lived. A single project can contain many design alternatives, load combinations, analysis results, and reporting cycles. EtabExtension investigates how software-engineering ideas such as versioned state, reproducible pipelines, and tool-based automation can improve structural engineering practice.
The broader goal is to move from manual model-and-report workflows toward computational structural engineering workflows that are traceable, reviewable, and easier to automate.
This project is an independent R&D effort and is not affiliated with Computers and Structures, Inc. ETABS is a trademark of its respective owner.