Excalibur
Automated reinforced-concrete design tool for XE-100 nuclear structures. Sole developer.
Overview
Excalibur is an end-to-end client/server engineering application I designed, built, packaged, and shipped solo at X-Energy. It ingests finite-element shell forces from any FEA platform (SAP2000, Staad.Pro, ANSYS) through a standardized 8-parameter interface and outputs ACI 349 / ACI 318 compliant reinforcement designs for XE-100 nuclear structures — replacing the manual MathCAD workflows the team had been using.
The goal was to give civil/structural engineers a tool they could install themselves, open like a desktop app, and use without IT involvement. Everything — the one-click launchers, the per-user installs, the venv + frontend builds on first run — is built around that constraint.
Architecture
- Frontend: React + TypeScript SPA. Drag-and-drop file ingest, live form validation against the 8-parameter interface, SSE-driven progress streaming.
- Backend: FastAPI (Python) with Server-Sent Events for long-running design calculations. Stateless — each design run is a clean request.
- Design engine: Custom Python implementations of the relevant ACI 349 / 318 reinforcement design provisions, validated against hand-calc reference cases.
- Packaging: Cross-platform (Windows / macOS / Linux) one-click launchers. First-run automatically creates the Python venv, installs deps, and builds the frontend bundle. Zero-admin per-user install — engineers double-click and start using it.
- CI/CD: Full GitLab CI pipeline with coverage gates. 800+ test suite (pytest backend + Vitest frontend) covering parameter validation, design provisions, end-to-end scenarios, and the FEA-input normalization layer.
Why it matters
Before Excalibur, every reinforcement design iteration meant a MathCAD round-trip for each load case. With Excalibur, an engineer drops in shell forces from any supported FEA tool and gets compliant reinforcement output in seconds, with the design provisions transparently logged in the response. The same backend can be driven programmatically by other internal services for sensitivity studies and batched parametric runs.
Stack
- Frontend: React, TypeScript, Vite, drag-and-drop file APIs
- Backend: FastAPI, Python 3.12, Server-Sent Events, Pydantic
- Domain: ACI 349 / ACI 318 reinforcement design, FEA shell-force interpretation, SAP2000 / Staad.Pro / ANSYS input normalization
- Testing: Pytest, Vitest, coverage gates in GitLab CI
- Packaging: Cross-platform launchers, per-user installs
Source and screenshots are internal to X-Energy. Architecture and design philosophy described here at the level of the resume.