Project Tree#
The project tree is a hierarchical visualization interface that displays the complete workflow of your CFD simulation, from geometry to final results. It provides an intuitive way to track simulation progress and navigate between different stages of your analysis.
Note
The project tree is generated automatically based on your settings and intelligently identifies existing nodes that match your specifications.
For example, if a surface mesh with identical settings already exists in the project, Flow360 will reuse it rather than generating a duplicate. Similarly, when a case with matching simulation parameters exists, the system will utilize the existing case instead of running a redundant simulation.

Tip
Click the keyboard shortcut icon at the bottom-left corner of the Project tree panel to preview available keyboard shortcuts. For the full list, see Keyboard Shortcuts.
Icon Explanation#
Icon |
Name |
Description |
|---|---|---|
Geometry |
Represents the CAD geometry input for the simulation |
|
Surface Mesh |
Represents the discretized surface of the geometry |
|
Volume Mesh |
Represents the 3D computational mesh used for simulation |
|
Case |
Represents a simulation case with defined parameters |
|
Fork |
Indicates a continuation / branched variant of an existing parent |
|
Draft |
Represents a simulation setup that hasn’t been run yet |
See also
For the workflow and interface overview, see the User Guide: Workflows & Interfaces.
Case Status#
Each case node in the project tree carries a status icon that reflects where the case is in its lifecycle, from running through post-processing to a final result. The same status is shown on the case in the run status header and the case list. The icons below are the case statuses you may encounter.
Icon |
Status |
Description |
|---|---|---|
Running |
The case is solving. |
|
Post process |
The case has solved and its results are being post-processed for visualization. |
|
Completed |
The case has solved and post-processing is complete; the results are ready to visualize. |
|
Diverged |
The case run diverged due to numerical instability. |
|
Error |
The case run failed. |
|
Post-processing failed |
The case solved, but post-processing did not finish successfully; the visualization may be unavailable or incomplete. |
Note
While a case is running, its progress (including the post-processing step) is also shown step by step in the Run Status panel of the Status Bar. The statuses above are what appear on the case node itself.
Project Structure#
The Flow360 project structure follows a flexible hierarchical organization that accommodates different starting points and multiple analysis paths. Each node in the tree represents a distinct stage in the simulation process, with the ability to branch and create parallel analysis streams.
Entry Points#
The project can be initiated from two different entry points:
Geometry-First Approach:
Starts with CAD geometry
Requires the workflow to include surface and volume mesh generation
Mesh-First Approach:
Starts directly with a surface or volume mesh
Meshing settings are available only when starting from a surface mesh
Workflow Hierarchy#
The workflow structure depends on the chosen entry point. Below are the two possible progression paths:
1. Starting from geometry#
Geometry
└── Surface Mesh
└── Volume Mesh
└── Case
└── Fork (optional)
2. Starting from surface mesh#
Surface Mesh
└── Volume Mesh
└── Case
└── Fork (optional)
3. Starting from volume mesh#
Volume Mesh
└── Case
└── Fork (optional)
Note
Each node in these hierarchies can branch into multiple parallel paths. For example:
Geometry
├── Surface Mesh A
│ ├── Volume Mesh A1
│ │ ├── Case A1.1
│ │ │ └── Fork A1.1.1
│ │ └── Case A1.2
│ └── Volume Mesh A2
│ └── Case A2.1
└── Surface Mesh B
└── Volume Mesh B1
└── Case B1.1
└── Fork B1.1.1
Branching Capabilities#
The project tree supports multiple branches at each level:
A geometry can have multiple surface meshes.
A surface mesh can have multiple volume meshes.
A volume mesh can have multiple cases; a case can also be an interpolated case (interpolation onto that volume mesh).
For cases, you can also create forks and interpolations.
Forking#
Forks are direct extensions of their parent cases
All results and settings are preserved in forks
Simulation continues from the last state of the parent case
Multiple forks can branch from the same parent case
Interpolation#
Interpolation transfers solution from a case onto a new mesh
New mesh can exist either within the same project, or in a different one
Useful when running a refined mesh or slightly altered geometry
Arrow on the volume mesh asset icon in project tree indicates that the volume mesh exists in a different project
Watch: Interpolation walkthrough
Component Actions#
When clicking on a component in the project tree, a menu of available actions appears. Below are the available actions:
Action |
Description |
|---|---|
Open in workbench |
Opens the component workbench |
New run |
Creates a new simulation run draft using settings from this component |
Interpolation |
Transfers solution data between different meshes |
Rename |
Changes the display name of the component |
Details |
Shows components details such as ID, name, cost, parent asset ID, etc. |
Expand all sub-items |
Shows all sub-components derived from this component |
Collapse all sub-items |
Hides all sub-components derived from this component |
Delete |
Removes the component and all its dependent sub-components |
Tip
Use the keyboard shortcut palette (click the icon at the bottom-left of the Project tree panel) to view available shortcuts at a glance. See Keyboard Shortcuts for the full reference.
🐍 Python Example Usage
See also
The project hierarchy and forking are available through the Python API:
Below is a Python code example showing how to create forks:
import flow360 as fl
project = fl.Project.from_cloud(project_id="prj-XXXXX") # Should be a valid project id
# Specify a case you want to fork from
case = fl.Case(id="case-XXXXX") # Should be a valid case id
# Change desired parameters, e.g. time stepping
case.params.time_stepping.step_size = 0.0001
case.params.time_stepping.steps = 1500
# Fork the case
case_fork_1 = project.run_case(case.params, "case-fork-1", fork_from=case)
# Change forked case's parameters
case_fork_1.params.time_stepping.step_size = 0.00005
case_fork_1.params.time_stepping.steps = 2500
# Fork from a fork
case_fork_1 = project.run_case(case_fork_1.params, "case-fork-1", fork_from=case_fork_1)