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
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.