# Starting Project

*This document describes how to start a project in Flow360 GUI.*

## New Project

*The New Project window is the entry point for creating CFD simulations in Flow360. It allows users to choose between geometry-based or mesh-based workflows.*

![new_project](./Figures/new_project.png)

---

## Available Options

| *Option*           | *Description*                                               | *Default*                |
|--------------------|------------------------------------------------------------|--------------------------|
| **Project name**   | Unique identifier for your simulation project               | `Untitled`               |
| **Solver version** | Flow360 solver release version                             | Latest stable release    |
| **Project length unit** | Length unit for the geometry/mesh                     | `m` (meter)              |
| **Description**    | Optional project description and notes                     | Empty                    |
| **Creation method**| Method for creating the simulation (from geometry/from surface mesh/from volume mesh) | `From geometry`   |
| **Use CAD Importer V2** | Alternative CAD importer, offered when creating a project from geometry. GeometryAI runs with either importer, but geometry-level gap sealing needs V2. V2 also imports an assembly split across several files | `Off` |

```{seealso}
For the workflow and interface overview, see the {doc}`User Guide: Workflows & Interfaces </user_guide/WorkflowsInterfaces/WorkflowsInterfaces>`.
```

---

## Detailed Descriptions

### Project name

*Unique name that identifies your simulation project in the Flow360 system.*

- **Default:** `Untitled`
- **Example:** `Wing_Analysis_M08`

```{tip}
Choose a descriptive name that helps identify the project purpose.
```

### Solver version

*Specifies the Flow360 solver version to be used for the simulation.*

- **Default:** Latest stable release
- **Example:** `release-25.12`

```{tip}
It's recommended to use the latest stable release unless specific version compatibility is required.
```

### Project length unit

*Defines the length unit for interpreting mesh/geometry dimensions.*

- **Default:** `m` (meter)
- **Example:** `inch`

```{tip}
Ensure this matches the units used in your CAD or mesh file to avoid scaling issues.
```

### Description

*Optional field for adding project notes, objectives, or other relevant information.*

- **Default:** Empty
- **Example:** `High-lift configuration analysis at takeoff conditions`
- **Limit:** 100 characters

```{note}
Below the description field you can add tags to your project by clicking the `+ Add` icon.
```

### Creation methods

*Choose how to initialize your project.*

- **From geometry:** The uploaded CAD geometry becomes a root of the project. It is necessary to run surface meshing and volume meshing steps before launching the simulation.
  - **Supported formats:** ESP (`.csm`), EGADS (`.egads`), STEP (`.step`, `.stp`), IGES (`.iges`, `.igs`), ACIS (`.sat`, `.sab`), Autodesk Inventor (`.ipt`, `.iam`), CATIA V5 (`.CATPart`, `.CATProduct`), Creo-Pro/E (`.prt`, `.asm`), JT (`.jt`), NX-Unigraphics (`.prt`), Parasolid (`.x_t`, `.x_b`), Rhino 3D (`.3dm`), Solid Edge (`.par`, `.psm`, `.asm`), SolidWorks (`.sldprt`, `.sldasm`), UGrid (`.ugrid`), CGNS (`.cgns`), STL (`.stl`)
  - Creo and NX files with a version number after the extension (for example `part.prt.3`) are not recognized. Rename them to end in `.prt` or `.asm` before uploading.
  - **Requirements:**
    - Clean, watertight geometry
    - Properly defined assemblies with all dependencies
    - JT files must contain B-rep geometry; tessellation-only JT files are rejected
- **From surface mesh:** Use a pre-generated surface mesh file as a root of the project. It is necessary to run volume meshing before launching the simulation.
  - **Supported formats:** UGrid (`.ugrid`), CGNS (`.cgns`), STL (`.stl`)
  - **Requirements:**
    - Valid surface mesh 
    - Triangular elements

- **From volume mesh:** Use a pre-generated volume mesh file as a root of the project. By using this method, the case does not need any additional pre-processing and is ready for running.
  - **Supported formats:** UGrid (`.ugrid`), CGNS (`.cgns`)
  - **Requirements:**
    - Valid volume mesh
    - Acceptable element types:
      - Tetrahedrons
      - Hexahedrons
      - Prisms
      - Pyramids

### Use CAD Importer V2

*Selects an alternative CAD importer for the uploaded geometry.*

- **Default:** `Off`, which uses CAD Importer V1
- Offered when creating a project **From geometry**, and again when retrying an interrupted upload. It is not offered when cloning an existing project, and only on solver versions that support V2.

GeometryAI runs with either importer, but the two are not interchangeable once a geometry is uploaded, and they give GeometryAI different capabilities. Geometry-level gap sealing, which closes an opening that is wider than the surrounding geometry is thick, is available only on a V2 project. Against that, the faster coarse tessellation that GeometryAI starts from is currently available only on V1, so a V1 project generally spends less time preparing the geometry before meshing.

Choose V2 when the geometry has openings that have to be sealed and the walls around them are thin, or when V1 cannot import the file at all. Choose V1, the default, otherwise, and always for CSM or EGADS files, which V2 does not read. See {ref}`gai_sealing` in the User Guide for how the two sealing mechanisms differ and what each one needs from the face layout.

V2 reads STEP, IGES and native CAD files, and you can upload several files at once. Each uploaded file is imported as a separate geometry in the same project. An assembly stored in separate files, such as a CATProduct file with its CATPart files, is imported differently: upload the assembly file together with all of its part files, and V2 imports the assembly as one geometry that contains the parts. The part files are read through the assembly, so they are not imported a second time on their own.

>**Notes:**
> - V2 works with the legacy surface mesher and with the GeometryAI mesher. It does not work with the beta surface mesher on its own, so on a V2 project the beta mesher cannot be enabled unless GeometryAI is enabled too.
> - The importer version is fixed when the geometry is uploaded and cannot be changed later. Switching means re-uploading the geometry into a new project.
> - Geometry added to an existing project uses the importer version of that project's root geometry.

---

## Resuming an Interrupted Upload

*If a geometry or mesh upload is interrupted (for example by a lost connection or a closed browser tab), you can retry it without deleting the project and starting over.*

When an upload fails or is cancelled, Flow360 marks the project with an **Upload Error** status and shows a **Retry** button in two places:

- On the **project card** in the dashboard, next to the error status.
- On the **project loading screen**, when you open a project whose upload did not finish.

```{image} ./Figures/resume_upload_retry.png
:alt: Project card showing the Upload Error status with the Retry button
:align: center
```

Clicking **Retry** lets you re-upload the affected files and continue with the **same project**, keeping the simulation setup you have already configured. You no longer have to delete the project and recreate it from scratch after a failed upload. This applies to geometry, surface mesh, and volume mesh uploads.

```{note}
Only the project creator can retry an interrupted upload.
```

The retry dialog offers the same **Use CAD Importer V2** toggle as project creation, so a geometry upload can be retried with the other importer.

---

<details>
<summary><h3 style="display:inline-block"> ❓ Frequently Asked Questions</h3></summary>

- **What happens if my geometry has multiple parts?**
  > For assemblies, upload all required files including dependencies. The system will maintain the assembly structure.

- **Can I change the project length unit after project creation?**
  > Yes, the project length unit can be changed after project creation. Keep in mind that this does not affect units assigned during simulation setup.

- **What if my CAD format is not listed?**
  > Consider converting your geometry to one of the supported formats using CAD translation software.

- **Do you have to upload the surface mesh with the farfield?**
  > No, you can upload the surface mesh of the object you want to simulate and use the [Automatic Farfield](../02.simulation-setup/02.mesh/01.farfield.md) option. You can also upload your custom farfield as part of the surface mesh file.

</details>

---

<details>
<summary><h3 style="display:inline-block"> 🐍 Python Example Usage</h3></summary>

```{seealso}
The same project creation is available through the Python API via {py:class}`~flow360.Project`, using its `from_geometry`, `from_surface_mesh`, and `from_volume_mesh` constructors:

- {py:class}`~flow360.Project`
```

Below is a Python code example showing how to create a new project programmatically:

```python
import flow360 as fl

# Create a new project from geometry
geo_project = fl.Project.from_geometry("my_geometry.csm", "Project from geometry", length_unit=fl.u.m)

# Create a new project from surface mesh
sm_project = fl.Project.from_surface_mesh("my_surface_mesh.stl", "Project from surface mesh", length_unit=fl.u.inch)

# Create a new project from volume mesh
vm_project = fl.Project.from_volume_mesh("my_volume_mesh.cgns", "Project from volume mesh", length_unit=fl.u.mm)

# Create a project from an assembly stored in several files, using CAD Importer V2
asm_project = fl.Project.from_geometry(
    ["wing_assembly.CATProduct", "wing.CATPart", "flap.CATPart"],
    "Multi-file assembly",
    length_unit=fl.u.m,
    cad_importer_version="v2",
)
```

</details>