Skip to content

Choosing a Package

This guide helps you decide which QSP packages to depend on for your specific use case.


Start with qsp-stack if…

  • You are new to QSP and want to explore the ecosystem
  • Your workflow spans multiple packages and you are not ready to specify exact dependencies
  • You are building a prototype and want full access to all utilities
  • Dependency footprint is not a concern for your environment
pip install qsp-stack

Use specific packages if…

  • You have a well-defined, narrow use case
  • You want a minimal dependency footprint in production
  • You need independent version pinning for specific packages
  • Your environment has constraints on installed package size

Decision guide

"I need quaternion types and math"

qsp-core

This is the base package. Use it directly if you are:

  • Building a custom algorithm on top of QSP types
  • Writing a library that extends the ecosystem
  • Using quaternion arithmetic without needing transforms or filters

"I need spectral analysis or frequency-domain tools"

qsp-fft

Use this if you are:

  • Computing the frequency content of a signal
  • Working in the frequency domain
  • Designing frequency-domain filters (paired with qsp-filter)

Note: qsp-fft depends on qsp-core and installs it automatically.

"I need to filter or preprocess a signal"

qsp-filter

Use this if you are:

  • Removing noise or artifacts from a signal
  • Applying bandpass, lowpass, or highpass filtering
  • Preprocessing sensor data before orientation estimation or modulation

Note: qsp-filter depends on qsp-core.

"I need to work with modulation or communication signals"

qsp-modulation

Use this if you are:

  • Generating symbol streams for a communication channel
  • Implementing or testing a modulation scheme
  • Working at the physical-layer signal geometry level

Note: qsp-modulation depends on qsp-core. If your workflow also involves filtering conditioned inputs, add qsp-filter.

"I need orientation or attitude estimation"

qsp-orientation

Use this if you are:

  • Processing IMU or multi-axis sensor data
  • Estimating platform attitude or orientation over time
  • Building a navigation or sensor fusion pipeline

Note: qsp-orientation depends on qsp-core. If your sensors produce noisy data, add qsp-filter for conditioning.


Multi-package workflows

Most real-world workflows span more than one package. Common combinations:

Workflow Packages
Sensor conditioning + orientation qsp-filter, qsp-orientation
Spectral analysis + filtering qsp-fft, qsp-filter
Communication signal pipeline qsp-filter, qsp-modulation
Full signal processing stack qsp-stack
Custom algorithm on QSP types qsp-core

When to stay on qsp-stack

If your workflow genuinely spans the full ecosystem and you are not concerned about dependency size, staying on qsp-stack is a valid long-term choice. It provides a single versioned entry point and simplifies upgrades.