AirSketcher Manual
Welcome to the AirSketcher user manual. This guide will walk you through every essential and advanced feature of the software for setting up and running CFD simulations with ease.
Introduction
AirSketcher is a lightweight 2D CFD simulation and visualization tool built for rapid design exploration and intuitive analysis. Unlike traditional CFD platforms that require extensive setup, meshing, and scripting, Air Sketcher simplifies the process β just draw your domain, press run, and see results.
Designed for speed and usability, it enables engineers, designers, educators, and students to test airflow concepts on the fly β whether across mechanical structures, ventilation layouts, or environmental enclosures.
With built-in modules, Air Sketcher delivers:
A fast steady-state CFD solver with adaptive meshing
Real-time streamline and particle tracking visualizations
Performance reporting based on selected regions of interest
One-click PDF report generation with detailed summaries
Direct input via mouse or stylus for sketch-based geometry creation
No CAD. No complex setup. No barriers. Just insight β fast.
Installation
To install AirSketcher, follow these simple steps:
- Download the installer
Locate and run the provided setup.exe
file.
- Activate with your license key
During the first launch, youβll be prompted to enter the license key you received after purchase.
- One-time online verification
The software will briefly connect to the server to verify your license. If the key is valid, a local license file will be generated and saved on your machine.
- Offline usage enabled
After activation, AirSketcher will no longer require an internet connection. You can run it offline anytime.
π‘ *Make sure to keep your license key in a safe place for future reference
System Requirements
To ensure smooth operation, AirSketcher requires the following minimum system specifications:
π₯οΈ Operating System
- Windows 10 or later (64-bit)
- macOS & Linux: Support planned for future releases
βοΈ Hardware
- CPU: Dual-core processor or better
- RAM: 4 GB minimum (8 GB or more recommended)
- Storage: ~3 GB for installation
- Graphics: Integrated GPU is sufficient (no high-end GPU required)
π Internet
- Required only during the first activation to verify the license key.
- No internet connection is needed after successful activation.
β AirSketcher is optimized for lightweight 2D simulations and user-friendly visualization. It does not require a high-end workstation.
Quick Start Guide
Follow these steps to run your first CFD simulation in AirSketcher:
Launch the Application
Double-click AirSketcher.exe
. The main interface
will open with a clean canvas and controls on the left.
Set the Wind Speed
- At the top-left, adjust the Wind Speed (in m/s).
- Default is 5 m/s β suitable for general testing.
Define Your Simulation
Domain
Use the drawing tools to sketch obstacles (e.g.Β walls, buildings, airfoils).
Or import geometry from the Image Processor on the right panel.
Expert Options
Click Expert Options βΆ to access advanced controls like:
Run the Simulation
- Click Run.
- The solver will compute flow behavior in real-time.
- Youβll see the running residual plots and optional velocity vector overlay.
View Results
Once the simulation is complete, explore the results using the top results panel:
Streamlines β Visualize flow patterns and direction.
Static Pressure β View pressure distribution in the domain.
Particle Tracking β Simulate how particles would move through the flow.
Line Probe and xβy Plots β Analyze flow variables (e.g., velocity, pressure) along a defined line in the domain.
Report β Auto-generate a summary report including settings and key flow data.
Qi-Flow β Blends CFD with Feng Shui to assess air harmony, clarity, and comfort.
Each result opens in a new window with zoom, colorbars, tooltips, and export options.
Save Case and Data
Export your processed simulation as a .pkl
file
using the Save button if needed for
post-processing or external tools.
β Youβre now ready to explore more advanced configurations!
User Interface Overview
When you launch AirSketcher, youβll see the interface divided into key functional areas:

Left Panel β Simulation Controls
This is where you control how the simulation runs:
Wind Speed (m/s): Set the incoming flow velocity.
Expert Options βΆ: Opens advanced settings (e.g., ABL, gravity, AMR).
Live Progress View shows a real-time visual summary of the simulation, updated every 200 iterations. It helps users monitor airflow behavior and simulation quality as it evolves.

The preview includes:
- Number of iterations
- A velocity contour map over the domain (masked by obstacles)
- Visual overlays for any porous or blower zones (if defined)
- A red outline for the Region of Interest (ROI), if detected
- Live flow statistics:
- Average velocity and variance over the full domain
- ROI-specific velocity stats when ROI is active
It also calculates a Design Score using the following formula:
\[ \text{Design Score} = \frac{100 \cdot \overline{V}_{\text{ROI}}}{1 + 0.5 \cdot \sigma^2_{\text{ROI}}} \] where:
- \(\overline{V}_{\text{ROI}}\)
is the average velocity inside the ROI
- \(\sigma^2_{\text{ROI}}\) is the velocity variance inside the ROI
The Design Score rewards airflow that is both strong and consistent within the target region. Higher scores indicate faster average velocity with lower variation β ideal for achieving stable, efficient ventilation performance.
- Refine Flow automatically adjusts the
simulation to maintain numerical stability when the vertical grid
size (
Ly
) is too fine for the given inlet velocity.
This is based on the CourantβFriedrichsβLewy (CFL) condition, which limits the time step for stability:
\[ \Delta t \leq \frac{Ly}{u} \] Where:
- \(\Delta t\) β simulation
time step
- \(Ly\) β vertical grid
spacing
- \(u\) β inlet velocity
If the flow is slow and the grid is very fine, the required time step \(\Delta t\) becomes extremely small. If the simulation does not reduce the time step accordingly, it may become unstable or diverge.
To prevent this, Refine Flow automatically
activates when Ly
is smaller than a safe
threshold for the current velocity.
Users may still turn Refine Flow ON or OFF manually. However, if it is turned ON automatically, the system will not disable it without user input.
- Run / Stop / Results:
- Run: Start or continue simulation.
- Stop / Pause: Temporarily halt computation.
- Results: Access analysis tools after a run completes.
- Case and Data:
- Reset Data: Clears current simulation data to start fresh.
- Load / Save: Load or save a working simulation file.
- Exit: Close the application.
Right Panel β Sketch and Image Tools
Sketch & Tools
From top to bottom:
- Undo: Reverse or reapply your latest
actions.
- Draw: Create geometry using freehand or
brushes.
- Draw Line: Click to draw straight
lines.
- Draw Rectangle: Draw rectangle shapes.
- Eraser: Remove selected geometry.
- Eraser All: Remove all geometry on the canvas.
Image Tools
Bottom Three Icons:
- Image Processor: Launch the Image Processor and
Windrose Locator module.
- Import Processed Image: Load the processed
image from the Image Processor back onto the canvas.
- Save Processed Image: Save the currently
drawn domain/obstacles as a temporary file named
saved_drawing.pkl
(used for restarting or post-processing).
Center Canvas β Drawing & Simulation View
This is your main workspace:
- Displays the geometry, flow domain, velocity arrows, and
simulation progress.
- Shows directional axes: X (Flow) β, Y
β
- When results are available, this area displays streamlines or pressure contours.
Bottom β Residuals and Log Console
- Residual Plot (Log Scale): Tracks solver
convergence over time for:
- Momentum X
- Momentum Y
- Static Pressure
- Log Console (Right Corner): Status updates, grid info, AMR messages, etc.
Simulation Setup
Setting up your simulation involves defining the environment where air will flow. This includes specifying the domain size, placing obstacles, and applying boundary conditions. AirSketcher offers an intuitive interface to guide you through each step.
Setting Domain Size
To define the vertical size of your simulation area:
- Click on βSet Domain Height (Y)β in the
Expert Options panel.
- Enter your desired height value in meters.
- The domain length (X) is automatically scaled based on the canvas width.
π‘ Tip: Ensure all obstacles are placed within the domain and away from boundaries to minimize their impact on flow and avoid simulation errors.
Defining Obstacles
Obstacles represent solid objects like buildings, walls, or terrain features that influence airflow.
- Drawing Tools: Use the right-hand toolbar to
draw directly on the canvas.
- Eraser Tool: Remove unwanted geometry or
correct mistakes.
- Import Geometry: Load shapes or drawings created earlier. See Image Processor for more information.
π Note: Ensure obstacles form closed loops to be treated as solids.
Expert Options
These expert settings give you deeper control over simulation physics and performance. To reveal them, click the Expert Options βΆ button under the Wind Speed setting.

Gravity Enabled
Applies downward gravity to the airflow. Useful for buoyancy-driven flows (e.g., warm air rising) or terrain-influenced drafts. When disabled, the simulation assumes horizontal-only flow without vertical buoyancy effects.
Wind Tunnel Mode
This mode applies slip-wall boundary conditions to the top and bottom walls of the simulation domain, simulating a frictionless tunnel.
Slip Wall means:
- No velocity through the wall (perpendicular velocity =
0)
- No shear stress along the wall (fluid can slide freely)
Use this for testing designs in wind tunnel-like conditions or when vertical wall interference should be minimal.
Slip Wall (Top)
ββββββββββββββββββββββββββββββ
β β
β β β β β β β β β β β β β
β β β β β β β β β β β β β Flow direction β
β β β β β β β β β β β β β
β β
ββββββββββββββββββββββββββββββ
Slip Wall (Bottom)
Symmetry Boundary means:
If Wind Tunnel Mode is Off: Symmetry Boundary, top and bottom
boundaries apply symmetry conditions instead. -
Perpendicular velocity is zero
- No variation across the boundary (zero gradient of velocity and
pressure)
This is ideal for simulating mirrored or duplicated domains.
Symmetry Boundary
ββββββββββββββββββββββββββββββββ
ββββββββββββββββ
Flow mirrored here
ββββββββββββββββ
ββββββββββββββββββββββββββββββββ
Ground Friction
When enabled, the bottom wall becomes no-slip, simulating ground drag. That means velocity at the bottom = 0, mimicking real-world friction from ground or terrain.
Top boundary remains a slip wall.
Slip Wall (Top)
ββββββββββββββββββββββ
β β
β β β β β β β β β β
β β β β β β β β β
β β β β β β β
β β β β β
β β β
β U = 0 β β No-slip Ground (velocity = 0)
ββββββββββββββββββββββ
ABL Inlet
The Atmospheric Boundary Layer (ABL) inlet applies a vertical velocity profile that grows with height, mimicking outdoor wind over terrain and buildings.
Velocity Profile Formula
The wind speed follows a power law:
\(u(y) =
U_{\text{ref}}\left(\dfrac{y}{H}\right)^{\alpha}\)
Where - \(u(y)\): velocity at height \(y\)
- \(U_{\text{ref}}\): reference
velocity at height \(H\)
- \(H\): reference height (often
the inlet top)
- \(\alpha\): shear exponent
(controls profile steepness)
ABL Profile (ASCII-safe for Zettlr)
U(y)
| o <- U_ref
| o
| o
| o
| o
| o
| o
| o
| o
+-------------------------------------- y
0 H
Higher \(\alpha\) values produce stronger shear near the ground (steeper gradient at small \(y\)).
Typical \(\alpha\) by Terrain
Terrain type | \(\alpha\) range |
---|---|
Open land / water | 0.14β0.16 |
Suburban areas | 0.22β0.27 |
Urban / dense forest | 0.30β0.40 |
When to Use an ABL Inlet
- Wind over buildings, hills, or terrain
- Outdoor HVAC/ventilation intakes & exhausts
- Pollutant transport in open air
- Urban wind comfort / natural ventilation studies
Notes
- Assumes neutral stability unless buoyancy is
modeled separately.
- Keep the diagram inside a fenced block marked as
text
so spacing is preserved.
- Use a monospaced font in Zettlr (e.g., JetBrains Mono, Fira Code) to keep columns aligned.
AMR Enabled
AMR (Adaptive Mesh Refinement) rebuilds the grid so it is fine where accuracy matters and coarser elsewhereβboosting speed without sacrificing fidelity.
How it works - ROI-driven refinement: A Region of Interest (ROI) is detected around geometry/flow features (obstacles, porous polygons, blower zones are treated as fluid so the ROI grows around them). - Fine inside, coarse outside: Inside the ROI we keep every row/column; outside, four log-spaced strips (bottom/top/left/right) place cells dense near the ROI and stretched toward the domain edges using a smooth exponential spacing. - Edges preserved: The first/last rows and columns of the full domain are always included. - Auto coarsening guard: A coarsening βfactorβ is auto-selected from a small set so at least ~5% of cells remain outside the ROI in both directions. If none fits, AMR is disabled with a warning.
What gets remapped - Fields:
u, v, p, b, nu_tilda
- Materials/forcing:
obstacles, porosity_grid, blower_grid_x, blower_grid_y
- Grid: X, Y
rebuilt from the selected indices
- One-time snapshot of the full-resolution state
is saved on first AMR run for revert/post-processing:
*_original
, X_original, Y_original
,
sizes and spacings, and roi_original
. - The exact
index sets used are exported as globals:
i_indices_combined
,
j_indices_combined
.
When it runs / skips - Controlled by the UI
checkbox.
- Skips if: AMR disabled, no ROI
found, no suitable factor, or memory
error.
Stability tips (pseudo-transient) - AMR
increases local effective CFL away from the ROI. If using
aggressive time stepping, clamp with: - Soft convective
cap (tighter when amr_applied
is
True
), and/or - Convective cap based
on dx, dy
and local max velocities. - These small
guards typically prevent βstable w/o AMR but diverges with
AMRβ.
After enabling - Updates
nx, ny, X, Y
to the adaptive grid, - Refreshes the
view (AMR grid + streamline preview), - Sets
amr_applied = True
.
Note: AMR is not turned off by porous/blower zones; instead they are included in the ROI so refinement captures their effects.
Scale Input Wind Speed
This tool adjusts the wind speed to maintain Reynolds number similarity when working with scale models.
Reynolds number (\(Re\)) is approximated by:
\[ Re = \frac{\rho \cdot U \cdot L}{\mu} \] where:
- \(\rho\) = air density
- \(U\) = wind speed
- \(L\) = characteristic length
(e.g., building width)
- \(\mu\) = air viscosity
When Should You Use This?
You only need to use Scale Input Wind Speed if your simulation is based on a scaled-down physical model (not full size).
For example, if youβre simulating airflow around a miniature car in a wind tunnel, this function adjusts the inlet speed so that the flow behaves the same as it would around the real, full-size car.
This is crucial because airflow patterns depend on the Reynolds number. A small object at full wind speed will experience different flow behavior (e.g., laminar vs turbulent) than a full-size object.
When You Donβt Need It
If your geometry is modeled at true 1:1 scale (real-world size), then you donβt need to use this feature. Just enter the actual wind speed directly.
Using it in a 1:1 simulation could distort physical accuracy.
Summary
- β Use this when modeling scaled objects (e.g., models from wind tunnel, miniatures, blueprints).
- β Skip this when modeling at full real-world size.
Set Domain Height
Changes the vertical height (Ly) of the simulation domain.
You can either:
- Enter the new height manually (minimum = 1.0 meters)
- Draw a vertical reference line and input the real-world
height
The horizontal width (lx) updates automatically using:
lx = 2 * ly
After applying changes, the simulation reloads with the new dimensions. Save your work before using this feature.
Porous and Blower Zones
This feature allows you to define polygon regions that either resist airflow (porous or vegetation zones) or inject airflow (blower zones). These zones are fully integrated into the momentum solver.
Porous Zones β Flow Resistance
Porous zones are used to simulate vegetation, fences, or other semi-obstructive elements that reduce wind velocity.
Two ways to define resistance:
- Porosity (%): Directly set how permeable the zone is to air (100% = no resistance).
- LAI (Leaf Area Index): Defines vegetation density, which is converted into porosity automatically.
LAI to Porosity Mapping
When LAI is used, porosity is computed from an exponential decay model:
\[ \text{Porosity} = 100\, e^{-0.5\,\text{LAI}} \]
This captures how denser vegetation obstructs airflow more effectively.
LAI | Porosity (%) | Vegetation Type |
---|---|---|
0 | 100% | No vegetation |
1 | ~60% | Light foliage |
3 | ~22% | Moderate vegetation |
5 | ~8% | Dense canopy |
7 | ~3% | Very dense vegetation |
How the solver actually uses LAI
- The porosity shown in the UI is for
intuition/visualization.
- The physics applies quadratic canopy drag
using leaf-area density:
\[ \text{LAD}=\frac{\text{LAI}}{H_c},\qquad \frac{d\mathbf{U}}{dt}\propto -\,\text{LAD}\,\lVert\mathbf{U}\rVert\,\mathbf{U} \] where \(H_c\) is the local canopy thickness (in the direction normal to the flow section you sketched).
Plan (Top) View - Use species LAI directly
(e.g., Apple 2β4, Banana 3β6).
- No height input is needed; the model is per-unit depth out of
plane.
Side (Section) View - Enter the same LAI;
do not calculate height by hand.
- The solver infers \(H_c\) from
your drawn polygonβs vertical thickness and computes \(\text{LAD}=\text{LAI}/H_c\) per
cell.
Notes - Published LAI values are
already integrated over canopy height in field
measurements.
- Longer polygons (x-direction) donβt change LAI interpretation;
they just extend where the drag is applied.
Flow Damping Equation
Porous zones introduce resistance in the velocity update step based on porosity:
Drag Coefficient:
\[ C_d = \frac{(1 - \phi)^2}{\phi^3 + \varepsilon} \]
Where:
- \(\phi\) = porosity (as a
fraction from 0 to 1)
- \(\varepsilon\) = small constant to avoid division by zero
Velocity Damping Applied in Solver:
\[ u = u_{\text{adv}} - \Delta t \cdot C_d \cdot u_{\text{adv}} \\ v = v_{\text{adv}} - \Delta t \cdot C_d \cdot v_{\text{adv}} \]
This reduces the wind velocity inside porous zones during each time step.
Tree Species β Typical LAI Ranges
Use these values as guidance when modeling real-world vegetation:
π³ Sample Tree LAI Values (Typical Ranges)
β’ Acacia (Acacia spp.)β¦β¦β¦β¦β¦β¦ 3.5β6.0
β’ Apple (Malus domestica)β¦β¦β¦β¦β¦ 2.0β4.0
β’ Areca Palm (Dypsis lutescens)β¦β¦β¦ 1.5β2.5
β’ Avocado (Persea americana)β¦β¦β¦β¦ 2.5β4.5
β’ Bald Cypress (Taxodium distichum)β¦.. 3.0β5.0
β’ Banana (Musa spp.)β¦β¦β¦β¦β¦β¦β¦ 3.0β6.0
β’ Bamboo (various species)β¦β¦β¦β¦.. 2.0β5.0
β’ Beech (Fagus grandifolia)β¦β¦β¦β¦. 2.5β4.0
β’ Birch (Betula spp.)β¦β¦β¦β¦β¦β¦.. 2.0β4.0
β’ Camphor Tree (Cinnamomum camphora)β¦. 2.5β4.5
β’ Casuarina (Casuarina equisetifolia)β¦ 3.0β4.0
β’ Cherry Blossom (Prunus serrulata)β¦.. 3.0β4.5
β’ Chinese Elm (Ulmus parvifolia)β¦β¦.. 2.5β4.0
β’ Coconut Palm (Cocos nucifera)β¦β¦β¦ 1.5β2.5
β’ Coffee (Coffea arabica)β¦β¦β¦β¦β¦ 1.5β3.0
β’ Douglas Fir (Pseudotsuga menziesii)β¦ 2.0β4.0
β’ Eucalyptus (Eucalyptus spp.)β¦β¦β¦. 2.0β4.0
β’ Fig (Ficus carica)β¦β¦β¦β¦β¦β¦β¦ 2.0β3.5
β’ Ginkgo (Ginkgo biloba)β¦β¦β¦β¦β¦. 1.5β2.5
β’ Guava (Psidium guajava)β¦β¦β¦β¦β¦ 2.5β4.0
β’ Jackfruit (Artocarpus heterophyllus).. 3.0β5.5
β’ Japanese Maple (Acer palmatum)β¦β¦.. 2.0β3.5
β’ Lemon (Citrus limon)β¦β¦β¦β¦β¦β¦. 2.0β3.5
β’ Litchi (Litchi chinensis)β¦β¦β¦β¦. 3.0β5.0
β’ Live Oak (Quercus virginiana)β¦β¦β¦ 3.0β5.0
β’ Mahogany (Swietenia spp.)β¦β¦β¦β¦. 2.5β4.5
β’ Mango (Mangifera indica)β¦β¦β¦β¦.. 3.0β5.0
β’ Neem (Azadirachta indica)β¦β¦β¦β¦. 2.0β3.5
β’ Olive (Olea europaea)β¦β¦β¦β¦β¦.. 1.5β3.0
β’ Papaya (Carica papaya)β¦β¦β¦β¦β¦. 2.0β4.0
β’ Pine (Pinus spp.)β¦β¦β¦β¦β¦β¦β¦. 2.0β5.0
β’ Rain Tree (Albizia saman)β¦β¦β¦β¦. 4.0β7.0
β’ Red Cedar (Juniperus virginiana)β¦β¦ 2.0β3.5
β’ Red Maple (Acer rubrum)β¦β¦β¦β¦β¦ 2.5β4.5
β’ Rubber Tree (Hevea brasiliensis)β¦β¦ 2.5β4.5
β’ Sugar Maple (Acer saccharum)β¦β¦β¦. 3.0β5.0
β’ Sycamore (Platanus occidentalis)β¦β¦ 3.5β6.0
β’ Tamarind (Tamarindus indica)β¦β¦β¦. 3.0β5.0
β’ Teak (Tectona grandis)β¦β¦β¦β¦β¦. 2.5β4.5
β’ Tulip Tree (Liriodendron tulipifera).. 3.5β5.5
β’ Walnut (Juglans regia)β¦β¦β¦β¦β¦. 3.0β4.5
β’ White Oak (Quercus alba)β¦β¦β¦β¦.. 2.5β4.5
Blower Zones β Air Injection
Blower zones are polygonal areas that inject momentum into the flow field, simulating fans or ducts.
Each blower has:
- Direction angle (degrees)
- Speed (m/s)
Injected Velocity Components:
\[ u = V \cdot \cos(\theta), \quad v = V \cdot \sin(\theta) \]
Where:
- \(V\) = specified blower
speed
- \(\theta\) = blower angle in degrees
The computed velocity is applied to grid cells in the blower zone. Neighboring cells receive a transition blend to prevent sharp discontinuities.
Volume Balance Aid
To ensure airflow consistency, the system automatically computes how much velocity is required at the inlet to match the total blower outflow:
\[ V_{\text{inlet}} = \frac{3 \cdot Q_{\text{total}}}{A_{\text{inlet}}} \]
Where:
- \(Q_{\text{total}}\) = sum of
volume flow rates from all blower zones
- \(A_{\text{inlet}}\) = inlet
area (typically domain height Γ 1m depth)
- Factor of 3 ensures conservative balance with margin
This recommendation appears (in the log console) as a suggestion for the minimum inlet velocity.
Image Processor and Wind Locator
This tool helps you quickly prepare images for CFD simulation and align them with real-world wind conditions β ideal for architects, urban planners, and HVAC designers working with satellite imagery, blueprints, or scanned floorplans.


Image Setup and Wind Alignment
Users can load any image of interest β from a simple floorplan to an airfoil β into the simulation domain.
If needed, the system provides edge detection tools to help extract clear outlines from the image β especially useful when loading floorplans or sketches from the Internet.
Two sliders at the top of the interface control the edge detection threshold, allowing you to fine-tune what is considered an edge based on contrast. This ensures cleaner geometry recognition before simulation.
To simulate realistic wind exposure:
- Users can enter a latitude and longitude to retrieve wind data from the NOAA wind database.
- Use the prevailing wind direction wheel to
set the wind origin.
- For example, selecting SE means wind is blowing from the southeast, entering from the left side of the simulation domain.
- The floorplan is automatically overlaid on a wind rose, so as you rotate the wind wheel, you can see how your structure is oriented relative to real-world wind directions.
The tool offers two independent workflows:
- A. Prepare & Export Geometry β Trace and extract shapes from an image to use as CFD obstacles.
- B. Add Wind Data β Automatically retrieve and overlay wind patterns based on geographic coordinates.
a. Preparing and Exporting an Image
Open the Image Processor
- From the main AirSketcher interface, launch the βImage Processor & Wind Locatorβ module.

- A new window with a canvas-based UI will appear.
Load Your Image
- Click the file upload button
(
Choose File
) to load an image (e.g.Β floorplan, sketch, aerial view). - Supported formats:
.jpg
,.png
,.bmp
, etc. - The image is automatically resized and centered.
Refine Image Outlines
Use the two sliders to control how clearly shapes and boundaries are extracted from your image.
- Lower slider values highlight faint lines and subtle features β ideal for hand-drawn sketches or soft scans.
- Higher values ignore minor details and emphasize bold, well-defined edges β best for high-contrast images.
The image preview updates in real time over a clean white background, giving you immediate feedback.
Export for Simulation
- When satisfied with the edge outlines:
- Click βExport to Simulationβ
- This creates a
saved_drawing.pkl
file in your local project folder. - This file contains the extracted geometry for use in your CFD domain.
b. Adding Real Wind Data
Enter Coordinates
- Type latitude and longitude into the
Latitude, Longitude
box (e.g.,40.7128, -74.0060
for NYC). - Press βFetch Windroseβ

What Happens Behind the Scenes
- The app finds the nearest NOAA weather stations using a built-in database.
- It downloads historical wind data.
- It automatically generates a windrose β a circular plot showing the most frequent wind directions and speeds.
Visual Map Overlay
- A high-resolution OpenStreetMap image centered on your location is downloaded.
- The windrose is automatically overlaid on the map, with frequency values shown.
- Your floorplan image is also overlaid on top of the windrose, for visual orientation.
Align with Wind
- Use the scrollable wind direction wheel on the left.
- Select a direction (e.g., βSWβ) to rotate the canvas accordingly.
- The software auto-rotates and overlays your drawing.
Reading a Wind Rose
A wind rose is a visual summary of how wind speed and direction are distributed at a specific location.
Below is an example from DUNEDIN AERODROME AWS, approximately 41.95 km from the reference point.

How to Read the Wind Rose:
- Direction (compass orientation): Each wedge shows where the wind comes from. For example, large bars pointing NE and SW mean wind frequently blows from NE and SW.
- Bar length: Longer bars = higher frequency from that direction.
- Color shading: Indicates wind speed
ranges (legend at right):
- π£ 0β2 m/s
- π΅ 2β4 m/s
- π’ 4β6 m/s
- π‘ 6β8 m/s
- π© 8β10 m/s
- π¨ 10+ m/s
- Concentric rings: Represent frequency percentages (e.g., 2.5%, 5%, 10%, 15%, 17.5%)
Setting Wind Inputs in a Simulation
Wind Direction
- Use the dominant direction(s) β in this case:
- Strongest wind comes from NE and SW
- These are good candidates for inflow boundary direction
π‘ Simulation Logic:
In the simulation environment, the wind always enters from the left side of the domain. This is because the software sets the inlet boundary on the left, with flow moving horizontally rightward.
What You Need to Do:
If wind in reality comes from NE (45Β°):
- Rotate your obstacle or layout so that wind enters from the left.
- Or use the wind direction wheel to rotate the layout accordingly.
Example:
If real wind is from SW (225Β°):
- Rotate the model layout so SW aligns with the left side
- Or set inlet direction to SW in the control panel
π Always align wind direction relative to the left-side inlet, since thatβs where airflow begins.
Wind Speed
- Use the most frequent wind speed range
- For this case: 4β6 m/s (green)
- Suggested input speed: 5 m/s
Example Setup:
Wind direction: 45Β° (from NE) or 225Β° (from SW)
Wind speed (at a reference height 10m): 6 m/s
βΉοΈ If using ABL (Atmospheric Boundary Layer), the 5 m/s typically applies at the domain top (e.g., 10 m or 100 m height).
Summary
Element | Value (from rose) |
---|---|
Dominant Wind | From NE and SW |
Frequency Peak | ~17.5% from SW |
Typical Speed | 4β8 m/s |
Suggested Inlet | 6 m/s from SW (225Β°) |
When Youβre Ready
- Return to the main simulation screen
- Use the Import image icon (right panel) to import your
.pkl
obstacle layout- Click Run to begin simulation
Running a Simulation
Once your geometry, wind zones, and simulation parameters are set, running a simulation in AirSketcher is straightforward β though behind the scenes, the solver performs several intelligent steps to ensure stability, accuracy, and physical realism.
How to Start
- Click the βΆ Run Simulation button.
- The solver begins processing your setup: geometry, wind,
zones, and any porous or blower definitions.
- A live residual plot opens to monitor convergence.
What Happens During the Simulation
For each iteration, the solver performs:
- Time step (
dt
) calculation using the CFL condition:
Lower CFL values are used when Refine Flow is enabled, improving accuracy. - Porous and blower zones are applied to the velocity field.
- Velocity (
u
,v
) and pressure (p
) fields are updated, respecting all boundary conditions. - Mass flow is balanced between inlets and outlets to avoid volume gain/loss.
- Residuals are computed to measure change between steps:
Residual_u = |u - u_prev|
Residual_v = |v - v_prev|
Residual_p = |p - p_prev|
These residuals are shown live in the solver graph.
Live Monitoring
Every 200 iterations (default, configurable):
- A Live Progress View updates:
- Shows streamlines and velocity heatmaps.
- Highlights high-interest zones.
- Displays mass balance and a real-time Design Score based on airflow smoothness and coverage.
When the Simulation Stops
The solver now uses explicit, code-level criteria for stopping or notifying you:
- Convergence β Auto-Stop
- Triggered only after the solver has run a minimum number of iterations (internal guard).
- Mass flow imbalance (|αΉ_in β αΉ_out| / αΉ_in) < 1.00%.
- All three step-change residuals (Ux, Uy,
Pressure) fall below 0.005%
(these are percent changes between successive iterations, not absolute field values). - When met, the solver stops automatically and shows a βSimulation Stoppedβ info message.
- Stagnation / Plateau β Non-blocking Notice (keeps
running)
- Over the last 100 iterations, the maximum change in each residual is < 1e-5, and mass flow imbalance < 1.00%.
- Youβll see a non-blocking toast:
βResiduals have plateauedβimprovements are marginal and slow. Continuing run (iteration N).β - The simulation continues (no dialog to dismiss, no stop).
- Maximum Iterations Reached (20,000) β Prompt
- At 20,000 iterations, youβll be asked whether to continue.
- If you choose Continue, the run proceeds and you wonβt be prompted again in this run.
- If you choose Stop, the solver ends.
- Divergence / Instability β Auto-Stop
- If any residual spikes to an extreme value (e.g., > 10,000%) or mass flow imbalance > 200%, the solver stops automatically and shows a warning.
Other Insights
- CPU and RAM usage are displayed in the solver window.
- Total runtime is shown after simulation ends.
- Warnings are displayed if instability is detected, and the solver will auto-stop.
After Completion
- Simulation controls become re-enabled.
- You can review:
- Final residual curves
- Streamline, pressure, particle tracking visualizations
- An innovative Qi Flow Index (QFI)
- You can modify any settings and rerun.
Notes
- The solver runs in steady-state mode (not time-dependent).
- Always rerun the simulation after changes to:
- Geometry or boundaries
- Inlet wind speed or direction
- Zone types (porous or blower)
- Mesh height or layout alignment
Solver behavior depends on: - Domain height (ly
) -
Inlet speed - CFL condition (automatically adjusted if
Refine Flow is on)
π‘ Pro Tip
Not sure if the simulation is stable?
Look at the residual plot:
- β A steady downward trend with values close to zero means youβre converging.
- A flat or rising line suggests a problem β try:
- Lowering the inlet speed
- Enabling Refine Flow
- Disabling AMR
Visualizing Results
After the simulation is complete, you can view the results using the panel of visualization tools. Each button provides a specific type of analysis to help interpret flow behavior, pressure distribution, or derived performance.
Velocity Contour
The Velocity Contour tool renders a filled color map of the fluid velocity magnitude across your simulation domain. It helps you spot high-speed regions, wake formations, and flow symmetry β all at a glance.

Features
Colormap Customization
Input your own min/max values to stretch or compress the contour color scale. This is especially useful when:- Focusing on low-velocity boundary layers
- Comparing different cases side-by-side
Interactive Hover Tooltips
Hover anywhere on the plot to view:Vmag: Velocity Magnitude (m/s) Vx: Horizontal Component (m/s) Vy: Vertical Component (m/s) P: Static Pressure (Pa)
Line Probe Tool
Draw custom line probes to sample flow data across any two points. Youβll get:- Velocity & pressure plots
- Vx/Vy component plots
- Mass flow per segment
- Exportable data tables
Usage Tips
- Use βApplyβ to rescale the color range.
- Use βStreamlinesβ, βParticle Trackingβ, or βQi Flowβ to explore complementary visualizations.
- Use βReportβ to get an instant summary of your current simulation results.
π Notes
- Velocity in enclosed regions is automatically masked to avoid misleading visuals.
- Results are interpolated back onto the original grid, ensuring visual consistency.
- Watermark adapts brightness automatically for visibility across any background.
Pressure Contours
The Static Pressure visualization presents how pressure is distributed throughout the domain, particularly highlighting high and low zones around obstacles.

Key Features
Pressure Contours
Colored contour shading visualizes the distribution of static pressure.Value Tooltips
- Left-click anywhere in the domain to show the
local static pressure.
- Right-click removes all tooltip annotations.
- Left-click anywhere in the domain to show the
local static pressure.
Contour Detail Control
A slider allows you to adjust the number of contour levels (from 5 to 250) to suit your needs.Porous Zone Toggle
Toggle porous/blower zone overlays to see where artificial sources/sinks were defined.
Aerodynamic Analysis
Force Calculation (pressure-only) We integrate pressure over the outer boundary of the largest closed obstacle (per unit span in 2D).
The pressure used in the integral is the relative pressure after subtracting the far-field level and optional linear gradients: \[p_{\text{rel}}(x,y)=p(x,y)-p_\infty-b_x(x-x_0)-b_y(y-y_0).\] Each small boundary segment of length \(ds\) with unit outward normal \(\hat{\mathbf n}\) contributes \[d\mathbf F=-\,p_{\text{rel}}\,\hat{\mathbf n}\,ds,\] so the total (pressure) force is \[\mathbf F=\oint_{\partial\Omega}-\,p_{\text{rel}}\,\hat{\mathbf n}\,ds,\] \[F_x=\oint -p_{\text{rel}}\,n_x\,ds,\qquad F_y=\oint -p_{\text{rel}}\,n_y\,ds.\] > Note: this is pressure-only (no viscous shear). For many 2D bluff-body cases, the pressure term dominates.Reference Length in 2D (per unit depth) Coefficients are reported with two common 2D reference lengths:
- [H] projected height (normal to flow; common for buildings/cylinders).
- [c] chord / streamwise extent (common for airfoils; matches wind-tunnel convention).
Chord Line & AoA Detection The left-most and right-most points of the body contour (near min/max \(x\)) define the chord line.
Angle of attack (AoA) is taken from that chord line (nose-up positive).
β οΈ Important for Accuracy - Enable Refine Flow (adequate resolution near boundaries). - Run until mass-flow balance \(\ge 99\%\). - Poor convergence (e.g., \(<95\%\)) can yield unreliable lift/drag.
Aerodynamic Coefficients
Let \(q_\infty=\tfrac12\rho U_\infty^2\). We report both normalizations:
Using projected height [H] \[C_D^{[H]}=\frac{F_x}{q_\infty\,H},\qquad C_L^{[H]}=\frac{F_y}{q_\infty\,H},\qquad \left(\frac{L}{D}\right)^{[H]}=\frac{C_L^{[H]}}{C_D^{[H]}}.\]
Using chord / streamwise extent [c] \[C_D^{[c]}=\frac{F_x}{q_\infty\,c},\qquad C_L^{[c]}=\frac{F_y}{q_\infty\,c},\qquad \left(\frac{L}{D}\right)^{[c]}=\frac{C_L^{[c]}}{C_D^{[c]}}.\]
Where: \(F_x,
F_y\) are pressure forces per unit span; \(\rho\) is air density (default \(1.225\ \mathrm{kg/m^3}\));
\(U_\infty\) is freestream speed;
\(H\) is projected height; \(c\) is chord/streamwise extent.
Why two sets?
Different communities use different 2D references:
[H] for bluff bodies; [c] for
airfoils.
Both use the same \(\mathbf F\) and \(q_\infty\); only the length scale
differs.

Particle Tracking & βSmokeβ Overlay
The Particle Tracking view animates tracer
dots that follow your velocity field.
The optional Smoke overlay is a
unitless, normalized density map built from recent
particle paths. The tooltip shows a percent
intensity.

Particle Tracking
- Dynamic injection β Particles enter from the left inlet slit (default) or a custom inlet polygon you draw.
- Advection + tiny diffusion β Dots move with the interpolated velocity and a small random walk for visual softness.
- Stuck detection β Dots with local speed \(<10^{-3}\) are marked red; a live counter is shown.
- Exclude Region (counting only) β Polygons prevent dots inside them from being counted as βtrapped.β Motion is unchanged.
- Starts paused β Use Run/Reset to begin (or restart).
Controls: Particle Speed, Color (dot brightness), Amount, plus Run/Reset, Stop, Exclude Region, Clear Exclusions, Set/Reset Particle Inlet, Show/Hide Porous Zones.
When Smoke overlay is on, particle dots are hidden to keep the image clear.
Smoke Overlay (normalized, unitless)
The overlay is advanced each frame on the plot grid from particle footprints.
Symbols
- Grid spacings \(\Delta x,\ \Delta y\); image size \(n_x\times n_y\).
- Fluid mask \(M_{i,j}\in\{0,1\}\).
- Accumulation \(C^{(k)}_{i,j}\ge 0\) at frame \(k\) (unitless).
- Fresh deposit \(D^{(k)}_{i,j}\ge 0\) (unitless).
- Decay \(\alpha\in(0,1)\) (Trail slider).
- Blur width \(\sigma\) (Thickness slider).
- Display gamma \(\gamma\approx 0.72\); EMA factor \(\beta\).
Per-frame pipeline
1) Bilinear deposit from dots \[ D \ \leftarrow\ \text{scatter of particle footprints (bilinear weights) in fluid }(M=1). \]
2) Compact Gaussian blur (thickness) \[ \tilde D \;=\; G_y(\sigma)\,*\,G_x(\sigma)\,*\,D. \]
3) Trail memory + add \[ C^{(k+1)} \;=\; \alpha\,C^{(k)} \;+\; \tilde D. \]
4) Outlet sponge A light attenuation near the right boundary reduces \(C\) to avoid build-up.
5) Mask solids \[ C^{(k+1)} \leftarrow M\odot C^{(k+1)}. \]
Display mapping (visualization only)
Keep contrast stable with a percentile EMA, then apply a gamma: \[ V_{\max}^{(k)}=(1-\beta)\,V_{\max}^{(k-1)}+\beta\,\mathrm{perc}_{98}\!\big(C^{(k+1)}\big), \] \[ I \;=\; \left[\min\!\left(1,\ \frac{C^{(k+1)}}{V_{\max}^{(k)}+\varepsilon}\right)\right]^{\gamma}. \] \(I\in[0,1]\) is what you see as βsmoke.β The tooltip reports \(100\,I\ \%\).
Reading values
- Left-click in fluid: shows βPollution: \(100\,I\ \%\)β.
- Right-click: clears the tooltip.
What influences the overlay \(C\)
- Particle Speed β Changes where dots travel per frame (affects shape, not units).
- Amount β More dots \(\Rightarrow\) stronger deposits.
- Thickness (m) β Controls \(\sigma\) (visual plume thickness).
- Trail (decay) β Sets \(\alpha\); higher keeps smoke longer.
- Opacity / Theme β Visualization only.
- Set Particle Inlet β Redefines the injection polygon (default: thin left-edge slit).
Accuracy & scope
- Qualitative and unitless: this is a visualization from particle traces (no chemistry, buoyancy, or physical calibration).
- Realism follows the credibility of the velocity field (mesh, porosity, blowers) and inlet placement.
Performance tips
- If controls feel sluggish:
- Temporarily disable the overlay while adjusting other settings.
- Lower particle Amount when the overlay is on (dots are hidden anyway).
- Keep overlay Opacity moderate.
Why is the tooltip a %?
The overlay normalizes \(C\) by a running high percentile to keep contrast stable, then displays \(I\) with a gamma. That makes values comparable frame-to-frame and avoids saturation. The tooltip simply reports \(100\,I\%\); there are no physical units.
Line Probe
The Line Probe tool extracts precise values across any two points in your flow domain.


Steps
Start Probe Click Line Probe β draw a polyline along the path you want to sample.
Reference Scaling (distance calibration)
- If your domain axes are already 1:1 in meters, just press OK in the dialog (no calibration needed).
- If your domain is scaled (pixels/CAD/image), draw a short reference line over a feature with a known real-world length, then enter that length (in meters). This sets the meters-per-unit scale so distances, mass flow rate, and integrals (e.g., int(U ds), int(U^2 ds), int(U^3 ds)) are computed correctly.
Auto Plots
- Velocity Magnitude vs Distance
- Static Pressure vs Distance
- Vx, Vy Components vs Distance
(βDistanceβ is shown in meters using the scale from Step 2.)
- Mass Flow per Segment
\(\dot{m} = \rho \cdot V_n \cdot A\)
Interactive Table
Shows sampled data: X, Y, V, P, Vx, Vy, \(\dot{m}\)Save
Export composite PNG plot.
Graph (line probe) Description
This section explains what each line-probe graph shows and how
the summary numbers are computed.
You draw a polyline; we resample the field along
its arc-length \(s \in [0,L]\)
with local segment lengths \(\Delta
s_i\).
Velocity components are \(u_x,
u_y\); the speed (velocity magnitude) is \(U = \sqrt{u_x^2 + u_y^2}\).
Raw vs smoothed curves. Each plot can show raw
samples (markers) and a gently smoothed curve (solid line).
Integrals labeled βrawβ are taken from the unsmoothed samples;
those labeled βsmoothedβ are taken from the displayed curve.
The data table always exports the raw samples.
Velocity Magnitude \(U\) [m/s]
- Curve: \(U(s)\) versus distance \(s\).
- Integrals shown (lower-right badge):
- \(\int U \, ds\) [mΒ²/s]
- \(\int U^2 \, ds\) [mΒ³/sΒ²]
- \(\int U^3 \, ds\) [mβ΄/sΒ³]
- Optional mean: \(\overline{U} = \frac{1}{L}\int U \, ds\)
- Notes: \(\int U^2\,ds\) (kinetic-energyβlike; highlights fast regions). \(\int U^3\,ds\) heavily weights peaks and can serve as a proxy for potential sand-transport capacity under Bagnoldβs cubic velocity scaling.
Example: Using a near-surface line probe and \(\int U^3\,ds\) for sand transport
Goal. Estimate along-line aeolian sand transport over 2-D topography using Bagnoldβs cubic law and the line-probe metric \(\int U^3\,ds\).
1) Bagnold scaling (form used here).
\[
q \;=\; C\,\frac{\rho}{g}\,\sqrt{\frac{d}{D}}\;u_*^{3}
\] - \(q\): sand mass flux
per unit width (kgΒ·sβ»ΒΉΒ·mβ»ΒΉ)
- \(\rho\): air density, \(g\): gravity
- \(d\): grain size, \(D\): reference size
- \(u_*\): friction (shear)
velocity
- \(C\): empirical constant
Coefficient \(C\) (how to
choose)
A commonly cited range is: \(C \approx
1.5\) (uniform, well-sorted sand) up to \(C \approx 2.8\) (widely graded
sand)
Practical tip: start with \(C = 2.0\) and calibrate against any measured fluxes if available.
2) Link \(u_*\) to
measured wind speed \(U\) at a
fixed near-surface height.
Assume a log law at uniform \(z_{\text{ref}}\) and roughness \(z_0\): \[
U(z_{\text{ref}})=\frac{u_*}{\kappa}\,\ln\!\Big(\frac{z_{\text{ref}}}{z_0}\Big),
\qquad
u_*=\frac{\kappa\,U(z_{\text{ref}})}{\ln\!\Big(\frac{z_{\text{ref}}}{z_0}\Big)},
\] with \(\kappa\simeq0.40\).
3) Combine 1) and 2).
\[
q \;=\; K\,U^{3},
\qquad
K \;=\; C\,\frac{\rho}{g}\,\sqrt{\frac{d}{D}}\,
\left[\frac{\kappa}{\ln\!\Big(\frac{z_{\text{ref}}}{z_0}\Big)}\right]^3
.
\] If \(z_{\text{ref}}\)
and \(z_0\) are uniform along the
probe, \(K\) is constant.
4) Draw a polyline line probe along the near-surface
path.
Let vertices be \(\{(x_i,y_i)\}\)
with arc-length spacings \(\Delta
s_i\).
The toolβs metric is \[
\int_{\text{polyline}} U^{3}(s)\,ds \;\approx\; \sum_i
U_i^{3}\,\Delta s_i .
\]
5) Convert the metric to transport.
Total along-line flux (per unit span out of plane): \[
Q_{\text{line}} \;\approx\; K \int U^{3}\,ds .
\] With SI inputs in \(K\), \(Q_{\text{line}}\) is in kgΒ·sβ»ΒΉ.
6) Optional threshold for motion.
If a threshold friction velocity \(u_{*t}\) applies, set segments with
\(u_*\le u_{*t}\) to zero. Using
the log-law link, define \[
U_t=\frac{u_{*t}}{\kappa}\,\ln\!\Big(\frac{z_{\text{ref}}}{z_0}\Big),
\qquad
Q_{\text{line}} \;\approx\; K \sum_i
\max\!\big(U_i^{3}-U_t^{3},\,0\big)\,\Delta s_i .
\]
Assumptions / tips - Use one \(z_{\text{ref}}\) along the polyline
(above the roughness sublayer).
- If \(z_0\) varies strongly,
treat \(K\) locally as \(K_i\).
- Choose \(d\) and \(C\) for the expected sand (dry,
non-cohesive).
- Your \(\int U^3 ds\) metric is
a proxy for the Bagnold driver: larger values indicate stronger
transport potential along the drawn path.
Static Pressure \(p\) [Pa]
- Curve: \(p(s)\) versus distance \(s\).
- Integral shown:
- \(\int p \, ds\) [PaΒ·m]
- Optional mean: \(\bar p = \frac{1}{L}\int p \, ds\)
- Note: This is a line measure along the probe; it is not a surface force.
Velocity Components \(u_x, u_y\) [m/s]
- Curves: \(u_x(s)\) and \(u_y(s)\) versus distance \(s\) (separate colors/axes).
- Note: Components can change sign; the magnitude \(U\) is non-negative.
Mass Flow Across the Polyline [kg/s]
Let \(\rho\) be density and
\(\mathbf{n}(s)\) the unit normal
of the polyline (pointing to the measured side).
The normal velocity is \(V_n(s) =
u_x(s)\,n_x(s) + u_y(s)\,n_y(s)\).
- Mass-flow density (per unit length): \(\dot m'(s) = \rho\,V_n(s)\) [kg/s/m]
- What is plotted:
- Either \(\dot m'(s)\) versus \(s\) (recommended), or
- Per-segment totals \(\dot m_i = \rho\,V_{n,i}\,\Delta s_i\) [kg/s].
- Totals shown (badge):
- Raw sum (discrete): \(\Sigma = \sum_i \rho\,V_{n,i}\,\Delta
s_i\) [kg/s]
(Conservation check; matches the data table.) - Integral (continuous): \(\int \dot m'(s) \, ds\)
[kg/s]
(Computed over the displayed curveβraw or smoothed as labeled. Small differences from \(\Sigma\) are normal when smoothing/resampling.)
- Raw sum (discrete): \(\Sigma = \sum_i \rho\,V_{n,i}\,\Delta
s_i\) [kg/s]
Units sanity check
- \(\rho\) [kg/mΒ³] Γ \(V_n\) [m/s] Γ \(\Delta s\) [m] = kg/s (segment mass
flow).
- \(\dot m'(s) = \rho V_n\)
has units kg/s/m; integrating over length returns kg/s.
- For the magnitude panel: \(U\) [m/s] Γ length [m] = mΒ²/s; squaring/cubing \(U\) scales units accordingly.
Report
The Report tool builds a polished PDF and a Word-friendly bundle from your current simulation. It uses an ROI (rectangular Region of Interest) plus user-picked POIs (Points of Interest) to drive stats, charts, and AI-assisted narrative.
π οΈ Workflow
Run a simulation
Ensure velocity/pressure fields are available.Open AI Analysis
Click Report / AI Analysis. A new window opens showing the velocity map.Draw the ROI
- Drag a rectangle over the area you want analyzed.
- Click Confirm ROI.
Pick POIs (points to sample)
- Click on the plot to drop one or more POIs (theyβre numbered).
- Use Delete Last POI or Reset All POIs if needed.
- Click Confirm Points of Interest.
Name the POIs
- A Name Zones window appears listing βPoint 1β, βPoint 2β, β¦
- Rename them (e.g., Inlet Corner, Mixing Chamber, Outlet).
- Click Submit.
Save the PDF
Youβll be prompted for a PDF filename. After saving, a bundle folder and an AI pack (.json) are created beside the PDF, and the folder is opened for you.
π What the Report Includes
Executive Summary
ROI mean/variance and key percentiles; best/worst POI vs inlet %; brief flow takeaways.Methodology & Theory
Steady incompressible solver; PPE for pressure; options (porous, blower, gravity, ABL); boundary-condition summary.2.1 Governing Equations
Continuity, Momentum, PPE, SpalartβAllmaras (SA). If active, Porous (DarcyβForchheimer) and Blower sources are included. Acronyms are expanded on first use.2.2 Boundary Conditions
ASCII BC sketch (centered), notes on inlet profile (uniform or ABL log-law), outlet, top/bottom, gravity, ground friction.
Optional figures: ABL profile and AMR mesh (if enabled).3.1 Velocity & Streamlines (side-by-side)
Same color scale for both; ROI box and POI markers/labels are drawn on the left panel.3.2 ROI Statistics
ROI Histogram and CDF of \(|V|\) (never clipped); P10/P50/P90 annotated.3.3 POI Table
POI name, velocity (m/s), static pressure (Pa).3.4 POI Bar Charts
Velocities and pressures per POI.4. Conclusions
Design implications (recirculation pockets, jets, uniformity), with actionable suggestions.
π¦ Outputs
- PDF report (you choose the filename/location).
- Bundle folder (auto-created next to the PDF)
containing all images used in the report and, if available:
report_insert.docx
(requirespython-docx
; otherwise areport_insert.md
is written).
- AI pack: a single JSON file embedding arrays (grids/fields/masks), BCs/physics flags, and images for downstream AI summarization.
Notes & Tips
- You must pick at least one POI to proceed
(youβll be prompted if none are selected).
- The Name Zones window is always on top so you donβt βloseβ it; submitting it auto-closes the AI window.
- POI names flow through to tables, charts, and captions.
- Streamlines use the same \(|V|\) color scale as the map; darker gaps can indicate very low local speeds.
- If ABL/AMR/porous/blower options are active in your case, the corresponding equations/figures appear automatically.
Qi-Flow
Qi-Flow (QFI) blends CFD with Feng Shui to assess air harmony, clarity, and comfort.

How QFI Works
- \(|V| = \sqrt{u^2 +
v^2}\)
- \(V_{\text{opt}} = 1.2\) m/s
(target)
- \(\sigma = 0.6\) m/s (tolerance)
Formulas:
Smoothness
\[ S = \frac{1}{1 + \nabla |V|} \]Comfort
\[ V_s = \exp\left(-\frac{(|V| - V_{\text{opt}})^2}{2\sigma^2}\right) \]Qi-Flow Index
\[ QFI = S \times V_s \]
Room Classification
Room Type | Velocity Range | QFI Score | Color | Use |
---|---|---|---|---|
Sha Chi | \(|V| > V_{\text{opt}} + \sigma\) | β | Red | Too fast, aggressive flow |
Stagnant Zone | \(|V| < V_{\text{opt}} - \sigma\) | < 0.55 | Gray | Too slow or blocked |
Calm Room | 0.6β1.8 m/s | > 0.80 | Blue | Sleep, study |
Active Room | 0.8β2.1 m/s | 0.60β0.80 | Green | Balanced, energized |

Tips for Qi-Aligned Flow
- Break long corridors with buffer zones (read more)
- Allow air to circulate in loops between zones (read more)
- Favor gentle curves over sharp corners (read
more)
- Enable Refine Flow for natural
transitions
- Consider adding trees or vegetation zones in outdoor or semi-enclosed areas to introduce soft flow resistance and improve harmony (read more)
Troubleshooting & FAQ
(To be filled)
π₯ Credits
Core Development
- Tech Architect: Dr.Β Wichai
Pattanapol
- Learning Lead: Adam Gill
π Licensing & Acknowledgements
AirSketcher may incorporate open-source components under
compatible licenses.
All third-party libraries retain their original licensing
terms.
If you redistribute or build upon this software, proper attribution is appreciated.
π¨ Contact
For questions, feedback, or collaboration inquiries:
π§ support@polar-dynamix.com
π www.polar-dynamix.com