Skip to main content

Install or Update Neat Library

Use this page to install or update the Neat Library.

Neat Library within the Palette SDK

When you pair a DevKit during sima-cli sdk setup, the SDK installs its included Neat Library and bundled PyNeat environment at ~/pyneat on the DevKit automatically.

When to use offline installation

If the target cannot download packages from SiMa.ai services, use offline installation. Download the package on a computer with internet access.

Choose Where to Install​

Run the installer from the environment where you build or run Neat applications:

EnvironmentUse this when
Palette SDKYou want to upgrade the Neat Library in the Palette SDK without installing a new SDK version.
ROS2 SDKYou want to compile ROS 2 applications natively on ARM64 with Neat headers and libraries installed in the container's system paths.
DevKitYou want to install or update the runtime directly on the device.

C++ development packages​

The minimal installation includes the runtime and sima-neat-dev. The default installation offers tutorials and tests as optional extras; all includes them. Shared-library applications need Core's public headers, the matching Scheduler frontend, and GStreamer, OpenCV, and JSON development files. They do not need the retired Internals umbrella or Runner, Kernels, Codecs, memory-library, heap, or LLiMa development APIs. The selected packages supply the required runtime dependencies.

Use the installed shared target:

find_package(SimaNeat CONFIG REQUIRED)
target_link_libraries(my_app PRIVATE SimaNeat::sima_neat)

The static archive remains in sima-neat-dev. Use COMPONENTS Static and keep the matching simaai-scheduler package installed. Provision zlib1g-dev, libcpp-httplib-dev, and, for LLiMa-enabled builds, sima-lmm-dev, with their dependencies. Core uses Scheduler's installed frontend; do not add Internals or lower-library development targets to your application:

find_package(SimaNeat CONFIG REQUIRED COMPONENTS Static)
target_link_libraries(my_app PRIVATE SimaNeat::sima_neat_static)

Static Core still uses shared implementation libraries. Building Core from source uses the same Scheduler frontend boundary and requires development files for its other dependencies, including LLiMa when enabled.

Online installation prerequisites​

Install sima-cli in the environment where you plan to install the Neat Library. Use the sima-cli installation guide.

Create an account at community.sima.ai to access SiMa.ai assets such as precompiled models for testing.

Authenticate the environment so the installer can download SiMa.ai artifacts. See sima-cli login for details.

sdk or devkit$sima-cli login

Confirm the environment can reach the SiMa.ai artifacts host:

sdk or devkit$curl -fsS https://artifacts.neat.sima.ai/sima-cli/linux-mac.sh -o /dev/null && echo "artifacts reachable"

Printing artifacts reachable means the host is reachable. A curl error such as a timeout, connection refused, or "could not resolve host" means outbound access is blocked — check your host network, proxy, or firewall (see Palette SDK Networking and the host setup notes), or use Offline Installation if the machine cannot reach SiMa.ai services directly.

Install the Neat Library​

Package compatibility

The installer uses every Debian package listed by the selected Core artifact and does not select different Scheduler or LLiMa versions. The installed platform must satisfy dependencies that are not delivered by that artifact. If APT would remove platform packages to complete the installation, the installer stops; update the platform instead of substituting packages in Core or LLiMa.

Choose a working directory before running the installer. On the DevKit, install under /media/nvme to avoid filling the root file system. In the SDK container, use a container-local path such as $HOME/neat.

Select your environment, then run the steps in order. Install in the Palette SDK container to cross-compile C++ applications. Install in the ROS2 SDK to compile natively on ARM64; its Debian packages are installed into /usr rather than the Neat cross-compilation sysroot. Install on the DevKit to set up the runtime there, which also provisions PyNeat at ~/pyneat. The installer command is the same in every environment.

Prepare a container-local install directory such as $HOME/neat:

sdk$cd $HOME && mkdir -p neat && cd neat

Install the default Neat Library package selected by sima-cli. You can optionally install extras, including prebuilt tutorials, source-code tutorials, and tests:

sdk$sima-cli neat install core@v0.6.1

Default PyNeat environment for online installation​

Installing the Neat Library on the DevKit also provisions a default PyNeat virtual environment at ~/pyneat on the DevKit. This is the supported PyNeat environment — activate it directly:

devkit$source ~/pyneat/bin/activate

If you run the installer from inside an SDK container paired with DevKit Sync, the installer provisions PyNeat on the paired DevKit, not only inside the SDK container. PyNeat is installed into a virtual environment under ~/pyneat on the DevKit.

For custom Python virtual environments, see Install PyNeat.

Source Builds​

Build from source when you need an unreleased change, a custom build configuration, or you are contributing to the Neat Library. Most users should use the packaged install above instead.

If you prefer building from source, follow the Build guide.

For SDK setup and DevKit Sync onboarding, see Palette SDK.

Offline installation​

Check Python dependencies before installation

Offline installation preserves existing Python environments and their extra packages and files. Before installing packages, it runs pip check. If the environment is already broken, installation stops and reports the environment path and dependency errors. Repair the reported dependencies, using additional wheels when offline, then retry. A dependency check after installation reports any remaining or newly introduced conflicts; package changes are not automatically rolled back.

To discard an environment and install from scratch, explicitly run ./install.sh --recreate-venv (standalone Core) or sudo python3 -B install.py --recreate-venv (PCIe). This removes packages and files in the selected environment without backup. In the SDK, the option applies to the paired DevKit, not SDK host Python. Save required files first. Preflight and verification-only commands never recreate environments.

Neat Library offline packages are available in version 0.6.0 or later. Use this package for a Modalix DevKit with Platform 3.0 or later.

1. Download the package​

Install sima-cli on the computer with internet access. See the sima-cli installation guide.

Run this command on the computer with internet access:

host$sima-cli neat install core/offline@v0.6.1 --download-only

The default package includes the runtime, tutorials, and tests. To download only the runtime, use:

host$sima-cli neat install core/offline@v0.6.1 -t minimal --download-only

2. Install the package​

  1. Copy the downloaded files to the Modalix DevKit or the Palette SDK workspace.
  2. Open a terminal in that directory. For SDK installation, use the SDK shell.
  3. Extract the installer archive:

The downloaded archive may have a 8-character SHA-256 suffix before .tar.gz. Keep only the selected installer archive in this directory before extracting it.

sdk or devkit$tar -xzf neat-core-offline-installer*.tar.gz
  1. Go to the extracted directory:
sdk or devkit$cd neat-core-offline
  1. Start the installer as your regular user. It requests sudo permissions when necessary.
sdk or devkit$./install.sh

If you need tutorials or tests, extract the separate extras archive into a directory of your choice.

For offline installation, activate the Python environment with:

devkit$source ~/pyneat/bin/activate

Offline installation reuses an existing ~/pyneatpcie on the host or ~/pyneat on a card or DevKit, including its symlink target. If no home environment exists, a card or DevKit uses /media/nvme/pyneat when NVMe is writable by the installing user; otherwise, it uses ~/pyneat. A new NVMe installation creates a ~/pyneat link without replacing an existing home environment.

Package options and installer behavior​

  • The installer checks system compatibility and available disk space before installation.
  • The installer uses bundled dependencies. It stops if a required dependency is missing.
  • In the SDK, the installer copies Neat Library into /opt/toolchain/aarch64/modalix.
  • If DEVKIT_SYNC_DEVKIT_IP is set, the installer also installs on the paired DevKit through SSH. Both environments must pass checks.

If installation fails, read the log at the printed path: /tmp/neat-core-offline-*.log. For detailed output, use ./install.sh --verbose.

If SSH disconnects during installation, the remote installer can continue to run. Check that it has stopped before you retry or remove the temporary directory shown in the report.

Next Step​

Continue to Install PyNeat for custom Python environments, or Neat CLI to inspect the installed environment.