Desktop Package

heliokit-desktop is the protected desktop distribution. It is separate from the original SWAS/SWVIZ desktop packaging path and does not replace or modify that existing delivery flow.

Runtime model

The desktop wheel expects a controlled Windows environment:

Requirement

Reason

64-bit CPython 3.10

Native modules and compiled extensions target CPython 3.10.

Locked scientific dependencies

Heavy libraries such as VTK, Qt, TensorFlow, and Torch are provided by the environment instead of being copied into the wheel.

Matching build/runtime template

Native packages are not ABI-independent across arbitrary Python distributions.

Environment setup

Use one of the two supported Python 3.10 setup paths described in Get Started: an existing controlled 64-bit CPython 3.10 environment, or a dedicated Conda environment. The Conda path is recommended for desktop users. Create the controlled Python environment before installing the desktop package:

conda create --name heliokit python=3.10 --yes
conda activate heliokit
python -m pip install --upgrade pip

Install and run

python -m pip install heliokit-desktop
heliokit run desktop

For local installation from this repository, use the local installer. It passes the host, base, desktop package, and all local component packages to one pip resolver run, so unpublished local versions resolve against each other:

python .\install.py --all-local --upgrade

The desktop wheel deliberately does not bundle heavy runtime libraries such as VTK, Qt, TensorFlow, and Torch. Pip installs those libraries into the controlled environment from the package metadata, so do not use --no-deps for normal desktop installation.

Equivalent entry points are also installed for direct desktop/package checks:

heliokit-desktop
heliokit-desktop-cli components list

Workspace terminal

The desktop File > Terminal action opens PowerShell in the current workspace and sets HELIOKIT_WORKSPACE for the session. Heliokit commands launched from that terminal resolve relative input and output paths against the workspace even if the user later changes the shell location. Missing output directories are created automatically. Component commands print planned absolute output paths before execution and print the same paths again with Completed. after a successful run.

In source-tree desktop mode, the terminal uses the Heliokit CLI runtime, not necessarily the Python process that launched the desktop UI. It first honors HELIOKIT_CLI_PYTHON when that environment variable is set, then looks for a conda environment named heliokit, and only falls back to the desktop Python if no Heliokit CLI runtime is available. The selected Python path is printed when the terminal opens.

In packaged desktop mode, the terminal does not inspect the user’s conda environments and does not accept an external HELIOKIT_CLI_PYTHON outside the packaged runtime. It stays inside the packaged or controlled runtime advertised by HELIOKIT_RUNTIME_ROOT and the current desktop entry point, so the packaged application does not depend on a user-created virtual environment for terminal commands. Traditional frozen desktop builds are treated the same way: if no packaged CLI runtime can import heliokit.cli, the desktop reports the missing runtime instead of falling back to an arbitrary user environment.

Visualization commands launched from this terminal run in a child Python process. Matplotlib backend selection is therefore local to that command process and does not change the Qt backend used by the desktop UI process. Non-display commands select a file-rendering backend before importing pyplot; interactive commands try a GUI backend only when pyplot has not already been imported.

Protection model

The production desktop distribution compiles desktop business modules to CPython 3.10 native extensions and compiles bundled host/component sources to bytecode before removing source files from the wheel payload. This raises the cost of casual reverse engineering, but it is not a cryptographic protection boundary.

Uninstall

python -m pip uninstall heliokit-desktop