Skip to content

cubert-hyperspectral/cuvis.ai

Repository files navigation

image

cuvis.ai

The project is still maturing. We will make occasional breaking changes and add missing features on our way to v1.

cuvis.ai is a software toolkit designed to facilitate the development of artificial intelligence (AI) and machine learning applications for hyperspectral measurements.

This toolkit enables the creation of a graph from a set of different preexisting supervised and unsupervised nodes. Furthermore, it provides data preprocessing and output postprocessing, thus offering a comprehensive package for the development of AI capabilities for hyperspectral images.

This repository is aimed at companies, universities and private enthusiasts alike. Its objective is to provide a foundation for the development of cutting-edge hyperspectral AI applications.

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 with:

curl -LsSf https://astral.sh/uv/install.sh | sh

Local development with uv

Create or refresh a development environment at the repository root with:

uv sync

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.

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

Detect lingering CamelCase module filenames with:

uv run python scripts/check_module_case.py

To build the documentation, add the docs extra:

uv sync --locked --extra docs
uv run sphinx-build -M html docs docs/_build

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.

Via pip

If you wish to use cuvis.ai within another project, from within your project environment, run

pip install cuvis-ai

or add cuvis-ai to your project requirements.txt or setup.py.

Release Notes

See CHANGELOG.md for the consolidated refactor summary and upgrade guidance.

How to ...

Getting started

We provide an additional example repository here, covering some basic applications.

Further, we provide a set of example measurements to explore here. These measurements are also used by the examples mentioned above.

Getting involved

cuvis.hub welcomes your enthusiasm and expertise!

With providing our SDK wrappers on GitHub, we aim for a community-driven open source application development by a diverse group of contributors. Cubert GmbH aims for creating an open, inclusive, and positive community. Feel free to branch/fork this repository for later merge requests, open issues or point us to your application specific projects. Contact us, if you want your open source project to be included and shared on this hub; either if you search for direct support, collaborators or any other input or simply want your project being used by this community. We ourselves try to expand the code base with further more specific applications using our wrappers to provide starting points for research projects, embedders or other users.

Getting help

Directly code related issues can be posted here on the GitHub page, other, more general and application related issues should be directed to the aforementioned Cubert GmbH support page.

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 6

Languages