From spreadsheet to LEAP RC-PIER in one paste: meet EasyLEAP
EasyLEAP is a zero install React app that turns pasted bearing, column, and cap load tables into a clean LEAP RC-PIER import TXT file.
EasyLEAP (a.k.a. LEAP Load TXT Builder) is a small browser tool we built to remove a quiet but real source of friction in everyday bridge engineering workflows: turning bearing, column, and cap reaction tables into a clean, LEAP RC-PIER ready import file without copy paste mistakes.
It is now public and runs entirely in your browser.
- Live app: easyleap.vercel.app
- Source: github.com/sandslamsal/easyleap
What it does
EasyLEAP accepts three pasted inputs — Bearing Loads, Column Loads, and Cap Loads — and produces a single normalized LEAP RC-PIER style TXT file you can paste straight into LEAP.
- Large paste areas for each load section
- Robust parsing for comma, tab, and whitespace delimited rows from Excel, PDF, or plain TXT
- Per row validation with a count of pasted / parsed / filtered / invalid rows so you know exactly what was rejected and why
- Automatic uppercase normalization for direction tags
- Optional fifth bearing tag (
T,L, etc.) for bearings that need it - LEAP style preview with the exact section headings
- Copy to clipboard and
.txtdownload - Responsive desktop and mobile UI
EasyLEAP running entirely in the browser — paste tables in, get a clean LEAP TXT out.
Who it is for
Bridge engineers, EITs, and reviewers who routinely move reaction data out of an analysis spreadsheet (or a structural model export) and into LEAP RC-PIER. EasyLEAP is the small step between those two — the part that is usually done by hand and where small format errors cost a non trivial amount of time during model checks.
Architecture
EasyLEAP is intentionally tiny and stays in the browser:
- React + Vite single page app — no server, no account, no data upload. Your load tables never leave your machine.
-
src/utils/parsers.js— the parsing core: tolerant delimiter detection (comma, tab, whitespace), header line stripping, per row validation, and per row error reporting. -
src/utils/transformSettings.js— bearing point delete filters, remap settings, and the LEAP style assembly that produces the export TXT in the exact section order RC-PIER expects. -
src/components/— independent panels per section (Bearing / Column / Cap), a settings panel for remap rules, a status banner for validation feedback, and a preview panel showing the final TXT. -
scripts/verify-parser-rules.mjs— a node script that runs the parser against fixture rows so the validation rules can be regression checked outside the browser.
How to use it
- Open easyleap.vercel.app.
- Paste your bearing reactions into the Bearing Loads panel (rows copied from Excel, your model export, or a PDF table all work).
- Repeat for column and cap loads. Use the Paste Sample buttons if you want to see the expected input shape first.
- Watch the Pasted / Parsed / Filtered / Invalid counts update live — invalid rows are quoted back to you so you can fix them in place.
- Toggle bearing remap rules in Settings if your numbering does not match the LEAP model node ids.
- Click Preview / Export. Copy the TXT into LEAP or
Download the
.txtfile.
The optional load case / description field is shown in the UI for workflow context only — it is not written into the exported TXT, matching what LEAP expects on import.
What is next
Issues, ideas, and pull requests are welcome on the GitHub repository. The roadmap is intentionally short: more delimiter heuristics for messy PDF copies, optional in browser remembered settings, and an extended preview that flags duplicate bearing tags before export.
If LEAP RC-PIER is part of your workflow, give EasyLEAP a try and let me know which edge case it misses on your data.