Reference
Turbines
Pre-built demos, uploading OpenFAST inputs, Build-from-scratch.
A turbine configuration is a row in the platform that bundles the OpenFAST input files (.fst, .dat, controller DLL, airfoil polars, etc.) with the key parameters extracted from them (rated power, rotor diameter, hub height). Every study you run references exactly one turbine config.
Three ways to get a turbine into the platform
Pre-built demos
Industry-standard IEA / NREL reference designs bundled with the platform. Five demos auto-load into every orgthe first time you open the Turbine Library — you don't need to click anything to see them. The list is auto-discovered from the zips in DemoFiles/Turbines/; drop a new zip in there and it appears automatically (friendly metadata comes frommanifest.json next to the zips).
- NREL-5MW-Land — 126 m rotor, 90 m hub. AeroDyn 15 + ServoDyn + ROSCO. The classic onshore reference; use it for smoke tests.
- IEA-15-240-RWT-Onshore — IEA Wind Task 37 reference, 240 m rotor, 150 m hub.
- IEA-15-240-RWT-Monopile — same rotor on a fixed-bottom monopile foundation. HydroDyn + SubDyn coupled.
- IEA-15-240-RWT-UMaineSemi — same rotor on the UMaine VolturnUS-S floating semi-submersible. HydroDyn + MoorDyn + ElastoDyn coupled.
- IEA-22-280-RWT-Onshore — IEA Wind Task 55 reference, 280 m rotor, 170 m hub.
Demo rows are read-only. Edits and deletes are rejected with a 403, and the Library card hides the Edit pencil for any row whose description starts with “Pre-built demo:”. To customise a demo, click View → Clone as New — the backend duplicates the source tree under a new storage key, drops the demo prefix from the description, and you get an editable copy named “{original} (copy)”. A toast offers an Open action to jump straight into the edit dialog on the new clone.
Upload existing files
Drop a ZIP containing the full OpenFAST input set. The uploader:
- Extracts inside a per-config scratch directory.
- Auto-detects the main
.fst(single.fstat the ZIP root, else the first.fstwe find). - Fixes any ROSCO DLL paths that reference local filesystems.
- Parses rated power, rotor diameter, hub height, cut-in/rated/cut-out wind speeds, shaft tilt, precone, rotor speed from the inputs.
The parsed parameters are stored on the TurbineConfig row so they can populate the Dashboard cards, the 3D preview, and the Summary on Run Analysis without re-reading the inputs on every render.
Build from scratch
A form-driven editor that lets you specify the parameter set (blade mass distribution, tower profile, airfoil set, controller choice) and writes a complete OpenFAST input tree on save. Most users start from a demo and modify; the builder is for when you want to describe a turbine that doesn't exist yet.
The Turbine Library page
Lives at /design. Cards are split into Onshore and Offshore sections (offshore detection is name-based for now: matches monopile / semi / spar / floating / umaine / jacket). Each card shows the name, rated power, rotor diameter, hub height, and four actions:
- View — read-only details modal driven by
GET /turbines/{id}/detailed-properties. Shows parsed blade stations, tower stations, airfoil polars, and controller params. - Edit (pencil) — quick-edit name / geometry / wind-speed band. Hidden on demo rows; the underlying
PUT /turbines/{id}rejects demo rows with 403 regardless. - 3D (cube) — site-aware Babylon.js scene. See 3D viewer below.
- Delete (trash) — only on configs your org owns. Demo rows return 403; rows with active jobs return 409.
3D viewer
The cube icon opens a Babylon.js scene that reflects the foundation type implied by the turbine name:
- Onshore— green ground plane, tapered tower, parametric blades. Used as the fallback when foundation type isn't detected.
- Offshore monopile — translucent sea surface + seabed at the configured water depth, fat yellow pile rising from seabed through MSL with a transition-piece bulge.
- Offshore floating — sea surface + seabed + three columns at the waterline (UMaine VolturnUS-S layout) with mooring lines down to the seabed.
Blade geometry is lofted from the parsed AeroDyn 15 station table (chord and twist per radial station) when available, falling back to a tapered cylinder otherwise. The PNG button in the top-right of the viewer downloads the current frame at 2× canvas size, named after the turbine config.
Future: site-aware overlays (wind-direction arrow, wave heading, Hs label, lat/lon plaque) are planned for a study-workbench embedded viewer that has access to the selected site and study config — the Library viewer stays turbine-only since the Library page has no notion of a study.
Model
Backed by the turbine_configs table. Relevant columns:
organization_id,user_id— who owns the config.source_zip_path,source_entrypoint— where the input files live in object storage and which.fstis the entrypoint.is_validated— set totruewhen the extraction finished without errors. The Dashboard only lets you submit jobs against validated configs.blade_config,tower_config,nacelle_config,controller_config— JSONB blobs populated by the “Build from scratch” path; empty for demo / uploaded configs.