Eddy3D Component list
00 Setup
Main Components
00 Utilities
Main Components
Export geometry to STL format for OpenFOAM or other CFD tools. Supports meshes and Breps (auto-meshed); binary or ASCII, single or multiple files.
A boolean toggle that is always FALSE when a file is opened. Useful for preventing automatic execution of heavy ML models. Double-click to toggle.
01 Outdoor Setup
Main Components
Define atmospheric boundary layer inflow conditions for Eddy3D.
Define inflow boundary conditions from a manually entered vertical profile (z/zR, U/UR, k/UR^2) instead of the parametric ABL log-law. Writes fixedProfile inlet conditions for U, k and epsilon. epsilon is derived from the profile as epsilon(z) = Cmu^0.5 * k(z) * d(U)/dz.
Create a uniform (constant velocity) inflow boundary condition for Eddy3D.
Download an EPW weather file from climate.onebuilding.org nearest to your project location. Use the Search input to filter by station name, WMO ID, or dataset year.
Translate a Ladybug analysis period to hours of the year.
Visualize a wind direction on a compass circle. Direction is meteorological degrees (0=N, 90=E, 180=S, 270=W); outputs the flow vector and the 16-point cardinal name.
Cluster annual wind directions into representative directions using k-means.
Creates a STL mesh from geometry using the gmsh application. Useful to create healthy mesh topologies for building elements.
Represents a tree as a porous zone for wind blocking (Darcy-Forchheimer). Feed into the wind case component.
Combine a multi-part building mesh into a single watertight, CFD-ready solid via the bundled Python mesh service (trimesh/manifold3d/pymeshfix). The server auto-starts locally on the first run (uv-managed Python environment; first start installs it, 1-2 minutes) and is reused afterwards.
02 Outdoor Domain Mesh
Main Components
Define a cylindrical simulation domain for Eddy3D. One cylindrical mesh serves all wind directions; the cylinder side faces switch between inlet and outlet per direction.
Compute the snappyHexMesh refinement level needed to reach a target cell size (each level halves the cell size).
Configure mesh refinement, layers, and grading for Eddy3D.
Add a custom snappyHexMesh refinement region (a box, solid or surface) to a written case's mesh, then re-mesh. Refines the cells inside/near the geometry to the chosen level.
Generate a regular point grid on Brep, surface, or mesh geometry.
03 Outdoor Case
Main Components
Reference an existing wind case folder (mesh/ + case_NNN) for post-processing.
Create, write, and manage an Eddy3D outdoor wind simulation case.
Writes meshing and simulation scripts (.bat / .sh) into a Scripts/ folder under the wind study, so the workflow can be launched manually outside Grasshopper. The scripts match what the Run component executes. Write the study to disk first (Wind Case 'Write').
04 Outdoor Simulation
Main Components
Mesh and run an OpenFOAM case on the selected engine (wind / indoor / UMF).
Configure solver run controls for Eddy3D.
Inject a custom OpenFOAM function object into a written case so the solver runs it at runtime — fieldAverage, yPlus, wallShearStress, forces, surfaceFieldValue, a coded FO, etc.
05 Outdoor Results
Main Components
Sample fields at points on a solved case, post-hoc. With Run it writes a probes function and runs postProcess on the latest time, then reads the results; without Run it reads existing results. Works on a wind case (one sub-result per direction) or a loaded case.
Draws a wind case's residual convergence directly on the Grasshopper canvas, with lightweight timed updates. Wire the case and toggle 'Live' to monitor a running simulation without an external plotter window. When a warm-up ramp is enabled the solver restarts mid-run and writes a separate residual file per phase; all phases are stitched into one continuous curve so you see the full history (warm-up + main), not just the latest phase.
Monitor blockMesh, surfaceFeatures, and snappyHexMesh progress from the mesh case logs.
Compute volumetric flow rates (m³/s) across a mesh, treating its vertices as velocity probes. Per face: average vertex velocities × face area × cos(angle to face normal).
Classifies pedestrian wind comfort per point from an annual hourly wind-speed series (the Wind Speed output of the Velocity Amplification Factors (VAF) component) against a comfort criterion (Lawson, Davenport, NEN8100). Returns the comfort category, class letter, and activity description for each point.
Compute Velocity Amplification Factors (VAF) and annual wind speed at probes from CFD results and EPW weather data. VAF (the term used in the wind-engineering literature for what Eddy3D historically called "wind factors") is the local wind speed normalized by the reference speed.
Visualize a probed wind field: colored velocity arrows, a point cloud, a heatmap mesh, streamlines, or volumetric smoke (pick via Display Mode). Feed the Probe component's points + velocity vectors (Field = U), or any points + vectors.
Define an analysis period (from/to day of year, start/end hour of day) and output the hour-of-year indices it covers, for filtering annual results.
Convert a date and time (month, day, hour) into a single hour-of-year integer (1–8760), for indexing annual hourly data.
06 Indoor
Main Components
Build an isothermal indoor ventilation case (room + inlets + outlets + sinks) for OpenFOAM 12.
Ventilation inlet — defines where air enters the room (diffuser, window, door). Direction is computed perpendicular to the surface, pointing into the room.
Ventilation outlet — defines where air exhausts from the room (return grille, open window).
A Darcy-Forchheimer momentum sink (filter/screen) box for an indoor ventilation case.
Set the indoor wall temperature (°C) for the transported temperature field.
A CO2 passive-scalar source box for an indoor ventilation case.
A volumetric heat source box for an indoor ventilation case (transported temperature scalar).
A fan/jet momentum source (mean velocity) box for an indoor ventilation case.
An airborne-pathogen passive-scalar source box for an indoor ventilation case.
07 MRT
Main Components
Create comfort sensor probes from a mesh (face centers) or points.
Mesh Breps into a tagged radiation surface for an MRT analysis.
Thermal + optical material properties for a building/ground MRT surface.
Compute a thermal comfort metric at a point: UTCI (Ta, RH, wind, MRT), PET (adds the personal inputs), or NOAA Heat Index (Ta, RH only). Pick the metric from the dropdown — the inputs adapt. Wire hourly lists (e.g. EPW series) to compute annual values.
Canopy material properties for an MRT tree surface.
Leaf/canopy material properties for an MRT vegetation surface.
Compute mean radiant temperature at the sensors. Direct-raycast shortwave by default; wire MRT Settings with reflections/diffuse radiation on to use the Radiance DDS engine.
Configuration for the MRT + UTCI analysis.
Computes the Sky View Factor (SVF) for each input point using the Tregenza 145-patch sky subdivision. Casts 145 rays toward the upper hemisphere and returns the fraction of unobstructed sky directions (0 = fully obstructed, 1 = fully open sky).
Compute annual per-probe UTCI from simulation outputs: MRT and wind-speed data trees, plus air temperature and relative humidity. For a weather-only calculator, use "UTCI (Weather)".
08 FluidX3D
Main Components
Solver controls for the FluidX3D GPU engine (memory, simulated time, export interval, and an interactive real-time window).
Prepare and launch a FluidX3D GPU wind simulation (builds the solver from source, runs on the GPU). LICENSE: FluidX3D (ProjectPhysX) is free for NON-COMMERCIAL use only — public research, education, or personal use. Commercial use is not permitted. See the FluidX3D LICENSE.
10 ML
Main Components
Read processed CSV datasets back into Grasshopper. Supports mag_U and all spatial features.
Download an ONNX wind-prediction model from HuggingFace for the Wind Predictor component. Yel 2.0 is public; Esen 1.0 and Poyraz 1.0 need a HuggingFace token. All are 8-channel Wind Predictor models. (Yel 1.0 is a different architecture — the GAN image model used by GAN Predict via its API — and cannot be loaded here.) Models cache in ~/SUS_LAB/ and are reused on subsequent runs.
Run ONNX wind-field prediction end-to-end. Computes SDF, building height, Zrelative, U/Uref, direction features from geometry, assembles the 8-channel input tensor, runs ONNX inference, and outputs predicted wind speeds. Supports legacy 1ch (U), 2ch (U + k) and new 4ch (U + k + Uroof + kroof) models.
Calculate Pedestrian Wind Comfort using predicted wind fields from the ONNX model.
Predict a pedestrian wind-speed field from buildings using the Eddy3D GAN (no CFD run). Sends the geometry to the GAN API and returns wind speeds + a colored result mesh.
Resample per-direction wind-magnitude fields onto a new point grid (nearest-neighbour average, with per-direction rotation). Prepares grids for GAN applications.
12 Outdoor+ Regions
Main Components
Create an air region for the UMF case. OutdoorPlus
Build a solid building region for the UMF case: from the façade surface meshes, two material wall layers (outer + inner) are extruded inward to model heat and moisture transport through the building envelope.
Create a terrain region with materials and depth settings. OutdoorPlus
Create a vegetation region with properties and mesh settings. OutdoorPlus
Define atmospheric boundary layer settings for the air region. OutdoorPlus
Generate a multi-resolution terrain mesh from input geometry with a solid base. OutdoorPlus
Configure mesh refinement for building regions.
Configure mesh settings for terrain and underground regions. OutdoorPlus
Configure mesh refinement for vegetation regions. OutdoorPlus
Select a building material from the list and override its properties.
Define soil material properties for terrain layers. OutdoorPlus
Select a terrain surface material from the list and override its properties. OutdoorPlus
Define vegetation property coefficients for canopy modeling. OutdoorPlus
13 Outdoor+ Simulation
Main Components
Create, read, and manage an Outdoor+ (UMF microclimate) case. OutdoorPlus
Define simulation domain extents and refinement padding. OutdoorPlus
Convert specific humidity (w) and temperature (T) to relative humidity (%). OutdoorPlus
Configure snappyHexMesh settings for the simulation. OutdoorPlus
Configure simulation control settings for UMF. OutdoorPlus
Define simulation timing and optional weather-driven time series. OutdoorPlus
Read an EPW file and create a Weather object for the simulation. OutdoorPlus
Run the OpenFOAM checkMesh command for a case region. OutdoorPlus
Tests for buildings and trees for Eddy3D-OutdoorPlus simulation.
Parses log files in a case folder and reports any FOAM errors. OutdoorPlus
Configure the view-factor discretization for radiation modeling. OutdoorPlus
Deconstruct a Weather object into hourly time series values. OutdoorPlus
14 Post
Main Components
Write probed wind results as a CSV for the Eddy3D Visualizer (viz.eddy3d.com): columns X, Y, Z_relative, U_at_z, mag_U — one row per probe point. Upload the file at https://viz.eddy3d.com to view the 3D field, coloured by velocity magnitude.
Open a wind case's direction cases in ParaView. All directions are added to the ParaView pipeline browser; click Apply on the ones you want to load (nothing is loaded automatically).
Deconstruct a MetaFOAM Region instance.
Visualize faces that fail tet decomposition during topoSet. OutdoorPlus
Read cell connectivity and cell zones for a region. OutdoorPlus
Read and visualize sets produced by checkMesh. OutdoorPlus
Create a visualization mesh from polyMesh point/face data. OutdoorPlus
Export an OBJ mesh from a polyMesh description. OutdoorPlus
Remove ground mesh faces that intersect buildings, creating an analysis ground mesh with building footprints cut out.