Skip to content

Repository files navigation

Pile Plan Studio

Explore, compare, and assign pile configurations for structural load points.

Release v0.2.0-alpha Total downloads LGPL-3.0 license Web and Windows Rust calculation core Tauri 2 desktop application

Try Pile Plan Studio in your browser


Pile Plan Studio is an open-source engineering application for reviewing pile options and assembling a practical pile plan. It brings structural load points, CPTs, foundation advice, utilization, pile costs, and configuration choices together in one interactive plan.

The engineering core is written in Rust. The same calculation model runs natively in the Tauri desktop application and through WebAssembly in the browser.

Pile Plan Studio showing the pile plan and pile options for a selected load point

Warning

Pile Plan Studio is currently a public alpha. Engineering results must be verified by a qualified professional. The application supports engineering decisions but does not replace responsibility for the foundation design.

Highlights

  • Inspect valid, insufficient, and missing pile configurations for every load point.
  • Select CPTs automatically using quadrant or maximum-angle rules.
  • Override the CPT selection manually for one or multiple load points.
  • Refresh individual imported sources while retaining matched pile assignments and CPT selections.
  • Inspect normalized imported load points, CPTs, and foundation advice in sortable, filterable source tables from the project explorer.
  • Compare utilization, foundation resistance, and estimated cost.
  • Adjust symbol size, preferred utilization range, and the foreground object type directly from the View ribbon.
  • Assign one pile configuration to one or multiple selected load points.
  • Lock load points per pile plan so their assignments remain unchanged during selection and optimization workflows.
  • Keep multiple named pile-plan variants in one project and compare their estimated costs.
  • Undo and redo project changes, with a concise description of the restored assignments, settings, or pile-plan variant.
  • Recover the latest browser project automatically after an accidental refresh or interrupted session.
  • Select load points by pile size or tip level from the plan legend, and edit which configurations are available through the legend editor.
  • Personalize the project legend with manual colors, 54 technical symbol and fill combinations, six automatic color schemes, and reversible mappings between pile size, tip level, shape, and color.
  • Run a greedy optimization with limits on sizes, tip levels, and complete configurations.
  • Save project data, settings, pile assignments, and CPT choices in IFCPP.
  • Export the active pile plan and selected CPT identifiers to Excel or CSV, using the pile-plan name as the file name.
  • Import pile assignments from the standard Pile Plan Studio table or legacy Vergrendeld.xlsx files as a new named pile plan, with validated ID and coordinate matching.
  • Resize both the project explorer and properties panel to suit the current workflow.
  • Save application-wide language, theme, interface scale, workspace layout, default currency, and an optional reusable pile-cost catalog separately from project-owned settings.
  • Maintain project-specific pile-size cost rows, including custom sizes, and explicitly save or load a personal default catalog.
  • Use the same Rust calculation core in the browser and Windows desktop app.

Screenshots

Import project data

Import load points, CPT coordinates, and foundation advice from separate CSV or XLSX sources and assign each file to its project role.

Import project data interface with separate source roles

Configure CPT selection

Set the maximum CPT distance, choose the selection algorithm, apply settings globally or locally, and override the resulting selection when engineering judgement requires it.

CPT selection settings for a selected load point

Optimize the pile plan

The current greedy optimizer searches for a lower-cost plan while respecting limits on the number of sizes, tip levels, and complete configurations.

Greedy pile-plan optimization settings and result

Try or Install

The live browser demo opens directly with the sample project and is the quickest way to explore the application.

The latest signed Windows x64 installer is available on the GitHub Releases page. The browser and desktop editions use the same Rust calculation core.

See the release notes for the changes in each alpha.

Supported Project Data

Pile Plan Studio imports three source roles:

Role Required content Formats
Load points ID, X, Y, FEd CSV, XLSX
CPTs ID, X, Y CSV, XLSX
Foundation advice CPT ID, pile tip level, pile size, Rc;net;d CSV, XLSX

In the current version, the standard tabular profile requires these columns to appear in the order shown in the table. The importer currently reads columns by position rather than by header name:

  • load points: ID, X, Y, FEd;
  • CPTs: ID, X, Y;
  • foundation advice: CPT ID, pile tip level, pile size, Rc;net;d.

One header row is optional, and additional columns after the required columns are allowed. The RFEM load-point profile is the exception: it detects the required RFEM columns by their headers. When those headers cannot be detected, it falls back to the traditional RFEM layout with nodes on the first worksheet and nodal reactions on the second.

The source files may be selected together and assigned to their roles before import. Load points can use either the standard tabular profile or the automatically detected RFEM Excel export profile. The RFEM profile joins node coordinates and reactions by node number and currently interprets the design load from the minimum PZ envelope (Min PZ', Min PZ, or Min).

Imported data, source profiles, project settings, selected piles, and manual CPT choices are stored in an .ifcpp project file.

When creating a project from source files, the pile head level is required. The project currency defaults to the user's application preference. Changing a currency code relabels costs; Pile Plan Studio does not perform currency conversion.

Import an existing pile plan

Use File > Import pile plan to add an Excel or CSV table as a new pile plan inside the active project. The imported plan is named after the source file and opened immediately; existing plans remain unchanged. The Standard table profile supports both pile assignments and CPT selections. The Legacy profile supports existing Vergrendeld.xlsx files and imports pile assignments only; rows that describe more than one pile are skipped with a warning.

Load points are first matched by ID when the imported coordinates agree. If that check fails, Pile Plan Studio falls back to one unique coordinate match. The coordinate tolerance is configurable for this workflow and defaults to 1 mm. Ambiguous, unmatched, or conflicting rows are skipped and reported in the import preview before the project is changed.

Selection and Inspection

  • Click a load point to select it.
  • Use Shift+click to add or remove a load point from the selection.
  • Use Shift+drag on empty viewer space to select load points with a lasso.
  • Hover over a marker to inspect its compact information.
  • When markers overlap, press Space to cycle through the candidates beneath the pointer before clicking.
  • Use Shift+click on a pile size or tip level in the legend to select load points that currently use it.
  • Press Escape or click empty viewer space to clear the selection.

In the pile-options table, click a row to assign its configuration. With multiple load points selected, the table shows their common options and applies the chosen configuration to all of them. Column headers support sorting and filtering.

Alpha Scope

The CPT-selection rules are configurable approximations rather than an objective engineering truth. The greedy optimizer supports decision-making but does not guarantee a globally optimal pile plan.

See Known Alpha Limitations for the complete scope.

Architecture

Layer Technology Responsibility
Engineering core Rust Project model, import, CPT selection, pile options, costing, optimization
Browser core WebAssembly Thin interface to the same Rust engineering core
Interface React + TypeScript Application state, interaction, rendering, and presentation
Desktop Tauri 2 Native window, file access, and Windows packaging

Repository layout:

  • crates/pile-plan-core: engineering domain and calculations;
  • crates/pile-plan-wasm: WebAssembly interface;
  • apps/pile-plan-studio: React application and Tauri desktop shell;
  • sample_project: example IFCPP project and source files;
  • docs: architecture, deployment, screenshots, and limitations.

See Architecture for more detail.

Build from Source

Requirements:

  • Node.js 20 or newer;
  • current stable Rust;
  • wasm-pack;
  • the Tauri prerequisites for desktop builds.

Run the browser development server:

cd apps\pile-plan-studio
npm install
npm run dev

Run the automated tests:

cargo test --workspace
cd apps\pile-plan-studio
npm test

Create the browser and Windows desktop builds:

cd apps\pile-plan-studio
npm run build
npm run tauri build

See Deployment for browser hosting and signed release details.

Contributing

Issues and pull requests are welcome. Keep engineering logic in the Rust core, add focused tests for behavioral changes, and keep browser and desktop behavior on the same project model.

Report bugs and ideas through the GitHub issue tracker.

AI-assisted Development

Development of Pile Plan Studio has been assisted by AI coding tools. Design decisions, engineering requirements, review, and validation remain under human responsibility.

License

Pile Plan Studio is licensed under the GNU Lesser General Public License v3.0 or later.

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages