HSP Desktop โ€” User Manual

Version: 1.0.0  ยท  Technology: HSPiPy v1.1.8


Table of Contents

  1. Introduction
  2. Installation & First Launch
  3. Interface Overview
  4. The Solvent Grid
  5. HSP Fitting
  6. Visualisation
  7. Settings
  8. Troubleshooting

1. Introduction

HSP Desktop is a desktop application for computing and visualising Hansen Solubility Parameters (HSP). It lets you build a solvent dataset, score each solvent for compatibility with a material of interest, fit an HSP sphere (or two spheres simultaneously), and instantly see the result in an interactive 3D or 2D plot.

The science is powered by HSPiPy, a Python library that implements the HSP sphere optimisation algorithm. The application wraps that library in a native desktop interface available for Windows, macOS, and Linux. By purchasing HSP Desktop you directly support the continued development of HSPiPy as an open-source project.

Key capabilities:


2. Installation & First Launch

Installation

Double-click the installer (.msi on Windows, .dmg on macOS, .deb on Linux) and follow the on-screen steps. The application installs to your user directory and does not require administrator privileges.

Security warnings (unsigned app)

HSP Desktop is currently distributed without a platform code-signing certificate. Your operating system will show a one-time security warning the first time you install or open the app. This is expected โ€” follow the steps below to proceed.

Windows โ€” SmartScreen
When you see "Windows protected your PC":
1. Click More info
2. Click Run anyway
macOS โ€” Security warning
macOS will block the app on first launch. Depending on your macOS version you may see either "cannot be opened because the developer cannot be verified" or "is damaged and can't be opened". The fastest fix for both is to run this command once in Terminal after installing, then relaunch the app:
xattr -cr /Applications/hsp-desktop.appIf you see the "cannot be verified" dialog (not the "damaged" one), you can alternatively go to System Settings โ†’ Privacy & Security, click Open Anyway, and relaunch. The xattr command works for both cases and is always safe to run.
Linux
No extra steps are required for the .deb package.

If you run into any trouble during installation, contact support@g-npd.com.

Splash Screen

When the application opens, a splash screen is displayed. On first launch, a setup dialog guides you through three steps: language selection, reviewing the License Agreement (EULA), and license activation. A progress indicator at the top of the dialog shows which step you are on, and you can go back to the language step at any time by clicking Back on the EULA step. Once all steps are completed, the backend starts automatically and an animated progress bar with rotating status messages confirms that startup is in progress. On most systems this takes 3โ€“10 seconds; on macOS the very first launch may take a few extra seconds while the system verifies the backend component. A Cancel button is shown at the bottom โ€” clicking it quits the application cleanly.

If the Backend Does Not Start

The app polls the backend continuously with no fixed timeout, so a slow machine will still succeed given enough time. If something is genuinely wrong, click Cancel to quit and try the following:


2.1 Language Selection

Language selection step of the setup dialog

On first launch, a setup dialog appears with a three-step progress indicator at the top. The first step asks you to select your preferred interface language.

Click one of the three options โ€” the dialog immediately advances to the next step. If you need to change your selection, click Back on the EULA step to return here.

The selected language is remembered for all future launches and can also be changed at any time in Settings.


2.2 License Agreement (EULA)

EULA step of the setup dialog

The second step shows the End User License Agreement. You must:

  1. Read the End User License Agreement (scroll through the text box).
  2. Tick the "I have read and agree to the License Agreement" checkbox.
  3. Click Accept & Continue.

If you selected the wrong language in the previous step, click Back to return to the language selector.

The acceptance is stored locally; this step does not appear again on subsequent launches.

Links to the full EULA and Privacy Policy are provided at the bottom for reference.


2.3 License Activation

License Activation step of the setup dialog

The third step activates your license. If a valid license is already stored on your machine this step is skipped automatically and the backend starts loading.

To activate:

  1. Locate the license key in your purchase confirmation email (format: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX).
  2. Paste or type the key into the input field.
  3. Click Activate (or press Enter).

The application contacts the license server to validate the key. Once validated, the dialog closes and the backend starts loading automatically โ€” the progress bar begins and the main interface loads once the backend is ready.

If the key is rejected, an error message is displayed below the input. Check that the key is complete and unmodified, then try again.

No license yet? Click the "Purchase one here" link inside the dialog to open the purchase page in your browser.

3. Interface Overview

Full main window with loaded grid and fitted sphere

The main window is divided into two resizable panels separated by a drag handle.

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                             โ”‚                          ๐Ÿ“„  โš™       โ”‚
โ”‚   Solvent Grid              โ”‚  [ 3D | 2D | 2D/3D ]                 โ”‚
โ”‚   โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€     โ”‚                                      โ”‚
โ”‚   Grid selector toolbar     โ”‚   3D / 2D Plot                       โ”‚
โ”‚                             โ”‚                                      โ”‚
โ”‚   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”   โ”‚                                      โ”‚
โ”‚   โ”‚ Solvent table       โ”‚   โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚   โ”‚ (scrollable)        โ”‚   โ”‚   Fitting Panel                      โ”‚
โ”‚   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜   โ”‚   ฮดD ฮดP ฮดH Rโ‚€ | Fit HSP | Explore   โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
AreaDescription
Left โ€” Solvent GridToolbar for grid management + scrollable solvent table
Right top โ€” PlotInteractive 3D or 2D scatter plot of the solvent space
Right bottom โ€” Fitting PanelHSP fitting controls, results, and Surface Explorer
Top right โ€” Docs icon ()Opens the user documentation in your browser
Top right โ€” Settings icon ()Opens the Settings modal (language, host, port, API key)
Top right โ€” Plot mode selectorSwitches between 3D, 2D, and 2D/3D views

You can drag the vertical divider left or right to resize the two panels.


4. The Solvent Grid

4.1 Creating and Managing Grids

Grid toolbar with dropdown and action buttons

The toolbar at the top of the left panel contains a dropdown selector and a row of icon buttons.

Dropdown selector

Click the dropdown to see all grids saved in the local database. Click a grid name to load it. If you have unsaved changes in the current grid, a confirmation dialog will ask whether to discard them.

Unsaved Changes confirmation modal

Inside the dropdown there is also an inline area to create a new grid: type a name in the text field and press New.

Icon buttons (left to right)

The icon buttons are quick-access shortcuts to the most common actions also available inside the dropdown menu.

IconAction
Create a new empty grid
Open a file (.csv, .hsd, .hsdx)
Export the current grid (hover to choose CSV or Excel)
Save the current grid (and current fit results) to the local database
Rename the current grid
Duplicate the current grid
Rename Grid modal
Delete grid confirmation modal

The save icon turns amber when the grid has unsaved changes.

When a grid is saved, the current HSP fit results (if any) are stored alongside the solvent data. They are automatically restored when the grid is reloaded.

Grid actions inside the dropdown menu

The dropdown also exposes the same actions as labelled text buttons (Open, Export, Save to DB, Rename, Duplicate, Delete), making it self-explanatory if you are unsure what an icon does.


4.2 Adding Solvents from the Database

Add Solvents modal with rows selected

Click the button on the right side of the toolbar to open the solvent picker.

The picker shows the full built-in solvent database. Two features help you find solvents quickly:

Select one or more rows using the checkboxes. Solvents already present in the current grid are shown greyed out and cannot be selected again. When ready, click Add Selected (n) to add them to the grid.


4.3 Adding Solvent Gradients

Add Solvent Gradient modal with two solvents selected

Click the button to open the gradient picker. This tool generates a series of blend rows between two solvents at evenly spaced mixing ratios.

Steps:

  1. Use the search bar to filter the solvent list.
  2. Click one solvent to mark it as A (blue tag).
  3. Click a second solvent to mark it as B (green tag).
  4. Set the Step (%) value โ€” e.g. 10 generates blends at 0:100, 10:90, 20:80, โ€ฆ 100:0.
  5. A preview table shows the calculated HSP values for each blend.
  6. Click Add n row(s) to insert the gradient into the grid.

The generated row names follow the pattern SolventA:SolventB ratio_A:ratio_B, e.g. Ethanol:Water 30:70.


4.4 Importing Files

Click the Open button (folder icon) to import data. Supported formats:

ExtensionDescription
.csvComma-separated values with columns Solvent, D, P, H, Score
.hsdHSPiP native dataset format
.hsdxHSPiP extended dataset format

The file name (without extension) is used as the grid name. The imported data is treated as unsaved until you explicitly save it to the database.


4.5 Exporting Data

Export sub-menu showing CSV and Excel options

Hover or click the export icon () to choose the format:

The file is saved to your Downloads folder with the grid name as the filename.


4.6 Scoring Solvents

Score column with several values filled in

The Score column is the only editable column in the table. It accepts integer values and represents the experimentally observed compatibility of each solvent with the target material.

Two scoring conventions are supported โ€” choose the one that matches your experimental data and set the Inside Limit accordingly (see Section 5.2):

Binary scoring (0 / 1)

The simplest convention: a solvent either dissolves the material or it does not.

ScoreMeaning
1Good solvent โ€” dissolves / interacts with the material
0Bad solvent โ€” no interaction

Set Inside Limit = 1 when using this convention.

Graduated scoring (1 โ€“ 6)

A finer scale that captures degrees of solubility, following the HSPiP convention:

ScoreMeaning
1Completely dissolves
2Mostly dissolves
3Partially dissolves / swells
4Slight interaction
5Little to no interaction
6Untouched โ€” no effect at all

Set Inside Limit to the threshold that separates "good" from "bad" for your material.

Note: Only solvents with a Score assigned are included in the HSP fitting. Unscored rows appear grey in the plot and are ignored by the algorithm.

Keyboard shortcuts in the Score column

KeyAction
Enter or โ†“Move to the next row
Shift+Enter or โ†‘Move to the previous row

4.7 Row Colour Coding

Table with highlighted wrong-in and wrong-out rows

After a fit has been run, rows whose experimental score disagrees with the sphere prediction are highlighted:

HighlightMeaning
Red backgroundWrong in โ€” solvent scored as bad but falls inside the sphere (RED โ‰ค 1)
Amber/yellow backgroundWrong out โ€” solvent scored as good but falls outside the sphere (RED > 1)

These misclassifications also appear as counters in the Fitting Panel (see Section 5.3).


4.8 Adding Custom Solvents

Custom solvent row at the bottom of the grid

The bottom of the solvent table always shows an empty row for entering a solvent that is not in the built-in database โ€” for example, a proprietary solvent blend or a material for which you have measured HSP values yourself.

Fill in the four editable fields in that row:

FieldDescription
SolventFree-text name (any label you choose)
ฮดDDispersion Hansen parameter (MPaยฝ)
ฮดPPolar Hansen parameter (MPaยฝ)
ฮดHHydrogen bonding Hansen parameter (MPaยฝ)

Once all four fields contain valid values, the + button in the leftmost column becomes active. Click it โ€” or press Enter in any of the four input fields โ€” to commit the row. The custom solvent is added to the grid with a blank Score, and the empty row resets for the next entry.

Note: Custom solvents are not stored in the built-in solvent database. They exist in the current session grid and are saved alongside the other solvents when you use Save to DB. Reloading the grid restores them normally.

5. HSP Fitting

5.1 Running a Fit

Fitting Panel before a fit โ€” result fields showing dashes

Once at least one solvent has a Score assigned, the Fit HSP button in the Fitting Panel becomes active and shows the number of scored solvents in brackets, e.g. Fit HSP (42 solvents).

Click Fit HSP to run the optimisation. The button shows a loading spinner while the calculation runs.

Fitting Panel after a fit โ€” result table populated with values

5.2 Fitting Parameters

Inside Limit

Inside Limit dropdown

The Inside Limit selector (values 1โ€“6) sets the minimum Score a solvent must have to be considered inside the sphere during fitting.

This mirrors the inside_limit parameter in HSPiPy.

1 Sphere / 2 Spheres toggle

Toggle in 2 Spheres state

The 1 Sphere / 2 Spheres toggle controls whether the algorithm fits one or two independent HSP spheres simultaneously. Two-sphere fitting is useful for materials with bimodal solubility behaviour (e.g. some polymers or surfactants).

When two spheres are fit, the result table shows two rows (one per sphere) and both spheres are drawn on the plot.


5.3 Reading the Results

Result table and statistics area

Result table

ColumnDescription
ฮดDDispersion Hansen parameter of the sphere centre (MPaยฝ)
ฮดPPolar Hansen parameter of the sphere centre (MPaยฝ)
ฮดHHydrogen bonding Hansen parameter of the sphere centre (MPaยฝ)
Rโ‚€Radius of the fitted sphere (MPaยฝ)

Statistics

MetricDescription
AccuracyPercentage of solvents correctly classified by the sphere (higher is better)
DATAFITHSPiPy's DATAFIT metric โ€” a score from 0 to 1 reflecting fit quality (closer to 1 is better)
ErrorOptimisation residual error (lower is better)

Solvent counts

CounterDescription
InNumber of scored solvents that fall inside the sphere (RED โ‰ค 1)
OutNumber of scored solvents that fall outside the sphere (RED > 1)
โœ— Wrong inSolvents scored as bad (below Inside Limit) but inside the sphere โ€” shown red if > 0
โœ— Wrong outSolvents scored as good (โ‰ฅ Inside Limit) but outside the sphere โ€” shown red if > 0

The RED value (Relative Energy Difference) for each solvent is shown in the RED column of the grid table after a fit. RED < 1 means the solvent is inside the sphere; RED > 1 means it is outside.


5.4 Surface Explorer

Surface Explorer modal with tolerance slider and solvent table

The Explore Surface button (available after a successful fit) opens the Surface Solvents modal. It queries the built-in solvent database for solvents that lie near the boundary of the fitted sphere โ€” these are candidates that may help constrain the sphere more precisely when scored and added to the grid.

How it works

The explorer fetches all database solvents whose RED value falls within a configurable tolerance band around 1.0 (i.e., 1 โˆ’ tolerance โ‰ค RED โ‰ค 1 + tolerance).

Controls

ControlDescription
Sphere selectorShown only when two spheres are fitted; switches which sphere's surface is explored
All near surface / Outside onlyToggle between showing all solvents within the tolerance band, or only those with RED > 1
RED range sliderAdjusts the tolerance (ยฑ0.05 to ยฑ0.50). Wider tolerance returns more solvents

Table columns

ColumnDescription
SolventSolvent name (sortable)
ฮดD / ฮดP / ฮดHHansen parameters (sortable)
REDRelative Energy Difference, colour-coded: blue = inside (RED < 0.95), amber = on surface (0.95โ€“1.05), red = outside (RED > 1.05)

Workflow tip

  1. Run an initial fit.
  2. Open Surface Explorer and filter to Outside only.
  3. Select solvents you can test experimentally and add them to the grid.
  4. Score the newly added solvents (0 if they do not dissolve the material).
  5. Refit โ€” the additional bad solvents outside the sphere help push the boundary inward to a more accurate result.

Select rows using the checkboxes and click Add Selected (n) to insert them into the current grid with a blank Score.


6. Visualisation

6.1 3D View

3D view with fitted sphere and colour-coded solvents

The 3D view shows all solvents as points in the Hansen solubility space (axes: D, H, P). After a fit, the HSP sphere is drawn as a green wireframe.

ColourMeaning
Grey (semi-transparent)Unscored solvent
BlueGood solvent (Score โ‰ฅ Inside Limit)
RedBad solvent (Score < Inside Limit, Score > 0)
Green wireframe + dotFitted HSP sphere centre

Hovering over a point shows a tooltip with the solvent name and its ฮดD, ฮดP, ฮดH coordinates. If a fit has been run, the RED value is also shown for scored solvents.


6.2 2D View

2D view with three side-by-side subplots

The 2D view shows three 2D projections of the solvent space side by side. This is useful for identifying which plane shows the clearest separation between good and bad solvents.

SubplotAxes
Left โ€” P vs Hx = P, y = H
Centre โ€” H vs Dx = H, y = D
Right โ€” P vs Dx = P, y = D

After a fit, the sphere projection appears as a green circle in each subplot. The same colour coding as the 3D view applies.


6.3 Combined 2D/3D View

Combined 2D/3D layout

The 2D/3D mode shows both the 3D scatter plot and the three 2D subplots at the same time. The fitting panel is repositioned to the right of the 3D plot to save vertical space.

This mode is best used on wide screens or when you want to inspect both the spatial distribution and the individual plane projections simultaneously.


6.4 Interacting with the Plots

All plots are powered by Plotly and support the following interactions:

ActionEffect
Click + dragRotate (3D) or pan (2D)
Scroll wheelZoom in/out
Double-clickReset view to default zoom
Hover over pointShow solvent name and coordinates
Toolbar (top-right of plot)Camera (PNG download) and Home (reset view)

7. Settings

Settings modal

Click the settings icon in the top-right corner of the window to open the Settings modal.

Language

OptionLanguage
EnglishEnglish
EspaรฑolSpanish
ไธญๆ–‡Simplified Chinese

The change takes effect immediately. The selected language is persisted and restored on the next launch.

Always show solvent names in English

A checkbox directly below the language selector. When enabled, all solvent names from the built-in database are displayed in English regardless of the selected interface language. Useful when working in Spanish or Chinese but needing solvent names to match published literature or lab documentation. The setting is persisted across sessions.

Host and Port

FieldDefaultDescription
Host127.0.0.1The network address the backend server listens on. Use 127.0.0.1 to keep it local-only (recommended). Set to 0.0.0.0 to allow connections from other devices on your network.
Port8000The TCP port the backend API runs on. Change this if port 8000 is already in use.
Note: Host and port changes require a restart of the application to take effect.

API Key

An optional secret key that must be included in all requests to the backend API. Useful when the server is exposed beyond localhost.

Fit Timeout

Maximum number of seconds a fitting operation may run before it is abandoned and a timeout error is returned. Set to 0 to disable the limit entirely. The default is 60 seconds, which is sufficient for most datasets; very large grids or slow machines may require a higher value.

Default Export Directory

The folder that the native save dialog opens to when exporting a grid (CSV or Excel). If left empty, the system default (usually Downloads) is used. Click Browse to select a folder.

About

The Settings modal also displays the application version and links to: EULA, Privacy Policy, and Third-party Licenses.

Documentation

Click the docs icon (to the left of the settings icon) to open this user manual in your browser.


8. Troubleshooting

The application shows the splash screen for a long time

On first launch the setup dialog (language, EULA, license) appears before the backend starts โ€” this is expected. The app polls the backend continuously with no fixed timeout. On macOS the very first launch may take longer while the system verifies the backend component. If startup takes unusually long, click Cancel to quit, then run xattr -cr /Applications/hsp-desktop.app in Terminal before relaunching. On all platforms, check that port 8000 is not in use by another application.

The EULA or language dialog keeps appearing

The language preference, EULA acceptance, and license data are each stored locally. If any of this data is cleared, the corresponding step reappears on next launch. Complete the step again to proceed normally.

My license key is not accepted

Scores are not being saved

The Score column only stores integer values. For binary scoring use 0 or 1; for graduated scoring use 1โ€“6. Values outside the valid range or non-numeric input are silently discarded.

The grid is considered dirty (unsaved) as soon as any score is changed โ€” the save icon turns amber. Remember to save to the database if you want to reload the grid in a future session.

The fit produces low accuracy

I cannot rename or duplicate a grid

These operations require that a grid is saved in the database. A grid imported from a file or freshly created but not yet saved does not have a database ID. Save it first using the Save to DB button, then rename or duplicate.

Exported file does not open in Excel

Make sure the export format is Export as Excel (.xlsx) rather than CSV. Some regional Excel settings may require you to change the decimal separator in the CSV; the Excel export avoids this issue entirely.

The Surface Explorer returns no results