Standardized CubeSat & PocketQube form factor specs with launch provider deployer constraints
Project description
cubesat-specs
Standardized CubeSat and PocketQube form factor specifications plus launch provider and deployer constraints — no hardcoding required.
pip install cubesat-specs
Quick Start
from cubesat_specs import (
CUBESAT_FORM_FACTORS,
POCKETQUBE_FORM_FACTORS,
get_form_factor,
get_compatible_providers,
)
# Look up a 3U CubeSat
ff = CUBESAT_FORM_FACTORS["3U"]
print(ff.width_mm, ff.depth_mm, ff.height_mm) # 100.0 100.0 340.5
print(ff.max_mass_kg) # 6.0
print(ff.volume_liters) # 3.405
# PocketQube 1p
pq = POCKETQUBE_FORM_FACTORS["1p"]
print(pq.max_mass_kg) # 0.25
# Unified lookup (CubeSat + PocketQube)
get_form_factor("6U") # returns CubeSatFormFactor for 6U
get_form_factor("2p") # returns CubeSatFormFactor for 2p PocketQube
# Which launch providers accept a 6U?
for provider in get_compatible_providers("6U"):
deployer_names = [d.name for d in provider.deployers
if "6U" in d.supported_form_factors]
print(f"{provider.name}: {deployer_names}")
CubeSat Form Factors (Cal Poly CDS Rev 14.1)
| Key | W × D × H (mm) | Max mass (kg) | Min freq (Hz) |
|---|---|---|---|
| 0.5U | 100 × 100 × 56.75 | 1.00 | 100 |
| 1U | 100 × 100 × 113.5 | 2.00 | 100 |
| 1.5U | 100 × 100 × 170.25 | 3.00 | 100 |
| 2U | 100 × 100 × 227.0 | 4.00 | 100 |
| 3U | 100 × 100 × 340.5 | 6.00 | 100 |
| 3U+ | 100 × 100 × 360.0 | 6.00 | 100 |
| 6U | 226.3 × 100 × 366.0 | 12.00 | 100 |
| 12U | 226.3 × 226.3 × 366.0 | 24.00 | 100 |
| 16U | 226.3 × 226.3 × 488.0 | 32.00 | 100 |
| 27U | 300 × 300 × 340.5 | 54.00 | 100 |
PocketQube Form Factors (PocketQube Standard Issue 1)
| Key | W × D × H (mm) | Max mass (g) |
|---|---|---|
| 1p | 50 × 50 × 50 | 250 |
| 2p | 50 × 50 × 114 | 500 |
| 3p | 50 × 50 × 178 | 750 |
Launch Providers & Deployers
| Provider key | Provider | Deployers |
|---|---|---|
nanoracks |
NanoRacks | NRCSD, NRCSD-E, NRCSD DoubleWide |
calpoly |
Cal Poly | P-POD Mk III |
isis |
ISIS | ISIPOD 3U, ISIPOD 6U |
exolaunch |
Exolaunch GmbH | EXOpod 6U, EXOpod 12U |
spaceflight |
SpaceFlight Inc. | Sherpa-FX |
rocketlab |
Rocket Lab | Electron Rideshare Deployer |
alba |
Alba Orbital | PocketQube Deployer (4p) |
Each DeployerSpec carries: supported_form_factors, deployment_velocity_min/max_ms, tip_off_rate_max_deg_s, max_payload_mass_kg, and optional inclination_deg / altitude_km_min/max.
Data Sources
- CubeSat Design Specification (CDS) Rev 14.1, Cal Poly, 2022
- PocketQube Standard Issue 1, 2018
- NanoRacks NRCSD IDD Rev D
- NanoRacks NRCSD-E IDD
- Cal Poly P-POD Mk III User Guide
- ISIS ISIPOD Datasheet
- Exolaunch EXOpod Datasheet
Publishing to PyPI
- Create a PyPI account and enable Trusted Publishing for
JuliusPinsker/cubesat-specs. - Push a semver tag:
git tag v0.1.0 && git push --tags - The
publish.ymlworkflow triggers automatically via OIDC — no API keys needed.
Contributing
PRs welcome! Priority areas:
- Additional deployers (Tyvak, GomSpace, AAC Clyde Space, D-Orbit ION)
- VEGA/Ariane-6 rideshare specs
- Updated NanoRacks specs post-Voyager acquisition
- SpaceX Transporter mission orbit parameters per flight
License
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cubesat_specs-0.1.0.tar.gz.
File metadata
- Download URL: cubesat_specs-0.1.0.tar.gz
- Upload date:
- Size: 10.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5e19d216f0e199ae13351818d8600405f82e56300764151f00dd234755979fe1
|
|
| MD5 |
0cf717dfea5c3b456c5a46c1505ee2b7
|
|
| BLAKE2b-256 |
3712a7ca554ee9cbcaf81a741bbd36953d1ce264a8cd625d1ad6309bbcab1dab
|
Provenance
The following attestation bundles were made for cubesat_specs-0.1.0.tar.gz:
Publisher:
publish.yml on JuliusPinsker/cubesat-specs
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cubesat_specs-0.1.0.tar.gz -
Subject digest:
5e19d216f0e199ae13351818d8600405f82e56300764151f00dd234755979fe1 - Sigstore transparency entry: 1005446713
- Sigstore integration time:
-
Permalink:
JuliusPinsker/cubesat-specs@932ebbb6e7444d41f766634f1095a5d4fe8ccb3e -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/JuliusPinsker
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@932ebbb6e7444d41f766634f1095a5d4fe8ccb3e -
Trigger Event:
push
-
Statement type:
File details
Details for the file cubesat_specs-0.1.0-py3-none-any.whl.
File metadata
- Download URL: cubesat_specs-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fe33a2aaa4bdb19b5b143a2d8edf504897c2e935bf3df10412c2a18749562452
|
|
| MD5 |
2d193a210853bac7b70365b112104d7d
|
|
| BLAKE2b-256 |
a647b843a85b463dd4ddca61a0781ad66ddca9149b23d58fb0fe69bb15868042
|
Provenance
The following attestation bundles were made for cubesat_specs-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on JuliusPinsker/cubesat-specs
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cubesat_specs-0.1.0-py3-none-any.whl -
Subject digest:
fe33a2aaa4bdb19b5b143a2d8edf504897c2e935bf3df10412c2a18749562452 - Sigstore transparency entry: 1005446714
- Sigstore integration time:
-
Permalink:
JuliusPinsker/cubesat-specs@932ebbb6e7444d41f766634f1095a5d4fe8ccb3e -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/JuliusPinsker
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@932ebbb6e7444d41f766634f1095a5d4fe8ccb3e -
Trigger Event:
push
-
Statement type: