Cuvis.AI Core
Overview
Cuvis.AI is an opensource and extensible framework for building AI powered processing pipelines for hyperspectral video data.
It allows you to process and structure spectral data, train and apply machine learning models, visualize and interpret results, and deploy applications in real time environments.
Pipelines are built from reusable modular nodes and can be extended with custom plugins or external integrations.
Cuvis.AI bridges the gap between hyperspectral hardware and real world applications and enables faster development, testing, and deployment of new solutions.
cuvis-ai-core is the foundational framework underneath Cuvis.AI. While the cuvis-ai repository contains the catalog of domain-specific nodes and pre-built models, cuvis-ai-core provides the essential infrastructure that makes those modular pipelines work:
- Node System: Base classes for creating processing nodes with typed input/output ports
- Pipeline Infrastructure: Graph-based pipeline orchestration, execution, and visualization
- Plugin System: Dynamic node loading from Git repositories or local filesystem paths
- Serialization & Restoration: Save and restore complete pipeline states and configurations
- Type Safety: Strongly-typed port system with runtime validation
- gRPC Services: Remote pipeline management, training, and inference APIs
- Training Framework: Integration with PyTorch Lightning for model training workflows
This separation allows the core framework to evolve independently while the catalog of domain-specific nodes grows through a plugin architecture.
Installation
Prerequisites
If you want to directly work with cubert session files (.cu3s), you need to install cuvis C SDK from here.
Local development now relies on uv for Python and dependency management.
If uv is not already available on your system you can install it following their installation instructions.
Install from PyPI (Recommended)
# Install cuvis-ai-core from PyPI
uv add cuvis-ai-core
PyTorch will be installed automatically with CUDA support if available on your system.
Local development with uv
Create or refresh a development environment at the repository root with:
uv sync --all-extras --dev
This installs the runtime dependencies declared in pyproject.toml. uv automatically provisions the Python version declared in the project metadata, so no manual interpreter management is required.
Enable Git Hooks (Required)
After cloning the repository, enable the git hooks for code quality enforcement:
git config core.hooksPath .githooks
This configures Git to use the version-controlled hooks in .githooks/ which automatically enforce code formatting, linting, and testing standards before commits and pushes. See docs/development/git-hooks.md for details.
Advanced environment setup
When you need the reproducible development toolchain (JupyterLab, TensorBoard, etc.) from the lock file, run:
uv sync --locked --extra dev
Use uv run to execute project tooling without manually activating virtual environments, for example:
uv run pytest
Collect coverage details (the dev extra installs pytest-cov) with:
uv run pytest --cov=cuvis_ai --cov-report=term-missing
Ruff handles both formatting and linting. Format sources and check style with:
uv run ruff format .
uv run ruff check .
The configuration enforces import ordering, newline hygiene, modern string formatting, safe exception chaining, and practical return type annotations while avoiding noisy Any policing.
Validate packaging metadata and build artifacts before publishing:
uv build
To build the documentation, add the docs extra:
uv sync --locked --extra docs
Combine extras as needed (e.g. uv sync --locked --extra dev --extra docs). Whenever the pyproject.toml or uv.lock changes, rerun uv sync --locked with the extras you need to stay up to date.
Metadata
Release files for cuvis-ai-core 0.12.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cuvis_ai_core-0.12.0.tar.gz | 735.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cuvis_ai_core-0.12.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 972.5 kB
Release files / cuvis_ai_core-0.12.0.tar.gz
| Download URL | cuvis_ai_core-0.12.0.tar.gz |
|---|---|
| Size | 735.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7b580f3f45b402b87205519b0c90a6fe639b1bae72eff38674afb3c9a0baca95
|
|
BLAKE2b-256 checksum How to use checksums |
c5bc3cc7e061ea0f40201054dbc994d9b394f445c8c4687b6f2ed304a5afd447
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 28, 2026.
Transparency logRelease files / cuvis_ai_core-0.12.0-py3-none-any.whl
| Download URL | cuvis_ai_core-0.12.0-py3-none-any.whl |
|---|---|
| Size | 236.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3c2e53ab81963fc3640dddc45644a113260154dcb8d55227e2a48d0ce7f619e4
|
|
BLAKE2b-256 checksum How to use checksums |
eb754d49607ee0353235acddd24470ce6dfc580d121a70d1871709adcbe692d6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 28, 2026.
Transparency log