Polars
Polars is an interactive viewer application for sailing-related polar diagrams on macOS.
Download and installation
- Download the application for macOS.
- Unzip and move the application to your
~/Applicationsfolder on your Mac.
For a quickstart guide and links to sample diagrams look at the #quickstart-guide.
Target applications
Polars provides tools for visualizing, analyzing, and comparing sailing polar diagrams. It is designed to support a range of use cases across sailing and naval design:
- Racing teams: Planning tactics and evaluating boat configurations
- Yacht designers: Validating performance predictions and iterating on designs
- Sailing instructors: Demonstrating and teaching optimal sailing techniques
- Boat owners: Understanding and analyzing their vessel’s behavior
- Naval architects: Comparing polar outputs during design and evaluation phases
Features
📊 Visualization & analysis
- Interpolation for any chosen true wind speed (TWS) and true wind angle (TWA)
- Interactive polar diagram visualization with real-time boat speed calculations
- Velocity Made Good and “Optimal Headings” calculations for tactical decision-making
- VMG routing: Displaying velocity made good (VMG), i.e. the current, proportionate velocity in wind direction: VMG \(= \cos(\)TWA\() \cdot |\vec{V}_b|\) (where TWA is the true wind angle and \(|\vec{V}_b|\) the boat’s speed over ground)
- Optimal headings routing display: Showing the optimal pair of headings for the desired direction and the achievable velocity made on course (VMC) (in case the direct course would be slower or not steerable)
- Maximum boat speed (Max. VTW) and corresponding wind angle (TWA) identification for any given wind speed
- Apparent wind angle (AWA) and speed (AWS) visualization via vector triangle: \(\vec{W}_a = \vec{W}_t + (-\vec{V}_b)\), where \(\vec{W}_a\) is apparent wind, \(\vec{W}_t\) is true wind, and \(\vec{V}_b\) is the boat velocity.
🎛️ Interaction and control
- Mouse-controlled wind angle exploration with instant performance feedback
- Zoom in and out of the polar diagram by adjusting the windspeed scale (TWS) for different analysis needs
- Keyboard shortcuts for simultanous exploration of TWA and TWS with mouse and keyboard
🔁 Comparison & strategy
- Multiple window support for side-by-side polar diagram analysis (document-based application)
- Overlay two polars at the same TWS in a single diagram for delta comparison
- Synchronized mouse interaction across windows for parallel exploration
🗂️ Import & file handling
- Native
.polarformat (JSON‑based) for saving and loading diagrams
- Import polar diagrams from CSV files: ORC, OpenCPN, Array, and HRO-style formats
🔐 Security & Updates
- Fully sandboxed for macOS App Sandbox compliance
- Notarized by Apple for verified safe distribution
- Auto-updating: Sparkle integration for seamless updates
Quickstart guide
Open saved polar diagram files or import data from CSV files:
- Download sample files here: polars-samples.zip
- Open the polar diagram in the sample
*.polarfile by choosing “File” → “Open…” (or press Command-“O”), or - import the sample CSV files to create new polar diagrams by choosing “File” → “Import from CSV…” from the menu (or press Command-Alt-“I”) and choose the appropriate format.
The diagram should be shown. Hover with the mouse over the diagram. Enable “Show Interpolation and Routing” for more interaction. If the sidebar is not shown, use the sidebar button in the toolbar of the window.
tip
You can copy and paste CSV data from ORC boat profiles on https://jieter.github.io/orc-data/site/ into a text file and import that as a CSV with the “ORC” mode.
Notes on Polar’s architecture
Polars app is a desktop application integrating the hrosailing Python library (https://github.com/hrosailing/hrosailing/) for the “heavy-lifting”. From the project’s README:
The hrosailing package provides various tools and interfaces to visualize, create and work with polar (performance) diagrams.
Hybrid architecture:
- Swift frontend: Native performance, proper macOS integration, reactive UI
- Python backend: Access to scientific computing libraries, proven algorithms, robust
hrosailingscientific library
User experience design:
- Contextual sidebar: Organized controls with real-time value displays
- Visual feedback: Color-coded performance indicators and smooth animations
note
There are two variants of interpreting (and displaying) a polar diagram:
- Either you consider the wind direction fixed (from the top) and read the diagram for a boat pointing in different directions, or
- you consider the boat heading fixed (pointing up) and read the diagram for any (true) wind direction around the boat.
Both ways are equivalent, the only difference is, that data needs to be flipped (\(360° - \)TWA/HDG) in one of the variants – depending on how the data was created.
The Polars application choses the first variant where the boat heading can be manipulated with the mouse and the wind always comes from the top of the diagram.
Possible next steps
Polars is under ongoing development as a spare-time project. The following features are being explored based on feedback, user needs and personal priorities:
- Basic polar table editing and creation
- Export and conversion to common formats
- Additional analysis tools, such as target speeds/angles, optimal tacks and jibes
- Exposing more of the
hrosailingfunctionality:- Creation of polar diagrams from measurement data (e.g. NMEA cruise data)
- Calculation and display of isochrones
- Localization?
- Open-sourcing the
hrosailingcommand line wrapper if there is interest
Feedback, sample data, or suggestions are welcome—especially if they help shape useful features (e.g. via the contact form).
Availability
Polars is an application developed for macOS.
The Polars application is currently available as a beta version. If you have feedback on this early version of Polars, please contact me via the contact form.
warning
Beta Limitations and known issues:
- Missing: No support for extended ORC CSV syntax
- Missing: No meaningful error handling when importing from CSV (e.g. wrong format, invalid syntax, etc.)
- Missing: Help pages are not available yet