Install the FERS Python package
One pip command gets you the Python modelling layer and the compiled Rust solver. Local analysis needs no account, no key and no network — a key only unlocks Pro limits, cloud model storage and the hosted endpoints.
1. Install the package
The package is published on PyPI as FERS. It ships the Python model-building layer plus the compiled solver wheel, so there is nothing else to build.
pip install FERSRequires Python 3.11 or newer. Wheels are published for Windows, macOS and Linux — no Rust toolchain is needed to install.
2. Verify the installation
Import the core objects and construct an empty model. If this runs without raising, the compiled solver loaded correctly.
from fers_core import FERS, Node, Member, Section, Material, NodalSupport, NodalLoad
# Quick smoke-test
model = FERS()
print("FERS installed successfully")3. Authenticate with the cloud (optional)
You only need this for Pro limits, saving models to your account, and the hosted REST and MCP endpoints. There are two ways to authenticate, depending on how you signed up.
- Option A — email and password account — Exchange your credentials for a 1-hour Bearer token via
POST /api/sdk/token. Only works for accounts created with an email and password. - Option B — Google or GitHub account (recommended for everyone) — Create a permanent API key from your Profile page → API Keys. No password required, it works for any sign-in method, and you can revoke it at any time.
Option A: short-lived Bearer token
The token lasts one hour. Fetch a fresh one when it expires rather than storing it.
import requests
resp = requests.post("https://ferscloud.com/api/sdk/token", json={
"email": "you@example.com",
"password": "your_password",
})
token = resp.json()["token"]Option B: persistent API key
An API key has the shape <keyId>.<secret> and is shown once, at creation. Store it in an environment variable and keep it server-side — never in browser code or a committed file.
import os
os.environ["FERS_API_KEY"] = "<keyId>.<secret>"Cloud authentication is only needed for Pro limits, saving models and the hosted endpoints. Local analysis with run_analysis() works without any credentials.
What you get without paying
The free tier is for non-commercial use: it solves models up to 100 members, with no account and no key. Pro covers commercial use, raises the limit to 10,000 members and adds cloud model storage.
There is no solve quota and no per-solve price on any channel: the package, the fers command and the local MCP server solve on your machine, and FERS Studio solves in your browser. Pro is €19.95/month.
| Free | Pro | |
|---|---|---|
| Members per model | 100 | 10,000 |
| Commercial use | No | Yes |
| Local solving | Unlimited | Unlimited |
| Account required | No | Yes |
| Cloud model storage | No | Yes |
Next steps
- Build and solve a model — the core objects and a first analysis.
- Worked examples — cantilever, simply supported beam, portal frame and an EN 1993-1-1 check, each with its closed-form hand check.
- Why script a calculation at all — the case for the Python route.
Related pages
Quickstart: your first model in the browser
Build and solve a 3D frame in the browser: materials, sections, nodes, supports, members, loads, Calculate.
Build and solve a model in Python
The core Python objects, how they fit together, and how to read displacements, internal forces and reactions.
FERS from the terminal and from coding agents
The fers command: validate, solve to a file, check and inspect models from a shell or a coding agent, with a skill file for the working loop.
See also
Frequently asked questions
What is the pip package called?
pip install FERS. The import name is fers_core — for example from fers_core import FERS, Node, Member.Do I need an API key to run an analysis?
run_analysis() solves locally with no credentials and no network access. Keys are only for Pro limits, cloud model storage and the hosted REST and MCP endpoints.