Documentation

phinen Docs

Everything you need to run structural, thermal, and fluid simulations on your geometry — from uploading your first STL to integrating phinen into your design pipeline via API.

Quick Start

New to phinen? Pick the path that matches where you are:

🚀
Run your first simulation
Upload a geometry, set up boundary conditions, and get results in under 2 minutes.
Integrate via API
Trigger simulations programmatically from your own tooling, CI/CD, or PLM system.
📐
Follow a tutorial
Step-by-step walkthrough with real geometry examples for structural, thermal, and CFD.

Supported File Formats

phinen accepts the most common 3D CAD and mesh formats. Upload your geometry directly through the web interface or via the API /upload endpoint.

.STL
Stereolithography format. Most widely supported. Binary and ASCII both accepted. Recommended for quick analysis.
✓ Supported
.STEP / .STP
Standard for Exchange of Product data. Preserves material assignments and assembly structure from CAD tools.
✓ Supported
.OBJ
Wavefront OBJ. Suitable for solid geometries. Multi-object files accepted with named region tagging.
✓ Supported
.IGES / .IGS
Initial Graphics Exchange Specification. Legacy CAD export format — supported for compatibility with older toolchains.
✓ Supported
.F3D / .IPT
Fusion 360 and Inventor native formats. Direct import planned via CAD plugin integration.
⏳ Coming Soon
.SLDPRT
SolidWorks part file. Full parametric import with feature tree planned as part of the CAD plugin roadmap.
⏳ Coming Soon
ℹ️
Maximum file size is 500 MB for web upload. Files up to 2 GB are supported via the API with multipart upload. Complex assemblies with more than 5M faces may require simplification for optimal inference speed.

Your First Simulation

This guide walks you through running a structural analysis on a mechanical bracket — from upload to engineering report — in under 2 minutes.

1
Upload your geometry
Navigate to fea.phinen.com and drag your STL file onto the upload zone, or click to browse. The 3D viewer renders your geometry immediately — no pre-processing required.
2
Describe your problem in chat
Type your setup in plain English in the chat panel. For example: "This is an aluminium bracket fixed at the rear face with a 1000 N downward load on the front flange. Run a static structural analysis." The LLM advisor will parse your intent and populate the config fields automatically.
3
Review and confirm the simulation plan
phinen generates a structured simulation plan showing the physics domain, material properties, boundary conditions, and solver mode. Review it in the sidebar and make any adjustments before running.
4
Click "Run Simulation"
The ML surrogate model (MeshGraphNet) runs inference on the full 3D mesh graph. Most geometries complete in under 1 second. The confidence gate validates physical plausibility — if confidence is below threshold, the system automatically escalates to the FEniCSx high-fidelity solver.
5
Review results and download report
Results are rendered directly on your geometry — von Mises stress, displacement, temperature, or velocity fields depending on your physics domain. The AI generates a written engineering report with hotspot locations, safety factors, and design recommendations. Download as PDF or JSON.

Physics Domains

phinen currently supports three simulation domains. Select your domain in the config panel or simply describe your problem in chat and the system will identify the correct domain automatically.

Structural FEA

Static linear elastic analysis for mechanical components and assemblies. Computes von Mises stress, principal stresses, displacement, and safety factor across the geometry under applied loads and constraints.

Typical inputs: Fixed faces/edges, point/distributed loads, pressure, gravity. Outputs: Stress field, displacement field, safety factor, failure zone annotations.

Thermal & CFD

Steady-state temperature distribution and airflow simulation. Predicts heat transfer, temperature gradients, velocity fields, and pressure distributions. Particularly effective for electronics thermal management, HVAC, and heat exchanger design.

Typical inputs: Heat sources (W), inlet velocity/temperature, ambient conditions, convection coefficients. Outputs: Temperature field, velocity vectors, pressure distribution, hotspot locations.

Multiphysics (Coupled)

Coupled analysis across two or more physics domains — for example, thermal expansion driving structural stress, or fluid pressure loading a structural surface. Available as a sequential (one-way) or iterative (two-way) coupling mode.

⚠️
Two-way coupled multiphysics simulations require significantly more compute and may take 15–60 seconds depending on geometry complexity and convergence. The confidence gate applies independently to each physics domain.

Boundary Conditions

Boundary conditions can be specified three ways: (1) through natural language in the chat interface, (2) directly in the config sidebar, or (3) programmatically via the API payload.

Structural BCs

ConditionDescriptionUnits
fixed_faceZero displacement and rotation on the selected face. Applied to faces by index or bounding-box region.
point_loadConcentrated force at a point or averaged across a face region.N
distributed_loadPressure load applied uniformly over a face.Pa
gravityBody force due to gravity. Direction vector configurable.m/s²
symmetrySymmetry plane constraint. Halves solve time for symmetric geometries.

Thermal BCs

ConditionDescriptionUnits
heat_sourceVolumetric or surface heat generation rate.W or W/m²
fixed_temperatureDirichlet BC — fixed temperature on a face (e.g. cooled wall).K or °C
convectionNewton's law of cooling — heat transfer coefficient and ambient temperature.W/m²K, K
adiabaticZero heat flux across a face (insulated boundary).

Confidence Gate

The confidence gate is phinen's automated quality assurance mechanism. It ensures that every result you receive meets a minimum standard of physical plausibility, regardless of whether the ML surrogate or high-fidelity solver was used.

💡
The confidence gate is always on and cannot be disabled. It is a core part of how phinen maintains physical credibility at inference speed.

How it works

After the ML surrogate (MeshGraphNet / PINN) completes inference, the confidence gate evaluates the result against a set of physics-based checks:

  • Energy balance: Verifies that the predicted fields are consistent with conservation of energy.
  • Boundary consistency: Checks that boundary conditions are satisfied within tolerance at the specified faces.
  • Physical range validation: Flags results where field values fall outside physically plausible ranges for the given material and loading.
  • Residual norm: Computes a dimensionless residual score — if above threshold, the result is escalated.

If any check fails, the system automatically escalates to the FEniCSx finite element solver, which runs a full high-fidelity solve and returns a validated result. The escalation is transparent — the result card shows which solver was used and the final confidence score.

API Overview & Authentication

The phinen REST API allows you to trigger simulations programmatically, retrieve results, and integrate the platform into your own tooling, CI/CD pipelines, or PLM systems.

Base URL

HTTP
https://fea.phinen.com/api/v1

Authentication

All API requests require an API key passed in the Authorization header as a Bearer token.

HTTP
Authorization: Bearer pi_live_xxxxxxxxxxxxxxxxxxxxxxxx
⚠️
API keys are available to Professional and Enterprise plan users. During early access, API keys are issued on request. Contact us at api@phinen.com to request access.

POST /simulate

Trigger a new simulation run. Returns a run ID that can be polled for status and results.

FieldTypeRequiredDescription
geometry_idstringID returned from /upload. References the uploaded geometry file.
physicsstringOne of: structural, thermal, cfd, multiphysics
materialobjectMaterial properties. See Materials Library for pre-defined options.
boundary_conditionsarrayArray of boundary condition objects. See Boundary Conditions.
descriptionstringOptional natural language description. The LLM will supplement or override structured BCs if provided.
Python
import requests

response = requests.post(
    "https://fea.phinen.com/api/v1/simulate",
    headers={"Authorization": "Bearer pi_live_xxxx"},
    json={
        "geometry_id": "geo_abc123",
        "physics": "structural",
        "material": {
            "name": "aluminium_6061",
            "E": 69e9,
            "nu": 0.33
        },
        "boundary_conditions": [
            {"type": "fixed_face", "region": {"center": [0,0,0], "radius": 10}},
            {"type": "point_load",  "region": {"center": [100,50,25], "radius": 15},
             "magnitude": 1000, "direction": [0, -1, 0]}
        ]
    }
)

run_id = response.json()["run_id"]
print(f"Run started: {run_id}")
Response
{
  "run_id": "run_1bbf125c-2a39-...",
  "status": "queued",
  "physics": "structural",
  "created_at": "2026-03-16T12:00:00Z"
}

GET /runs/{id}

Poll a run for its current status. Poll every 500ms — most runs complete in under 2 seconds.

Python
import time

while True:
    r = requests.get(
        f"https://fea.phinen.com/api/v1/runs/{run_id}",
        headers={"Authorization": "Bearer pi_live_xxxx"}
    )
    status = r.json()["status"]
    if status in ["completed", "failed"]:
        break
    time.sleep(0.5)

print(f"Run {status}. Solver: {r.json().get('solver')}")

The solver field in the response will be either meshgraphnet or fenicsx — indicating whether the confidence gate escalated the run.

Tutorial: Structural Analysis of a Bracket

In this tutorial we analyse a mechanical bracket under a 1000 N downward load, identify the maximum stress location, and check the safety factor against an aluminium 6061 yield strength of 276 MPa.

💡
Download the example geometry: bracket.stl (sample file). You can also use any bracket-like geometry from your own CAD library.

Step 1 — Upload the STL

Open fea.phinen.com and drag bracket.stl onto the upload zone. The viewer will render the geometry in 3D within a few seconds.

Step 2 — Set up via chat

In the chat panel, type:

Aluminium 6061, E=69 GPa, nu=0.33, yield strength 276 MPa.
Fixed constraint at the rear circular face (centre 0,0,0, radius 10mm).
Downward point load of 1000 N at the front flange (centre 100,50,25mm, radius 15mm).
Run a static structural analysis.

Step 3 — Interpret the results

phinen will render the von Mises stress field on your geometry and report:

  • Max von Mises stress — location and magnitude
  • Safety factor — ratio of yield strength to max stress
  • Displacement field — max deflection and location
  • Risk zones — faces flagged as high-stress regions warranting design attention

If the safety factor is below 1.5 (the typical design target for structural components), the AI will suggest geometric modifications — increased fillet radius, added gussets, or material change — and offer to re-run with the proposed changes.

Frequently Asked Questions

How accurate is the ML surrogate compared to full FEA?

For geometries similar to the training distribution, MeshGraphNet achieves less than 3% mean error relative to FEniCSx reference solutions. For novel or complex geometries outside the training distribution, the confidence gate detects low confidence and escalates automatically to the full FEniCSx solver.

What happens when the confidence gate triggers?

The system transparently switches to FEniCSx, a high-fidelity finite element solver. Your result is marked as "FEniCSx validated" and the solve time increases to 30–120 seconds depending on mesh complexity. You are notified in the UI and in the API response.

What is the maximum geometry size?

The ML surrogate performs well on meshes up to approximately 500,000 faces. Larger meshes are automatically decimated for surrogate inference and then validated at full resolution by FEniCSx. The API supports files up to 2 GB.

Can I run batch simulations?

Yes, via the API. Submit multiple /simulate requests concurrently. Professional plan supports up to 10 concurrent runs; Enterprise plan supports unlimited parallelism.

Is my geometry data secure?

All geometry files are encrypted at rest in Cloudflare R2 and in transit via TLS. Files are isolated per account and never used to train shared models without explicit consent. Enterprise customers can opt for dedicated storage and single-tenant infrastructure.

Does phinen support assemblies with multiple parts?

Yes, STEP files with named parts are supported. Contact interfaces between parts can be defined as bonded, sliding, or contact-with-friction. Multi-body assembly support is in active development.

Changelog

v0.9.0 — March 2026 Latest

  • Added Multiphysics (coupled thermal-structural) domain support
  • Confidence gate now reports per-domain confidence scores in multiphysics mode
  • Improved MeshGraphNet model trained on 40,000 additional structural FEA samples
  • API v1 released — /simulate, /runs, /results, /upload endpoints
  • PDF report generation now includes annotated geometry screenshots

v0.8.0 — February 2026

  • CFD domain added — velocity and pressure field prediction for internal airflow
  • LLM interface upgraded to GPT-4.1-mini with structured SimulationPlan output
  • STEP file import support added
  • Multi-variant comparison (up to 3 runs side by side) — Professional plan

v0.7.0 — January 2026

  • Initial public early access release
  • Structural FEA and thermal simulation domains
  • STL and OBJ file support
  • MeshGraphNet surrogate + FEniCSx fallback pipeline
  • Confidence gate (initial version)